]> source.dussan.org Git - sonarqube.git/commitdiff
New Issues Page: issue in the left bar is updated when an action is done in the issue...
authorStas Vilchik <vilchiks@gmail.com>
Mon, 27 Jan 2014 10:31:45 +0000 (16:31 +0600)
committerStas Vilchik <vilchiks@gmail.com>
Mon, 27 Jan 2014 10:31:57 +0000 (16:31 +0600)
sonar-server/src/main/webapp/WEB-INF/app/views/issues/templates/_issue.hbs.erb
sonar-server/src/main/webapp/WEB-INF/app/views/issues/templates/_issue_detail.hbs.erb
sonar-server/src/main/webapp/javascripts/navigator/issues-app.js
sonar-server/src/main/webapp/javascripts/navigator/issues.js

index c7101e02d09a3aa6dd295c61f93b39c5140f1bd6..f8840da272cd7df3c492b4710b9a096c3bd8a7b0 100644 (file)
       </div>
     </div>
 
-    <div class="line line-nowrap" title="{{rule.name}}">
-      {{rule.name}}
+    <div class="line line-nowrap" title="{{ruleName}}">
+      {{ruleName}}
     </div>
 
     <div class="line">
-      <div class="subtitle">{{project.longName}}</div>
-      {{component.longName}}
+      <div class="subtitle">{{projectLongName}}</div>
+      {{componentLongName}}
     </div>
 </script>
index 658460581c67812aa3703c0738f23bca8fa29754..d6b269925d82f5388e9a7b0de90260876ef0b78f 100644 (file)
               <div class="code-issue-details-value">{{actionPlanName}}</div>
             </li>
           {{/if}}
-          {{#if technicalDebt}}
+          {{#if debt}}
             <li>
               <div class="code-issue-details-term"><%= message('issue.technical_debt_clear') -%></div>
-              <div class="code-issue-details-value">{{technicalDebt}}</div>
+              <div class="code-issue-details-value">{{debt}}</div>
             </li>
           {{/if}}
           {{# if reporter}}
index 1f34d32428ceecd8934fe7f20bf333c82db3b5eb..ccd18c0d58c642223a3919c6b768377aad703bbe 100644 (file)
@@ -52,10 +52,6 @@ jQuery(function() {
       collection: this.issues
     });
     this.actionsRegion.show(this.issuesActionsView);
-
-    this.issueDetailView = new window.SS.IssueDetailView({
-      model: new window.SS.Issue()
-    });
   });
 
 
@@ -250,15 +246,14 @@ jQuery(function() {
 
 
   NavigatorApp.storeQuery = function(query, sorting) {
-    var fullQuery = query;
     if (sorting) {
-      _.extend(fullQuery, {
+      _.extend(query, {
         sort: sorting.sort,
         asc: '' + sorting.asc
       });
     }
 
-    var queryString = _.map(fullQuery, function(v, k) {
+    var queryString = _.map(query, function(v, k) {
       return [k, encodeURIComponent(v)].join('=');
     }).join('|');
     this.router.navigate(queryString);
index 6502cb843fcd4197b417bcbd82210e60c92331e3..299613f0c1b514e570b05691951134d0d6047f1e 100644 (file)
@@ -56,17 +56,30 @@ jQuery(function() {
       this.maxResultsReached = r.maxResultsReached;
 
       return r.issues.map(function(issue) {
-        return _.extend({}, issue, {
-          component: find(r.components, issue.component),
-          project: find(r.projects, issue.project),
-          rule: find(r.rules, issue.rule),
-          author: find(r.users, issue.author, 'login'),
-          comments: (issue.comments || []).map(function(comment) {
-            return _.extend({}, comment, {
-              user: find(r.users, comment.login, 'login')
-            });
-          })
-        });
+        var component = find(r.components, issue.component),
+            project = find(r.projects, issue.project),
+            rule = find(r.rules, issue.rule);
+
+        if (component) {
+          _.extend(issue, {
+            componentLongName: component.longName,
+            componentQualifier: component.qualifier
+          });
+        }
+
+        if (project) {
+          _.extend(issue, {
+            projectLongName: project.longName
+          });
+        }
+
+        if (rule) {
+          _.extend(issue, {
+            ruleName: rule.name
+          });
+        }
+
+        return issue;
       });
 
     }
@@ -120,21 +133,31 @@ jQuery(function() {
   var IssueView = Backbone.Marionette.ItemView.extend({
     template: Handlebars.compile(jQuery('#issue-template').html() || ''),
     tagName: 'li',
+
+
     events: {
       'click': 'showDetails'
     },
 
 
+    modelEvents: {
+      'change': 'render'
+    },
+
+
     showDetails: function() {
       this.$el.parent().children().removeClass('active');
       this.$el.addClass('active');
 
       var app = this.options.app,
-          detailView = this.options.app.issueDetailView;
+          detailView = new window.SS.IssueDetailView({
+            model: this.model
+          });
 
-      detailView.model.set({ key: this.model.get('key') }, { silent: true});
-      jQuery.when(detailView.model.fetch()).done(function() {
-        app.detailsRegion.show(detailView);
+      detailView.model.fetch({
+        success: function() {
+          app.detailsRegion.show(detailView);
+        }
       });
     }
   });
@@ -509,7 +532,9 @@ jQuery(function() {
 
 
     onClose: function() {
-      this.ruleRegion.close();
+      if (this.ruleRegion) {
+        this.ruleRegion.reset();
+      }
     },