From 04214b9e28fcab36cd6ea2e8c3086a25a3a62d3f Mon Sep 17 00:00:00 2001 From: Maxime Roux Date: Thu, 23 Apr 2015 17:26:46 -0700 Subject: [PATCH] UI-1386: Updated devices to use the numberSelector for the e911 number --- i18n/en-US.json | 6 ++++- i18n/fr-FR.json | 6 ++++- submodules/devices/devices.js | 50 ++++++++++++++++++++++++++++++----- views/devices-ata.html | 9 +------ views/devices-fax.html | 9 +------ views/devices-mobile.html | 9 +------ views/devices-sip_device.html | 9 +------ views/devices-smartphone.html | 9 +------ views/devices-softphone.html | 9 +------ 9 files changed, 59 insertions(+), 57 deletions(-) diff --git a/i18n/en-US.json b/i18n/en-US.json index 1bb604a..7d171fa 100644 --- a/i18n/en-US.json +++ b/i18n/en-US.json @@ -155,7 +155,11 @@ "emergency": "Number", "notSet": "- Account Default -", "noE911Numbers": "You didn't set E911 on any of your numbers, please set it up via the Number Manager and come back on this screen once it's done", - "address": "Address" + "address": "Address", + "__comment": "UI-1386: Updating devices to use the numberSelector common control", + "__version": "v3.20_s4", + "selectNumber": "Select an e911 number", + "useDefault": "Use account default" }, "miscellaneous": { "menuTitle": "Miscellaneous", diff --git a/i18n/fr-FR.json b/i18n/fr-FR.json index a894ca4..b9d98eb 100644 --- a/i18n/fr-FR.json +++ b/i18n/fr-FR.json @@ -135,7 +135,11 @@ "emergency": "Numéro", "notSet": "- Valeur du compte par défaut -", "noE911Numbers": "L'E911 n'a été configuré sur aucun numéro, veuillez utiliser l'application de gestion des numéros pour le configurer sur un de vos numéros avant de définir votre Caller-ID d'urgence.", - "address": "Adresse" + "address": "Adresse", + "__comment": "UI-1386: Updating devices to use the numberSelector common control", + "__version": "v3.20_s4", + "selectNumber": "Sélectionnez un numéro E911", + "useDefault": "Utiliser la valeur du compte par défaut" }, "miscellaneous": { "menuTitle": "Divers", diff --git a/submodules/devices/devices.js b/submodules/devices/devices.js index 0a52017..03281e3 100644 --- a/submodules/devices/devices.js +++ b/submodules/devices/devices.js @@ -289,7 +289,10 @@ define(function(require){ } if ( data.extra.hasE911Numbers ) { + var currentNumber = undefined; + if(data.caller_id && data.caller_id.emergency && data.caller_id.emergency.number) { + currentNumber = data.caller_id.emergency.number; self.devicesGetE911NumberAddress(data.caller_id.emergency.number, function(address) { templateDevice .find('.number-address') @@ -298,6 +301,20 @@ define(function(require){ .html(address); }); } + + monster.pub('common.numberSelector.render', { + container: templateDevice.find('.emergency-number'), + inputName: 'caller_id.emergency.number', + number: currentNumber, + customNumbers: data.extra.e911Numbers, + noBuy: true, + labels: { + empty: self.i18n.active().devices.popupSettings.callerId.notSet, + remove: self.i18n.active().devices.popupSettings.callerId.useDefault, + spare: self.i18n.active().devices.popupSettings.callerId.selectNumber, + hideNumber: true + } + }); } monster.ui.validate(deviceForm, { @@ -586,7 +603,7 @@ define(function(require){ var self = this, defaults = { extra: { - hasE911Numbers: data.e911Numbers.length > 0, + hasE911Numbers: !_.isEmpty(data.e911Numbers), e911Numbers: data.e911Numbers, restrictions: data.listClassifiers, rtpMethod: data.device.media && data.device.media.encryption && data.device.media.encryption.enforce_security ? data.device.media.encryption.methods[0] : '', @@ -875,17 +892,36 @@ define(function(require){ } }, success: function(data) { - var e911Numbers = []; + monster.pub('common.numbers.getListFeatures', function(viewFeatures) { + var e911Numbers = {}; + _.each(data.data.numbers, function(val, key) { + if(val.features.indexOf('dash_e911') >= 0) { + e911Numbers[key] = self.devicesFormatNumber(val, viewFeatures); + } + }); - _.each(data.data.numbers, function(number, value) { - if(number.features.indexOf('dash_e911') >= 0) { - e911Numbers.push(value); - } + callback(e911Numbers); }); + } + }); + }, + + devicesFormatNumber: function(value, viewFeatures) { + var self = this; - callback(e911Numbers); + value.viewFeatures = $.extend(true, {}, viewFeatures); + if('locality' in value) { + value.isoCountry = value.locality.country || ''; + value.friendlyLocality = 'city' in value.locality ? value.locality.city + ('state' in value.locality ? ', ' + value.locality.state : '') : ''; + } + + _.each(value.features, function(feature) { + if(feature in value.viewFeatures) { + value.viewFeatures[feature].active = 'active'; } }); + + return value; }, devicesGetEditData: function(dataDevice, callback) { diff --git a/views/devices-ata.html b/views/devices-ata.html index 1ed9dc5..08ec9c7 100644 --- a/views/devices-ata.html +++ b/views/devices-ata.html @@ -121,14 +121,7 @@ {{#if extra.hasE911Numbers}}
-
- -
+
{{else}} {{#monsterText 'error'}} diff --git a/views/devices-fax.html b/views/devices-fax.html index 25a7a63..85e51af 100644 --- a/views/devices-fax.html +++ b/views/devices-fax.html @@ -132,14 +132,7 @@ {{#if extra.hasE911Numbers}}
-
- -
+
{{else}} {{#monsterText 'error'}} diff --git a/views/devices-mobile.html b/views/devices-mobile.html index f9575bc..7f2e868 100644 --- a/views/devices-mobile.html +++ b/views/devices-mobile.html @@ -143,14 +143,7 @@ {{#if extra.hasE911Numbers}}
-
- -
+
{{else}} {{#monsterText 'error'}} diff --git a/views/devices-sip_device.html b/views/devices-sip_device.html index f040dce..5cd1cb1 100644 --- a/views/devices-sip_device.html +++ b/views/devices-sip_device.html @@ -180,14 +180,7 @@ {{#if extra.hasE911Numbers}}
-
- -
+
diff --git a/views/devices-smartphone.html b/views/devices-smartphone.html index 60fceb6..ae0e136 100644 --- a/views/devices-smartphone.html +++ b/views/devices-smartphone.html @@ -173,14 +173,7 @@ {{#if extra.hasE911Numbers}}
-
- -
+
{{else}} {{#monsterText 'error'}} diff --git a/views/devices-softphone.html b/views/devices-softphone.html index c8fdc40..3fffb22 100644 --- a/views/devices-softphone.html +++ b/views/devices-softphone.html @@ -137,14 +137,7 @@ {{#if extra.hasE911Numbers}}
-
- -
+