]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3755 Improve issue detail controller
authorJulien Lancelot <julien.lancelot@gmail.com>
Tue, 30 Apr 2013 07:02:19 +0000 (09:02 +0200)
committerJulien Lancelot <julien.lancelot@gmail.com>
Tue, 30 Apr 2013 07:02:19 +0000 (09:02 +0200)
plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties
sonar-server/src/main/webapp/WEB-INF/app/controllers/issue_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/views/issue/_issue.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/issue/_transition_form.html.erb

index e3211ddbf45af4b7cbab424fcccc33074f52f264..e80458f4fae968bf226f7f3465c81160a1f7c8a2 100644 (file)
@@ -538,6 +538,7 @@ issues.resolution.FIXED=Fixed
 issues.transition.resolve.button=Resolved
 issues.transition.falsepositive.button=False-positive
 issues.transition.reopen.button=Reopen
+issues.transition.close.button=Close
 
 
 #------------------------------------------------------------------------------
index fdeb973c0b2179f1a0215024c76aaf564793b9e6..eac2c3ba6c49927cf639b67a731080b74f0ac273 100644 (file)
@@ -24,27 +24,22 @@ class IssueController < ApplicationController
 
   helper SourceHelper, UsersHelper
 
+
   # Used for the permalink, e.g. http://localhost:9000/issue/view/1
   def view
     require_parameters :id
-    issue_result = find_issue(params[:id])
-    @issue = issue_result.issues[0]
-    @rule = issue_result.rule(@issue)
-    @component = Project.by_key(@issue.component_key)
-    @transitions = Internal.issues.listTransitions(@issue.key)
+    init_issue(params[:id])
+    init_resource
 
-    # Used for breadcrumb
-    @resource = @component.root_project
+    @transitions = Internal.issues.listTransitions(@issue.key)
     render 'issue/_view'
   end
 
   # GET
   def transition_form
-    require_parameters :key, :transition
-    issue_result = find_issue(params[:key])
-    @issue = issue_result.issues[0]
-    bad_request('Unknown issue') unless @issue
+    require_parameters :id, :transition
 
+    init_issue(params[:id])
     @transition = params[:transition]
     bad_request('Missing transition') if @transition.blank?
 
@@ -54,19 +49,12 @@ class IssueController < ApplicationController
   # POST
   def transition
     verify_post_request
-    require_parameters :key, :transition
-
-    issue = Internal.issues.doTransition(params[:key], params[:transition])
-
-
-    issue_result = find_issue(params[:key])
-    @issue = issue_result.issues[0]
-    @rule = issue_result.rule(@issue)
-    @component = Project.by_key(@issue.component_key)
-    @transitions = Internal.issues.listTransitions(@issue.key)
-    @resource = @component.root_project
-
+    require_parameters :id, :transition
+    issue = Internal.issues.doTransition(params[:id], params[:transition])
     if issue
+      init_issue(params[:id])
+      init_resource
+      @transitions = Internal.issues.listTransitions(@issue.key)
       render :partial => 'issue/view'
     else
       render :status => 400
@@ -75,6 +63,18 @@ class IssueController < ApplicationController
 
   protected
 
+  def init_issue(issue_key)
+    issue_result = find_issue(issue_key)
+    @issue = issue_result.issues[0]
+    bad_request('Unknown issue') unless @issue
+    @rule = issue_result.rule(@issue)
+  end
+
+  def init_resource
+    @component = Project.by_key(@issue.component_key)
+    @resource = @component.root_project
+  end
+
   def find_issues(map)
     Api.issues.find(map)
   end
index 06bcdefa37e80057d3f074a32f3da1de88d4ca56..946a8217a745025d6071c0d3b83dcb4a830ef8c3 100644 (file)
@@ -11,7 +11,7 @@
     <div class="marginbottom10" id="actionButtons">
       <% @transitions.each do |transition| %>
         <%= button_to_remote message("issues.transition.#{transition.key}.button"),
-                             :url => {:controller => "issue", :action => "transition_form", :key => @issue.key, :transition => transition.key},
+                             :url => {:controller => "issue", :action => "transition_form", :id => @issue.key, :transition => transition.key},
                              :update => "actionForm",
                              :complete => "$('actionButtons').remove();$('actionForm').show();$('actionText').focus();" -%>
       <% end %>
index 63c8ca01520093b982a0f893b7534a0ee3f503d7..4715a29f3bb275e11389587dc6c18f83e27712f5 100644 (file)
@@ -1,5 +1,5 @@
 <form method="POST">
-  <input type="hidden" name="key" value="<%= @issue.key -%>"/>
+  <input type="hidden" name="id" value="<%= @issue.key -%>"/>
   <input type="hidden" name="transition" value="<%= @transition -%>"/>
 
   <textarea id="actionText" rows="4" name="text" style="width: 100%"></textarea>
@@ -9,5 +9,5 @@
                        :html => {:id => "submit_btn"},
                        :update => 'issue' -%>
   &nbsp;
-  <%= link_to_remote message('cancel'), :url => {:action => 'show', :key => params[:key]}, :update => 'issue' -%>
+  <%= link_to_remote message('cancel'), :url => {:action => 'show', :id => params[:id]}, :update => 'issue' -%>
 </form>