Browse Source

UI-3356: Disable "Assign To" when handling devices from user submodule (#143)

* Conditionaly render user assignment feature

* Pass down prop governing user assignment rendering

* Disable user assignment when loaded by user submodule
4.3
Joris Tirado 7 years ago
committed by GitHub
parent
commit
a321225474
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 46 additions and 6 deletions
  1. +44
    -6
      submodules/devices/devices.js
  2. +2
    -0
      submodules/users/users.js

+ 44
- 6
submodules/devices/devices.js View File

@ -179,15 +179,30 @@ define(function(require) {
return _.isEmpty(types) ? null : types;
},
/**
* @param {Object} args
* @param {Object} args.data
* @param {Boolean} [args.allowAssign]
* @param {Function} [args.callbackSave]
* @param {Function} [args.callbackDelete]
*/
devicesRenderEdit: function(args) {
var self = this,
data = args.data,
allowAssign = _.get(args, 'allowAssign'),
callbackSave = args.callbackSave,
callbackDelete = args.callbackDelete || function(device) {
self.devicesRender();
};
self.devicesGetEditData(data, function(dataDevice) {
var renderDeviceArgs = {
data: dataDevice,
allowAssign: allowAssign,
callbackSave: callbackSave,
callbackDelete: callbackDelete
};
if (dataDevice.hasOwnProperty('provision')) {
self.devicesGetIterator(dataDevice.provision, function(template) {
var keyTypes = self.getKeyTypes(template);
@ -263,23 +278,32 @@ define(function(require) {
dataDevice.extra = _.has(dataDevice, 'extra') ? _.merge({}, dataDevice.extra, extra) : extra;
self.devicesRenderDevice(dataDevice, callbackSave, callbackDelete);
self.devicesRenderDevice(_.merge({}, renderDeviceArgs, {
data: dataDevice
}));
}
});
} else {
self.devicesRenderDevice(dataDevice, callbackSave, callbackDelete);
self.devicesRenderDevice(renderDeviceArgs);
}
}, function() {
self.devicesRenderDevice(dataDevice, callbackSave, callbackDelete);
self.devicesRenderDevice(renderDeviceArgs);
});
} else {
self.devicesRenderDevice(dataDevice, callbackSave, callbackDelete);
self.devicesRenderDevice(renderDeviceArgs);
}
});
},
/**
* @param {Object} args
* @param {Boolean} [args.allowAssign]
* @param {String} args.type
* @param {Function} args.callback
*/
devicesRenderAdd: function(args) {
var self = this,
allowAssign = _.get(args, 'allowAssign'),
type = args.type,
callback = args.callback,
data = {
@ -304,6 +328,7 @@ define(function(require) {
},
callbackMissingBrand: function() {
self.devicesRenderEdit({
allowAssign: allowAssign,
data: data,
callbackSave: function(dataDevice) {
callback && callback(dataDevice);
@ -313,6 +338,7 @@ define(function(require) {
});
} else {
self.devicesRenderEdit({
allowAssign: allowAssign,
data: data,
callbackSave: function(dataDevice) {
callback && callback(dataDevice);
@ -321,8 +347,18 @@ define(function(require) {
}
},
devicesRenderDevice: function(data, callbackSave, callbackDelete) {
/**
* @param {Object} args.data
* @param {Boolean} [args.allowAssign=true]
* @param {Function} [args.callbackSave]
* @param {Function} [args.callbackDelete]
*/
devicesRenderDevice: function(args) {
var self = this,
data = _.get(args, 'data'),
isAssignAllowed = !!_.get(args, 'allowAssign', true),
callbackSave = _.get(args, 'callbackSave'),
callbackDelete = _.get(args, 'callbackDelete'),
mode = data.id ? 'edit' : 'add',
type = data.device_type,
popupTitle = mode === 'edit'
@ -348,7 +384,9 @@ define(function(require) {
submodule: 'devices'
}));
deviceForm.find('.tabs-section[data-section="basic"]').append(assignTemplate);
if (isAssignAllowed) {
deviceForm.find('.tabs-section[data-section="basic"]').append(assignTemplate);
}
if (data.extra.hasOwnProperty('provision') && data.extra.provision.hasOwnProperty('keys')) {
_.each(data.extra.provision.keys, function(value) {


+ 2
- 0
submodules/users/users.js View File

@ -1160,6 +1160,7 @@ define(function(require) {
type = $this.data('type');
monster.pub('voip.devices.renderAdd', {
allowAssign: false,
type: type,
callback: function(device) {
var rowDevice = $(self.getTemplate({
@ -1242,6 +1243,7 @@ define(function(require) {
userId = $(this).parents('.grid-row').data('id');
monster.pub('voip.devices.editDevice', {
allowAssign: false,
data: { id: id },
callbackSave: function(device) {
row.find('.edit-device').html(device.name);


Loading…
Cancel
Save