]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3755 improve expand/collapse of rule and changelog
authorSimon Brandhof <simon.brandhof@gmail.com>
Mon, 3 Jun 2013 08:38:35 +0000 (10:38 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Mon, 3 Jun 2013 08:38:35 +0000 (10:38 +0200)
sonar-server/src/main/webapp/WEB-INF/app/views/issue/_changelog.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/issue/_issue.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/issue/_rule.html.erb
sonar-server/src/main/webapp/WEB-INF/app/views/rules_configuration/_rule.html.erb
sonar-server/src/main/webapp/javascripts/application.js
sonar-server/src/main/webapp/javascripts/issue.js
sonar-server/src/main/webapp/stylesheets/layout.css
sonar-server/src/main/webapp/stylesheets/style.css

index cdff4e04efe0d0c7f21e75d7d5ab718bf2c01953..abf14866c45999d798f5af78fb2cc64b8de4796e 100644 (file)
@@ -15,5 +15,5 @@
 </ul>
 
 <div class="note">
-  <a href="#" onclick="return hideIssueMore(this)">Hide</a><%= image_tag 'asc.png' -%>
+  <a href="#" onclick="return toggleIssueChangelog(this)">Hide</a><%= image_tag 'asc.png' -%>
 </div>
\ No newline at end of file
index ec1de4dc521bd488d9f8698bbc3a5df22266ff80..ec8d800150e4fd82f0d2c49cacdd13656e54358f 100644 (file)
@@ -9,7 +9,7 @@
 
     <img src="<%= ApplicationController.root_context -%>/images/priority/<%= issue.severity -%>.png" title="<%= h message("severity.#{issue.severity}") -%>">
     &nbsp;
-    <a href="#" onclick="return showIssueRule(this)" class="rulename"><%= h Internal.rules.ruleL10nName(@issue_results.rule(issue)) -%></a>
+    <a href="#" onclick="return toggleIssueRule(this)" class="rulename"><%= h Internal.rules.ruleL10nName(@issue_results.rule(issue)) -%></a>
     &nbsp;
     <% if issue.resolution %>
       <%= image_tag 'sep12.png' -%>
@@ -24,7 +24,7 @@
     <% end %>
     <%= image_tag 'sep12.png' -%>
     &nbsp;
-    <a href="#" onclick="return showIssueChangelog(this)" class="gray"><%= distance_of_time_in_words_to_now(Api::Utils.java_to_ruby_datetime(issue.creationDate())) -%></a>
+    <a href="#" onclick="return toggleIssueChangelog(this)" class="gray"><%= distance_of_time_in_words_to_now(Api::Utils.java_to_ruby_datetime(issue.creationDate())) -%></a>
     &nbsp;
     <% if issue.reporter %>
       <%= image_tag 'sep12.png' -%>
@@ -34,7 +34,8 @@
     <% end %>
   </div>
 
-  <div class="issue-more" style="display: none"></div>
+  <div class="issue-rule" style="display: none"></div>
+  <div class="issue-changelog" style="display: none"></div>
 
   <% unless issue.message.blank? %>
     <div class="code-issue-msg">
index 100d2b2c42009b5e9b1df16eede7b0b001c8b4ff..5085f7cdefb05f1e3694c4e73a6e2556082e79bc 100644 (file)
 <% end %>
 
 <div class="note">
-  <a href="#" onclick="return hideIssueMore(this)">Hide</a><%= image_tag 'asc.png' -%>
+  <a href="#" onclick="return toggleIssueRule(this)">Hide</a><%= image_tag 'asc.png' -%>
   &nbsp;<%= image_tag 'sep12.png' -%>&nbsp;
   <%= @rule.plugin_name -%>
   &nbsp;<%= image_tag 'sep12.png' -%>&nbsp;
-  <a onclick="window.open(this.href,'rule','height=800,width=900,scrollbars=1,resizable=1');return false;"
-     href="<%= url_for :controller => 'rules', :action => 'show', :id => @rule.key, :layout => 'false' -%>">
-    <%= @rule.plugin_rule_key -%>
-  </a>
+  <a href="#" onclick="return openIssueRulePopup(this)"><%= @rule.plugin_rule_key -%></a>
 </div>
\ No newline at end of file
index ecd680dbecc251eaf6df2e262971f73e56c7bbf1..a6a998332c736f23a4ef9b3f8b3f41bdbcb59fa3 100644 (file)
@@ -6,13 +6,13 @@
        rule_select_box = "$('#{select_box_id}')"
        rule_check_box = "$('#{check_box_id}')"
        changel_level = remote_function(
-         :url => {:action => 'activate_rule', :rule_id => rule.id, :id => profile.id},
-         :loading => "$('levels_#{rule.id}').replace('<img src=\"#{ApplicationController.root_context}/images/loading.gif\"/>');",
-         :with => "'level=' + #{rule_select_box}.value", :condition => "#{rule_check_box}.checked")
+           :url => {:action => 'activate_rule', :rule_id => rule.id, :id => profile.id},
+           :loading => "$('levels_#{rule.id}').replace('<img src=\"#{ApplicationController.root_context}/images/loading.gif\"/>');",
+           :with => "'level=' + #{rule_select_box}.value", :condition => "#{rule_check_box}.checked")
        activate_rule = remote_function(
-         :url => {:action => 'activate_rule', :rule_id => rule.id, :id => profile.id},
-         :loading => "$('levels_#{rule.id}').replace('<img src=\"#{ApplicationController.root_context}/images/loading.gif\"/>');",
-         :with => "'level=' + get_level_for_rule(#{rule_select_box},#{rule_check_box})")
+           :url => {:action => 'activate_rule', :rule_id => rule.id, :id => profile.id},
+           :loading => "$('levels_#{rule.id}').replace('<img src=\"#{ApplicationController.root_context}/images/loading.gif\"/>');",
+           :with => "'level=' + get_level_for_rule(#{rule_select_box},#{rule_check_box})")
     %>
     <%= check_box_tag(check_box_id, 'yes', (!active_rule.nil?), :onclick => activate_rule, :disabled => !enable_modification || (active_rule && (active_rule.inherited? || active_rule.overrides?))) %>
     <%= select_tag(select_box_id, options_for_select(RulesConfigurationController::RULE_PRIORITIES, (active_rule.nil? ? rule.priority_text : active_rule.priority_text)),
       <% end %>
     <% end %>
 
-    <div style="height: 17px;line-height: 17px;font-size: 11px;">
-      <div style="float: left">
-        <div style="color: #888" id="rule_repository_<%= rule.id -%>"><%= message('rules_configuration.repository') %> : <%= rule.repository_key %></div>
-        <div style="color: #888" id="rule_key_<%= rule.id -%>"><%= message('key') %> : <%= rule.plugin_rule_key %></div>
-        <% if !rule.removed? %>
-          <div style="color: #888" id="rule_available_since_<%= rule.id -%>"><%= message('rules_configuration.available_since') %> : <%= human_short_date(rule.created_at) %></div>
-        <% else %>
-          <div style="color: #888" id="rule_available_since_<%= rule.id -%>"><%= message('rules_configuration.removed_since') %> : <%= human_short_date(rule.updated_at) %></div>
-        <% end %>
-      </div>
+    <div class="note">
+      <span id="rule_repository_<%= rule.id -%>"><%= message('rules_configuration.repository') %> : <%= rule.repository_key %></span>
+      &nbsp;<%= image_tag 'sep12.png' -%>&nbsp;
+      <span id="rule_key_<%= rule.id -%>"><%= message('key') %>: <%= rule.plugin_rule_key %></span>
+      &nbsp;<%= image_tag 'sep12.png' -%>&nbsp;
+      <% if rule.removed? %>
+        <span id="rule_available_since_<%= rule.id -%>"><%= message('rules_configuration.removed_since') %>: <%= human_short_date(rule.updated_at) %></span>
+      <% else %>
+        <span id="rule_available_since_<%= rule.id -%>"><%= message('rules_configuration.available_since') %> <%= human_short_date(rule.created_at) %></span>
+      <% end %>
     </div>
   </div>
 </td>
index dd4949e7d93afc0f3a0319586aefdc44bbd18f89..f8e69d139a6ebef4d1ab1ee7875031e3abc8f868 100644 (file)
@@ -467,3 +467,7 @@ function showDropdownMenuOnElement(elt) {
 
 //******************* HANDLING OF DROPDOWN MENUS [END] ******************* //
 
+function openPopup(url, popupId) {
+  window.open(url,popupId,'height=800,width=900,scrollbars=1,resizable=1');
+  return false;
+}
\ No newline at end of file
index 3da0135513c163fcd7c5525cde8beb9cf6ec18a9..7cfed4909c25994beb10dd525afc35c420dd739a 100644 (file)
@@ -195,39 +195,47 @@ function submitCreateIssueForm(elt) {
       errorsElt.html(jqXHR.responseText);
       errorsElt.removeClass('hidden');
     }
-  ).always(function() {
+  ).always(function () {
       loadingElt.addClass('hidden');
     });
   return false;
 }
 
-function hideIssueMore(elt) {
-  var issueElt = $j(elt).closest('[data-issue-key]');
-  var moreElt = issueElt.find('.issue-more');
-  moreElt.slideUp('fast');
+function toggleIssueRule(elt) {
+  var issueElt = $j(elt).closest('[data-issue-rule]');
+  var ruleElt = issueElt.find('.issue-rule');
+  if (ruleElt.is(':visible')) {
+    ruleElt.slideUp('fast');
+  } else {
+    issueElt.find('.issue-changelog').slideUp('fast');
+    var ruleKey = issueElt.attr('data-issue-rule');
+    $j.get(baseUrl + "/issue/rule/" + ruleKey, function (html) {
+      ruleElt.html(html);
+      ruleElt.slideDown('fast');
+    });
+  }
   return false;
 }
 
-function showIssueRule(elt) {
-  var issueElt = $j(elt).closest('[data-issue-rule]');
-  var ruleKey = issueElt.attr('data-issue-rule');
-  var moreElt = issueElt.find('.issue-more');
-  moreElt.slideUp('fast');
-  $j.get(baseUrl + "/issue/rule/" + ruleKey, function (html) {
-    moreElt.html(html);
-    moreElt.slideDown('fast');
-  });
+function toggleIssueChangelog(elt) {
+  var issueElt = $j(elt).closest('[data-issue-key]');
+  var changelogElt = issueElt.find('.issue-changelog');
+  if (changelogElt.is(':visible')) {
+    changelogElt.slideUp('fast');
+  } else {
+    issueElt.find('.issue-rule').slideUp('fast');
+    var issueKey = issueElt.attr('data-issue-key');
+    $j.get(baseUrl + "/issue/changelog/" + issueKey, function (html) {
+      changelogElt.html(html);
+      changelogElt.slideDown('fast');
+    });
+  }
   return false;
 }
 
-function showIssueChangelog(elt) {
-  var issueElt = $j(elt).closest('[data-issue-key]');
-  var issueKey = issueElt.attr('data-issue-key');
-  var moreElt = issueElt.find('.issue-more');
-  moreElt.slideUp('fast');
-  $j.get(baseUrl + "/issue/changelog/" + issueKey, function (html) {
-    moreElt.html(html);
-    moreElt.slideDown('fast');
-  });
+function openIssueRulePopup(elt) {
+  var issueElt = $j(elt).closest('[data-issue-rule]');
+  var ruleKey = issueElt.attr('data-issue-rule');
+  openPopup(baseUrl + "/rules/show/" + ruleKey + "?layout=false", 'rule');
   return false;
 }
\ No newline at end of file
index 5d34b77e010b07094fae5e1495ae5b07630fe198..4a82e5ea2742ca8eedc347a04ed9276c6b018a43 100644 (file)
@@ -289,3 +289,7 @@ ul.sidebar select, ul.sidebar input {
   border: 2px solid #4b9fd5;
   border-top: none;
 }
+
+.nolayout {
+  padding: 10px;
+}
\ No newline at end of file
index 0234e55ba4f98d60649a6e6486e359f09611aa37..59224045f1ba4cb660ea13b80e20344508256cbb 100644 (file)
@@ -853,7 +853,7 @@ ul.operations li img {
   vertical-align: text-bottom;
 }
 
-.code-issue-comment, .code-issue-msg, .code-issue-actions, .code-issue-form, .issue-more {
+.code-issue-comment, .code-issue-msg, .code-issue-actions, .code-issue-form, .issue-rule, .issue-changelog {
   background-color: #EFEFEF;
   border: 1px solid #DDD;
   border-top: none;