From 3a1215b87a8e1192aeb62bc9697ba8e8520ab18c Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Fri, 24 Apr 2015 15:27:46 +0200 Subject: [PATCH] SONAR-6138 limit default list of favorites to 6 items, add favorites to search results --- .../sonar-web/src/main/js/nav/search-view.js | 23 +++++++++++++++---- server/sonar-web/src/test/js/nav-spec.js | 5 ++-- .../src/test/json/nav-spec/favorite.json | 8 ++++++- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/server/sonar-web/src/main/js/nav/search-view.js b/server/sonar-web/src/main/js/nav/search-view.js index 33ae41ee564..007a2ebf537 100644 --- a/server/sonar-web/src/main/js/nav/search-view.js +++ b/server/sonar-web/src/main/js/nav/search-view.js @@ -165,7 +165,7 @@ define([ extra: index === 0 ? '' : null }; }); - this.results.reset([].concat(history, this.favorite, qualifiers)); + this.results.reset([].concat(history, _.first(this.favorite, 6), qualifiers)); }, search: function (q) { @@ -187,7 +187,12 @@ define([ })); }); }); - that.results.reset([].concat(that.getNavigationFindings(q), that.getGlobalDashboardFindings(q), collection)); + that.results.reset([].concat( + that.getNavigationFindings(q), + that.getGlobalDashboardFindings(q), + that.getFavoriteFindings(q), + collection + )); }); }, @@ -211,7 +216,7 @@ define([ if (findings.length > 0) { findings[0].extra = t('navigation'); } - return findings; + return _.first(findings, 6); }, getGlobalDashboardFindings: function (q) { @@ -225,7 +230,17 @@ define([ if (findings.length > 0) { findings[0].extra = t('dashboard.global_dashboards'); } - return findings; + return _.first(findings, 6); + }, + + getFavoriteFindings: function (q) { + var findings = this.favorite.filter(function (f) { + return f.name.match(new RegExp(q, 'i')); + }); + if (findings.length > 0) { + findings[0].extra = t('favorite'); + } + return _.first(findings, 6); } }); diff --git a/server/sonar-web/src/test/js/nav-spec.js b/server/sonar-web/src/test/js/nav-spec.js index 82101ec34e2..89f7552246f 100644 --- a/server/sonar-web/src/test/js/nav-spec.js +++ b/server/sonar-web/src/test/js/nav-spec.js @@ -228,7 +228,7 @@ casper.test.begin(testName('Login'), 3, function (test) { }); -casper.test.begin(testName('Search'), 23, function (test) { +casper.test.begin(testName('Search'), 24, function (test) { casper .start(lib.buildUrl('nav'), function () { lib.setDefaultViewport(); @@ -289,10 +289,11 @@ casper.test.begin(testName('Search'), 23, function (test) { }) .then(function () { - test.assertElementCount('.js-search-results a', 6); + test.assertElementCount('.js-search-results a', 7); test.assertExists('.js-search-results a[href*="/profiles"]'); test.assertExists('.js-search-results a[href*="/quality_gates"]'); test.assertExists('.js-search-results a[href*="/dashboard/?did=50"]'); + test.assertExists('.js-search-results a[href*="quality-project"]'); test.assertSelectorContains('.js-search-results a', 'SonarQube Java'); test.assertSelectorContains('.js-search-results a', 'SonarQube Java :: Squid'); test.assertSelectorContains('.js-search-results a', 'SonarQube Java :: Checks'); diff --git a/server/sonar-web/src/test/json/nav-spec/favorite.json b/server/sonar-web/src/test/json/nav-spec/favorite.json index 471a15610ae..da8f54ec6fc 100644 --- a/server/sonar-web/src/test/json/nav-spec/favorite.json +++ b/server/sonar-web/src/test/json/nav-spec/favorite.json @@ -2,7 +2,7 @@ { "key": "favorite-project-key", "name": "Favorite Project", - "lname": "SonarSource :: Rule API", + "lname": "Favorite Project", "qualifier": "TRK" }, { @@ -10,5 +10,11 @@ "name": "FavoriteFile.java", "lname": "src/main/java/com/example/FavoriteFile.java", "qualifier": "FIL" + }, + { + "key": "quality-project", + "name": "Quality Project", + "lname": "Quality Project", + "qualifier": "TRK" } ] -- 2.39.5