diff --git a/library/CM/Form/Abstract.js b/library/CM/Form/Abstract.js index 6c945d15a..ef5f4b760 100755 --- a/library/CM/Form/Abstract.js +++ b/library/CM/Form/Abstract.js @@ -14,9 +14,6 @@ var CM_Form_Abstract = CM_View_Abstract.extend({ /** @type Object **/ _actions: {}, - /** @type Boolean **/ - _stopErrorPropagation: false, - initialize: function() { CM_View_Abstract.prototype.initialize.call(this); @@ -60,7 +57,7 @@ var CM_Form_Abstract = CM_View_Abstract.extend({ field.success(); }) .catch(CM_Exception_FormFieldValidation, function(error) { - handler._handleValidationError(error, handler.autosave, true); + this._displayValidationError(error); }); } }); @@ -175,39 +172,33 @@ var CM_Form_Abstract = CM_View_Abstract.extend({ }, /** - * @param {String} [actionName] - * @param {Object} [options] + * @param {String} actionName * @return Promise */ - submit: function(actionName, options) { - options = _.defaults(options || {}, { - handleErrors: true, - disableUI: true - }); - + submit: function(actionName) { return this .try(function() { - return this._submitOnly(actionName, options.disableUI); + return this._submitOnly(actionName, true); }) .catch(CM_Exception_FormFieldValidation, function(error) { - this._handleValidationError(error, actionName, options.handleErrors); + this._displayValidationError(error); }); }, /** - * @param {String} [actionName] - * @param {Boolean} [disableUI] + * @param {String} actionName + * @param {Boolean} disableUI * @return Promise */ _submitOnly: function(actionName, disableUI) { var action = this._getAction(actionName); var data = this.getActionData(action.name); - var errorList = this._getErrorList(action.name, data); + var errorListRequired = this._getErrorListRequired(action.name, data); this.resetErrors(); - if (_.size(errorList)) { + if (_.size(errorListRequired)) { var error = new CM_Exception_FormFieldValidation(); - error.setErrorList(errorList); + error.setErrorList(errorListRequired); return Promise.reject(error); } @@ -223,6 +214,7 @@ var CM_Form_Abstract = CM_View_Abstract.extend({ if (response.errors) { var error = new CM_Exception_FormFieldValidation(); error.setErrorList(response.errors); + this.trigger('error error.' + actionName, error); throw error; } @@ -247,22 +239,6 @@ var CM_Form_Abstract = CM_View_Abstract.extend({ }); }, - /** - * @param {CM_Exception_FormFieldValidation} error - * @param {String} actionName - * @param {Boolean} displayErrors - */ - _handleValidationError: function(error, actionName, displayErrors) { - if (displayErrors) { - this._displayValidationError(error); - } - this._stopErrorPropagation = false; - this.trigger('error error.' + actionName, error.message, error.name, error.isPublic); - if (!this._stopErrorPropagation && !displayErrors) { - throw error; - } - }, - /** * @param {CM_Exception_FormFieldValidation} validationError */ @@ -277,10 +253,6 @@ var CM_Form_Abstract = CM_View_Abstract.extend({ } }, - stopErrorPropagation: function() { - this._stopErrorPropagation = true; - }, - reset: function() { this.el.reset(); }, @@ -331,7 +303,7 @@ var CM_Form_Abstract = CM_View_Abstract.extend({ * @param {Object} data * @returns {Array[]} */ - _getErrorList: function(actionName, data) { + _getErrorListRequired: function(actionName, data) { var action = this._getAction(actionName); var errorList = [];