From de12b86213f339d8499b96eb0cc140f09edb5bc3 Mon Sep 17 00:00:00 2001 From: Nathan Cairns Date: Wed, 29 Aug 2018 04:31:14 +1200 Subject: [PATCH] UI-3127: Device assignment in smart PBX (#72) * Add assign to template * Get users for the template * Add translations * Load in assignTo template * Handle no owner case * Fix translation reference * Adhere to linter * Clean up code * Fix code style * Update translation to be in devices.popupSettings * Get user list in devicesGetEditData * Fix templating * Add default value to dropdown * Remove error from listUsers call * Rename usersData to users * Ensure deviceData.users is not save to device * Move users field to extra * Move delete statements * Move translations to popupsettings --- i18n/en-US.json | 2 ++ submodules/devices/devices.js | 24 ++++++++++++++++++++++-- submodules/devices/views/assign-to.html | 11 +++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 submodules/devices/views/assign-to.html diff --git a/i18n/en-US.json b/i18n/en-US.json index ffca5e3..f604cb1 100644 --- a/i18n/en-US.json +++ b/i18n/en-US.json @@ -160,10 +160,12 @@ "deleteDevice": "Delete Device", "deletedDevice": "You successfully deleted the following device \"{{deviceName}}\".", "popupSettings": { + "assignTo": "Assign To", "advancedTitle": "Advanced", "basicTitle": "Basic Settings", "basicSectionTitle": "Basic Settings", "dragAndDrop": "To select a codec, drag and drop from the available codecs box to selected codecs box", + "noOwner": "- No Owner -", "options": { "menuTitle": "Options" }, diff --git a/submodules/devices/devices.js b/submodules/devices/devices.js index f95ac0c..d9d203b 100644 --- a/submodules/devices/devices.js +++ b/submodules/devices/devices.js @@ -335,7 +335,14 @@ define(function(require) { }), submodule: 'devices' })), - deviceForm = templateDevice.find('#form_device'); + deviceForm = templateDevice.find('#form_device'), + assignTemplate = $(self.getTemplate({ + name: 'assign-to', + data: data, + submodule: 'devices' + })); + + 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) { @@ -777,6 +784,11 @@ define(function(require) { } } + //if there is no owner, do not add one. + if (mergedData.owner_id && mergedData.owner_id === 'none') { + delete mergedData.owner_id; + } + /* Migration clean-up */ delete mergedData.media.secure_rtp; delete mergedData.extra; @@ -805,7 +817,8 @@ define(function(require) { availableCodecs: { audio: [], video: [] - } + }, + users: data.users }, call_restriction: {}, device_type: 'sip_device', @@ -1130,6 +1143,13 @@ define(function(require) { callback(null, data.data); } }); + }, + users: function(callback) { + self.devicesListUsers({ + success: function(users, status) { + callback(null, users); + } + }); } }, function(error, results) { var formattedData = self.devicesFormatData(results, dataDevice); diff --git a/submodules/devices/views/assign-to.html b/submodules/devices/views/assign-to.html new file mode 100644 index 0000000..3eb4057 --- /dev/null +++ b/submodules/devices/views/assign-to.html @@ -0,0 +1,11 @@ +
+ +
+ +
+