From: Jean-Baptiste Lievremont Date: Tue, 8 Jul 2014 13:10:16 +0000 (+0200) Subject: SONAR-5390 Add Active Severity filter in Coding Rules space X-Git-Tag: 4.5-RC1~675 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f0094e727e8937986b73660be9fa0c1c0b14a083;p=sonarqube.git SONAR-5390 Add Active Severity filter in Coding Rules space --- diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties index 36bfe3ec60d..35813a3e104 100644 --- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties +++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties @@ -1746,6 +1746,7 @@ coding_rules.filters.activation=Activation coding_rules.filters.activation.active=Active coding_rules.filters.activation.inactive=Inactive coding_rules.filters.activation.help=Activation criterion is available when a quality profile is selected +coding_rules.filters.active_severity=Active Severity coding_rules.filters.availableSince=Available Since coding_rules.filters.characteristic=Characteristic coding_rules.filters.description=Description diff --git a/sonar-server/src/main/coffee/coding-rules/app.coffee b/sonar-server/src/main/coffee/coding-rules/app.coffee index a0ab8754246..103e12af957 100644 --- a/sonar-server/src/main/coffee/coding-rules/app.coffee +++ b/sonar-server/src/main/coffee/coding-rules/app.coffee @@ -44,6 +44,7 @@ requirejs [ 'coding-rules/views/filters/query-filter-view', 'coding-rules/views/filters/quality-profile-filter-view', 'coding-rules/views/filters/inheritance-filter-view', + 'coding-rules/views/filters/active-severities-filter-view', 'coding-rules/views/filters/activation-filter-view', 'coding-rules/views/filters/characteristic-filter-view', 'coding-rules/views/filters/repository-filter-view', @@ -79,6 +80,7 @@ requirejs [ QueryFilterView, QualityProfileFilterView, InheritanceFilterView, + ActiveSeveritiesFilterView, ActivationFilterView, CharacteristicFilterView, RepositoryFilterView, @@ -374,6 +376,26 @@ requirejs [ false: t 'coding_rules.filters.activation.inactive' @filters.add @activationFilter + @filters.add new BaseFilters.Filter + name: t 'coding_rules.filters.active_severity' + property: 'active_severities' + type: ActiveSeveritiesFilterView + enabled: false + optional: true + qualityProfileFilter: @qualityProfileFilter + choices: + 'BLOCKER': t 'severity.BLOCKER' + 'CRITICAL': t 'severity.CRITICAL' + 'MAJOR': t 'severity.MAJOR' + 'MINOR': t 'severity.MINOR' + 'INFO': t 'severity.INFO' + choiceIcons: + 'BLOCKER': 'severity-blocker' + 'CRITICAL': 'severity-critical' + 'MAJOR': 'severity-major' + 'MINOR': 'severity-minor' + 'INFO': 'severity-info' + @languageFilter = new BaseFilters.Filter name: t 'coding_rules.filters.language' property: 'languages' diff --git a/sonar-server/src/main/coffee/coding-rules/views/filters/activation-filter-view.coffee b/sonar-server/src/main/coffee/coding-rules/views/filters/activation-filter-view.coffee index 7748b353fbe..00f379dc605 100644 --- a/sonar-server/src/main/coffee/coding-rules/views/filters/activation-filter-view.coffee +++ b/sonar-server/src/main/coffee/coding-rules/views/filters/activation-filter-view.coffee @@ -1,47 +1,19 @@ define [ - 'navigator/filters/choice-filters' - 'coding-rules/views/filters/inheritance-filter-view' + 'coding-rules/views/filters/profile-dependent-filter-view' ], ( - ChoiceFilters - InheritanceFilterView + ProfileDependentFilterView ) -> - class ActivationFilterView extends ChoiceFilters.ChoiceFilterView + class ActivationFilterView extends ProfileDependentFilterView tooltip: 'coding_rules.filters.activation.help' - initialize: -> - super - @qualityProfileFilter = @model.get 'qualityProfileFilter' - @listenTo @qualityProfileFilter, 'change:value', @onChangeQualityProfile - @onChangeQualityProfile() - - - onChangeQualityProfile: -> - qualityProfileKey = @qualityProfileFilter.get 'value' - if _.isArray(qualityProfileKey) && qualityProfileKey.length == 1 - @makeActive() - else - @makeInactive() - makeActive: -> - @model.set inactive: false, title: '' - @model.trigger 'change:enabled' + super unless @model.get 'value' @choices.each (model) -> model.set 'checked', model.id == 'true' @model.set 'value', ['true'] - @$el.removeClass('navigator-filter-inactive').prop 'title', '' - @options.filterBarView.moreCriteriaFilter.view.detailsView.enableByProperty(@detailsView.model.get 'property') - @hideDetails() - - - makeInactive: -> - @model.set inactive: true, title: t @tooltip - @model.trigger 'change:enabled' - @choices.each (model) -> model.set 'checked', false - @detailsView.updateLists() - @detailsView.updateValue() - @$el.addClass('navigator-filter-inactive').prop 'title', t @tooltip + showDetails: -> diff --git a/sonar-server/src/main/coffee/coding-rules/views/filters/active-severities-filter-view.coffee b/sonar-server/src/main/coffee/coding-rules/views/filters/active-severities-filter-view.coffee new file mode 100644 index 00000000000..3fd1733da6d --- /dev/null +++ b/sonar-server/src/main/coffee/coding-rules/views/filters/active-severities-filter-view.coffee @@ -0,0 +1,7 @@ +define [ + 'coding-rules/views/filters/profile-dependent-filter-view' +], ( + ProfileDependentFilterView +) -> + + class ActiveSeveritiesFilterView extends ProfileDependentFilterView diff --git a/sonar-server/src/main/coffee/coding-rules/views/filters/inheritance-filter-view.coffee b/sonar-server/src/main/coffee/coding-rules/views/filters/inheritance-filter-view.coffee index 99e8fd57ec1..367fd4210b0 100644 --- a/sonar-server/src/main/coffee/coding-rules/views/filters/inheritance-filter-view.coffee +++ b/sonar-server/src/main/coffee/coding-rules/views/filters/inheritance-filter-view.coffee @@ -1,19 +1,10 @@ define [ - 'navigator/filters/choice-filters' + 'coding-rules/views/filters/profile-dependent-filter-view' ], ( - ChoiceFilters + ProfileDependentFilterView ) -> - class InheritanceFilterView extends ChoiceFilters.ChoiceFilterView - tooltip: 'coding_rules.filters.inheritance.inactive' - - - initialize: -> - super - @qualityProfileFilter = @model.get 'qualityProfileFilter' - @listenTo @qualityProfileFilter, 'change:value', @onChangeQualityProfile - @onChangeQualityProfile() - + class InheritanceFilterView extends ProfileDependentFilterView onChangeQualityProfile: -> qualityProfileKey = @qualityProfileFilter.get 'value' @@ -29,33 +20,3 @@ define [ @makeInactive() else @makeInactive() - - - makeActive: -> - @model.set inactive: false, title: '' - @model.trigger 'change:enabled' - @$el.removeClass('navigator-filter-inactive').prop 'title', '' - @options.filterBarView.moreCriteriaFilter.view.detailsView.enableByProperty(@detailsView.model.get 'property') - @hideDetails() - - - makeInactive: -> - @model.set inactive: true, title: t @tooltip - @model.trigger 'change:enabled' - @choices.each (model) -> model.set 'checked', false - @detailsView.updateLists() - @detailsView.updateValue() - @$el.addClass('navigator-filter-inactive').prop 'title', t @tooltip - - - showDetails: -> - super unless @$el.is '.navigator-filter-inactive' - - - restore: (value) -> - value = value.split(',') if _.isString(value) - if @choices && value.length > 0 - @model.set value: value, enabled: true - @onChangeQualityProfile() - else - @clear() diff --git a/sonar-server/src/main/coffee/coding-rules/views/filters/profile-dependent-filter-view.coffee b/sonar-server/src/main/coffee/coding-rules/views/filters/profile-dependent-filter-view.coffee new file mode 100644 index 00000000000..a86c58cacdc --- /dev/null +++ b/sonar-server/src/main/coffee/coding-rules/views/filters/profile-dependent-filter-view.coffee @@ -0,0 +1,52 @@ +define [ + 'navigator/filters/choice-filters' +], ( + ChoiceFilters +) -> + + class ProfileDependentFilterView extends ChoiceFilters.ChoiceFilterView + tooltip: 'coding_rules.filters.activation.help' + + initialize: -> + super + @qualityProfileFilter = @model.get 'qualityProfileFilter' + @listenTo @qualityProfileFilter, 'change:value', @onChangeQualityProfile + @onChangeQualityProfile() + + + onChangeQualityProfile: -> + qualityProfileKey = @qualityProfileFilter.get 'value' + if _.isArray(qualityProfileKey) && qualityProfileKey.length == 1 + @makeActive() + else + @makeInactive() + + + makeActive: -> + @model.set inactive: false, title: '' + @model.trigger 'change:enabled' + @$el.removeClass('navigator-filter-inactive').prop 'title', '' + @options.filterBarView.moreCriteriaFilter.view.detailsView.enableByProperty(@detailsView.model.get 'property') + @hideDetails() + + + makeInactive: -> + @model.set inactive: true, title: t @tooltip + @model.trigger 'change:enabled' + @choices.each (model) -> model.set 'checked', false + @detailsView.updateLists() + @detailsView.updateValue() + @$el.addClass('navigator-filter-inactive').prop 'title', t @tooltip + + + showDetails: -> + super unless @$el.is '.navigator-filter-inactive' + + + restore: (value) -> + value = value.split(',') if _.isString(value) + if @choices && value.length > 0 + @model.set value: value, enabled: true + @onChangeQualityProfile() + else + @clear()