]> source.dussan.org Git - sonarqube.git/commitdiff
Permalinks on issue and rule details for Eclipse plugin
authorSimon Brandhof <simon.brandhof@gmail.com>
Thu, 30 May 2013 13:18:16 +0000 (15:18 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Thu, 30 May 2013 13:18:16 +0000 (15:18 +0200)
sonar-server/src/main/webapp/WEB-INF/app/controllers/issue_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/controllers/rules_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/views/issue/_view.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/issue/view.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/rules/_show.html.erb [deleted file]
sonar-server/src/main/webapp/WEB-INF/app/views/rules/_show_modal.html.erb [new file with mode: 0644]

index 9ce1deeb8ac6e719a1030157bf1a687030745b92..4a0854f76aa4de36d6f7899499c0707ee8718615 100644 (file)
@@ -27,18 +27,25 @@ class IssueController < ApplicationController
     init_issue
 
     if request.xhr?
-      render :partial => 'issue/view', :locals => {:issue => @issue, :issue_results => @issue_results, :snapshot =>  @snapshot}
+      render :partial => 'issue/view', :locals => {:issue => @issue, :issue_results => @issue_results, :snapshot =>  @snapshot, :show_source => true}
     else
       render :action => 'view'
     end
   end
 
-  # Used in Eclipse Plugin
+  # GET /issue/show/<key>
+  # This URL is used by the Eclipse Plugin
+  #
+  # ==== Optional parameters
+  # 'layout' is false to remove sidebar and headers. Default value is true.
+  # 'source' is false to hide source code. Default value is true.
+  #
+  # ==== Example
+  # GET /issue/show/151f6853-58a1-4950-95e3-9866f8be3e35?layout=false&source=false
+  #
   def show
     require_parameters :id
     init_issue
-
-    params[:layout] = 'false'
     render :action => 'view'
   end
 
index cd7cd9d521f04a8255250ae1e88be76d1aed507c..8959be52f6d649eba4e930d652ff59e53b3fbb3d 100644 (file)
 class RulesController < ApplicationController
 
   SECTION=Navigation::SECTION_CONFIGURATION
-  
+
+  # GET /rules/show/<key>
+  # This URL is used by the Eclipse plugin
+  #
+  # ==== Optional parameters
+  # 'layout' is false to remove sidebar and headers
+  #
+  # Example: GET /rules/show/squid:AvoidCycles
+  #
   def show
+    require_parameters :id
+
     @key=params[:id]
     if @key.to_i==0
       parts=@key.split(':')
@@ -32,8 +42,7 @@ class RulesController < ApplicationController
     @page_title=@rule.name if @rule
 
     if params[:modal] == 'true'
-      render :partial => 'show'
+      render :partial => 'show_modal'
     end
   end
-
 end
index 909b99be16aad8604557fd8ed366205fa87c5a2b..27a6ec1f63021d62e69204dd4d323aa65f893fc9 100644 (file)
@@ -10,7 +10,7 @@
       <%= render :partial => 'issue/issue', :locals => {:issue => issue_results.issues.get(0)} -%>
     </div>
 
-    <% if snapshot && issue.line%>
+    <% if snapshot && issue.line && show_source %>
     <div>
       <%= snapshot_html_source(snapshot, {:line_range => (issue.line-5)..(issue.line+5), :highlighted_lines => [issue.line]}) -%>
     </div>
index f1b5c7f9bdfa5a924ec2546ece5fa0167542f8dd..12044218f4ad1a2b453e5068571bc7f28ce2f5ff 100644 (file)
@@ -1,3 +1,3 @@
 <div>
-  <%= render :partial => 'issue/view', :locals => {:issue => @issue, :issue_results => @issue_results, :snapshot =>  @snapshot} -%>
+  <%= render :partial => 'issue/view', :locals => {:issue => @issue, :issue_results => @issue_results, :snapshot =>  @snapshot, :show_source => params[:source]!='false'} -%>
 </div>
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/rules/_show.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/rules/_show.html.erb
deleted file mode 100644 (file)
index 43cd943..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<% if @rule %>
-<div class="modal-head">
-  <h2 class="rule-title">
-    <%= @rule.name %>
-  </h2>
-  <% unless @rule.ready? %>
-    <div class="rule-status">
-      <% if @rule.beta? %>
-        <span><%= message('rules.status.beta') %></span>
-      <% elsif @rule.deprecated? %>
-        <span><%= message('rules.status.deprecated') %></span>
-      <% end %>
-    </div>
-  <% end %>
-  <ul class="modal-head-metadata">
-    <li><%= @rule.plugin_name -%> : <%= @rule.plugin_rule_key -%></li>
-  </ul>
-</div>
-
-<div class="modal-body rule_detail">
-  <% if @rule.description.strip.start_with?('<p>') %>
-    <%= Internal.text.interpretMacros(@rule.description) %>
-  <% else %>
-    <p><%= Internal.text.interpretMacros(@rule.description) %></p>
-  <% end %>
-
-  <% if @rule.note && !@rule.note.text.strip.blank? %>
-    <p><%= @rule.note.html_text -%></p>
-  <% end %>
-</div>
-
-<% else %>
-<div class="modal-body">
-  <p class="error"><%= message('rules.not_found', :params => @key) %>
-</div>
-<% end %>
-
-<div class="modal-foot">
-  <input type="button" value="<%= h message('close') -%>" onclick="return closeModalWindow()">
-</div>
-
-<script type="text/javascript">
-  $j(document).ready(function () {
-    // As links in rule description will be loaded after open-modal has been processed by jquery, we have to process manually rule-modal classes
-    $j('.rule_detail .rule-modal').modal()
-  });
-</script>
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/rules/_show_modal.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/rules/_show_modal.html.erb
new file mode 100644 (file)
index 0000000..43cd943
--- /dev/null
@@ -0,0 +1,47 @@
+<% if @rule %>
+<div class="modal-head">
+  <h2 class="rule-title">
+    <%= @rule.name %>
+  </h2>
+  <% unless @rule.ready? %>
+    <div class="rule-status">
+      <% if @rule.beta? %>
+        <span><%= message('rules.status.beta') %></span>
+      <% elsif @rule.deprecated? %>
+        <span><%= message('rules.status.deprecated') %></span>
+      <% end %>
+    </div>
+  <% end %>
+  <ul class="modal-head-metadata">
+    <li><%= @rule.plugin_name -%> : <%= @rule.plugin_rule_key -%></li>
+  </ul>
+</div>
+
+<div class="modal-body rule_detail">
+  <% if @rule.description.strip.start_with?('<p>') %>
+    <%= Internal.text.interpretMacros(@rule.description) %>
+  <% else %>
+    <p><%= Internal.text.interpretMacros(@rule.description) %></p>
+  <% end %>
+
+  <% if @rule.note && !@rule.note.text.strip.blank? %>
+    <p><%= @rule.note.html_text -%></p>
+  <% end %>
+</div>
+
+<% else %>
+<div class="modal-body">
+  <p class="error"><%= message('rules.not_found', :params => @key) %>
+</div>
+<% end %>
+
+<div class="modal-foot">
+  <input type="button" value="<%= h message('close') -%>" onclick="return closeModalWindow()">
+</div>
+
+<script type="text/javascript">
+  $j(document).ready(function () {
+    // As links in rule description will be loaded after open-modal has been processed by jquery, we have to process manually rule-modal classes
+    $j('.rule_detail .rule-modal').modal()
+  });
+</script>