TT#13650 Csc pbx seats groups adds and changes

As specified in meeting 20.03, we need to implement new fields and
tag fields. Need to implement both in rowwidget in view, manual bind
in controller, add in gridfilters form, and add controller logic to
handle tag fields both in pbxconfig and gridfilters.

Change-Id: I7dad57af0ee6fa40bad1cb839d2d9c17a127211f
changes/26/12426/12
Robert Axelsen 8 years ago
parent bef4aed9e5
commit 1f64b97a60

@ -12,9 +12,9 @@ Ext.define('NgcpCsc.model.GridFilters', {
'name',
'seats_extension',
'groups_extension',
'primary_number',
'alias_numbers',
'groups',
'numbers',
'phone_devices',
'hunt_policy',
'hunt_timeout',
'enabled',

@ -8,13 +8,30 @@ Ext.define('NgcpCsc.model.Seat', {
name: 'extension',
type: 'string'
}, {
name: 'groups',
name: 'primary_number',
type: 'string'
},{
name: 'numbers',
}, {
name: 'alias_numbers',
type: 'string'
}, {
name: 'phone_devices',
name: 'groups',
type: 'string'
}, {
name: 'alias_numbers_split',
type: 'string',
depends: ['alias_numbers'],
convert: function (v, record) {
var dataToSplit = record.data.alias_numbers.toString();
return dataToSplit.replace(/,/g, ", ");
}
}, {
name: 'groups_split',
type: 'string',
depends: ['groups'],
convert: function (v, record) {
var dataToSplit = record.data.groups.toString();
return dataToSplit.replace(/,/g, ", ");
}
}]
});

@ -0,0 +1,19 @@
Ext.define('NgcpCsc.store.AliasNumbers', {
extend: 'Ext.data.Store',
storeId: 'AliasNumbers',
autoLoad: true,
fields: ['number'],
proxy: {
type: 'ajax',
url: '/resources/data/aliasNumbers.json',
reader: {
type: 'json',
rootProperty: 'data'
}
}
});

@ -0,0 +1,17 @@
Ext.define('NgcpCsc.store.GroupNames', {
extend: 'Ext.data.Store',
storeId: 'GroupNames',
autoLoad: true,
proxy: {
type: 'ajax',
url: '/resources/data/groupNames.json',
reader: {
type: 'json',
rootProperty: 'data'
}
}
});

@ -0,0 +1,17 @@
Ext.define('NgcpCsc.store.HuntPolicies', {
extend: 'Ext.data.Store',
storeId: 'HuntPolicies',
autoLoad: true,
proxy: {
type: 'ajax',
url: '/resources/data/huntPolicies.json',
reader: {
type: 'json',
rootProperty: 'data'
}
}
});

@ -0,0 +1,17 @@
Ext.define('NgcpCsc.store.PrimaryNumbers', {
extend: 'Ext.data.Store',
storeId: 'PrimaryNumbers',
autoLoad: true,
proxy: {
type: 'ajax',
url: '/resources/data/primaryNumbers.json',
reader: {
type: 'json',
rootProperty: 'data'
}
}
});

