TT#17454 Csc pbx modules changes to groups data

What has been done:
 1. Groups should also have Primary/Alias and Seats
     a. Implement in view, model and .json
     b. Implement in gridfilter

What is remaining(?):
 2. Button text wrong some times - Not able to reproduce

Change-Id: Ia3e10f4f736857ae155be4c8569ea2130a67ac73
changes/65/14065/4
Robert Axelsen 8 years ago
parent 3225257bbc
commit d46c3967ae

@ -16,5 +16,39 @@ Ext.define('NgcpCsc.model.Group', {
}, { }, {
name: 'hunt_timeout', name: 'hunt_timeout',
type: 'string' type: 'string'
}, {
name: 'primary_number',
type: 'string'
}, {
name: 'alias_numbers',
type: 'string'
}, {
name: 'seats',
type: 'string'
}, {
name: 'alias_numbers_split',
type: 'string',
depends: ['alias_numbers'],
convert: function (v, record) {
var dataToSplit = record.data.alias_numbers;
return dataToSplit.replace(/,/g, ", ");
}
}, {
name: 'seats_split',
type: 'string',
depends: ['seats'],
convert: function (v, record) {
var dataToSplit = record.data.seats;
var dataInArray = dataToSplit.split(',');
var resultArray = [];
var store = Ext.getStore('Seats');
for (var data in dataInArray) {
var rec = store.findRecord('id', dataInArray[data]);
var nameToPush = rec ? rec.get('name') : '';
resultArray.push(nameToPush);
}
var result = resultArray.join(', ');
return result;
}
}] }]
}); });

