]> source.dussan.org Git - sonarqube.git/commitdiff
Support new rules api in the issues rule filter
authorStas Vilchik <vilchiks@gmail.com>
Mon, 19 May 2014 14:44:52 +0000 (16:44 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Mon, 19 May 2014 14:44:52 +0000 (16:44 +0200)
sonar-server/src/main/js/navigator/filters/ajax-select-filters.js
sonar-server/src/main/js/navigator/filters/rule-filters.js

index ab8308da99a7e6f00040d47e21c87b5738087bf3..06f5c13e7a9f038871f70862b9fffa994d0d75b3 100644 (file)
@@ -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
       });
     },
 
index 0c88965fc7c871ac1f8eb463aebd70e225a030ce..b7e6082c6bec6a269fb6e4d406d5a5019770d640 100644 (file)
@@ -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();