diff options
author | Stas Vilchik <vilchiks@gmail.com> | 2015-03-04 11:51:29 +0100 |
---|---|---|
committer | Stas Vilchik <vilchiks@gmail.com> | 2015-03-04 13:09:22 +0100 |
commit | 6c41cba0d29e744f90347ae98975f8e4e55c8bd7 (patch) | |
tree | 23c56afa5125b5fc4fac77ba094684e222038bc4 /server/sonar-web/src/main/js/widgets | |
parent | 29bc3c690a0d29d157042477ead84b5abeda3a1d (diff) | |
download | sonarqube-6c41cba0d29e744f90347ae98975f8e4e55c8bd7.tar.gz sonarqube-6c41cba0d29e744f90347ae98975f8e4e55c8bd7.zip |
SONAR-6234 add project issue filter widget
Diffstat (limited to 'server/sonar-web/src/main/js/widgets')
-rw-r--r-- | server/sonar-web/src/main/js/widgets/issue-filter.js | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/server/sonar-web/src/main/js/widgets/issue-filter.js b/server/sonar-web/src/main/js/widgets/issue-filter.js index de810bf8e66..2e40e16578c 100644 --- a/server/sonar-web/src/main/js/widgets/issue-filter.js +++ b/server/sonar-web/src/main/js/widgets/issue-filter.js @@ -16,7 +16,12 @@ define(['templates/widgets'], function () { var criterion = {}; criterion[property] = item.val; var r = _.extend({}, query, criterion); - return baseUrl + '/issues/search#' + getQuery(r); + if (r.componentKey != null) { + return baseUrl + '/component_issues/index?id=' + encodeURIComponent(r.componentKey) + + '#' + getQuery(_.omit(r, 'componentKey')); + } else { + return baseUrl + '/issues/search#' + getQuery(r); + } }, byDistributionConf = { 'severities': { @@ -38,6 +43,13 @@ define(['templates/widgets'], function () { comparator: function (item) { var order = ['', 'FALSE-POSITIVE', 'WONTFIX', 'FIXED', 'REMOVED']; return order.indexOf(item.val); + }, + filter: function (item) { + if ('' + this.query.resolved === 'false') { + return item.val === ''; + } else { + return defaultFilter.call(this, item); + } } }, 'rules': { @@ -115,7 +127,12 @@ define(['templates/widgets'], function () { createdAfter: createdAfter.format('YYYY-MM-DD'), createdBefore: createdBefore.format('YYYY-MM-DD') }); - return baseUrl + '/issues/search#' + getQuery(r); + if (r.componentKey != null) { + return baseUrl + '/component_issues/index?id=' + encodeURIComponent(r.componentKey) + + '#' + getQuery(_.omit(r, 'componentKey')); + } else { + return baseUrl + '/issues/search#' + getQuery(r); + } } } }; @@ -133,7 +150,22 @@ define(['templates/widgets'], function () { var criterion = {}; criterion[property] = value; var r = _.extend({}, query, criterion); - return baseUrl + '/issues/search#' + getQuery(r); + if (r.componentKey != null) { + return baseUrl + '/component_issues/index?id=' + encodeURIComponent(r.componentKey) + + '#' + getQuery(_.omit(r, 'componentKey')); + } else { + return baseUrl + '/issues/search#' + getQuery(r); + } + }); + + Handlebars.registerHelper('issueFilterTotalLink', function (query) { + var r = _.extend({}, query); + if (r.componentKey != null) { + return baseUrl + '/component_issues/index?id=' + encodeURIComponent(r.componentKey) + + '#' + getQuery(_.omit(r, 'componentKey')); + } else { + return baseUrl + '/issues/search#' + getQuery(r); + } }); return Marionette.ItemView.extend({ @@ -147,7 +179,8 @@ define(['templates/widgets'], function () { this.model = new Backbone.Model({ query: this.options.query, parsedQuery: this.getParsedQuery(), - property: this.options.distributionAxis + property: this.options.distributionAxis, + periodDate: this.options.periodDate }); this.listenTo(this.model, 'change', this.render); this.conf = byDistributionConf[this.options.distributionAxis]; @@ -164,6 +197,12 @@ define(['templates/widgets'], function () { query[criterion[0]] = criterion[1]; } }); + if (this.options.componentKey != null) { + _.extend(query, { componentKey: this.options.componentKey }); + } + if (this.options.periodDate != null) { + _.extend(query, { createdAfter: this.options.periodDate }); + } return query; }, @@ -202,6 +241,12 @@ define(['templates/widgets'], function () { ps: 1, facets: this.options.distributionAxis }); + if (this.options.componentUuid != null) { + _.extend(options, { componentUuids: this.options.componentUuid }); + } + if (this.options.periodDate != null) { + _.extend(options, { createdAfter: this.options.periodDate }); + } return $.get(url, options).done(function (r) { if (_.isArray(r.facets) && r.facets.length === 1) { // save response object, but do not trigger repaint |