From 762c5bd031f1b207d9b98498895d6266b2afd293 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Fri, 21 Feb 2014 16:40:16 +0600 Subject: [PATCH] Action Plan criteria changes --- .../resources/org/sonar/l10n/core.properties | 3 +- .../WEB-INF/app/views/issues/search.html.erb | 3 +- .../navigator/_filter_templates.html.erb | 3 +- .../main/webapp/javascripts/issues-extra.js | 3 +- .../src/main/webapp/javascripts/issues.js | 30 +++++++++---------- .../navigator/filters/action-plan-filters.js | 18 +++++++++-- .../filters/more-criteria-filters.js | 2 +- .../src/main/webapp/stylesheets/navigator.css | 7 +++++ .../webapp/stylesheets/navigator/filters.css | 7 +++++ .../webapp/stylesheets/navigator/filters.less | 9 ++++++ 10 files changed, 62 insertions(+), 23 deletions(-) diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties b/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties index ae249cc4227..6f88a525be2 100644 --- a/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties +++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties @@ -619,7 +619,8 @@ issue_filter.header.assignee=Assignee issue_filter.header.creation_date=Created issue_filter.header.resolution=Resolution issue_filter.header.update_date=Updated -issue_filter.criteria.actionPlans=Action Plans +issue_filter.criteria.actionPlan=Action Plan +issue_filter.criteria.actionPlanNotAvailable=Action Plan criteria is available when only one project is selected issue_filter.criteria.assignee=Assignee issue_filter.criteria.created=Created issue_filter.criteria.created_at=Created at diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/issues/search.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/issues/search.html.erb index 93801e5e48e..8c2f6c0ec4c 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/issues/search.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/issues/search.html.erb @@ -49,7 +49,8 @@ favorites: <%= render :partial => 'issues/filter_favourites' -%>, phrases: { - 'actionPlans': '<%= escape_javascript message('issue_filter.criteria.actionPlans') -%>', + 'actionPlan': '<%= escape_javascript message('issue_filter.criteria.actionPlan') -%>', + 'actionPlanNotAvailable': '<%= escape_javascript message('issue_filter.criteria.actionPlanNotAvailable') -%>', 'any': '<%= escape_javascript message('any') -%>', 'anytime': '<%= escape_javascript message('anytime') -%>', 'all': '<%= escape_javascript message('all') -%>', diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/navigator/_filter_templates.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/navigator/_filter_templates.html.erb index ce0a0e48bdc..3525cade23b 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/navigator/_filter_templates.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/navigator/_filter_templates.html.erb @@ -126,7 +126,8 @@ {[ _.each(filters, function(filter, i) { ]} {[ if (!(i > 0 && filters[i - 1].get('name') === filter.get('name'))) { ]}
  • - +
  • {[ } ]} {[ }); ]} diff --git a/sonar-server/src/main/webapp/javascripts/issues-extra.js b/sonar-server/src/main/webapp/javascripts/issues-extra.js index 3796ef9023f..972371fd552 100644 --- a/sonar-server/src/main/webapp/javascripts/issues-extra.js +++ b/sonar-server/src/main/webapp/javascripts/issues-extra.js @@ -408,7 +408,8 @@ define( } else { this.moreCriteriaFilter.set({ enabled: true }, { silent: true }); } - this.moreCriteriaFilter.set('filters', disabledFilters); + this.moreCriteriaFilter.set({ filters: disabledFilters }, { silent: true }); + this.moreCriteriaFilter.trigger('change:filters'); }, diff --git a/sonar-server/src/main/webapp/javascripts/issues.js b/sonar-server/src/main/webapp/javascripts/issues.js index 6c41e5b6cd2..6994eef9907 100644 --- a/sonar-server/src/main/webapp/javascripts/issues.js +++ b/sonar-server/src/main/webapp/javascripts/issues.js @@ -162,7 +162,21 @@ requirejs( }), new BaseFilters.Filter({ - name: window.SS.phrases.actionPlans, + name: window.SS.phrases.resolution, + property: 'resolutions', + type: ResolutionFilterView, + enabled: true, + optional: false, + choices: { + 'UNRESOLVED': window.SS.phrases.resolutions.UNRESOLVED, + 'FALSE-POSITIVE': window.SS.phrases.resolutions['FALSE-POSITIVE'], + 'FIXED': window.SS.phrases.resolutions.FIXED, + 'REMOVED': window.SS.phrases.resolutions.REMOVED + } + }), + + new BaseFilters.Filter({ + name: window.SS.phrases.actionPlan, property: 'actionPlans', type: ActionPlanFilterView, enabled: false, @@ -196,20 +210,6 @@ requirejs( optional: true }), - new BaseFilters.Filter({ - name: window.SS.phrases.resolution, - property: 'resolutions', - type: ResolutionFilterView, - enabled: true, - optional: false, - choices: { - 'UNRESOLVED': window.SS.phrases.resolutions.UNRESOLVED, - 'FALSE-POSITIVE': window.SS.phrases.resolutions['FALSE-POSITIVE'], - 'FIXED': window.SS.phrases.resolutions.FIXED, - 'REMOVED': window.SS.phrases.resolutions.REMOVED - } - }), - new BaseFilters.Filter({ name: window.SS.phrases.rule, property: 'rules', diff --git a/sonar-server/src/main/webapp/javascripts/navigator/filters/action-plan-filters.js b/sonar-server/src/main/webapp/javascripts/navigator/filters/action-plan-filters.js index 06c4212d1ef..df0f8c4e385 100644 --- a/sonar-server/src/main/webapp/javascripts/navigator/filters/action-plan-filters.js +++ b/sonar-server/src/main/webapp/javascripts/navigator/filters/action-plan-filters.js @@ -73,16 +73,27 @@ define(['backbone', 'navigator/filters/base-filters', 'navigator/filters/select- makeActive: function() { - this.$el.removeClass('navigator-filter-inactive'); + this.model.set({ + inactive: false, + title: '' + }); + this.model.trigger('change:enabled'); + this.$el.removeClass('navigator-filter-inactive').prop('title', ''); }, makeInactive: function() { + this.model.set({ + inactive: true, + title: window.SS.phrases.actionPlanNotAvailable + }); + this.model.trigger('change:enabled'); this.selection.reset([]); this.choices.reset([]); this.detailsView.updateLists(); this.detailsView.updateValue(); - this.$el.addClass('navigator-filter-inactive'); + this.$el.addClass('navigator-filter-inactive') + .prop('title', window.SS.phrases.actionPlanNotAvailable); }, @@ -102,7 +113,8 @@ define(['backbone', 'navigator/filters/base-filters', 'navigator/filters/select- that.choices.reset(nonClosedActionPlans.map(function(plan) { return { id: plan.key, - text: plan.name + text: plan.name, + category: plan.fDeadLine } })); that.choices.add(new Backbone.Model({ diff --git a/sonar-server/src/main/webapp/javascripts/navigator/filters/more-criteria-filters.js b/sonar-server/src/main/webapp/javascripts/navigator/filters/more-criteria-filters.js index 3dacc1c5a4c..39e948040ec 100644 --- a/sonar-server/src/main/webapp/javascripts/navigator/filters/more-criteria-filters.js +++ b/sonar-server/src/main/webapp/javascripts/navigator/filters/more-criteria-filters.js @@ -5,7 +5,7 @@ define(['navigator/filters/base-filters', 'navigator/filters/select-filters'], f events: { - 'click label[data-id]': 'enableFilter' + 'click label[data-id]:not(.inactive)': 'enableFilter' }, diff --git a/sonar-server/src/main/webapp/stylesheets/navigator.css b/sonar-server/src/main/webapp/stylesheets/navigator.css index 0212999a1cc..8fce025175a 100644 --- a/sonar-server/src/main/webapp/stylesheets/navigator.css +++ b/sonar-server/src/main/webapp/stylesheets/navigator.css @@ -527,6 +527,13 @@ .navigator-filter-select-list label.special > span { text-decoration: underline; } +.navigator-filter-select-list label.inactive { + cursor: default; + opacity: 0.5; +} +.navigator-filter-select-list label.inactive:hover { + background-color: transparent; +} .navigator-filter-select-list .single { padding: 5px 10px; } diff --git a/sonar-server/src/main/webapp/stylesheets/navigator/filters.css b/sonar-server/src/main/webapp/stylesheets/navigator/filters.css index eba23096c66..af6b86edb1f 100644 --- a/sonar-server/src/main/webapp/stylesheets/navigator/filters.css +++ b/sonar-server/src/main/webapp/stylesheets/navigator/filters.css @@ -186,6 +186,13 @@ .navigator-filter-select-list label.special > span { text-decoration: underline; } +.navigator-filter-select-list label.inactive { + cursor: default; + opacity: 0.5; +} +.navigator-filter-select-list label.inactive:hover { + background-color: transparent; +} .navigator-filter-select-list .single { padding: 5px 10px; } diff --git a/sonar-server/src/main/webapp/stylesheets/navigator/filters.less b/sonar-server/src/main/webapp/stylesheets/navigator/filters.less index 1f240313e18..9ef138aefa4 100644 --- a/sonar-server/src/main/webapp/stylesheets/navigator/filters.less +++ b/sonar-server/src/main/webapp/stylesheets/navigator/filters.less @@ -203,6 +203,15 @@ text-decoration: underline; } } + + &.inactive { + cursor: default; + opacity: 0.5; + + &:hover { + background-color: transparent; + } + } } .single { -- 2.39.5