@ -6,11 +6,8 @@ Ngcp.csc.formatter.timeSince('2016-10-13T11:14:12.274000000+02:00');
Ext.define('Ngcp.csc.formatter', {
statics: {
timeSince: function (date) {
var date = new Date(date);
var seconds = Math.floor((new Date() - date) / 1000);
var interval = Math.floor(seconds / 31536000);
if (interval > 1) {
@ -35,4 +32,4 @@ Ext.define('Ngcp.csc.formatter', {
return Math.floor(seconds) + " seconds";
}
}
})
});

@ -1065,6 +1065,20 @@ Ext.define('Ngcp.csc.locales', {
de: 'Groups',
fr: 'Groups',
sp: 'Groups'
},
primary_number: {
en: 'Primary number',
it: 'Primary number',
de: 'Primary number',
fr: 'Primary number',
sp: 'Primary number'
},
alias_numbers: {
en: 'Alias numbers',
it: 'Alias numbers',
de: 'Alias numbers',
fr: 'Alias numbers',
sp: 'Alias numbers'
}
},
settings: {
@ -1652,12 +1666,12 @@ Ext.define('Ngcp.csc.locales', {
fr: 'Enter new phone',
sp: 'Enter new phone'
},
enter_new_hunt_policy: {
en: 'Enter new hunt policy',
it: 'Enter new hunt policy',
de: 'Enter new hunt policy',
fr: 'Enter new hunt policy',
sp: 'Enter new hunt policy'
choose_new_hunt_policy: {
en: 'Choose new hunt policy',
it: 'Choose new hunt policy',
de: 'Choose new hunt policy',
fr: 'Choose new hunt policy',
sp: 'Choose new hunt policy'
},
enter_new_hunt_timeout: {
en: 'Enter new hunt timeout',
@ -1694,12 +1708,12 @@ Ext.define('Ngcp.csc.locales', {
fr: 'Cancel operation',
sp: 'Cancel operation'
},
enter_new_group_name: {
en: 'Enter new group name',
it: 'Enter new group name',
de: 'Enter new group name',
fr: 'Enter new group name',
sp: 'Enter new group name'
choose_one_or_more_groups: {
en: 'Choose one or more group names',
it: 'Choose one or more group names',
de: 'Choose one or more group names',
fr: 'Choose one or more group names',
sp: 'Choose one or more group names'
},
choose_one_or_more_alias_numbers: {
en: 'Choose one or more alias numbers',

@ -26,4 +26,20 @@
font-size: 15px;
margin-left: -10px;
}
.x-box-item {
.x-panel-body,
label {
background: white;
}
}
.pbx-hunt-labels-and-fields {
display: inline-block;
float: left;
}
.pbx-margin-top {
margin-top: 5px !important;
}
}

@ -29,7 +29,11 @@ Ext.define('NgcpCsc.Application', {
'Devices',
'DevicesList',
'Destinations',
'Sounds'
'Sounds',
'AliasNumbers',
'GroupNames',
'PrimaryNumbers',
'HuntPolicies'
],
launch: function() {

@ -151,10 +151,14 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
change: 'submitFilters'
}
}, {
xtype: 'textfield',
xtype: 'combo',
labelAlign: 'top',
bind: '{filtergrid.group}',
fieldLabel: Ngcp.csc.locales.common.group[localStorage.getItem('languageSelected')],
store: 'PrimaryNumbers',
bind: '{filtergrid.primary_number}',
displayField: 'number',
valueField: 'number',
editable: false,
fieldLabel: Ngcp.csc.locales.filters.primary_number[localStorage.getItem('languageSelected')],
listeners: {
delay: 100,
change: 'submitFilters'
@ -164,19 +168,27 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
flex: 1,
userCls: 'small-100 big-50',
items: [{
xtype: 'textfield',
xtype: 'tagfield',
labelAlign: 'top',
bind: '{filtergrid.numbers}',
fieldLabel: Ngcp.csc.locales.filters.numbers[localStorage.getItem('languageSelected')],
store: 'AliasNumbers',
displayField: 'number',
valueField: 'number',
width: 250,
bind: '{filtergrid.alias_numbers}',
fieldLabel: Ngcp.csc.locales.filters.alias_numbers[localStorage.getItem('languageSelected')],
listeners: {
delay: 100,
change: 'submitFilters'
}
}, {
xtype: 'textfield',
xtype: 'tagfield',
labelAlign: 'top',
bind: '{filtergrid.phone_devices}',
fieldLabel: Ngcp.csc.locales.filters.phone_devices[localStorage.getItem('languageSelected')],
store: 'GroupNames',
displayField: 'group',
valueField: 'group',
width: 250,
bind: '{filtergrid.groups}',
fieldLabel: Ngcp.csc.locales.filters.groups[localStorage.getItem('languageSelected')],
listeners: {
delay: 100,
change: 'submitFilters'
@ -205,8 +217,12 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
change: 'submitFilters'
}
}, {
xtype: 'textfield',
xtype: 'combo',
labelAlign: 'top',
store: 'HuntPolicies',
displayField: 'policy',
valueField: 'policy',
editable: false,
bind: '{filtergrid.hunt_policy}',
fieldLabel: Ngcp.csc.locales.filters.hunt_policy[localStorage.getItem('languageSelected')],
listeners: {

@ -179,7 +179,6 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFiltersController', {
vm.get('filtergrid.chat') ? 'chat' : null,
vm.get('filtergrid.fax') ? 'fax' : null];
var retVal = true;
if (new Date(record.get('start_time')) < new Date(fromFilter) ||
new Date(record.get('start_time')) > new Date(toFilter).setHours(23,59,59,999) ||
fieldInput && record.get('source_cli').toLowerCase().indexOf(fieldInput) == -1 ||
@ -194,17 +193,17 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFiltersController', {
applyPbxconfigSeatsFilters: function(record) {
var vm = this.getViewModel();
var fieldInput = vm.get('filtergrid.headerBarFieldInput') || "";
var fieldInput = vm.get('filtergrid.headerBarFieldInput').toLowerCase() || "";
var extension = vm.get('filtergrid.seats_extension') ? vm.get('filtergrid.seats_extension').toLowerCase().split(',') : [];
var group = vm.get('filtergrid.group') ? vm.get('filtergrid.group').toLowerCase().split(',') : [];
var numbers = vm.get('filtergrid.numbers') || "";
var phone_devices = vm.get('filtergrid.phone_devices') ? vm.get('filtergrid.phone_devices').toLowerCase().split(',') : [];
var primary_number = vm.get('filtergrid.primary_number') ? vm.get('filtergrid.primary_number').split(',') : [];
var alias_numbers = vm.get('filtergrid.alias_numbers') ? vm.get('filtergrid.alias_numbers').toString().split(',') : [];
var groups = vm.get('filtergrid.groups') ? vm.get('filtergrid.groups').toString().split(',') : [];
var retVal = true;
if (fieldInput && record.get('name').toLowerCase().indexOf(fieldInput) == -1 ||
extension && record.get('extension').toLowerCase().indexOf(extension) == -1 ||
group && record.get('group').toLowerCase().indexOf(group) == -1 ||
numbers && record.get('numbers').toLowerCase().indexOf(numbers) == -1 ||
phone_devices && record.get('phone_devices').toLowerCase().indexOf(phone_devices) == -1
primary_number && record.get('primary_number').indexOf(primary_number) == -1 ||
alias_numbers && record.get('alias_numbers').indexOf(alias_numbers) == -1 ||
groups && record.get('groups').indexOf(groups) == -1
) {
retVal = false;
}
@ -234,9 +233,7 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFiltersController', {
var deviceProfile = vm.get('filtergrid.device') || "";
var mac = vm.get('filtergrid.mac') || "";
var status = [vm.get('filtergrid.enabled') ? 'enabled' : null, vm.get('filtergrid.disabled') ? 'disabled' : null];
var retVal = true;
if (fieldInput && record.get('name').toLowerCase().indexOf(fieldInput) == -1 ||
deviceProfile && record.get('device').indexOf(deviceProfile) == -1 ||
mac && record.get('mac').indexOf(mac) == -1 ||

@ -132,7 +132,6 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
var formFields = form.query('textfield');
var invalidCheck = 0;
for (var field in formFields) {
var recKey = formFields[field].id.split('-')[2];
var fieldValue = formFields[field].value;
if (Ext.isEmpty(formFields[field].value)) invalidCheck ++;
};
@ -218,20 +217,22 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
var mainNameLabel = Ext.ComponentQuery.query('#' + viewName + '-label-mainname-' + id) || '';
var nameField = Ext.ComponentQuery.query('#' + viewName + '-textfield-name-' + id) || '';
var extensionField = Ext.ComponentQuery.query('#' + viewName + '-textfield-extension-' + id) || '';
var groupField = Ext.ComponentQuery.query('#' + viewName + '-textfield-group-' + id) || '';
var numbersField = Ext.ComponentQuery.query('#' + viewName + '-textfield-numbers-' + id) || '';
var phoneField = Ext.ComponentQuery.query('#' + viewName + '-textfield-phone_devices-' + id) || '';
var huntPolicyField = Ext.ComponentQuery.query('#' + viewName + '-textfield-hunt_policy-' + id) || '';
var primaryNumberField = Ext.ComponentQuery.query('#' + viewName + '-combo-primary_number-' + id) || '';
var aliasNumbersField = Ext.ComponentQuery.query('#' + viewName + '-tagfield-alias_numbers-' + id) || '';
var groupsField = Ext.ComponentQuery.query('#' + viewName + '-tagfield-groups-' + id) || '';
var huntPolicyField = Ext.ComponentQuery.query('#' + viewName + '-combo-hunt_policy-' + id) || '';
var huntTimeoutField = Ext.ComponentQuery.query('#' + viewName + '-textfield-hunt_timeout-' + id) || '';
var deviceField = Ext.ComponentQuery.query('#' + viewName + '-textfield-device-' + id) || '';
var macField = Ext.ComponentQuery.query('#' + viewName + '-textfield-mac-' + id) || '';
var statusField = Ext.ComponentQuery.query('#' + viewName + '-textfield-status-' + id) || '';
var extensionLabel = Ext.ComponentQuery.query('#' + viewName + '-label-extension-' + id) || '';
var groupLabel = Ext.ComponentQuery.query('#' + viewName + '-label-group-' + id) || '';
var numbersLabel = Ext.ComponentQuery.query('#' + viewName + '-label-numbers-' + id) || '';
var phoneLabel = Ext.ComponentQuery.query('#' + viewName + '-label-phone_devices-' + id) || '';
var groupsLabel = Ext.ComponentQuery.query('#' + viewName + '-label-groups-' + id) || '';
var primaryNumberLabel = Ext.ComponentQuery.query('#' + viewName + '-label-primary_number-' + id) || '';
var aliasNumbersLabel = Ext.ComponentQuery.query('#' + viewName + '-label-alias_numbers-' + id) || '';
var huntPolicyLabel = Ext.ComponentQuery.query('#' + viewName + '-label-hunt_policy-' + id) || '';
var huntTimeoutLabel = Ext.ComponentQuery.query('#' + viewName + '-label-hunt_timeout-' + id) || '';
var huntTimeoutPreLabel = Ext.ComponentQuery.query('#' + viewName + '-prelabel-hunt_timeout-' + id) || '';
var huntTimeoutPostLabel = Ext.ComponentQuery.query('#' + viewName + '-postlabel-hunt_timeout-' + id) || '';
var deviceLabel = Ext.ComponentQuery.query('#' + viewName + '-label-device-' + id) || '';
var macLabel = Ext.ComponentQuery.query('#' + viewName + '-label-mac-' + id) || '';
var statusLabel = Ext.ComponentQuery.query('#' + viewName + '-label-status-' + id) || '';
@ -241,18 +242,17 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
switch (viewName) {
case 'seats':
extensionLabel[0].setHidden(labelHide);
groupLabel[0].setHidden(labelHide);
numbersLabel[0].setHidden(labelHide);
phoneLabel[0].setHidden(labelHide);
nameField[0].setHidden(fieldHide);
primaryNumberLabel[0].setHidden(labelHide);
aliasNumbersLabel[0].setHidden(labelHide);
groupsLabel[0].setHidden(labelHide);
extensionField[0].setHidden(fieldHide);
groupField[0].setHidden(fieldHide);
numbersField[0].setHidden(fieldHide);
phoneField[0].setHidden(fieldHide);
primaryNumberField[0].setHidden(fieldHide);
aliasNumbersField[0].setHidden(fieldHide);
groupsField[0].setHidden(fieldHide);
// Due to focus listener workaround. Focus listener fires setFieldValue() function
phoneField[0].focus();
numbersField[0].focus();
groupField[0].focus();
groupsField[0].focus();
aliasNumbersField[0].focus();
primaryNumberField[0].focus();
extensionField[0].focus();
nameField[0].focus();
break;
@ -260,7 +260,9 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
extensionLabel[0].setHidden(labelHide);
huntPolicyLabel[0].setHidden(labelHide);
huntTimeoutLabel[0].setHidden(labelHide);
nameField[0].setHidden(fieldHide);
// To adjust a little bit 'for' and 'seconds' labels downwards when fields are shown
huntTimeoutPreLabel[0].toggleCls('pbx-margin-top');
huntTimeoutPostLabel[0].toggleCls('pbx-margin-top');
extensionField[0].setHidden(fieldHide);
huntPolicyField[0].setHidden(fieldHide);
huntTimeoutField[0].setHidden(fieldHide);
@ -273,7 +275,6 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
deviceLabel[0].setHidden(labelHide);
macLabel[0].setHidden(labelHide);
statusLabel[0].setHidden(labelHide);
nameField[0].setHidden(fieldHide);
deviceField[0].setHidden(fieldHide);
macField[0].setHidden(fieldHide);
statusField[0].setHidden(fieldHide);

@ -59,13 +59,13 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.GroupsGrid', {
},
hidden: true,
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.name[localStorage.getItem('languageSelected')],
width: 120
text: Ngcp.csc.locales.pbxconfig.group_name[localStorage.getItem('languageSelected')],
width: 130
}, {
xtype: 'textfield',
required: true,
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.enter_new_name[localStorage.getItem('languageSelected')],
emptyText: Ngcp.csc.locales.pbxconfig.choose_one_or_more_groups[localStorage.getItem('languageSelected')],
bind: {
id: 'groups-textfield-name-{record.id}'
},
@ -85,7 +85,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.GroupsGrid', {
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.extension[localStorage.getItem('languageSelected')],
width: 120
width: 130
}, {
xtype: 'label',
hidden: false,
@ -109,68 +109,91 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.GroupsGrid', {
}
}]
}, {
name: 'hunt_policy',
defaults: {
padding: '0 0 15 0'
},
xtype: 'container',
layout: 'hbox',
items: [{
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.hunt_policy[localStorage.getItem('languageSelected')],
width: 120
}, {
xtype: 'label',
hidden: false,
bind: {
id: 'groups-label-hunt_policy-{record.id}',
text: '{record.hunt_policy}'
}
}, {
xtype: 'textfield',
required: true,
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.enter_new_hunt_policy[localStorage.getItem('languageSelected')],
bind: {
id: 'groups-textfield-hunt_policy-{record.id}'
name: 'hunt_policy',
defaults: {
padding: '0 0 15 0'
},
listeners: {
focus: {
fn: 'setFieldValue'
items: [{
xtype: 'label',
cls: 'pbx-hunt-labels-and-fields pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.hunt_policy[localStorage.getItem('languageSelected')],
width: 130
}, {
xtype: 'label',
cls: 'pbx-hunt-labels-and-fields',
hidden: false,
bind: {
id: 'groups-label-hunt_policy-{record.id}',
text: '{record.hunt_policy}'
}
}, {
xtype: 'combo',
cls: 'pbx-hunt-labels-and-fields',
store: 'HuntPolicies',
required: true,
editable: false,
displayField: 'policy',
valueField: 'policy',
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.choose_new_hunt_policy[localStorage.getItem('languageSelected')],
bind: {
id: 'groups-combo-hunt_policy-{record.id}'
},
specialkey: 'onEnterPressed'
}
}]
}, {
name: 'hunt_timeout',
defaults: {
padding: '0 0 15 0'
},
items: [{
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.hunt_timeout[localStorage.getItem('languageSelected')],
width: 120
listeners: {
focus: {
fn: 'setFieldValue'
},
specialkey: 'onEnterPressed'
}
}]
}, {
xtype: 'label',
hidden: false,
bind: {
id: 'groups-label-hunt_timeout-{record.id}',
text: '{record.hunt_timeout}'
}
}, {
xtype: 'textfield',
required: true,
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.enter_new_hunt_timeout[localStorage.getItem('languageSelected')],
bind: {
id: 'groups-textfield-hunt_timeout-{record.id}'
name: 'hunt_timeout',
defaults: {
padding: '0 0 15 0'
},
listeners: {
focus: {
fn: 'setFieldValue'
items: [{
xtype: 'label',
cls: 'pbx-hunt-labels-and-fields pbx-hunttimeout-labels',
margin: '0 10 0 10',
text: Ngcp.csc.locales.pbxconfig.for[localStorage.getItem('languageSelected')],
bind: {
id: 'groups-prelabel-hunt_timeout-{record.id}'
}
}, {
xtype: 'label',
cls: 'pbx-hunt-labels-and-fields',
bind: {
id: 'groups-label-hunt_timeout-{record.id}',
text: '{record.hunt_timeout}'
}
}, {
xtype: 'textfield',
cls: 'pbx-hunt-labels-and-fields',
required: true,
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.enter_new_hunt_timeout[localStorage.getItem('languageSelected')],
bind: {
id: 'groups-textfield-hunt_timeout-{record.id}'
},
specialkey: 'onEnterPressed'
}
listeners: {
focus: {
fn: 'setFieldValue'
},
specialkey: 'onEnterPressed'
}
}, {
xtype: 'label',
cls: 'pbx-hunt-labels-and-fields pbx-hunttimeout-labels',
margin: '0 0 0 10',
text: Ngcp.csc.locales.pbxconfig.seconds[localStorage.getItem('languageSelected')],
width: 130,
bind: {
id: 'groups-postlabel-hunt_timeout-{record.id}'
}
}]
}]
}, {
xtype: 'label',

@ -60,12 +60,13 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsGrid', {
hidden: true,
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.name[localStorage.getItem('languageSelected')],
width: 120
width: 130
},
{
xtype: 'textfield',
required: true,
hidden: true,
width: 250,
emptyText: Ngcp.csc.locales.pbxconfig.enter_new_name[localStorage.getItem('languageSelected')],
bind: {
id: 'seats-textfield-name-{record.id}'
@ -86,7 +87,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsGrid', {
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.extension[localStorage.getItem('languageSelected')],
width: 120
width: 130
}, {
xtype: 'label',
hidden: false,
@ -98,6 +99,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsGrid', {
xtype: 'textfield',
required: true,
hidden: true,
width: 250,
emptyText: Ngcp.csc.locales.pbxconfig.enter_new_extension[localStorage.getItem('languageSelected')],
bind: {
id: 'seats-textfield-extension-{record.id}'
@ -110,29 +112,32 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsGrid', {
}
}]
}, {
name: 'group',
name: 'primary_number',
defaults: {
padding: '0 0 15 0'
},
items: [{
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.common.group[localStorage.getItem('languageSelected')],
width: 120
text: Ngcp.csc.locales.pbxconfig.primary_number[localStorage.getItem('languageSelected')],
width: 130
}, {
xtype: 'label',
hidden: false,
bind: {
id: 'seats-label-group-{record.id}',
text: '{record.group}'
id: 'seats-label-primary_number-{record.id}',
text: '{record.primary_number}'
}
}, {
xtype: 'textfield',
required: true,
xtype: 'combo',
store: 'PrimaryNumbers',
editable: false,
width: 250,
displayField: 'number',
valueField: 'number',
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.enter_new_groups[localStorage.getItem('languageSelected')],
emptyText: Ngcp.csc.locales.pbxconfig.choose_new_primary_number[localStorage.getItem('languageSelected')],
bind: {
id: 'seats-textfield-group-{record.id}'
id: 'seats-combo-primary_number-{record.id}'
},
listeners: {
focus: {
@ -142,29 +147,31 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsGrid', {
}
}]
}, {
name: 'numbers',
name: 'alias_numbers',
defaults: {
padding: '0 0 15 0'
},
items: [{
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.numbers[localStorage.getItem('languageSelected')],
width: 120
text: Ngcp.csc.locales.pbxconfig.alias_numbers[localStorage.getItem('languageSelected')],
width: 130
}, {
xtype: 'label',
hidden: false,
bind: {
id: 'seats-label-numbers-{record.id}',
text: '{record.numbers}'
id: 'seats-label-alias_numbers-{record.id}',
text: '{record.alias_numbers_split}'
}
}, {
xtype: 'textfield',
required: true,
xtype: 'tagfield',
valueField: 'number',
store: 'AliasNumbers',
width: 250,
displayField: 'number',
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.enter_new_numbers[localStorage.getItem('languageSelected')],
emptyText: Ngcp.csc.locales.pbxconfig.choose_one_or_more_alias_numbers[localStorage.getItem('languageSelected')],
bind: {
id: 'seats-textfield-numbers-{record.id}'
id: 'seats-tagfield-alias_numbers-{record.id}'
},
listeners: {
focus: {
@ -174,29 +181,33 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsGrid', {
}
}]
}, {
name: 'phone_devices',
name: 'groups',
defaults: {
padding: '0 0 15 0'
},
items: [{
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.phone_devices[localStorage.getItem('languageSelected')],
width: 120
text: Ngcp.csc.locales.common.groups[localStorage.getItem('languageSelected')],
width: 130
}, {
xtype: 'label',
hidden: false,
bind: {
id: 'seats-label-phone_devices-{record.id}',
text: '{record.phone_devices}'
id: 'seats-label-groups-{record.id}',
text: '{record.groups_split}'
}
}, {
xtype: 'textfield',
required: true,
xtype: 'tagfield',
valueField: 'group',
store: 'GroupNames',
width: 250,
displayField: 'group',
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.enter_new_phone[localStorage.getItem('languageSelected')],
emptyText: Ngcp.csc.locales.pbxconfig.choose_one_or_more_groups[localStorage.getItem('languageSelected')],
bind: {
id: 'seats-textfield-phone_devices-{record.id}'
id: 'seats-tagfield-groups-{record.id}'
},
listeners: {
focus: {

@ -0,0 +1,90 @@
{
"data": [{
"number": "012341"
},
{
"number": "012342"
},
{
"number": "012343"
},
{
"number": "012344"
},
{
"number": "012345"
},
{
"number": "012346"
},
{
"number": "012347"
},
{
"number": "012348"
},
{
"number": "012349"
},
{
"number": "012350"
},
{
"number": "012351"
},
{
"number": "012352"
},
{
"number": "012353"
},
{
"number": "012354"
},
{
"number": "012355"
},
{
"number": "012356"
},
{
"number": "012357"
},
{
"number": "012358"
},
{
"number": "012359"
},
{
"number": "012360"
},
{
"number": "012361"
},
{
"number": "012362"
},
{
"number": "012363"
},
{
"number": "012364"
},
{
"number": "012365"
},
{
"number": "012366"
},
{
"number": "012367"
},
{
"number": "012368"
},
{
"number": "012369"
}
]
}

@ -0,0 +1,21 @@
{
"data": [{
"group": "Marketing"
},
{
"group": "Sales"
},
{
"group": "Development"
},
{
"group": "Operations"
},
{
"group": "Administration"
},
{
"group": "Customer Support"
}
]
}

@ -1,27 +1,27 @@
{
"data": [{
"id" : 1,
"name": "Group1",
"extension": "ext1",
"hunt_policy": "serial",
"hunt_timeout": "123"
"name": "Marketing",
"extension": "201",
"hunt_policy": "Serial",
"hunt_timeout": "60"
},{
"id" : 2,
"name":"Group2",
"extension": "ext2",
"hunt_policy": "parallel",
"hunt_timeout": "456"
"name":"Development",
"extension": "301",
"hunt_policy": "Parallel",
"hunt_timeout": "320"
}, {
"id" : 3,
"name":"Group3",
"extension": "ext3",
"hunt_policy": "sequential",
"hunt_timeout": "789"
"name":"Sales",
"extension": "401",
"hunt_policy": "Sequential",
"hunt_timeout": "10"
}, {
"id" : 4,
"name":"Group4",
"extension": "ext4",
"hunt_policy": "serial",
"hunt_timeout": "123, 987"
"name":"Operations",
"extension": "601",
"hunt_policy": "Serial",
"hunt_timeout": "40"
}]
}

@ -0,0 +1,12 @@
{
"data": [{
"policy": "Serial"
},
{
"policy": "Sequential"
},
{
"policy": "Parallel"
}
]
}

@ -0,0 +1,78 @@
{
"data": [{
"number": "43991001"
},
{
"number": "43991002"
},
{
"number": "43991003"
},
{
"number": "43991004"
},
{
"number": "43991005"
},
{
"number": "43991006"
},
{
"number": "43991007"
},
{
"number": "43991008"
},
{
"number": "43991009"
},
{
"number": "43991010"
},
{
"number": "43991011"
},
{
"number": "43991012"
},
{
"number": "43991013"
},
{
"number": "43991014"
},
{
"number": "43991015"
},
{
"number": "43991016"
},
{
"number": "43991017"
},
{
"number": "43991018"
},
{
"number": "43991019"
},
{
"number": "43991020"
},
{
"number": "43991021"
},
{
"number": "43991022"
},
{
"number": "43991023"
},
{
"number": "43991024"
},
{
"number": "43991025"
}
]
}

@ -1,89 +1,87 @@
{
"data": [{
"id" : 1,
"id": 1,
"name": "Seat1",
"extension": "ext1",
"group": "group2",
"numbers": "345, 789",
"phone_devices": "dev1"
},{
"id" : 2,
"extension": "202",
"primary_number": "43991001",
"alias_numbers": ["012341", "012342"],
"groups": ["Marketing", "Sales"]
}, {
"id": 2,
"name": "Seat2",
"extension": "ext2",
"group": "group3",
"numbers": "123",
"phone_devices": "dev3"
"extension": "402",
"primary_number": "43991019",
"alias_numbers": ["012343", "012344", "012345"],
"groups": ["Marketing", "Operations", "Sales"]
}, {
"id" : 3,
"id": 3,
"name": "Seat3",
"extension": "ext3",
"group": "group4",
"numbers": "421",
"phone_devices": "dev2"
}
, {
"id" : 4,
"extension": "302",
"primary_number": "43991021",
"alias_numbers": ["012346"],
"groups": ["Marketing"]
}, {
"id": 4,
"name": "Seat4",
"extension": "ext4",
"group": "group4",
"numbers": "444, 123, 954",
"phone_devices": "dev4"
"extension": "602",
"primary_number": "43991008",
"alias_numbers": ["012347", "012348"],
"groups": ["Marketing", "Sales"]
}, {
"id" : 5,
"id": 5,
"name": "Seat5",
"extension": "ext1",
"group": "group2",
"numbers": "345, 789",
"phone_devices": "dev1"
"extension": "303",
"primary_number": "43991005",
"alias_numbers": ["012349"],
"groups": ["Marketing", "Sales"]
}, {
"id" : 6,
"id": 6,
"name": "Seat6",
"extension": "ext2",
"group": "group3",
"numbers": "123",
"phone_devices": "dev3"
"extension": "603",
"primary_number": "43991020",
"alias_numbers": ["012350", "012351", "012352", "012353"],
"groups": ["Development", "Operations"]
}, {
"id" : 7,
"id": 7,
"name": "Seat7",
"extension": "ext3",
"group": "group4",
"numbers": "421",
"phone_devices": "dev2"
"extension": "403",
"primary_number": "43991016",
"alias_numbers": ["012354"],
"groups": ["Development", "Operations"]
}, {
"id" : 8,
"id": 8,
"name": "Seat8",
"extension": "ext4",
"group": "group4",
"numbers": "444, 123, 954",
"phone_devices": "dev4"
"extension": "304",
"primary_number": "43991013",
"alias_numbers": ["012355"],
"groups": ["Development", "Operations"]
}, {
"id" : 9,
"id": 9,
"name": "Seat9",
"extension": "ext1",
"group": "group2",
"numbers": "345, 789",
"phone_devices": "dev1"
"extension": "203",
"primary_number": "43991023",
"alias_numbers": ["012356"],
"groups": ["Sales"]
}, {
"id" : 10,
"id": 10,
"name": "Seat10",
"extension": "ext2",
"group": "group3",
"numbers": "123",
"phone_devices": "dev3"
"extension": "305",
"primary_number": "43991004",
"alias_numbers": ["012357", "012358"],
"groups": ["Sales"]
}, {
"id" : 11,
"id": 11,
"name": "Seat11",
"extension": "ext3",
"group": "group4",
"numbers": "421",
"phone_devices": "dev2"
"extension": "204",
"primary_number": "43991011",
"alias_numbers": ["012359", "012360", "012361"],
"groups": ["Sales"]
}, {
"id" : 12,
"id": 12,
"name": "Seat12",
"extension": "ext4",
"group": "group4",
"numbers": "444, 123, 954",
"phone_devices": "dev4"
}
]
"extension": "404",
"primary_number": "43991018",
"alias_numbers": ["012362"],
"groups": ["Marketing"]
}]
}

Loading…
Cancel
Save