]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5091 Update deletion confirm messages in conformance to UI guidelines
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Wed, 19 Mar 2014 13:57:56 +0000 (14:57 +0100)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Wed, 19 Mar 2014 14:19:01 +0000 (15:19 +0100)
plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties
sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java
sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-condition-view.coffee
sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-condition-view.js
sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-header-view.coffee
sonar-server/src/main/webapp/javascripts/quality-gate/views/quality-gate-detail-header-view.js
sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java

index 05087f7e7dd5201da62659cc18f3cb8a6567ba36..d0dc7a50ec32edb124270bb03ebbb7c3122ae8de 100644 (file)
@@ -1670,6 +1670,10 @@ quality_gates.operator.LT=is less than
 quality_gates.operator.GT=is greater than
 quality_gates.operator.EQ=equals
 quality_gates.operator.NE=is not
+quality_gates.delete.confirm.message=Are you sure that you want to delete the quality gate "{0}"?
+quality_gates.delete.confirm.default=Are you sure that you want to delete the quality gate "{0}", which is the default quality gate?
+quality_gates.delete_condition.confirm.message=Are you sure that you want to delete this condition?
+
 
 #------------------------------------------------------------------------------
 #
index 294dea34686a7b12da7c97796d8f15c9fa9152b3..47f39e88dbd938bee73c27ccf7c74a1783f760f2 100644 (file)
@@ -71,6 +71,9 @@ public class QgateAppHandler implements RequestHandler {
       "quality_gates.projects_for_default",
       "quality_gates.projects_for_default.edit",
       "quality_gates.rename",
+      "quality_gates.delete.confirm.message",
+      "quality_gates.delete.confirm.default",
+      "quality_gates.delete_condition.confirm.message",
       "rename",
       "save",
       "set_as_default",
index df3527a8426a3fa93ee15cef5b16295fe68f2c8e..8e76e209300b5885fd0e8b989913ef11d3ce1717 100644 (file)
@@ -90,7 +90,7 @@ define [
 
 
     deleteCondition: ->
-      if confirm t('are_you_sure')
+      if confirm t('quality_gates.delete_condition.confirm.message')
         @showSpinner()
         @model.delete().done =>
           @options.collectionView.collection.remove @model
index e966af2b0c772326a3cfb26cae55b5f54272b6c1..e3141fdb3c38406a3ae9e1acbf2b382e1e463d38 100644 (file)
       };
 
       QualityGateDetailConditionView.prototype.deleteCondition = function() {
-        if (confirm(t('are_you_sure'))) {
+        if (confirm(t('quality_gates.delete_condition.confirm.message'))) {
           this.showSpinner();
           return this.model["delete"]().done((function(_this) {
             return function() {
index 69900f065629a3f0b274ecdd4573d267bc5d0915..d4cda7f5d8a073df173cb09e79021e04b6b8d121 100644 (file)
@@ -40,7 +40,8 @@ define [
 
 
     deleteQualityGate: ->
-      if confirm t('are_you_sure')
+      message = if @model.get 'default' then 'quality_gates.delete.confirm.default' else 'quality_gates.delete.confirm.message'
+      if confirm t(message).replace('{0}', @model.get 'name')
         @showSpinner()
         jQuery.ajax
           type: 'POST'
index c2f5cf0b8ed225b9ee3e8037be09ce7a8bc08a96..2e155bcb7b85878bbaa3de537a635d135b4309a1 100644 (file)
@@ -1,16 +1,15 @@
-// Generated by CoffeeScript 1.6.3
+// Generated by CoffeeScript 1.7.1
 (function() {
   var __hasProp = {}.hasOwnProperty,
     __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
 
   define(['backbone.marionette', 'handlebars', 'quality-gate/models/quality-gate'], function(Marionette, Handlebars, QualityGate) {
-    var QualityGateDetailHeaderView, _ref;
+    var QualityGateDetailHeaderView;
     return QualityGateDetailHeaderView = (function(_super) {
       __extends(QualityGateDetailHeaderView, _super);
 
       function QualityGateDetailHeaderView() {
-        _ref = QualityGateDetailHeaderView.__super__.constructor.apply(this, arguments);
-        return _ref;
+        return QualityGateDetailHeaderView.__super__.constructor.apply(this, arguments);
       }
 
       QualityGateDetailHeaderView.prototype.template = Handlebars.compile(jQuery('#quality-gate-detail-header-template').html());
@@ -45,8 +44,9 @@
       };
 
       QualityGateDetailHeaderView.prototype.deleteQualityGate = function() {
-        var _this = this;
-        if (confirm(t('are_you_sure'))) {
+        var message;
+        message = this.model.get('default') ? 'quality_gates.delete.confirm.default' : 'quality_gates.delete.confirm.message';
+        if (confirm(t(message).replace('{0}', this.model.get('name')))) {
           this.showSpinner();
           return jQuery.ajax({
             type: 'POST',
             data: {
               id: this.model.id
             }
-          }).always(function() {
-            return _this.hideSpinner();
-          }).done(function() {
-            return _this.options.app.deleteQualityGate(_this.model.id);
-          });
+          }).always((function(_this) {
+            return function() {
+              return _this.hideSpinner();
+            };
+          })(this)).done((function(_this) {
+            return function() {
+              return _this.options.app.deleteQualityGate(_this.model.id);
+            };
+          })(this));
         }
       };
 
       QualityGateDetailHeaderView.prototype.changeDefault = function(set) {
-        var data, method,
-          _this = this;
+        var data, method;
         this.showSpinner();
         data = set ? {
           id: this.model.id
           type: 'POST',
           url: "" + baseUrl + "/api/qualitygates/" + method,
           data: data
-        }).always(function() {
-          return _this.hideSpinner();
-        }).done(function() {
-          _this.options.app.unsetDefaults(_this.model.id);
-          return _this.model.set('default', !_this.model.get('default'));
-        });
+        }).always((function(_this) {
+          return function() {
+            return _this.hideSpinner();
+          };
+        })(this)).done((function(_this) {
+          return function() {
+            _this.options.app.unsetDefaults(_this.model.id);
+            return _this.model.set('default', !_this.model.get('default'));
+          };
+        })(this));
       };
 
       QualityGateDetailHeaderView.prototype.setAsDefault = function() {
index 40b55c17c7995ea139ea0d2480fb02ee738a1e8e..dd5c8645817bc7774e77df4518b824441b3c5966 100644 (file)
@@ -35,15 +35,14 @@ import org.sonar.api.server.ws.WsTester;
 import org.sonar.core.timemachine.Periods;
 import org.sonar.server.qualitygate.QualityGates;
 
-import java.util.Collection;
-import java.util.Locale;
-import java.util.Map;
+import java.util.*;
 import java.util.Map.Entry;
-import java.util.Set;
 
 import static org.fest.assertions.Assertions.assertThat;
 import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
 public class QgateAppHandlerTest {
@@ -89,7 +88,7 @@ public class QgateAppHandlerTest {
     Collection<Map> periods = (Collection<Map>) responseJson.get("periods");
     assertThat(periods).hasSize(3);
     Map messages = (Map) responseJson.get("messages");
-    assertThat(messages).isNotNull().isNotEmpty().hasSize(47);
+    assertThat(messages).isNotNull().isNotEmpty().hasSize(50);
     for (Entry message: (Set<Entry>) messages.entrySet()) {
       assertThat(message.getKey()).isEqualTo(message.getValue());
     }