aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/widgets
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2015-03-04 11:51:29 +0100
committerStas Vilchik <vilchiks@gmail.com>2015-03-04 13:09:22 +0100
commit6c41cba0d29e744f90347ae98975f8e4e55c8bd7 (patch)
tree23c56afa5125b5fc4fac77ba094684e222038bc4 /server/sonar-web/src/main/js/widgets
parent29bc3c690a0d29d157042477ead84b5abeda3a1d (diff)
downloadsonarqube-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.js53
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