@ -1280,6 +1280,13 @@ Ext.define('Ngcp.csc.locales', {
fr: 'Groups', fr: 'Groups',
sp: 'Groups' sp: 'Groups'
}, },
seats: {
en: 'Seats',
it: 'Seats',
de: 'Seats',
fr: 'Seats',
sp: 'Seats'
},
primary_number: { primary_number: {
en: 'Primary number', en: 'Primary number',
it: 'Primary number', it: 'Primary number',
@ -1929,6 +1936,13 @@ Ext.define('Ngcp.csc.locales', {
fr: 'Choose one or more group names', fr: 'Choose one or more group names',
sp: 'Choose one or more group names' sp: 'Choose one or more group names'
}, },
choose_one_or_more_seats: {
en: 'Choose one or more seat names',
it: 'Choose one or more seat names',
de: 'Choose one or more seat names',
fr: 'Choose one or more seat names',
sp: 'Choose one or more seat names'
},
choose_one_or_more_alias_numbers: { choose_one_or_more_alias_numbers: {
en: 'Choose one or more alias numbers', en: 'Choose one or more alias numbers',
it: 'Choose one or more alias numbers', it: 'Choose one or more alias numbers',
@ -2385,6 +2399,13 @@ Ext.define('Ngcp.csc.locales', {
fr: 'Group:', fr: 'Group:',
sp: 'Group:' sp: 'Group:'
}, },
seats: {
en: 'Seats:',
it: 'Seats:',
de: 'Seats:',
fr: 'Seats:',
sp: 'Seats:'
},
ago: { ago: {
en: 'ago', en: 'ago',
it: 'ago', it: 'ago',

@ -9,8 +9,8 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
ui: 'core-container', ui: 'core-container',
// TODO: Fix input field not working on first input (always or some times?) // TODO TT#16554: Fix input field not working on first
// TODO: Pls make combo/tagfields editable // input. See GridFiltersController.js line 21
initComponent: function() { initComponent: function() {
this.items = [{ this.items = [{
@ -134,10 +134,10 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
}] }]
}, { }, {
xtype: 'form', xtype: 'form',
reference: 'pbxSeatsFilterForm', hidden: true,
hidden:true, reference: 'pbxGroupsFilterForm',
bind: { bind: {
hidden: '{filtergrid.pbxSeatsFilterHideState}' hidden: '{filtergrid.pbxGroupsFilterHideState}'
}, },
margin: 20, margin: 20,
layout: 'responsivecolumn', layout: 'responsivecolumn',
@ -149,13 +149,43 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
labelAlign: 'left', labelAlign: 'left',
width: 400, width: 400,
labelWidth: 120, labelWidth: 120,
bind: '{filtergrid.seats_extension}', bind: '{filtergrid.groups_extension}',
fieldLabel: Ngcp.csc.locales.filters.extension[localStorage.getItem('languageSelected')], fieldLabel: Ngcp.csc.locales.filters.extension[localStorage.getItem('languageSelected')],
listeners: { listeners: {
delay: 100, delay: 100,
change: 'submitFilters' change: 'submitFilters'
} }
}, { }, {
xtype: 'combo',
labelAlign: 'left',
store: 'HuntPolicies',
displayField: 'policy',
valueField: 'policy',
editable: true,
width: 400,
labelWidth: 120,
bind: '{filtergrid.hunt_policy}',
fieldLabel: Ngcp.csc.locales.filters.hunt_policy[localStorage.getItem('languageSelected')],
listeners: {
delay: 100,
change: 'submitFilters'
}
}, {
xtype: 'textfield',
labelAlign: 'left',
width: 400,
labelWidth: 120,
bind: '{filtergrid.hunt_timeout}',
fieldLabel: Ngcp.csc.locales.filters.hunt_timeout[localStorage.getItem('languageSelected')],
listeners: {
delay: 100,
change: 'submitFilters'
}
}]
}, {
flex: 1,
userCls: 'small-100 big-50',
items: [{
xtype: 'combo', xtype: 'combo',
labelAlign: 'left', labelAlign: 'left',
store: 'PrimaryNumbers', store: 'PrimaryNumbers',
@ -170,11 +200,7 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
delay: 100, delay: 100,
change: 'submitFilters' change: 'submitFilters'
} }
}] }, {
}, {
flex: 1,
userCls: 'small-100 big-50',
items: [{
xtype: 'tagfield', xtype: 'tagfield',
labelAlign: 'left', labelAlign: 'left',
store: 'AliasNumbers', store: 'AliasNumbers',
@ -191,13 +217,13 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
}, { }, {
xtype: 'tagfield', xtype: 'tagfield',
labelAlign: 'left', labelAlign: 'left',
store: 'Groups', store: 'Seats',
displayField: 'name', displayField: 'name',
valueField: 'id', valueField: 'id',
width: 400, width: 400,
labelWidth: 120, labelWidth: 120,
bind: '{filtergrid.groups}', bind: '{filtergrid.seats}',
fieldLabel: Ngcp.csc.locales.filters.groups[localStorage.getItem('languageSelected')], fieldLabel: Ngcp.csc.locales.filters.seats[localStorage.getItem('languageSelected')],
listeners: { listeners: {
delay: 100, delay: 100,
change: 'submitFilters' change: 'submitFilters'
@ -206,10 +232,10 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
}] }]
}, { }, {
xtype: 'form', xtype: 'form',
reference: 'pbxSeatsFilterForm',
hidden:true, hidden:true,
reference: 'pbxGroupsFilterForm',
bind: { bind: {
hidden: '{filtergrid.pbxGroupsFilterHideState}' hidden: '{filtergrid.pbxSeatsFilterHideState}'
}, },
margin: 20, margin: 20,
layout: 'responsivecolumn', layout: 'responsivecolumn',
@ -221,7 +247,7 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
labelAlign: 'left', labelAlign: 'left',
width: 400, width: 400,
labelWidth: 120, labelWidth: 120,
bind: '{filtergrid.groups_extension}', bind: '{filtergrid.seats_extension}',
fieldLabel: Ngcp.csc.locales.filters.extension[localStorage.getItem('languageSelected')], fieldLabel: Ngcp.csc.locales.filters.extension[localStorage.getItem('languageSelected')],
listeners: { listeners: {
delay: 100, delay: 100,
@ -230,14 +256,14 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
}, { }, {
xtype: 'combo', xtype: 'combo',
labelAlign: 'left', labelAlign: 'left',
store: 'HuntPolicies', store: 'PrimaryNumbers',
displayField: 'policy', bind: '{filtergrid.primary_number}',
valueField: 'policy', displayField: 'number',
editable: true, valueField: 'number',
width: 400, width: 400,
labelWidth: 120, labelWidth: 120,
bind: '{filtergrid.hunt_policy}', editable: true,
fieldLabel: Ngcp.csc.locales.filters.hunt_policy[localStorage.getItem('languageSelected')], fieldLabel: Ngcp.csc.locales.filters.primary_number[localStorage.getItem('languageSelected')],
listeners: { listeners: {
delay: 100, delay: 100,
change: 'submitFilters' change: 'submitFilters'
@ -247,12 +273,29 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFilters', {
flex: 1, flex: 1,
userCls: 'small-100 big-50', userCls: 'small-100 big-50',
items: [{ items: [{
xtype: 'textfield', xtype: 'tagfield',
labelAlign: 'left', labelAlign: 'left',
store: 'AliasNumbers',
displayField: 'number',
valueField: 'number',
width: 400, width: 400,
labelWidth: 120, labelWidth: 120,
bind: '{filtergrid.hunt_timeout}', bind: '{filtergrid.alias_numbers}',
fieldLabel: Ngcp.csc.locales.filters.hunt_timeout[localStorage.getItem('languageSelected')], fieldLabel: Ngcp.csc.locales.filters.alias_numbers[localStorage.getItem('languageSelected')],
listeners: {
delay: 100,
change: 'submitFilters'
}
}, {
xtype: 'tagfield',
labelAlign: 'left',
store: 'Groups',
displayField: 'name',
valueField: 'id',
width: 400,
labelWidth: 120,
bind: '{filtergrid.groups}',
fieldLabel: Ngcp.csc.locales.filters.groups[localStorage.getItem('languageSelected')],
listeners: { listeners: {
delay: 100, delay: 100,
change: 'submitFilters' change: 'submitFilters'

@ -199,11 +199,17 @@ Ext.define('NgcpCsc.view.common.gridfilters.GridFiltersController', {
var extension = vm.get('filtergrid.groups_extension') ? vm.get('filtergrid.groups_extension').toLowerCase().split(',') : []; var extension = vm.get('filtergrid.groups_extension') ? vm.get('filtergrid.groups_extension').toLowerCase().split(',') : [];
var hunt_policy = vm.get('filtergrid.hunt_policy') ? vm.get('filtergrid.hunt_policy').toLowerCase().split(',') : []; var hunt_policy = vm.get('filtergrid.hunt_policy') ? vm.get('filtergrid.hunt_policy').toLowerCase().split(',') : [];
var hunt_timeout = vm.get('filtergrid.hunt_timeout') ? vm.get('filtergrid.hunt_timeout').toLowerCase().split(',') : []; var hunt_timeout = vm.get('filtergrid.hunt_timeout') ? vm.get('filtergrid.hunt_timeout').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 seats = vm.get('filtergrid.seats') ? vm.get('filtergrid.seats').toString().split(',') : [];
var retVal = true; var retVal = true;
if (fieldInput && record.get('name').toLowerCase().indexOf(fieldInput) == -1 || if (fieldInput && record.get('name').toLowerCase().indexOf(fieldInput) == -1 ||
extension && record.get('extension').toLowerCase().indexOf(extension) == -1 || extension && record.get('extension').toLowerCase().indexOf(extension) == -1 ||
hunt_policy && record.get('hunt_policy').toLowerCase().indexOf(hunt_policy) == -1 || hunt_policy && record.get('hunt_policy').toLowerCase().indexOf(hunt_policy) == -1 ||
hunt_timeout && record.get('hunt_timeout').toLowerCase().indexOf(hunt_timeout) == -1 hunt_timeout && record.get('hunt_timeout').toLowerCase().indexOf(hunt_timeout) == -1 ||
primary_number && record.get('primary_number').indexOf(primary_number) == -1 ||
alias_numbers && record.get('alias_numbers').indexOf(alias_numbers) == -1 ||
seats && record.get('seats').indexOf(seats) == -1
) { ) {
retVal = false; retVal = false;
} }

@ -339,6 +339,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
var groupsField = Ext.ComponentQuery.query('#' + viewName + '-tagfield-groups-' + id) || ''; var groupsField = Ext.ComponentQuery.query('#' + viewName + '-tagfield-groups-' + id) || '';
var huntPolicyField = Ext.ComponentQuery.query('#' + viewName + '-combo-hunt_policy-' + id) || ''; var huntPolicyField = Ext.ComponentQuery.query('#' + viewName + '-combo-hunt_policy-' + id) || '';
var huntTimeoutField = Ext.ComponentQuery.query('#' + viewName + '-textfield-hunt_timeout-' + id) || ''; var huntTimeoutField = Ext.ComponentQuery.query('#' + viewName + '-textfield-hunt_timeout-' + id) || '';
var seatsField = Ext.ComponentQuery.query('#' + viewName + '-tagfield-seats-' + id) || '';
var deviceField = Ext.ComponentQuery.query('#' + viewName + '-textfield-device-' + id) || ''; var deviceField = Ext.ComponentQuery.query('#' + viewName + '-textfield-device-' + id) || '';
var macField = Ext.ComponentQuery.query('#' + viewName + '-textfield-mac-' + id) || ''; var macField = Ext.ComponentQuery.query('#' + viewName + '-textfield-mac-' + id) || '';
var statusField = Ext.ComponentQuery.query('#' + viewName + '-textfield-status-' + id) || ''; var statusField = Ext.ComponentQuery.query('#' + viewName + '-textfield-status-' + id) || '';
@ -351,6 +352,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
var huntTimeoutLabel = Ext.ComponentQuery.query('#' + viewName + '-label-hunt_timeout-' + id) || ''; var huntTimeoutLabel = Ext.ComponentQuery.query('#' + viewName + '-label-hunt_timeout-' + id) || '';
var huntTimeoutPreLabel = Ext.ComponentQuery.query('#' + viewName + '-prelabel-hunt_timeout-' + id) || ''; var huntTimeoutPreLabel = Ext.ComponentQuery.query('#' + viewName + '-prelabel-hunt_timeout-' + id) || '';
var huntTimeoutPostLabel = Ext.ComponentQuery.query('#' + viewName + '-postlabel-hunt_timeout-' + id) || ''; var huntTimeoutPostLabel = Ext.ComponentQuery.query('#' + viewName + '-postlabel-hunt_timeout-' + id) || '';
var seatsLabel = Ext.ComponentQuery.query('#' + viewName + '-label-seats-' + id) || '';
var deviceLabel = Ext.ComponentQuery.query('#' + viewName + '-label-device-' + id) || ''; var deviceLabel = Ext.ComponentQuery.query('#' + viewName + '-label-device-' + id) || '';
var macLabel = Ext.ComponentQuery.query('#' + viewName + '-label-mac-' + id) || ''; var macLabel = Ext.ComponentQuery.query('#' + viewName + '-label-mac-' + id) || '';
var statusLabel = Ext.ComponentQuery.query('#' + viewName + '-label-status-' + id) || ''; var statusLabel = Ext.ComponentQuery.query('#' + viewName + '-label-status-' + id) || '';
@ -380,6 +382,9 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
extensionLabel[0].setHidden(labelHide); extensionLabel[0].setHidden(labelHide);
huntPolicyLabel[0].setHidden(labelHide); huntPolicyLabel[0].setHidden(labelHide);
huntTimeoutLabel[0].setHidden(labelHide); huntTimeoutLabel[0].setHidden(labelHide);
primaryNumberLabel[0].setHidden(labelHide);
aliasNumbersLabel[0].setHidden(labelHide);
seatsLabel[0].setHidden(labelHide);
switch (hideOrShow) { switch (hideOrShow) {
case 'show': case 'show':
huntTimeoutPreLabel[0].addCls('pbx-margin-top'); huntTimeoutPreLabel[0].addCls('pbx-margin-top');
@ -393,9 +398,15 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
extensionField[0].setHidden(fieldHide); extensionField[0].setHidden(fieldHide);
huntPolicyField[0].setHidden(fieldHide); huntPolicyField[0].setHidden(fieldHide);
huntTimeoutField[0].setHidden(fieldHide); huntTimeoutField[0].setHidden(fieldHide);
primaryNumberField[0].setHidden(fieldHide);
aliasNumbersField[0].setHidden(fieldHide);
seatsField[0].setHidden(fieldHide);
huntTimeoutField[0].focus(); huntTimeoutField[0].focus();
huntPolicyField[0].focus(); huntPolicyField[0].focus();
extensionField[0].focus(); extensionField[0].focus();
primaryNumberField[0].focus();
aliasNumbersField[0].focus();
seatsField[0].focus();
nameField[0].focus(); nameField[0].focus();
break; break;
case 'devices': case 'devices':

@ -223,6 +223,123 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.GroupsGrid', {
} }
}] }]
}] }]
}, {
name: 'primary_number',
defaults: {
padding: '0 0 15 0'
},
items: [{
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.primary_number[localStorage.getItem('languageSelected')],
width: 130
}, {
xtype: 'label',
bind: {
id: 'groups-label-primary_number-{record.id}',
text: '{record.primary_number}'
}
}, {
xtype: 'combo',
store: 'PrimaryNumbers',
editable: false,
width: 250,
displayField: 'number',
valueField: 'number',
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.choose_new_primary_number[localStorage.getItem('languageSelected')],
bind: {
id: 'groups-combo-primary_number-{record.id}'
},
listeners: {
focus: {
fn: 'setFieldValue'
},
blur: {
fn: 'fieldBlurred',
el: 'element'
},
specialkey: 'onEnterPressed'
}
}]
}, {
name: 'alias_numbers',
defaults: {
padding: '0 0 15 0'
},
items: [{
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.pbxconfig.alias_numbers[localStorage.getItem('languageSelected')],
width: 130
}, {
xtype: 'label',
bind: {
id: 'groups-label-alias_numbers-{record.id}',
text: '{record.alias_numbers_split}'
}
}, {
xtype: 'tagfield',
valueField: 'number',
store: 'AliasNumbers',
width: 250,
displayField: 'number',
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.choose_one_or_more_alias_numbers[localStorage.getItem('languageSelected')],
bind: {
id: 'groups-tagfield-alias_numbers-{record.id}'
},
listeners: {
focus: {
fn: 'setFieldValue'
},
blur: {
fn: 'fieldBlurred',
el: 'element'
},
specialkey: 'onEnterPressed'
}
}]
}, {
name: 'seats',
defaults: {
padding: '0 0 15 0'
},
items: [{
xtype: 'label',
cls: 'pbx-data-value',
text: Ngcp.csc.locales.common.seats[localStorage.getItem('languageSelected')],
width: 130
}, {
xtype: 'label',
hidden: false,
bind: {
id: 'groups-label-seats-{record.id}',
text: '{record.seats_split}'
}
}, {
xtype: 'tagfield',
valueField: 'id',
store: 'Seats',
width: 250,
displayField: 'name',
hidden: true,
emptyText: Ngcp.csc.locales.pbxconfig.choose_one_or_more_seats[localStorage.getItem('languageSelected')],
bind: {
id: 'groups-tagfield-seats-{record.id}'
},
listeners: {
focus: {
fn: 'setFieldValue'
},
blur: {
fn: 'fieldBlurred',
el: 'element'
},
specialkey: 'onEnterPressed'
}
}]
}, { }, {
xtype: 'label', xtype: 'label',
bind: { bind: {

@ -85,6 +85,36 @@
}, },
{ {
"number": "012369" "number": "012369"
},
{
"number": "012370"
},
{
"number": "012371"
},
{
"number": "012372"
},
{
"number": "012373"
},
{
"number": "012374"
},
{
"number": "012375"
},
{
"number": "012376"
},
{
"number": "012377"
},
{
"number": "012378"
},
{
"number": "012379"
} }
] ]
} }

@ -4,24 +4,36 @@
"name": "Marketing", "name": "Marketing",
"extension": "201", "extension": "201",
"hunt_policy": "Serial", "hunt_policy": "Serial",
"hunt_timeout": "60" "hunt_timeout": "60",
"primary_number": "43991026",
"alias_numbers": ["012370", "012371"],
"seats": [11]
},{ },{
"id" : 2, "id" : 2,
"name": "Development", "name": "Development",
"extension": "301", "extension": "301",
"hunt_policy": "Parallel", "hunt_policy": "Parallel",
"hunt_timeout": "320" "hunt_timeout": "320",
"primary_number": "43991027",
"alias_numbers": ["012372", "012373"],
"seats": [1, 4]
}, { }, {
"id" : 3, "id" : 3,
"name": "Sales", "name": "Sales",
"extension": "401", "extension": "401",
"hunt_policy": "Sequential", "hunt_policy": "Sequential",
"hunt_timeout": "10" "hunt_timeout": "10",
"primary_number": "43991028",
"alias_numbers": ["012374", "012375"],
"seats": [5, 3, 8]
}, { }, {
"id" : 4, "id" : 4,
"name": "Operations", "name": "Operations",
"extension": "601", "extension": "601",
"hunt_policy": "Serial", "hunt_policy": "Serial",
"hunt_timeout": "40" "hunt_timeout": "40",
"primary_number": "43991029",
"alias_numbers": ["012376", "012377"],
"seats": [2, 6]
}] }]
} }

@ -73,6 +73,18 @@
}, },
{ {
"number": "43991025" "number": "43991025"
},
{
"number": "43991026"
},
{
"number": "43991027"
},
{
"number": "43991028"
},
{
"number": "43991029"
} }
] ]
} }

Loading…
Cancel
Save