|
|
|
@ -946,58 +946,72 @@ define(function(require) { |
|
|
|
emergencyAddress2Input = popupTemplate.find('.caller-id-emergency-address2'), |
|
|
|
emergencyCityInput = popupTemplate.find('.caller-id-emergency-city'), |
|
|
|
emergencyStateInput = popupTemplate.find('.caller-id-emergency-state'), |
|
|
|
editableFeatures = [ 'e911', 'cnam' ], |
|
|
|
loadNumberDetails = function(number, popupTemplate) { |
|
|
|
var allowedFeatures = [], |
|
|
|
callback = function(features) { |
|
|
|
popupTemplate.find('.number-feature').hide(); |
|
|
|
_.each(features, function(featureName) { |
|
|
|
popupTemplate.find('.number-feature[data-feature="' + featureName + '"]').slideDown(); |
|
|
|
monster.waterfall([ |
|
|
|
function getNumberData(waterfallCallback) { |
|
|
|
if (!number) { |
|
|
|
return waterfallCallback(null, null); |
|
|
|
} |
|
|
|
|
|
|
|
self.myOfficeGetNumber(number, function(numberData) { |
|
|
|
waterfallCallback(null, numberData); |
|
|
|
}); |
|
|
|
}; |
|
|
|
}, |
|
|
|
function getAllowedFeatures(numberData, waterfallCallback) { |
|
|
|
if (_.isNil(numberData)) { |
|
|
|
return waterfallCallback(null, numberData, []); |
|
|
|
} |
|
|
|
|
|
|
|
if (number) { |
|
|
|
self.myOfficeGetNumber(number, function(numberData) { |
|
|
|
var availableFeatures = numberData.hasOwnProperty('_read_only') && numberData._read_only.hasOwnProperty('features_available') ? numberData._read_only.features_available : [], |
|
|
|
activatedFeatures = numberData.hasOwnProperty('_read_only') && numberData._read_only.hasOwnProperty('features') ? numberData._read_only.features : [], |
|
|
|
allFeatures = availableFeatures.concat(activatedFeatures), |
|
|
|
hasE911 = allFeatures.indexOf('e911') >= 0, |
|
|
|
hasCNAM = allFeatures.indexOf('cnam') >= 0; |
|
|
|
|
|
|
|
if (hasE911) { |
|
|
|
if (monster.util.isNumberFeatureEnabled('e911')) { |
|
|
|
allowedFeatures.push('e911'); |
|
|
|
|
|
|
|
if ('e911' in numberData) { |
|
|
|
emergencyZipcodeInput.val(numberData.e911.postal_code); |
|
|
|
emergencyAddress1Input.val(numberData.e911.street_address); |
|
|
|
emergencyAddress2Input.val(numberData.e911.extended_address); |
|
|
|
emergencyCityInput.val(numberData.e911.locality); |
|
|
|
emergencyStateInput.val(numberData.e911.region); |
|
|
|
} else { |
|
|
|
emergencyZipcodeInput.val(''); |
|
|
|
emergencyAddress1Input.val(''); |
|
|
|
emergencyAddress2Input.val(''); |
|
|
|
emergencyCityInput.val(''); |
|
|
|
emergencyStateInput.val(''); |
|
|
|
} |
|
|
|
var availableFeatures = monster.util.getNumberFeatures(numberData), |
|
|
|
allowedFeatures = _.intersection(availableFeatures, editableFeatures); |
|
|
|
|
|
|
|
waterfallCallback(null, numberData, allowedFeatures); |
|
|
|
}, |
|
|
|
function fillFormFields(numberData, allowedFeatures, waterfallCallback) { |
|
|
|
if (_.isEmpty(allowedFeatures)) { |
|
|
|
return waterfallCallback(null, allowedFeatures); |
|
|
|
} |
|
|
|
|
|
|
|
var hasE911 = _.includes(allowedFeatures, 'e911'), |
|
|
|
hasCNAM = _.includes(allowedFeatures, 'cnam'), |
|
|
|
isE911Enabled = monster.util.isNumberFeatureEnabled('e911'); |
|
|
|
|
|
|
|
if (hasE911 && isE911Enabled) { |
|
|
|
if (_.has(numberData, 'e911')) { |
|
|
|
emergencyZipcodeInput.val(numberData.e911.postal_code); |
|
|
|
emergencyAddress1Input.val(numberData.e911.street_address); |
|
|
|
emergencyAddress2Input.val(numberData.e911.extended_address); |
|
|
|
emergencyCityInput.val(numberData.e911.locality); |
|
|
|
emergencyStateInput.val(numberData.e911.region); |
|
|
|
} else { |
|
|
|
emergencyZipcodeInput.val(''); |
|
|
|
emergencyAddress1Input.val(''); |
|
|
|
emergencyAddress2Input.val(''); |
|
|
|
emergencyCityInput.val(''); |
|
|
|
emergencyStateInput.val(''); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (hasCNAM) { |
|
|
|
allowedFeatures.push('cnam'); |
|
|
|
|
|
|
|
if ('cnam' in numberData) { |
|
|
|
if (_.has(numberData, 'cnam')) { |
|
|
|
callerIdNameInput.val(numberData.cnam.display_name); |
|
|
|
} else { |
|
|
|
callerIdNameInput.val(''); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
callback && callback(allowedFeatures); |
|
|
|
waterfallCallback(null, allowedFeatures); |
|
|
|
} |
|
|
|
], function hideOrShowFeatureSections(err, allowedFeatures) { |
|
|
|
_.each(editableFeatures, function(featureName) { |
|
|
|
var $featureSection = popupTemplate.find('.number-feature[data-feature="' + featureName + '"]'), |
|
|
|
isFeatureAllowed = _.includes(allowedFeatures, featureName), |
|
|
|
action = isFeatureAllowed ? 'slideDown' : 'slideUp'; |
|
|
|
|
|
|
|
$featureSection[action](); |
|
|
|
}); |
|
|
|
} else { |
|
|
|
callback && callback(allowedFeatures); |
|
|
|
} |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
popupTemplate.find('.cancel-link').on('click', function() { |
|
|
|
|