diff options
author | Stas Vilchik <vilchiks@gmail.com> | 2014-12-18 13:05:40 +0100 |
---|---|---|
committer | Stas Vilchik <vilchiks@gmail.com> | 2014-12-18 13:05:45 +0100 |
commit | 893b47cda8755709cd982baa1f7da4aa46e9f37e (patch) | |
tree | fa42cbd13785465f99aabbcef4736bc14ae6575d /server/sonar-web/src/main/js/source-viewer | |
parent | f80ea8db54d1cf78c6e72882ed1f3377c86920b3 (diff) | |
download | sonarqube-893b47cda8755709cd982baa1f7da4aa46e9f37e.tar.gz sonarqube-893b47cda8755709cd982baa1f7da4aa46e9f37e.zip |
SONAR-5884 Apply feedback
Diffstat (limited to 'server/sonar-web/src/main/js/source-viewer')
-rw-r--r-- | server/sonar-web/src/main/js/source-viewer/measures-overlay.js | 11 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/source-viewer/viewer.js | 30 |
2 files changed, 38 insertions, 3 deletions
diff --git a/server/sonar-web/src/main/js/source-viewer/measures-overlay.js b/server/sonar-web/src/main/js/source-viewer/measures-overlay.js index 82090095a28..6d6de2a7adf 100644 --- a/server/sonar-web/src/main/js/source-viewer/measures-overlay.js +++ b/server/sonar-web/src/main/js/source-viewer/measures-overlay.js @@ -22,6 +22,14 @@ define([ onRender: function () { Overlay.prototype.onRender.apply(this, arguments); this.$('.js-pie-chart').pieChart(); + if (this.selectedTest != null) { + this.scrollToTest(); + } + }, + + scrollToTest: function () { + var position = this.$('.js-selected-test').offset().top - this.$el.offset().top - 50; + this.$el.scrollTop(position); }, show: function () { @@ -49,6 +57,7 @@ define([ metrics = _.filter(data, function (metric) { return !metric.hidden && metric.val_type !== 'DATA'; }); + metrics = _.sortBy(metrics, 'name'); }); return metrics; }, @@ -180,6 +189,7 @@ define([ showTest: function (e) { var that = this, + p = window.process.addBackgroundProcess(), name = $(e.currentTarget).data('name'), url = baseUrl + '/api/tests/covered_files', options = { @@ -190,6 +200,7 @@ define([ that.coveredFiles = data.files; that.selectedTest = _.findWhere(that.model.get('tests'), {name: name}); that.render(); + window.process.finishBackgroundProcess(p); }); }, diff --git a/server/sonar-web/src/main/js/source-viewer/viewer.js b/server/sonar-web/src/main/js/source-viewer/viewer.js index 16f8dcf8141..22eb3f1dbe6 100644 --- a/server/sonar-web/src/main/js/source-viewer/viewer.js +++ b/server/sonar-web/src/main/js/source-viewer/viewer.js @@ -66,6 +66,7 @@ define([ this.model = new Source(); } this.issues = new Issues(); + this.listenTo(this.issues, 'change:severity', this.onIssuesSeverityChange); this.issueViews = []; this.loadSourceBeforeThrottled = _.throttle(this.loadSourceBefore, 1000); this.loadSourceAfterThrottled = _.throttle(this.loadSourceAfter, 1000); @@ -248,8 +249,16 @@ define([ }); }, + _sortBySeverity: function (issues) { + var order = ['BLOCKER', 'CRITICAL', 'MAJOR', 'MINOR', 'INFO']; + return _.sortBy(issues, function (issue) { + return order.indexOf(issue.severity); + }); + }, + addIssuesPerLineMeta: function (issues) { - var lines = {}; + var that = this, + lines = {}; issues.forEach(function (issue) { var line = issue.get('line') || 0; if (!_.isArray(lines[line])) { @@ -260,7 +269,7 @@ define([ var issuesPerLine = _.pairs(lines).map(function (line) { return { line: +line[0], - issues: line[1] + issues: that._sortBySeverity(line[1]) }; }); this.model.addMeta(issuesPerLine); @@ -307,6 +316,17 @@ define([ issues.forEach(this.renderIssue, this); }, + onIssuesSeverityChange: function () { + var that = this; + this.addIssuesPerLineMeta(this.issues); + this.$('.source-line-with-issues').each(function () { + var line = +$(this).data('line-number'), + row = _.findWhere(that.model.get('source'), { line: line }), + issue = _.first(row.issues); + $(this).html('<i class="icon-severity-' + issue.severity.toLowerCase() + '"></i>'); + }); + }, + highlightUsages: function (e) { var highlighted = $(e.currentTarget).is('.highlighted'), key = e.currentTarget.className.split(/\s+/)[0]; @@ -379,7 +399,11 @@ define([ onLineIssuesClick: function (e) { var line = $(e.currentTarget).data('line-number'); - this.showIssuesForLine(line); + if ($(e.currentTarget).parent().find('.issue-list').is('.hidden')) { + this.showIssuesForLine(line); + } else { + $(e.currentTarget).parent().find('.issue-list').addClass('hidden'); + } }, showLineActionsPopup: function (e) { |