diff options
4 files changed, 71 insertions, 94 deletions
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/manual_rules_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/manual_rules_controller.rb index 0b5c10ec2e9..e71fcfafaf7 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/manual_rules_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/manual_rules_controller.rb @@ -25,69 +25,54 @@ class ManualRulesController < ApplicationController def index @rules = Rule.manual_rules() - @rule=Rule.new render :action => 'index' end def edit verify_post_request - access_denied unless is_admin? - begin - # Update rule - rule=Rule.manual_rule(params['id'].to_i) - bad_request('Unknown rule') unless rule - rule.name=(params[:name]) - rule.description=params[:description] - rule.save! - rescue Exception => e - @error= e.message - end - @rule = rule - if @error - render :partial => 'manual_rules/edit_form', :status => 400 - else - flash[:notice] = 'Manual rule saved' + call_backend do + rule_update = { + 'ruleKey' => params[:key], + 'name' => params[:name], + 'htmlDescription' => params[:description] + } + Internal.rules.updateManualRule(rule_update) render :text => 'ok', :status => 200 end - end + # Information : if the key already exists but is removed, it will be automatically reactivated without any message to the user def create verify_post_request - access_denied unless is_admin? - begin - # Create rule - Rule.create_manual_rule(params) - rescue Exception => e - @error= e.message - end - if @error - render :partial => 'manual_rules/create_form', :status => 400 - else - flash[:notice] = 'Manual rule created' + require_parameters 'name' + + call_backend do + manual_key = params[:name].strip.downcase.gsub(/\s/, '_') + new_rule = { + 'manualKey' => manual_key, + 'name' => params[:name], + 'htmlDescription' => params[:description] + } + Internal.rules.createManualRule(new_rule) render :text => 'ok', :status => 200 end end def create_form - @rule = Rule.new render :partial => 'manual_rules/create_form' end def edit_form - @rule=Rule.manual_rule(params['id'].to_i) - render :partial => 'manual_rules/edit_form', :status => 200 + @rule = Internal.rules.findByKey(params['key']) + render :partial => 'manual_rules/edit_form', :status => 200 end def delete verify_post_request - access_denied unless is_admin? - rule=Rule.manual_rule(params['id'].to_i) - bad_request('Missing rule id') unless rule - rule.status=Rule::STATUS_REMOVED - unless rule.save - flash[:error]=rule.errors.to_s + + call_backend do + Internal.rules.deleteManualRule(params['key']) + redirect_to :action => 'index' end - redirect_to :action => 'index' end end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/_create_form.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/_create_form.html.erb index 11d27c00b6e..03539debbc9 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/_create_form.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/_create_form.html.erb @@ -1,32 +1,28 @@ -<% if is_admin? %> - <form action="<%= ApplicationController.root_context -%>/manual_rules/create" method="POST" id="manual-rules-form"> - <fieldset> - <div class="modal-head"> - <h2>Create Manual Rule</h2> - </div> +<form action="<%= ApplicationController.root_context -%>/manual_rules/create" method="POST" id="manual-rules-form"> + <fieldset> + <div class="modal-head"> + <h2>Create Manual Rule</h2> + </div> - <div class="modal-body"> - <% if @error %> - <p class="error"><%= h @error -%></p> - <% end %> - <div class="modal-field"> - <label for="manual_rules[]">Name <em class="mandatory">*</em></label> - <input type="text" name="name" value=""/> - </div> - <div class="modal-field"> - <label for="manual_rules[]">Description <em class="mandatory">*</em></label> - <textarea rows="5" cols="50" name="description"></textarea> - <br/> - </div> + <div class="modal-body"> + <div class="modal-error"/> + <div class="modal-field"> + <label for="manual_rules[]">Name <em class="mandatory">*</em></label> + <input type="text" name="name" value=""/> </div> - - <div class="modal-foot"> - <input type="submit" value="<%= message('create') -%>"> - <%= link_to 'Cancel', { :controller => 'manual_rules', :action => 'index'}, { :class => 'action' } %><br/> + <div class="modal-field"> + <label for="manual_rules[]">Description <em class="mandatory">*</em></label> + <textarea rows="5" cols="50" name="description"></textarea> + <br/> </div> - </fieldset> - </form> -<% end %> + </div> + + <div class="modal-foot"> + <input type="submit" value="<%= message('create') -%>"> + <%= link_to 'Cancel', { :controller => 'manual_rules', :action => 'index'}, { :class => 'action' } %><br/> + </div> + </fieldset> +</form> <script> $j("#manual-rules-form").modalForm(); diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/_edit_form.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/_edit_form.html.erb index 60943af002b..de72b676c02 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/_edit_form.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/_edit_form.html.erb @@ -1,33 +1,29 @@ -<% if is_admin? %> - <form action="<%= ApplicationController.root_context -%>/manual_rules/edit" method="POST" id="manual-rules-form"> - <fieldset> - <div class="modal-head"> - <h2>Edit Manual Rule: <%= h @rule.name -%></h2> - </div> +<form action="<%= ApplicationController.root_context -%>/manual_rules/edit" method="POST" id="manual-rules-form"> + <fieldset> + <div class="modal-head"> + <h2>Edit Manual Rule: <%= h @rule.name() -%></h2> + </div> - <div class="modal-body"> - <% if @error %> - <p class="error"><%= h @error -%></p> - <% end %> - <input type="hidden" name="id" value="<%= @rule.id -%>"/> - <div class="modal-field"> - <label for="manual_rules[]">Name <em class="mandatory">*</em></label> - <input type="text" name="name" value="<%= h @rule.name -%>"/> - </div> - <div class="modal-field"> - <label for="manual_rules[]">Description <em class="mandatory">*</em></label> - <textarea rows="5" cols="50" name="description"><%= h @rule.description -%></textarea> - <br/> - </div> + <div class="modal-body"> + <div class="modal-error"/> + <input type="hidden" name="key" value="<%= @rule.key().to_s -%>"/> + <div class="modal-field"> + <label for="manual_rules[]">Name <em class="mandatory">*</em></label> + <input type="text" name="name" value="<%= h @rule.name() -%>"/> </div> - - <div class="modal-foot"> - <input type="submit" value="<%= message('save') -%>"> - <%= link_to 'Cancel', { :controller => 'manual_rules', :action => 'index'}, { :class => 'action' } %><br/> + <div class="modal-field"> + <label for="manual_rules[]">Description <em class="mandatory">*</em></label> + <textarea rows="5" cols="50" name="description"><%= h @rule.htmlDescription() -%></textarea> + <br/> </div> - </fieldset> - </form> -<% end %> + </div> + + <div class="modal-foot"> + <input type="submit" value="<%= message('save') -%>"> + <%= link_to 'Cancel', { :controller => 'manual_rules', :action => 'index'}, { :class => 'action' } %><br/> + </div> + </fieldset> +</form> <script> $j("#manual-rules-form").modalForm(); diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/index.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/index.html.erb index 9a593636f55..43cd4f5ac40 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/index.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_rules/index.html.erb @@ -34,8 +34,8 @@ <span class="note"><%= h rule.description -%></span> </td> <td class="right thin nowrap"> - <a id="edit-<%= u(rule.key) -%>" class="open-modal link-action" href="<%=ApplicationController.root_context-%>/manual_rules/edit_form/<%= h rule.id -%>">Edit</a> - <%= link_to_action message('delete'), "#{ApplicationController.root_context}/manual_rules/delete/#{rule.id}", + <a id="edit-<%= u(rule.key) -%>" class="open-modal link-action" href="<%=ApplicationController.root_context-%>/manual_rules/edit_form?key=<%= h rule.key -%>">Edit</a> + <%= link_to_action message('delete'), "#{ApplicationController.root_context}/manual_rules/delete?key=#{rule.key}", :class => 'link-action link-red', :id => "delete_#{rule.key.parameterize}", :confirm_button => message('delete'), |