From 7448dc86eb31d3d5c3cd37b6a1e43a86aee3bb69 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Mon, 17 Mar 2014 18:31:20 +0100 Subject: [PATCH] SONAR-5092 Change message on default quality gate when user is not quality admin --- .../src/main/resources/org/sonar/l10n/core.properties | 3 ++- .../org/sonar/server/qualitygate/ws/QgateAppHandler.java | 1 + .../_quality_gate_detail_projects_template.hbs.erb | 6 +++++- .../views/quality-gate-detail-projects-view.coffee | 3 +++ .../quality-gate/views/quality-gate-detail-projects-view.js | 6 ++++++ .../sonar/server/qualitygate/ws/QgateAppHandlerTest.java | 2 +- 6 files changed, 18 insertions(+), 3 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 ca4b6133421..c7f831e44de 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 @@ -1658,7 +1658,8 @@ quality_gates.add_condition=Add Condition quality_gates.no_conditions=No Conditions quality_gates.introduction=Only project measures are checked against thresholds. Modules, packages and classes are ignored. quality_gates.health_icons=Project health icons represent: -quality_gates.projects_for_default=You must not select specific projects for the default quality gate. +quality_gates.projects_for_default=Every project not specifically associated to a quality gate will be associated to this one by default. +quality_gates.projects_for_default.edit=You must not select specific projects for the default quality gate. quality_gates.projects.with=With quality_gates.projects.without=Without quality_gates.projects.all=All diff --git a/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java b/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java index bf69138d4c1..294dea34686 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java +++ b/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java @@ -69,6 +69,7 @@ public class QgateAppHandler implements RequestHandler { "quality_gates.projects.with", "quality_gates.projects.without", "quality_gates.projects_for_default", + "quality_gates.projects_for_default.edit", "quality_gates.rename", "rename", "save", diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/quality_gates/templates/_quality_gate_detail_projects_template.hbs.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/quality_gates/templates/_quality_gate_detail_projects_template.hbs.erb index 9f107237684..22487657e3b 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/quality_gates/templates/_quality_gate_detail_projects_template.hbs.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/quality_gates/templates/_quality_gate_detail_projects_template.hbs.erb @@ -2,7 +2,11 @@
{{t 'quality_gates.projects'}}
{{#if default}} -

{{t 'quality_gates.projects_for_default'}}

+ {{#if canEdit}} +

{{t 'quality_gates.projects_for_default.edit'}}

+ {{else}} +

{{t 'quality_gates.projects_for_default'}}

+ {{/if}} {{else}}
{{/if}} diff --git a/sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-projects-view.coffee b/sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-projects-view.coffee index 70fbe8f261e..b496d311a37 100644 --- a/sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-projects-view.coffee +++ b/sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-projects-view.coffee @@ -33,3 +33,6 @@ define [ tooltips: select: t('quality_gates.projects.select_hint') deselect: t('quality_gates.projects.deselect_hint') + + serializeData: -> + _.extend super, canEdit: @options.app.canEdit diff --git a/sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-projects-view.js b/sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-projects-view.js index 3c647112f03..3651f6fb735 100644 --- a/sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-projects-view.js +++ b/sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-projects-view.js @@ -46,6 +46,12 @@ } }; + QualityGateDetailProjectsView.prototype.serializeData = function() { + return _.extend(QualityGateDetailProjectsView.__super__.serializeData.apply(this, arguments), { + canEdit: this.options.app.canEdit + }); + }; + return QualityGateDetailProjectsView; })(Marionette.ItemView); diff --git a/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java b/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java index 814c973b913..40b55c17c79 100644 --- a/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java +++ b/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java @@ -89,7 +89,7 @@ public class QgateAppHandlerTest { Collection periods = (Collection) responseJson.get("periods"); assertThat(periods).hasSize(3); Map messages = (Map) responseJson.get("messages"); - assertThat(messages).isNotNull().isNotEmpty().hasSize(46); + assertThat(messages).isNotNull().isNotEmpty().hasSize(47); for (Entry message: (Set) messages.entrySet()) { assertThat(message.getKey()).isEqualTo(message.getValue()); } -- 2.39.5