diff options
author | Grégoire Aubert <gregaubert@users.noreply.github.com> | 2017-03-16 10:37:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-16 10:37:59 +0100 |
commit | 24998ec360f43a7a745d88a5856d5828ba2d11ad (patch) | |
tree | 90aa0d3cbece6841da79a6782e16bfac6ebc2a78 /server/sonar-web/src/main/js/apps/projects/store | |
parent | 9db4eb325adf58b3c51bc7ae0bce65a361e98a74 (diff) | |
download | sonarqube-24998ec360f43a7a745d88a5856d5828ba2d11ad.tar.gz sonarqube-24998ec360f43a7a745d88a5856d5828ba2d11ad.zip |
SONAR-8922 Add tags facet on project page (#1790)
* Refactor the way filters are rendered
* SONAR-8922 Add the tags facet on the projects page
* SONAR-8923 Add the tags searchbox
Diffstat (limited to 'server/sonar-web/src/main/js/apps/projects/store')
3 files changed, 15 insertions, 10 deletions
diff --git a/server/sonar-web/src/main/js/apps/projects/store/actions.js b/server/sonar-web/src/main/js/apps/projects/store/actions.js index ad6cb7f0377..4f1b29642ff 100644 --- a/server/sonar-web/src/main/js/apps/projects/store/actions.js +++ b/server/sonar-web/src/main/js/apps/projects/store/actions.js @@ -54,7 +54,8 @@ const FACETS = [ 'duplicated_lines_density', 'ncloc', 'alert_status', - 'languages' + 'languages', + 'tags' ]; const onFail = dispatch => error => { diff --git a/server/sonar-web/src/main/js/apps/projects/store/facetsDuck.js b/server/sonar-web/src/main/js/apps/projects/store/facetsDuck.js index 9523540b065..03640a8b2f4 100644 --- a/server/sonar-web/src/main/js/apps/projects/store/facetsDuck.js +++ b/server/sonar-web/src/main/js/apps/projects/store/facetsDuck.js @@ -29,8 +29,7 @@ const CUMULATIVE_FACETS = [ 'maintainability', 'coverage', 'duplications', - 'size', - 'language' + 'size' ]; const REVERSED_FACETS = [ diff --git a/server/sonar-web/src/main/js/apps/projects/store/utils.js b/server/sonar-web/src/main/js/apps/projects/store/utils.js index b9d15c5140c..ca6feab5b21 100644 --- a/server/sonar-web/src/main/js/apps/projects/store/utils.js +++ b/server/sonar-web/src/main/js/apps/projects/store/utils.js @@ -55,6 +55,7 @@ export const parseUrlQuery = urlQuery => ({ 'duplications': getAsNumericRating(urlQuery['duplications']), 'size': getAsNumericRating(urlQuery['size']), 'languages': getAsArray(urlQuery['languages'], getAsString), + 'tags': getAsArray(urlQuery['tags'], getAsString), 'search': getAsString(urlQuery['search']), 'sort': getAsString(urlQuery['sort']) }); @@ -69,6 +70,7 @@ export const mapMetricToProperty = metricKey => { 'ncloc': 'size', 'alert_status': 'gate', 'languages': 'languages', + 'tags': 'tags', 'query': 'search' }; return map[metricKey]; @@ -84,6 +86,7 @@ export const mapPropertyToMetric = property => { 'size': 'ncloc', 'gate': 'alert_status', 'languages': 'languages', + 'tags': 'tags', 'search': 'query' }; return map[property]; @@ -177,14 +180,16 @@ const convertToFilter = (query, isFavorite) => { } }); - const { languages } = query; - if (languages != null) { - if (!Array.isArray(languages) || languages.length < 2) { - conditions.push(mapPropertyToMetric('languages') + ' = ' + languages); - } else { - conditions.push(`${mapPropertyToMetric('languages')} IN (${languages.join(', ')})`); + ['languages', 'tags'].forEach(property => { + const items = query[property]; + if (items != null) { + if (!Array.isArray(items) || items.length < 2) { + conditions.push(mapPropertyToMetric(property) + ' = ' + items); + } else { + conditions.push(`${mapPropertyToMetric(property)} IN (${items.join(', ')})`); + } } - } + }); if (query['search'] != null) { conditions.push(`${mapPropertyToMetric('search')} = "${query['search']}"`); |