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',
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',
sp: 'Groups'
},
seats: {
en: 'Seats',
it: 'Seats',
de: 'Seats',
fr: 'Seats',
sp: 'Seats'
},
primary_number: {
en: 'Primary number',
it: 'Primary number',
@ -1929,6 +1936,13 @@ Ext.define('Ngcp.csc.locales', {
fr: '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: {
en: 'Choose one or more alias numbers',
it: 'Choose one or more alias numbers',
@ -2385,6 +2399,13 @@ Ext.define('Ngcp.csc.locales', {
fr: 'Group:',
sp: 'Group:'
},
seats: {
en: 'Seats:',
it: 'Seats:',
de: 'Seats:',
fr: 'Seats:',
sp: 'Seats:'
},
ago: {
en: 'ago',
it: 'ago',

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

@ -339,6 +339,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
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 seatsField = Ext.ComponentQuery.query('#' + viewName + '-tagfield-seats-' + 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) || '';
@ -351,6 +352,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
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 seatsLabel = Ext.ComponentQuery.query('#' + viewName + '-label-seats-' + 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) || '';
@ -380,6 +382,9 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
extensionLabel[0].setHidden(labelHide);
huntPolicyLabel[0].setHidden(labelHide);
huntTimeoutLabel[0].setHidden(labelHide);
primaryNumberLabel[0].setHidden(labelHide);
aliasNumbersLabel[0].setHidden(labelHide);
seatsLabel[0].setHidden(labelHide);
switch (hideOrShow) {
case 'show':
huntTimeoutPreLabel[0].addCls('pbx-margin-top');
@ -393,9 +398,15 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
extensionField[0].setHidden(fieldHide);
huntPolicyField[0].setHidden(fieldHide);
huntTimeoutField[0].setHidden(fieldHide);
primaryNumberField[0].setHidden(fieldHide);
aliasNumbersField[0].setHidden(fieldHide);
seatsField[0].setHidden(fieldHide);
huntTimeoutField[0].focus();
huntPolicyField[0].focus();
extensionField[0].focus();
primaryNumberField[0].focus();
aliasNumbersField[0].focus();
seatsField[0].focus();
nameField[0].focus();
break;
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',
bind: {

@ -85,6 +85,36 @@
},
{
"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",
"extension": "201",
"hunt_policy": "Serial",
"hunt_timeout": "60"
"hunt_timeout": "60",
"primary_number": "43991026",
"alias_numbers": ["012370", "012371"],
"seats": [11]
},{
"id" : 2,
"name": "Development",
"extension": "301",
"hunt_policy": "Parallel",
"hunt_timeout": "320"
"hunt_timeout": "320",
"primary_number": "43991027",
"alias_numbers": ["012372", "012373"],
"seats": [1, 4]
}, {
"id" : 3,
"name": "Sales",
"extension": "401",
"hunt_policy": "Sequential",
"hunt_timeout": "10"
"hunt_timeout": "10",
"primary_number": "43991028",
"alias_numbers": ["012374", "012375"],
"seats": [5, 3, 8]
}, {
"id" : 4,
"name": "Operations",
"extension": "601",
"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": "43991026"
},
{
"number": "43991027"
},
{
"number": "43991028"
},
{
"number": "43991029"
}
]
}

Loading…
Cancel
Save