TT#16853 Csc pbx changes and fixes

What has been done:
 1. Rename button in groups module to "ADD NEW GROUP"
 2. Investigate Alignment issue on Andreas' laptop. Not able to
    reproduce
 3. Change extension number to have no upper limit
 4. When clicking "ADD NEW GROUP" and new card is outside view, it
    doesn't show it/scroll to it. Works for Robert. Try and solve with
    scrollTo - window.scrollTo(0,document.body.scrollHeight);
 5. Cancel button shows delete box. Remove
 6. When editing a card, and switching module, shows "All fields
    required". Use a VM model to set last edited card id, and a
    onRouteChange event and controller to hide fields on that card
 7. Implement check for whether a new pbx card already is in progress
    to not allow multiple new cards being created at same time
 8. Toggle icons at bottom of card back to editCard and no cancel
 9. Add more fine-grained error messages for validation in call
    blocking module
10. Fix typo in DevicseController name at top of DevicesController.js

Change-Id: I3dec8301b39dacec36d7e140246e5d51b6ca1b52
changes/14/13614/5
Robert Axelsen 8 years ago
parent 2e246adece
commit 331d8a4405

@ -598,6 +598,34 @@ Ext.define('Ngcp.csc.locales', {
fr: 'Mode', fr: 'Mode',
sp: 'Mode' sp: 'Mode'
}, },
save_unsuccess_duplicate_anonymous: {
en: 'An anonymous entry already exists.',
it: 'An anonymous entry already exists.',
de: 'An anonymous entry already exists.',
fr: 'An anonymous entry already exists.',
sp: 'An anonymous entry already exists.'
},
save_unsuccess_number_empty: {
en: 'Number field can not be empty.',
it: 'Number field can not be empty.',
de: 'Number field can not be empty.',
fr: 'Number field can not be empty.',
sp: 'Number field can not be empty.'
},
save_unsuccess_duplicate_number: {
en: 'An entry with the same value already exists.',
it: 'An entry with the same value already exists.',
de: 'An entry with the same value already exists.',
fr: 'An entry with the same value already exists.',
sp: 'An entry with the same value already exists.'
},
save_unsuccess_invalid_number: {
en: 'Invalid number entry.',
it: 'Invalid number entry.',
de: 'Invalid number entry.',
fr: 'Invalid number entry.',
sp: 'Invalid number entry.'
},
submodules: { submodules: {
incoming: { incoming: {
header: { header: {
@ -1970,6 +1998,13 @@ Ext.define('Ngcp.csc.locales', {
fr: 'Must be a 3 digit extension number', fr: 'Must be a 3 digit extension number',
sp: 'Must be a 3 digit extension number' sp: 'Must be a 3 digit extension number'
}, },
not_add_new_while_another: {
en: 'Can not create new card while another is active.',
it: 'Can not create new card while another is active.',
de: 'Can not create new card while another is active.',
fr: 'Can not create new card while another is active.',
sp: 'Can not create new card while another is active.'
},
autoattendant: { autoattendant: {
title: { title: {
en: 'Your auto attendants.', en: 'Your auto attendants.',

@ -21,7 +21,8 @@ Ext.define('NgcpCsc.view.main.Main', {
listeners: { listeners: {
render: 'onMainViewRender', render: 'onMainViewRender',
resize: 'setItemsSize' resize: 'setItemsSize',
click: 'clickMain'
}, },
name: 'mainView', name: 'mainView',

@ -86,7 +86,7 @@ Ext.define('NgcpCsc.view.main.MainController', {
onNavigationTreeSelectionChange: function(tree, node) { onNavigationTreeSelectionChange: function(tree, node) {
var to = node && (node.get('routeId') || node.get('viewType')); var to = node && (node.get('routeId') || node.get('viewType'));
this.fireEvent('navSelectionChange');
if (to) { if (to) {
if (node.parentNode) { if (node.parentNode) {
node.parentNode.expand(); node.parentNode.expand();

@ -38,8 +38,21 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', {
} }
}, },
addUnsuccessful: function() { addUnsuccessful: function(unsuccessType) {
this.fireEvent('showmessage', false, Ngcp.csc.locales.common.save_unsuccess[localStorage.getItem('languageSelected')]); switch (unsuccessType) {
case 'duplicateAnonymous':
this.fireEvent('showmessage', false, Ngcp.csc.locales.callblocking.save_unsuccess_duplicate_anonymous[localStorage.getItem('languageSelected')]);
break;
case 'numberEmpty':
this.fireEvent('showmessage', false, Ngcp.csc.locales.callblocking.save_unsuccess_number_empty[localStorage.getItem('languageSelected')]);
break;
case 'duplicateNumber':
this.fireEvent('showmessage', false, Ngcp.csc.locales.callblocking.save_unsuccess_duplicate_number[localStorage.getItem('languageSelected')]);
break;
case 'invalidNumber':
this.fireEvent('showmessage', false, Ngcp.csc.locales.callblocking.save_unsuccess_invalid_number[localStorage.getItem('languageSelected')]);
break;
};
}, },
addToStore: function(newNumber, newId, store) { addToStore: function(newNumber, newId, store) {
@ -88,12 +101,12 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', {
me.addToStore('anonymous', newId, store); me.addToStore('anonymous', newId, store);
break; break;
default: default:
me.addUnsuccessful(); me.addUnsuccessful('duplicateAnonymous');
break; break;
} }
break; break;
case ('CallBlockingOutgoing'): case ('CallBlockingOutgoing'):
me.addUnsuccessful(); me.addUnsuccessful('numberEmpty');
break; break;
} }
break; break;
@ -106,12 +119,12 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', {
me.addToStore(newNumber, newId, store); me.addToStore(newNumber, newId, store);
break; break;
default: default:
me.addUnsuccessful(); me.addUnsuccessful('duplicateNumber');
break; break;
}; };
break; break;
case (1): case (1):
me.addUnsuccessful(); me.addUnsuccessful('invalidNumber');
break; break;
} }
break; break;

@ -25,7 +25,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfig', {
xtype: 'button', xtype: 'button',
reference: 'addNewBtn', reference: 'addNewBtn',
bind: { bind: {
text: '{add_new_button}' text: '{add_new_button}',
disabled: '{add_pbx_active}'
}, },
handler: 'addPbx' handler: 'addPbx'
}] }]

@ -7,7 +7,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
controller: { controller: {
'*': { '*': {
unmatchedroute: 'onRouteChange', unmatchedroute: 'onRouteChange',
confirmPbxCardRemoval: 'confirmPbxCardRemoval' confirmPbxCardRemoval: 'confirmPbxCardRemoval',
navSelectionChange: 'abortEdit'
} }
} }
}, },
@ -55,6 +56,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
} }
} }
// eval is never the best option // eval is never the best option
// true value passed as argument in [el, true] is for keeping track
// of toggleFields value
Ext.Function.defer(eval('this.' + el.dataset.callback), 1, this, [el, true]); Ext.Function.defer(eval('this.' + el.dataset.callback), 1, this, [el, true]);
if (fieldToKeepFocused) { if (fieldToKeepFocused) {
fieldToKeepFocused.suspendEvent('blur'); fieldToKeepFocused.suspendEvent('blur');
@ -197,6 +200,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
saveCard: function(el, toggleFields) { saveCard: function(el, toggleFields) {
var me = this; var me = this;
var vm = this.getViewModel();
var elClassList = el.firstChild.classList; var elClassList = el.firstChild.classList;
var currentRoute = window.location.hash; var currentRoute = window.location.hash;
var storeName = this.getStoreFromRoute(currentRoute); var storeName = this.getStoreFromRoute(currentRoute);
@ -237,6 +241,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
me.showMsgSwitchIconHideFields(storeName, el, toggleFieldsValue, false); me.showMsgSwitchIconHideFields(storeName, el, toggleFieldsValue, false);
break; break;
}; };
vm.set('add_pbx_active', false);
} else if (emptyCheck > 0) { } else if (emptyCheck > 0) {
me.fireEvent('showmessage', false, Ngcp.csc.locales.common.fields_required[localStorage.getItem('languageSelected')]); me.fireEvent('showmessage', false, Ngcp.csc.locales.common.fields_required[localStorage.getItem('languageSelected')]);
} else if (invalidCheck > 0) { } else if (invalidCheck > 0) {
@ -275,12 +280,16 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
addPbx: function() { addPbx: function() {
var me = this; var me = this;
var vm = this.getViewModel();
var currentRoute = window.location.hash; var currentRoute = window.location.hash;
var storeName = me.getStoreFromRoute(currentRoute); var storeName = me.getStoreFromRoute(currentRoute);
var store = Ext.getStore(storeName); var store = Ext.getStore(storeName);
var newId = Ext.id().replace('ext-', ''); var newId = Ext.id().replace('ext-', '');
var grid = this.lookupReference(storeName.toLowerCase() + 'Grid'); var grid = this.lookupReference(storeName.toLowerCase() + 'Grid');
var plugin = grid.getPlugin('rowwidget' + storeName); var plugin = grid.getPlugin('rowwidget' + storeName);
var addPbxActive = vm.get('add_pbx_active');
switch (addPbxActive) {
case false:
me.addNewEmptyRowToGrid(store, storeName, newId); me.addNewEmptyRowToGrid(store, storeName, newId);
var rec = store.findRecord('id', newId); var rec = store.findRecord('id', newId);
plugin.toggleRow(store.indexOf(rec), rec); plugin.toggleRow(store.indexOf(rec), rec);
@ -294,7 +303,15 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
el.dataset.qtip = Ngcp.csc.locales.filters.tooltips.save_entry[localStorage.getItem('languageSelected')]; el.dataset.qtip = Ngcp.csc.locales.filters.tooltips.save_entry[localStorage.getItem('languageSelected')];
me.toggleCancelCard(el, 'on'); me.toggleCancelCard(el, 'on');
grid.updateLayout(); grid.updateLayout();
window.scrollTo(0, document.body.scrollHeight);
vm.set('last_edited_row', storeName.toLowerCase() + '-' + newId);
vm.set('add_pbx_active', true);
}, 50); }, 50);
break;
case true:
me.fireEvent('showmessage', false, Ngcp.csc.locales.pbxconfig.not_add_new_while_another[localStorage.getItem('languageSelected')]);
break;
};
}, },
setFieldValue: function(cmp) { setFieldValue: function(cmp) {
@ -337,6 +354,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
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) || '';
// To break out of this function if we switched to module outside pbxconfig
if (mainNameLabel.length === 0) { return; };
// To make sure we always hide name label and field when not editing // To make sure we always hide name label and field when not editing
mainNameLabel[0].setHidden(hideOrShow == 'hide'); mainNameLabel[0].setHidden(hideOrShow == 'hide');
nameField[0].setHidden(hideOrShow == 'hide'); nameField[0].setHidden(hideOrShow == 'hide');
@ -402,10 +421,12 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
editCard: function(el) { editCard: function(el) {
var me = this; var me = this;
var vm = this.getViewModel();
var currentRoute = window.location.hash; var currentRoute = window.location.hash;
var storeName = this.getStoreFromRoute(currentRoute); var storeName = this.getStoreFromRoute(currentRoute);
var recId = el.id.split("-")[1]; var recId = el.id.split("-")[1];
var elClassList = el.firstChild.classList; var elClassList = el.firstChild.classList;
vm.set('last_edited_row', storeName.toLowerCase() + '-' + recId);
this.toggleCancelCard(el, 'on'); this.toggleCancelCard(el, 'on');
// Workaround with split(), since classList.add() does not allow strings // Workaround with split(), since classList.add() does not allow strings
// with spaces (https://developer.mozilla.org/en/docs/Web/API/Element/classList) // with spaces (https://developer.mozilla.org/en/docs/Web/API/Element/classList)
@ -418,7 +439,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
}, 50); }, 50);
}, },
removeCard: function(el) { removeCard: function(el, evalValue, cancelCheck) {
var me = this; var me = this;
var currentRoute = window.location.hash; var currentRoute = window.location.hash;
var storeName = this.getStoreFromRoute(currentRoute); var storeName = this.getStoreFromRoute(currentRoute);
@ -428,13 +449,19 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
var title = Ngcp.csc.locales.common.delete[localStorage.getItem('languageSelected')]; var title = Ngcp.csc.locales.common.delete[localStorage.getItem('languageSelected')];
var question = Ngcp.csc.locales.common.remove_confirm[localStorage.getItem('languageSelected')]; var question = Ngcp.csc.locales.common.remove_confirm[localStorage.getItem('languageSelected')];
var sucessMsg = Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')]; var sucessMsg = Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')];
if (cancelCheck === true) {
this.confirmPbxCardRemoval(selectedRow);
return;
};
me.fireEvent('showconfirmbox', title, question, sucessMsg, 'confirmPbxCardRemoval', selectedRow); me.fireEvent('showconfirmbox', title, question, sucessMsg, 'confirmPbxCardRemoval', selectedRow);
}, },
confirmPbxCardRemoval: function(card) { confirmPbxCardRemoval: function(card) {
var vm = this.getViewModel();
var view = this.getView(); var view = this.getView();
var store = card.store; var store = card.store;
store.remove(card); store.remove(card);
vm.set('add_pbx_active', false);
Ext.Function.defer(function() { Ext.Function.defer(function() {
view.fireEvent('cardContainerResized', view); view.fireEvent('cardContainerResized', view);
}, 1); }, 1);
@ -454,7 +481,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
}; };
}, },
cancelCard: function(el, abortAdd) { cancelCard: function(el) {
var me = this; var me = this;
var currentRoute = window.location.hash; var currentRoute = window.location.hash;
var storeName = this.getStoreFromRoute(currentRoute); var storeName = this.getStoreFromRoute(currentRoute);
@ -466,7 +493,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
var nameRecord = selectedRow.get('name'); var nameRecord = selectedRow.get('name');
switch (nameRecord === '') { switch (nameRecord === '') {
case true: case true:
me.removeCard(el); me.removeCard(el, null, true);
break; break;
case false: case false:
me.showHideFocusFieldsById(recId, storeName, 'hide'); me.showHideFocusFieldsById(recId, storeName, 'hide');
@ -480,8 +507,10 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
fieldBlurred: function(event) { fieldBlurred: function(event) {
var me = this; var me = this;
var vm = this.getViewModel();
var fields = this.getView().query('textfield'); var fields = this.getView().query('textfield');
var anyFieldHasFocus = false; var anyFieldHasFocus = false;
if (vm.get('add_pbx_active')) { return; };
Ext.defer(function() { Ext.defer(function() {
for (i = 0; i < fields.length; i++) { for (i = 0; i < fields.length; i++) {
if (fields[i].hasFocus) { if (fields[i].hasFocus) {
@ -491,11 +520,53 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', {
if (!anyFieldHasFocus) { if (!anyFieldHasFocus) {
var currentRoute = window.location.hash; var currentRoute = window.location.hash;
var storeName = me.getStoreFromRoute(currentRoute); var storeName = me.getStoreFromRoute(currentRoute);
var recId = event.id.split("-")[3]; var recId = event.id.split('-')[3];
var iconDivId = 'edit' + storeName.slice(0, -1) + '-' + recId; var iconDivId = 'edit' + storeName.slice(0, -1) + '-' + recId;
var iconDiv = document.getElementById(iconDivId); var iconDiv = document.getElementById(iconDivId);
me.saveCard(iconDiv, false); me.saveCard(iconDiv, false);
} }
}, 1); }, 1);
},
abortEdit: function () {
var me = this;
var vm = this.getViewModel();
var currentRoute = window.location.hash;
var storeName = this.getStoreFromRoute(currentRoute);
var store = Ext.getStore(storeName);
var lastEditedCard = vm.get('last_edited_row');
var recId = lastEditedCard.split('-')[1];
var addPbxActive = vm.get('add_pbx_active');
var elClassList;
switch (storeName) {
case 'Groups':
case 'Seats':
case 'Devices':
switch (addPbxActive) {
case true:
var selectedRow = store.findRecord('id', recId);
me.confirmPbxCardRemoval(selectedRow);
break;
case false:
var el = document.getElementById('edit' + storeName.slice(0, -1) + '-' + recId);
if (!el) {
return;
} else {
elClassList = el.firstChild.classList;
};
if (lastEditedCard.length > 0) {
me.showHideFocusFieldsById(recId, storeName, 'hide');
};
elClassList.remove(Ngcp.csc.icons.floppy.split(' ')[1]);
elClassList.add(Ngcp.csc.icons.edit.split(' ')[1]);
el.dataset.callback = 'editCard';
el.dataset.qtip = Ngcp.csc.locales.filters.tooltips.edit_entry[localStorage.getItem('languageSelected')];
me.toggleCancelCard(el, 'off');
vm.set('add_pbx_active', false);
break;
};
break;
};
} }
}); });

@ -3,7 +3,9 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigModel', {
alias: 'viewmodel.pbxconfig', alias: 'viewmodel.pbxconfig',
// non-API data // non-API data
data: { data: {
add_new_button: 'ADD NEW SEAT' add_new_button: 'ADD NEW GROUP',
last_edited_row: '',
add_pbx_active: false
} }
}); });

