From ab0bcbe7fd2b61fb2faf2143dd04cfd28a0fa39a Mon Sep 17 00:00:00 2001 From: Jean-Roch Maitre Date: Thu, 25 Sep 2014 11:16:48 -0700 Subject: [PATCH] UI-691: You can now edit/delete device from the user device's section --- submodules/devices/devices.js | 47 +++++++++++++++++++++------------ submodules/users/users.js | 18 +++++++++++++ views/users-devices.html | 4 +-- views/users-rowSpareDevice.html | 2 +- 4 files changed, 51 insertions(+), 20 deletions(-) diff --git a/submodules/devices/devices.js b/submodules/devices/devices.js index c058cde..702ae74 100644 --- a/submodules/devices/devices.js +++ b/submodules/devices/devices.js @@ -56,7 +56,8 @@ define(function(require){ subscribe: { 'voip.devices.render': 'devicesRender', - 'voip.devices.renderAdd': 'devicesRenderAdd' + 'voip.devices.renderAdd': 'devicesRenderAdd', + 'voip.devices.editDevice': 'devicesRenderEdit' }, /* Users */ @@ -167,12 +168,10 @@ define(function(require){ id: $this.parents('.grid-row').data('id') }; - //self.devicesGetDevice(deviceId, function(dataDevice) { - self.devicesGetEditData(dataDevice, function(dataDevice) { - self.devicesRenderDevice(dataDevice, function(device) { - self.devicesRender({ deviceId: device.id }); - }); - }); + + self.devicesRenderEdit({ data: dataDevice, callbackSave: function(dataDevice) { + self.devicesRender({ deviceId: dataDevice.id }); + }}); }); template.find('.create-device').on('click', function() { @@ -187,6 +186,19 @@ define(function(require){ }); }, + devicesRenderEdit: function(args) { + var self = this, + data = args.data, + callbackSave = args.callbackSave, + callbackDelete = args.callbackDelete || function(device) { + self.devicesRender(); + }; + + self.devicesGetEditData(data, function(dataDevice) { + self.devicesRenderDevice(dataDevice, callbackSave, callbackDelete); + }); + }, + devicesRenderAdd: function(args) { var self = this, type = args.type, @@ -210,20 +222,20 @@ define(function(require){ }); }, callbackMissingBrand: function() { - self.devicesGetEditData(data, function(dataDevice) { - self.devicesRenderDevice(dataDevice, callback); - }); + self.devicesRenderEdit({ data: data, callbackSave: function(dataDevice) { + callback && callback(dataDevice); + }}); } }); } else { - self.devicesGetEditData(data, function(dataDevice) { - self.devicesRenderDevice(dataDevice, callback); - }); + self.devicesRenderEdit({ data: data, callbackSave: function(dataDevice) { + callback && callback(dataDevice); + }}); } }, - devicesRenderDevice: function(data, callback) { + devicesRenderDevice: function(data, callbackSave, callbackDelete) { var self = this mode = data.id ? 'edit' : 'add', type = data.device_type, @@ -303,7 +315,7 @@ define(function(require){ self.devicesSaveDevice(dataToSave, function(data) { popup.dialog('close').remove(); - callback && callback(data); + callbackSave && callbackSave(data); }); } else { templateDevice.find('.tabs-selector[data-section="basic"]').click(); @@ -315,10 +327,11 @@ define(function(require){ monster.ui.confirm(self.i18n.active().devices.confirmDeleteDevice, function() { self.devicesDeleteDevice(deviceId, function(device) { - self.devicesRender(); popup.dialog('close').remove(); toastr.success(monster.template(self, '!' + self.i18n.active().devices.deletedDevice, { deviceName: device.name })); + + callbackDelete && callbackDelete(device); }); }); }); @@ -809,7 +822,7 @@ define(function(require){ devicesGetEditData: function(dataDevice, callback) { var self = this; - + monster.parallel({ listClassifiers: function(callback) { self.devicesListClassifiers(function(dataClassifiers) { diff --git a/submodules/users/users.js b/submodules/users/users.js index 9e8ec30..95264bd 100644 --- a/submodules/users/users.js +++ b/submodules/users/users.js @@ -989,7 +989,25 @@ define(function(require){ }); }); + + template.on('click', '.detail-devices .edit-device-link', function() { + var row = $(this).parents('.item-row'), + id = row.data('id') + + monster.pub('voip.devices.editDevice', { + data: { id: id }, + callbackSave: function(device) { + row.find('.edit-device').html(device.name); + }, + callbackDelete: function(device) { + row.remove(); + } + } + ); + }); + template.on('click', '.detail-devices .list-unassigned-items .add-device', function() { + var row = $(this).parents('.item-row'), spare = template.find('.count-spare'), countSpare = spare.data('count') - 1, diff --git a/views/users-devices.html b/views/users-devices.html index 7ce76ce..fe355cd 100644 --- a/views/users-devices.html +++ b/views/users-devices.html @@ -8,7 +8,7 @@
- {{ this.name }} + {{ this.name }}
{{else}} @@ -37,7 +37,7 @@
- {{ this.name }} + {{ this.name }}
{{/each}} diff --git a/views/users-rowSpareDevice.html b/views/users-rowSpareDevice.html index 5d289b0..c5c2921 100644 --- a/views/users-rowSpareDevice.html +++ b/views/users-rowSpareDevice.html @@ -1,6 +1,6 @@
- {{ this.name }} + {{ this.name }}