}));
});
});
- that.results.reset(collection);
+ that.results.reset([].concat(that.getNavigationFindings(q), that.getGlobalDashboardFindings(q), collection));
});
+ },
+
+ getNavigationFindings: function (q) {
+ var DEFAULT_ITEMS = [
+ { name: t('issues.page'), url: baseUrl + '/issues/search' },
+ { name: t('layout.measures'), url: baseUrl + '/measures/search?qualifiers[]=TRK' },
+ { name: t('coding_rules.page'), url: baseUrl + '/coding_rules' },
+ { name: t('quality_profiles.page'), url: baseUrl + '/profiles' },
+ { name: t('quality_gates.page'), url: baseUrl + '/quality_gates' },
+ { name: t('comparison_global.page'), url: baseUrl + '/comparison' },
+ { name: t('dependencies.page'), url: baseUrl + '/dependencies' }
+ ],
+ customItems = [];
+ if (window.SS.isUserAdmin) {
+ customItems.push({ name: t('layout.settings'), url: baseUrl + '/settings' });
+ }
+ var findings = [].concat(DEFAULT_ITEMS, customItems).filter(function (f) {
+ return f.name.match(new RegExp(q, 'i'));
+ });
+ if (findings.length > 0) {
+ findings[0].extra = t('navigation');
+ }
+ return findings;
+ },
+
+ getGlobalDashboardFindings: function (q) {
+ var dashboards = this.model.get('globalDashboards') || [],
+ items = dashboards.map(function (d) {
+ return { name: d.name, url: baseUrl + d.url };
+ });
+ var findings = items.filter(function (f) {
+ return f.name.match(new RegExp(q, 'i'));
+ });
+ if (findings.length > 0) {
+ findings[0].extra = t('dashboard.global_dashboards');
+ }
+ return findings;
}
});
});
-casper.test.begin(testName('Search'), 20, function (test) {
+casper.test.begin(testName('Search'), 23, function (test) {
casper
.start(lib.buildUrl('nav'), function () {
lib.setDefaultViewport();
window.SS.isUserAdmin = false;
window.navbarOptions = new Backbone.Model();
window.navbarOptions.set({ qualifiers: ['TRK', 'VW', 'DEV'] });
+ window.navbarOptions.set({ globalDashboards: [{ name: 'Quality', url: '/dashboard/?did=50' }] });
window.localStorage.setItem('sonar_recent_history',
'[{"key":"localhistoryproject","name":"Local History Project","icon":"trk"}]');
})
.then(function () {
- lib.capture();
// for top-level qualifiers
test.assertExists('.js-search-results a[href*="/all_projects?qualifier=TRK"]');
test.assertExists('.js-search-results a[href*="/all_projects?qualifier=VW"]');
.then(function () {
casper.evaluate(function () {
- jQuery('.navbar-search [name="q"]').val('search query').keyup();
+ jQuery('.navbar-search [name="q"]').val('quality').keyup();
});
casper.evaluate(function () {
jQuery('.navbar-search [name="q"]').keyup();
})
.then(function () {
- test.assertElementCount('.js-search-results a', 3);
+ test.assertElementCount('.js-search-results a', 6);
+ 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.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');