@ -1,6 +1,7 @@
Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', { Ext.define('NgcpCsc.view.pages.pbxconfig.DevicesController', {
extend: 'NgcpCsc.view.pages.pbxconfig.PbxConfigController', extend: 'NgcpCsc.view.pages.pbxconfig.PbxConfigController',
alias: 'controller.devices', alias: 'controller.devices',
listen: { listen: {
controller: { controller: {
'*': { '*': {
@ -8,6 +9,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
} }
} }
}, },
onIconClicked: function(event, el) { onIconClicked: function(event, el) {
// overrides onIconClicked of PbxConfigController // overrides onIconClicked of PbxConfigController
if (el.dataset.onseatclick) { if (el.dataset.onseatclick) {
@ -33,6 +35,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
} }
}; };
}, },
onMouseEntered: function(event, el) { onMouseEntered: function(event, el) {
var selectedRec = this.getSelectedRec(); var selectedRec = this.getSelectedRec();
var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + selectedRec.get('id'))[0]; var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + selectedRec.get('id'))[0];
@ -40,14 +43,17 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
Ext.Function.defer(eval('this.' + el.dataset.onseathovered), 1, this, [el]); Ext.Function.defer(eval('this.' + el.dataset.onseathovered), 1, this, [el]);
} }
}, },
onMouseLeave: function() { onMouseLeave: function() {
var selectedRec = this.getSelectedRec(); var selectedRec = this.getSelectedRec();
var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0]; var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0];
showPanel.hide(); showPanel.hide();
}, },
seatHovered: function(el) { seatHovered: function(el) {
this.setShowEditPanelFields(el); this.setShowEditPanelFields(el);
}, },
setShowEditPanelFields: function(el) { setShowEditPanelFields: function(el) {
var selectedRec = this.getSelectedRec(); var selectedRec = this.getSelectedRec();
var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0]; var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0];
@ -72,6 +78,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
showPanel.getEl().setLeft(parseInt(labelPositioning.left.split('px')[0]) + offset); showPanel.getEl().setLeft(parseInt(labelPositioning.left.split('px')[0]) + offset);
showPanel.getEl().setTop(parseInt(labelPositioning.top.split('px')[0]) + 20); showPanel.getEl().setTop(parseInt(labelPositioning.top.split('px')[0]) + 20);
}, },
deviceSelected: function(combo, rec) { deviceSelected: function(combo, rec) {
var grid = this.lookupReference('devicesGrid'); var grid = this.lookupReference('devicesGrid');
var devicesListStore = Ext.getStore('DevicesList'); var devicesListStore = Ext.getStore('DevicesList');
@ -93,6 +100,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
nameField.focus(); nameField.focus();
}, 50) }, 50)
}, },
editSeat: function(el) { editSeat: function(el) {
var selectedRec = this.getSelectedRec(); var selectedRec = this.getSelectedRec();
var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0]; var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0];
@ -124,6 +132,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
editPanel.getEl().setLeft(parseInt(labelPositioning.left.split('px')[0]) + offset); editPanel.getEl().setLeft(parseInt(labelPositioning.left.split('px')[0]) + offset);
editPanel.getEl().setTop(parseInt(labelPositioning.top.split('px')[0]) + 20); editPanel.getEl().setTop(parseInt(labelPositioning.top.split('px')[0]) + 20);
}, },
deleteSeat: function() { deleteSeat: function() {
var me = this; var me = this;
var selectedRec = me.getSelectedRec(); var selectedRec = me.getSelectedRec();
@ -138,6 +147,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
}); });
}, },
seatRemoveConfirmed: function(seat) { seatRemoveConfirmed: function(seat) {
var me = this; var me = this;
var grid = me.lookupReference('devicesGrid'); var grid = me.lookupReference('devicesGrid');
@ -150,6 +160,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
grid.focus(); grid.focus();
}, },
saveSeat: function() { saveSeat: function() {
var me = this; var me = this;
var grid = this.lookupReference('devicesGrid'); var grid = this.lookupReference('devicesGrid');
@ -177,6 +188,7 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
me.commitUnsavedChanges(); me.commitUnsavedChanges();
editPanel.hide(); editPanel.hide();
}, },
commitUnsavedChanges: function() { commitUnsavedChanges: function() {
var grid = this.lookupReference('devicesGrid'); var grid = this.lookupReference('devicesGrid');
var selectedRec = this.getSelectedRec(); var selectedRec = this.getSelectedRec();
@ -190,13 +202,16 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', {
grid.getView().refresh(); grid.getView().refresh();
}, 50); }, 50);
}, },
discardChanges: function() { discardChanges: function() {
var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + this.getSelectedRec().get('id'))[0]; var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + this.getSelectedRec().get('id'))[0];
editPanel.hide(); editPanel.hide();
}, },
getSelectedRec: function() { getSelectedRec: function() {
var grid = this.lookupReference('devicesGrid'); var grid = this.lookupReference('devicesGrid');
var selectedRec = grid.getSelectionModel().getSelection()[0]; var selectedRec = grid.getSelectionModel().getSelection()[0];
return selectedRec; return selectedRec;
} }
}); });

