From 27cc706b821012498ade975c4ac1ed384179aa4d Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Mon, 19 May 2014 16:44:52 +0200 Subject: [PATCH] Support new rules api in the issues rule filter --- .../js/navigator/filters/ajax-select-filters.js | 14 +++++++------- .../main/js/navigator/filters/rule-filters.js | 17 ++++++++++++----- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/sonar-server/src/main/js/navigator/filters/ajax-select-filters.js b/sonar-server/src/main/js/navigator/filters/ajax-select-filters.js index ab8308da99a..06f5c13e7a9 100644 --- a/sonar-server/src/main/js/navigator/filters/ajax-select-filters.js +++ b/sonar-server/src/main/js/navigator/filters/ajax-select-filters.js @@ -98,6 +98,7 @@ define([ var AjaxSelectDetailsFilterView = ChoiceFilters.DetailsChoiceFilterView.extend({ template: getTemplate('#ajax-select-filter-template'), listTemplate: getTemplate('#choice-filter-template'), + searchKey: 's', render: function() { @@ -129,12 +130,11 @@ define([ this.query = this.$('.navigator-filter-search input').val(); if (this.query.length > 1) { this.$el.addClass('fetching'); - var selected = that.options.filterView.getSelected(); + var selected = that.options.filterView.getSelected(), + data = { ps: PAGE_SIZE }; + data[this.searchKey] = this.query; this.options.filterView.choices.fetch({ - data: { - s: this.query, - ps: PAGE_SIZE - }, + data: data, success: function() { selected.forEach(function(item) { that.options.filterView.choices.unshift(item); @@ -197,9 +197,9 @@ define([ var AjaxSelectFilterView = ChoiceFilters.ChoiceFilterView.extend({ - initialize: function() { + initialize: function(options) { ChoiceFilters.ChoiceFilterView.prototype.initialize.call(this, { - detailsView: AjaxSelectDetailsFilterView + detailsView: (options && options.detailsView) ? options.detailsView : AjaxSelectDetailsFilterView }); }, diff --git a/sonar-server/src/main/js/navigator/filters/rule-filters.js b/sonar-server/src/main/js/navigator/filters/rule-filters.js index 0c88965fc7c..b7e6082c6be 100644 --- a/sonar-server/src/main/js/navigator/filters/rule-filters.js +++ b/sonar-server/src/main/js/navigator/filters/rule-filters.js @@ -7,24 +7,31 @@ define([ var RuleSuggestions = AjaxSelectFilters.Suggestions.extend({ url: function() { - return baseUrl + '/api/rules/list'; + return baseUrl + '/api/rules/search'; }, parse: function(r) { - this.more = r.more; - return r.results.map(function(r) { - return { id: r.key, text: r.name, category: r.language }; + this.more = r.p * r.ps < r.total; + return r.rules.map(function(r) { + return { id: r.key, text: r.name, category: r.lang }; }); } }); + + + var RuleDetailsFilterView = AjaxSelectFilters.AjaxSelectDetailsFilterView.extend({ + searchKey: 'q' + }); + + return AjaxSelectFilters.AjaxSelectFilterView.extend({ initialize: function() { AjaxSelectFilters.AjaxSelectFilterView.prototype.initialize.call(this, { - detailsView: AjaxSelectFilters.AjaxSelectDetailsFilterView + detailsView: RuleDetailsFilterView }); this.choices = new RuleSuggestions(); -- 2.39.5