Browse Source

UI-2425: fix features in smartpbx with new back-end field

4.3
Jean-Roch Maitre 9 years ago
parent
commit
4c2ecc83d2
8 changed files with 132 additions and 112 deletions
  1. +6
    -2
      submodules/groups/groups.js
  2. +7
    -4
      submodules/strategy/strategy.js
  3. +17
    -14
      submodules/users/users.js
  4. +20
    -18
      views/groups-numbers.html
  5. +20
    -18
      views/groups-numbersItemRow.html
  6. +22
    -20
      views/strategy-numbers.html
  7. +20
    -18
      views/users-numbers.html
  8. +20
    -18
      views/users-numbersItemRow.html

+ 6
- 2
submodules/groups/groups.js View File

@ -1191,9 +1191,10 @@ define(function(require){
number.viewFeatures = $.extend(true, {}, features);
number.phoneNumber = number.id;
monster.util.populateBooleansNumberFeatures(number);
number.extra.hasFeatures = number.extra.hasE911 || number.extra.hasPrepend || number.extra.hasCnam;
var rowTemplate = $(monster.template(self, 'groups-numbersItemRow', {
isCnamEnabled: monster.util.isNumberFeatureEnabled('cnam'),
isE911Enabled: monster.util.isNumberFeatureEnabled('e911'),
number: number
}));
@ -1493,6 +1494,9 @@ define(function(require){
}
});
monster.util.populateBooleansNumberFeatures(number);
number.extra.hasFeatures = number.extra.hasE911 || number.extra.hasPrepend || number.extra.hasCnam;
if(!number.hasOwnProperty('used_by') || number.used_by === '') {
response.unassignedNumbers[id] = number;
response.countSpare++;


+ 7
- 4
submodules/strategy/strategy.js View File

@ -394,7 +394,9 @@ define(function(require){
numbers: $.map(numbers, function(val, key) {
if(val!=="0") {
var ret = {
number: val,
number: {
id: val
},
features: $.extend(true, {}, strategyData.numberFeatures)
};
@ -402,14 +404,15 @@ define(function(require){
_.each(accountNumbers[val].features, function(feature) {
ret.features[feature].active = 'active';
});
ret.isLocal = accountNumbers[val].features.indexOf('local') > -1;
ret.number = $.extend(true, accountNumbers[val], ret.number);
}
monster.util.populateBooleansNumberFeatures(ret.number);
ret.number.extra.hasFeatures = ret.number.extra.hasE911 || ret.number.extra.hasPrepend || ret.number.extra.hasCnam;
return ret;
}
}),
isCnamEnabled: monster.util.isNumberFeatureEnabled('cnam'),
isE911Enabled: monster.util.isNumberFeatureEnabled('e911'),
spareLinkEnabled: (_.countBy(accountNumbers, function(number) {return number.used_by ? 'assigned' : 'spare';})['spare'] > 0)
},
template = $(monster.template(self, 'strategy-'+templateName, templateData));


+ 17
- 14
submodules/users/users.js View File

@ -70,7 +70,7 @@ define(function(require){
monster.ui.highlight(cells);
}
if ( dataTemplate.users.length == 0) {
if ( dataTemplate.users.length === 0) {
parent.find('.grid-row.title').css('display', 'none');
parent.find('.no-users-row').css('display', 'block');
} else {
@ -1121,8 +1121,6 @@ define(function(require){
template
.find('.list-assigned-items')
.append($(monster.template(self, 'users-numbersItemRow', {
isCnamEnabled: monster.util.isNumberFeatureEnabled('cnam'),
isE911Enabled: monster.util.isNumberFeatureEnabled('e911'),
number: val
})));
@ -1152,9 +1150,10 @@ define(function(require){
number.viewFeatures = $.extend(true, {}, features);
number.phoneNumber = number.id;
monster.util.populateBooleansNumberFeatures(number);
number.extra.hasFeatures = number.extra.hasE911 || number.extra.hasPrepend || number.extra.hasCnam;
var rowTemplate = $(monster.template(self, 'users-numbersItemRow', {
isCnamEnabled: monster.util.isNumberFeatureEnabled('cnam'),
isE911Enabled: monster.util.isNumberFeatureEnabled('e911'),
number: number
}));
@ -2724,32 +2723,33 @@ define(function(require){
},
usersGetNumbersTemplate: function(userId, callback) {
var self = this;
var self = this,
template;
self.usersGetNumbersData(userId, function(results) {
self.usersFormatNumbersData(userId, results, function(results) {
template = $(monster.template(self, 'users-numbers', $.extend(true, {}, results, {
isCnamEnabled: monster.util.isNumberFeatureEnabled('cnam'),
isE911Enabled: monster.util.isNumberFeatureEnabled('e911')
})));
template = $(monster.template(self, 'users-numbers', results));
callback && callback(template, results);
});
}, true);
},
usersGetDevicesTemplate: function(userId, callback) {
var self = this;
var self = this,
template;
self.usersGetDevicesData(function(results) {
var results = self.usersFormatDevicesData(userId, results);
var formattedResults = self.usersFormatDevicesData(userId, results);
template = $(monster.template(self, 'users-devices', results));
template = $(monster.template(self, 'users-devices', formattedResults));
callback && callback(template, results);
});
},
usersGetExtensionsTemplate: function(userId, callback) {
var self = this;
var self = this,
template;
self.usersGetNumbersData(userId, function(results) {
self.usersFormatNumbersData(userId, results, function(results) {
template = $(monster.template(self, 'users-extensions', results));
@ -2822,6 +2822,9 @@ define(function(require){
}
});
monster.util.populateBooleansNumberFeatures(number);
number.extra.hasFeatures = number.extra.hasE911 || number.extra.hasPrepend || number.extra.hasCnam;
/* Adding to spare numbers */
if(!number.hasOwnProperty('used_by') || number.used_by === '') {
response.countSpare++;


+ 20
- 18
views/groups-numbers.html View File

@ -8,24 +8,26 @@
<div class="item-row" data-id="{{@key}}" data-search="{{formatPhoneNumber @key}} {{@key}} {{locality.city}} {{locality.country}}">
<div class="features-block pull-right">
<div class="edit-features">
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#unless isLocal}}
{{#if ../isCnamEnabled}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ @root.i18n.callerId }}</a></li>
{{/if}}
{{#if ../isE911Enabled}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ @root.i18n.e911 }}</a></li>
{{/if}}
{{/unless}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ @root.i18n.numberPrepend }}</a></li>
</ul>
</li>
</ul>
</div>
{{#if this.extra.hasFeatures}}
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#if this.extra.hasCnam}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ @root.i18n.callerId }}</a></li>
{{/if}}
{{#if this.extra.hasE911}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ @root.i18n.e911 }}</a></li>
{{/if}}
{{#if this.extra.hasPrepend}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ @root.i18n.numberPrepend }}</a></li>
{{/if}}
</ul>
</li>
</ul>
</div>
{{/if}}
</div>
<div class="features">
{{#compare this.state '===' 'port_in'}}


+ 20
- 18
views/groups-numbersItemRow.html View File

@ -1,24 +1,26 @@
<div class="item-row" data-id="{{number.phoneNumber}}">
<div class="features-block pull-right">
<div class="edit-features">
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#unless number.isLocal}}
{{#if isCnamEnabled}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ i18n.callerId }}</a></li>
{{/if}}
{{#if isE911Enabled}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ i18n.e911 }}</a></li>
{{/if}}
{{/unless}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ i18n.numberPrepend }}</a></li>
</ul>
</li>
</ul>
</div>
{{#if number.extra.hasFeatures}}
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#if number.extra.hasCnam}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ @root.i18n.callerId }}</a></li>
{{/if}}
{{#if number.extra.hasE911}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ @root.i18n.e911 }}</a></li>
{{/if}}
{{#if number.extra.hasPrepend}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ @root.i18n.numberPrepend }}</a></li>
{{/if}}
</ul>
</li>
</ul>
</div>
{{/if}}
</div>
<div class="features">
{{#compare number.state '===' 'port_in'}}


+ 22
- 20
views/strategy-numbers.html View File

@ -1,31 +1,33 @@
{{#each numbers}}
<div class="number-element">
<div class="number">
<button type="button" class="monster-button monster-button-danger remove-number" data-number="{{this.number}}" data-e911="{{this.features.e911.active}}">
<button type="button" class="monster-button monster-button-danger remove-number" data-number="{{this.number.id}}" data-e911="{{this.features.e911.active}}">
{{ @root.i18n.unassign }}
</button>
<span>{{formatPhoneNumber this.number}}</span>
<span>{{formatPhoneNumber this.number.id}}</span>
</div>
<div class="features-block pull-right">
<div class="edit-features">
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#unless isLocal}}
{{#if ../isCnamEnabled}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ @root.i18n.callerId }}</a></li>
{{/if}}
{{#if ../isE911Enabled}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ @root.i18n.e911 }}</a></li>
{{/if}}
{{/unless}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ @root.i18n.numberPrepend }}</a></li>
</ul>
</li>
</ul>
</div>
{{#if this.number.extra.hasFeatures}}
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#if this.number.extra.hasCnam}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ @root.i18n.callerId }}</a></li>
{{/if}}
{{#if this.number.extra.hasE911}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ @root.i18n.e911 }}</a></li>
{{/if}}
{{#if this.number.extra.hasPrepend}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ @root.i18n.numberPrepend }}</a></li>
{{/if}}
</ul>
</li>
</ul>
</div>
{{/if}}
</div>
<div class="features">
{{#each this.features}}


+ 20
- 18
views/users-numbers.html View File

@ -9,24 +9,26 @@
<div class="features-block pull-right">
{{#compare this.used_by "!==" "mobile"}}
<div class="edit-features">
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#unless this.isLocal}}
{{#if ../isCnamEnabled}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ @root.i18n.callerId }}</a></li>
{{/if}}
{{#if ../isE911Enabled}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ @root.i18n.e911 }}</a></li>
{{/if}}
{{/unless}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ @root.i18n.numberPrepend }}</a></li>
</ul>
</li>
</ul>
</div>
{{#if this.extra.hasFeatures}}
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#if this.extra.hasCnam}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ @root.i18n.callerId }}</a></li>
{{/if}}
{{#if this.extra.hasE911}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ @root.i18n.e911 }}</a></li>
{{/if}}
{{#if this.extra.hasPrepend}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ @root.i18n.numberPrepend }}</a></li>
{{/if}}
</ul>
</li>
</ul>
</div>
{{/if}}
</div>
{{/compare}}
<div class="features">


+ 20
- 18
views/users-numbersItemRow.html View File

@ -1,24 +1,26 @@
<div class="item-row" data-id="{{number.phoneNumber}}">
<div class="features-block pull-right">
<div class="edit-features">
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#unless number.isLocal}}
{{#if isCnamEnabled}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ i18n.callerId }}</a></li>
{{/if}}
{{#if isE911Enabled}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ i18n.e911 }}</a></li>
{{/if}}
{{/unless}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ i18n.numberPrepend }}</a></li>
</ul>
</li>
</ul>
</div>
{{#if number.extra.hasFeatures}}
<div class="navbar">
<ul class="nav pull-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i></a>
<ul class="dropdown-menu">
{{#if number.extra.hasCnam}}
<li><a class="callerId-number" href="#"><i class="fa fa-user"></i>{{ @root.i18n.callerId }}</a></li>
{{/if}}
{{#if number.extra.hasE911}}
<li><a class="e911-number" href="#"><i class="fa fa-ambulance"></i>{{ @root.i18n.e911 }}</a></li>
{{/if}}
{{#if number.extra.hasPrepend}}
<li><a class="prepend-number" href="#"><i class="fa fa-file-text-o"></i>{{ @root.i18n.numberPrepend }}</a></li>
{{/if}}
</ul>
</li>
</ul>
</div>
{{/if}}
</div>
<div class="features">
{{#compare number.state '===' 'port_in'}}


Loading…
Cancel
Save