@ -109,9 +109,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.GroupsGrid', {
id: 'groups-textfield-extension-{record.id}' id: 'groups-textfield-extension-{record.id}'
}, },
msgTarget: 'side', msgTarget: 'side',
maxLength: 3,
enforceMaxLength: true, enforceMaxLength: true,
regex: /^[0-9]{3}$/, regex: /^[1-9][0-9]*$/,
regexText: Ngcp.csc.locales.pbxconfig.digit_extension_number[localStorage.getItem('languageSelected')], regexText: Ngcp.csc.locales.pbxconfig.digit_extension_number[localStorage.getItem('languageSelected')],
listeners: { listeners: {
focus: { focus: {

@ -112,9 +112,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsGrid', {
id: 'seats-textfield-extension-{record.id}' id: 'seats-textfield-extension-{record.id}'
}, },
msgTarget: 'side', msgTarget: 'side',
maxLength: 3,
enforceMaxLength: true, enforceMaxLength: true,
regex: /^[0-9]{3}$/, regex: /^[1-9][0-9]*$/,
regexText: Ngcp.csc.locales.pbxconfig.digit_extension_number[localStorage.getItem('languageSelected')], regexText: Ngcp.csc.locales.pbxconfig.digit_extension_number[localStorage.getItem('languageSelected')],
listeners: { listeners: {
focus: { focus: {

Loading…
Cancel
Save