]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4303 Refactor the issue detail page
authorJulien Lancelot <julien.lancelot@gmail.com>
Fri, 24 May 2013 09:49:28 +0000 (11:49 +0200)
committerJulien Lancelot <julien.lancelot@gmail.com>
Fri, 24 May 2013 09:49:28 +0000 (11:49 +0200)
sonar-server/src/main/webapp/WEB-INF/app/controllers/issue_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/views/issue/_view.html.erb [new file with mode: 0644]
sonar-server/src/main/webapp/WEB-INF/app/views/issue/show.html.erb [deleted file]
sonar-server/src/main/webapp/WEB-INF/app/views/issue/view.html.erb [new file with mode: 0644]
sonar-server/src/main/webapp/WEB-INF/app/views/issues/_list.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/project/widgets/issues/_issues_list.html.erb

index fb28aded77455f95966fc5ba64d593053bd921ed..53f116b5b69cf9ee17e7ead1166854c2aaaaa9a7 100644 (file)
 
 class IssueController < ApplicationController
 
-  SECTION=Navigation::SECTION_RESOURCE
+  helper SourceHelper
 
-  def show
+  def view
     require_parameters :id
+    init_issue
 
-    @issue_results = Api.issues.find(params[:id])
     if request.xhr?
-      render :partial => 'issue/issue', :locals => {:issue => @issue_results.issues.get(0)}
+      render :partial => 'issue/view', :locals => {:issue => @issue, :issue_results => @issue_results, :snapshot =>  @snapshot}
     else
-      # Used in Eclipse Plugin
-      params[:layout] = 'false'
-      render :action => 'show'
+      render :action => 'view'
     end
   end
 
+  # Used in Eclipse Plugin
+  def show
+    require_parameters :id
+    init_issue
+
+    params[:layout] = 'false'
+    render :action => 'view'
+  end
+
   # Form used for: assign, comment, transition, change severity and plan
   def action_form
     verify_ajax_request
@@ -155,4 +162,14 @@ class IssueController < ApplicationController
   end
 
 
+  private
+
+  def init_issue
+    @issue_results = Api.issues.find(params[:id])
+    @issue = @issue_results.issues.get(0)
+
+    resource = Project.by_key(@issue.componentKey())
+    @snapshot = resource.last_snapshot if resource.last_snapshot
+  end
+
 end
\ No newline at end of file
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/issue/_view.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/issue/_view.html.erb
new file mode 100644 (file)
index 0000000..6180fbe
--- /dev/null
@@ -0,0 +1,19 @@
+<div id="content">
+  <div style="border: 1px solid #DDDDDD">
+    <div class="violations_header tab_header">
+      <h3>Issue #<%= issue.key %></h3>
+      <h3><%= h issue_results.project(issue).name -%></h3>
+      <h3><%= h issue_results.component(issue).name -%></h3>
+    </div>
+
+    <div class="marginbottom10">
+      <%= render :partial => 'issue/issue', :locals => {:issue => issue_results.issues.get(0)} -%>
+    </div>
+
+    <% if snapshot && issue.line%>
+    <div>
+      <%= snapshot_html_source(snapshot, {:line_range => (issue.line-5)..(issue.line+5), :highlighted_lines => [issue.line]}) -%>
+    </div>
+    <% end %>
+  </div>
+</div>
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/issue/show.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/issue/show.html.erb
deleted file mode 100644 (file)
index 1c671f4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<div>
-  <%= render :partial => 'issue/issue', :locals => {:issue => @issue_results.issues.get(0)} -%>
-</div>
\ No newline at end of file
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/issue/view.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/issue/view.html.erb
new file mode 100644 (file)
index 0000000..f1b5c7f
--- /dev/null
@@ -0,0 +1,3 @@
+<div>
+  <%= render :partial => 'issue/view', :locals => {:issue => @issue, :issue_results => @issue_results, :snapshot =>  @snapshot} -%>
+</div>
index dea011f0b658dff136b8ad251ef10943c8c47a54..f091e51ceb839ef3b4a0e92c77f89463cdb46a3c 100644 (file)
@@ -72,7 +72,8 @@
             <%= message("issue.resolution.#{issue.resolution}") if issue.resolution -%>
           </td>
           <td>
-            <%= link_to h(truncate(issue.message, :length => 100)), :controller => 'issue', :action => 'view', :id => issue.key -%>
+            <a class='open-modal rule-modal' modal-width='800' href='<%= url_for :controller => 'issue', :action => 'view', :id => issue.key %>'>
+              <%= h truncate(issue.message, :length => 100) -%></a>
           </td>
           <td>
             <%= h (truncate(@filter.issues_result.project(issue).name, :length => 100)) -%>
index ed6f8fe3c3a73e6a0635ad34d4cac93880d28bf7..de3c97d44c0b0e9fd2e76d61ba74ecd72fe767a9 100644 (file)
@@ -89,7 +89,8 @@
       <tr class="<%= cycle 'even', 'odd', :name => ('issues-widget-list-' + widget_id) -%>">
         <td><img src="<%= ApplicationController.root_context -%>/images/priority/<%= issue.severity() -%>.png" title="<%= message('severity.' + issue.severity()) -%>"/></td>
         <td>
-          <%= link_to h(issue.message()), :controller => "issue", :action => "view", :id => issue.key() -%>
+          <a class='open-modal rule-modal' modal-width='800' href='<%= url_for :controller => 'issue', :action => 'view', :id => issue.key %>'>
+            <%= h truncate(issue.message, :length => 100) -%></a>
           <% if last_comment %>
             <div class="comment-excerpt">
               <img src="<%= ApplicationController.root_context -%>/images/reviews/comment.png"/>