]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6595 show error message when activate a rule with a parameter is set to an...
authorStas Vilchik <vilchiks@gmail.com>
Thu, 4 Jun 2015 12:20:47 +0000 (14:20 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Thu, 4 Jun 2015 12:20:53 +0000 (14:20 +0200)
server/sonar-web/src/main/js/apps/coding-rules/rule/profile-activation-view.js
server/sonar-web/src/main/js/apps/coding-rules/templates/rule/coding-rules-profile-activation.hbs

index 5381c6299bc8a4f58c793a1c400badf2e0cf50df..e12c47304690e3d2309b2ecce60ea6b315d91a9f 100644 (file)
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 define([
-  'components/common/modals',
+  'components/common/modal-form',
   '../templates'
-], function (Modal) {
+], function (ModalForm) {
 
   var $ = jQuery;
 
-  return Modal.extend({
+  return ModalForm.extend({
     template: Templates['coding-rules-profile-activation'],
 
-    ui: {
-      qualityProfileSelect: '#coding-rules-quality-profile-activation-select',
-      qualityProfileSeverity: '#coding-rules-quality-profile-activation-severity',
-      qualityProfileActivate: '#coding-rules-quality-profile-activation-activate',
-      qualityProfileParameters: '[name]'
+    ui: function () {
+      return _.extend(this._super(), {
+        qualityProfileSelect: '#coding-rules-quality-profile-activation-select',
+        qualityProfileSeverity: '#coding-rules-quality-profile-activation-severity',
+        qualityProfileActivate: '#coding-rules-quality-profile-activation-activate',
+        qualityProfileParameters: '[name]'
+      });
     },
 
     events: function () {
-      return _.extend(Modal.prototype.events.apply(this, arguments), {
+      return _.extend(this._super(), {
         'click @ui.qualityProfileActivate': 'activate'
       });
     },
 
     onRender: function () {
-      Modal.prototype.onRender.apply(this, arguments);
+      this._super();
 
       this.ui.qualityProfileSelect.select2({
         width: '250px',
@@ -93,7 +95,7 @@ define([
       var severity = this.ui.qualityProfileSeverity.val(),
           ruleKey = this.options.rule.get('key');
 
-      this.close();
+      this.disableForm();
 
       return jQuery.ajax({
         type: 'POST',
@@ -109,9 +111,11 @@ define([
           400: null
         }
       }).done(function () {
+        that.close();
         that.trigger('profileActivated', severity, params);
-      }).fail(function () {
-        that.trigger('profileActivationFailed');
+      }).fail(function (jqXHR) {
+        that.enableForm();
+        that.showErrors(jqXHR.responseJSON.errors, jqXHR.responseJSON.warnings);
       });
     },
 
@@ -142,7 +146,7 @@ define([
 
       var availableProfiles = this.getAvailableQualityProfiles(this.options.rule.get('lang'));
 
-      return _.extend(Modal.prototype.serializeData.apply(this, arguments), {
+      return _.extend(this._super(), {
         change: this.model && this.model.has('severity'),
         params: params,
         qualityProfiles: availableProfiles,
index 2b47036fd892d8e6f34dd2d0ee5e2b9708bab61f..e7a7164d4c448d69030d86ec089fa788dfb09306 100644 (file)
@@ -8,7 +8,7 @@
   </div>
 
   <div class="modal-body modal-body-select2">
-    <div class="alert alert-danger"></div>
+    <div class="js-modal-messages"></div>
 
     {{#empty qualityProfiles}}
       {{#unless change}}