diff --git a/submodules/devices/devices.js b/submodules/devices/devices.js index 233709a..74a0332 100644 --- a/submodules/devices/devices.js +++ b/submodules/devices/devices.js @@ -615,12 +615,17 @@ define(function(require) { if (monster.ui.valid(deviceForm)) { templateDevice.find('.feature-key-value:not(.active)').remove(); - var dataToSave = self.devicesMergeData(data, templateDevice, audioCodecs, videoCodecs); + var $this = $(this), + dataToSave = self.devicesMergeData(data, templateDevice, audioCodecs, videoCodecs); + + $this.prop('disabled', 'disabled'); self.devicesSaveDevice(dataToSave, function(data) { popup.dialog('close').remove(); callbackSave && callbackSave(data); + }, function() { + $this.prop('disabled', false); }); } else { templateDevice.find('.tabs-selector[data-section="basic"]').click(); @@ -1325,17 +1330,27 @@ define(function(require) { }); }, - devicesSaveDevice: function(deviceData, callback) { + /** + * @param {Object} deviceData + * @param {Function} callbackSuccess + * @param {Function} [callbackError] + */ + devicesSaveDevice: function(deviceData, callbackSuccess, callbackError) { var self = this; if (deviceData.id) { - self.devicesUpdateDevice(deviceData, callback); + self.devicesUpdateDevice(deviceData, callbackSuccess, callbackError); } else { - self.devicesCreateDevice(deviceData, callback); + self.devicesCreateDevice(deviceData, callbackSuccess, callbackError); } }, - devicesCreateDevice: function(deviceData, callback) { + /** + * @param {Object} deviceData + * @param {Function} callbackSuccess + * @param {Function} [callbackError] + */ + devicesCreateDevice: function(deviceData, callbackSuccess, callbackError) { var self = this; self.callApi({ @@ -1345,11 +1360,19 @@ define(function(require) { data: deviceData }, success: function(data) { - callback(data.data); + callbackSuccess(data.data); + }, + error: function(data) { + callbackError && callbackError(data); } }); }, + /** + * @param {Object} deviceData + * @param {Function} callbackSuccess + * @param {Function} [callbackError] + */ devicesUpdateDevice: function(deviceData, callbackSuccess, callbackError) { var self = this; diff --git a/submodules/users/users.js b/submodules/users/users.js index d23d67d..691dd7b 100644 --- a/submodules/users/users.js +++ b/submodules/users/users.js @@ -1774,9 +1774,14 @@ define(function(require) { monster.request({ resource: 'common.chooseModel.getProvisionerData', - data: {}, + data: { + generateError: false + }, success: function(provisionerData) { callback(null, provisionerData.data); + }, + error: function() { + callback(null, {}); } }); } @@ -1983,7 +1988,7 @@ define(function(require) { usersFormatAddUser: function(data) { var self = this, formattedData = { - hasProvisioner: self.appFlags.common.hasProvisioner, + hasProvisioner: self.appFlags.common.hasProvisioner && !_.isEmpty(data.provisioners), sendToSameEmail: true, nextExtension: '', listExtensions: {},