@ -936,6 +936,19 @@ define(function(require) {
devicesFormatData : function ( data , dataList ) {
devicesFormatData : function ( data , dataList ) {
var self = this ,
var self = this ,
isNewDevice = ! _ . has ( data . device , 'id' ) ,
isNewDevice = ! _ . has ( data . device , 'id' ) ,
getNormalizedProvisionEntriesForKeyType = _ . partial ( function ( device , template , keyType ) {
var iterate = _ . get ( template , [ keyType , 'iterate' ] , 0 ) ,
entries = _ . get ( device , [ 'provision' , keyType ] , { } ) ,
getEntryValueOrDefault = _ . partial ( _ . get , entries , _ , {
type : 'none'
} ) ;
return _
. chain ( iterate )
. range ( )
. map ( getEntryValueOrDefault )
. value ( ) ;
} , data . device , data . template ) ,
keyActionsMod = _ . get (
keyActionsMod = _ . get (
self . appFlags . devices . provisionerConfigFlags ,
self . appFlags . devices . provisionerConfigFlags ,
[ 'brands' , _ . get ( data . device , 'provision.endpoint_brand' ) , 'keyFunctions' ] ,
[ 'brands' , _ . get ( data . device , 'provision.endpoint_brand' ) , 'keyFunctions' ] ,
@ -1019,29 +1032,6 @@ define(function(require) {
isNewDevice && deviceBaseDefaults ,
isNewDevice && deviceBaseDefaults ,
deviceDefaultsForType
deviceDefaultsForType
) ,
) ,
deviceOverrides = {
provision : _
. chain ( data . template )
. thru ( self . getKeyTypes )
. map ( function ( type ) {
return {
type : type ,
data : _
. chain ( data . template )
. get ( [ type , 'iterate' ] , 0 )
. range ( )
. map ( function ( index ) {
return _ . get ( data . device , [ 'provision' , type , index ] , {
type : 'none'
} ) ;
} )
. value ( )
} ;
} )
. keyBy ( 'type' )
. mapValues ( 'data' )
. value ( )
} ,
deviceData = _ . mergeWith (
deviceData = _ . mergeWith (
{ } ,
{ } ,
templateDefaults ,
templateDefaults ,
@ -1050,16 +1040,11 @@ define(function(require) {
function ( dest , src ) {
function ( dest , src ) {
return _ . every ( [ dest , src ] , _ . isArray ) ? src : undefined ;
return _ . every ( [ dest , src ] , _ . isArray ) ? src : undefined ;
}
}
) ,
mergedDevice = _ . merge (
{ } ,
deviceData ,
deviceOverrides
) ;
) ;
return _ . merge ( {
return _ . merge ( {
extra : {
extra : {
allowVMCellphone : ! _ . get ( merge dD evice, 'call_forward.require_keypress' , true ) ,
allowVMCellphone : ! _ . get ( deviceData , 'call_forward.require_keypress' , true ) ,
availableCodecs : {
availableCodecs : {
audio : [ ] ,
audio : [ ] ,
video : [ ]
video : [ ]
@ -1083,7 +1068,7 @@ define(function(require) {
. map ( function ( type ) {
. map ( function ( type ) {
var camelCasedType = _ . camelCase ( type ) ,
var camelCasedType = _ . camelCase ( type ) ,
i18n = _ . get ( self . i18n . active ( ) . devices . popupSettings . keys , camelCasedType ) ,
i18n = _ . get ( self . i18n . active ( ) . devices . popupSettings . keys , camelCasedType ) ,
entries = _ . get ( mergedDevice , [ 'provision' , type ] , [ ] ) ,
entries = getNormalizedProvisionEntriesForKeyType ( type ) ,
entriesCount = _ . size ( entries ) ;
entriesCount = _ . size ( entries ) ;
return _ . merge ( {
return _ . merge ( {
@ -1171,8 +1156,8 @@ define(function(require) {
help : _ . get ( i18n , 'help' )
help : _ . get ( i18n , 'help' )
} ;
} ;
} ) ,
} ) ,
rtpMethod : _ . get ( merge dD evice, 'media.encryption.enforce_security' , false )
? _ . head ( merge dD evice. media . encryption . methods )
rtpMethod : _ . get ( deviceData , 'media.encryption.enforce_security' , false )
? _ . head ( deviceData . media . encryption . methods )
: '' ,
: '' ,
selectedCodecs : {
selectedCodecs : {
audio : [ ] ,
audio : [ ] ,
@ -1186,7 +1171,7 @@ define(function(require) {
. value ( ) ;
. value ( ) ;
} )
} )
}
}
} , merge dD evice) ;
} , deviceData ) ;
} ,
} ,
/ * *
/ * *