From ba6275a9d2c6f9d20501a060a4015dc1a81de6fe Mon Sep 17 00:00:00 2001 From: Carlo Date: Mon, 23 Jan 2017 14:44:21 +0100 Subject: [PATCH] TT#9251 Ngcp-csc PBX device adjustments New [seat|group|device] btns are now disabled when the add/edit panel is visible; this should prevent the scenarios reported in 9251. Pls note that this branch is based on https://gerrit.mgm.sipwise.com/#/c/10827/ added: - reset fix - device edit scrolling fix - removed duplicated functions in controller Change-Id: Ie184f5bfaeee9067cc3c6755c760c4521f565456 --- .../pbfconfig/devices/DevicesController.js | 19 +++++++++++++++---- .../pbfconfig/groups/GroupsController.js | 19 +++++++++++++++---- .../pages/pbfconfig/seats/SeatsController.js | 17 ++++++++++++++--- 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/classic/src/view/pages/pbfconfig/devices/DevicesController.js b/classic/src/view/pages/pbfconfig/devices/DevicesController.js index c7487da2..27c38719 100644 --- a/classic/src/view/pages/pbfconfig/devices/DevicesController.js +++ b/classic/src/view/pages/pbfconfig/devices/DevicesController.js @@ -17,14 +17,15 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.devices.DevicesController', { var newRec = store.insert(0, { id: Ext.id(), expanded: true, - status: 'disabled' + status: 'disabled', + newRec: true })[0]; grid.getPlugin('rowexpander').toggleRow(0, newRec); grid.getSelectionModel().select(newRec); destinationsGrid.getStore().removeAll(); this.toggleNewDeviceBtn(false); - form.down('[name=deviceName]').focus(); form.show(); + form.down('[name=deviceName]').focus(); }, editDevice: function(id, destination) { @@ -35,8 +36,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.devices.DevicesController', { grid.getSelectionModel().select(selectedRow); this.deviceSelected(); this.toggleNewDeviceBtn(false); - form.down('[name=deviceName]').focus(); form.show(); + form.down('[name=deviceName]').focus(); }, toggleNewDeviceBtn: function(enabled) { @@ -80,7 +81,12 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.devices.DevicesController', { var form = this.lookupReference('add-new-device'); var grid = this.getView().down('devices-grid'); var store = Ext.getStore('Devices'); - store.rejectChanges(); + var selectedRec = grid.getSelectionModel().getSelection()[0]; + if(selectedRec.get('newRec')){ + store.remove(selectedRec) + }else{ + selectedRec.reject(); + } grid.getSelectionModel().deselectAll(); this.toggleNewDeviceBtn(true); form.hide(); @@ -93,6 +99,11 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.devices.DevicesController', { } var store = Ext.getStore('Devices'); var grid = this.getView().down('devices-grid'); + Ext.each(store.getModifiedRecords(), function(rec){ + if(rec.get('newRec')){ + rec.set('newRec', null); + } + }); store.commitChanges(); grid.getSelectionModel().deselectAll(); this.fireEvent('showmessage', true, Ngcp.csc.locales.common.save_success[localStorage.getItem('languageSelected')]); diff --git a/classic/src/view/pages/pbfconfig/groups/GroupsController.js b/classic/src/view/pages/pbfconfig/groups/GroupsController.js index 7a82155a..e92d5ff8 100644 --- a/classic/src/view/pages/pbfconfig/groups/GroupsController.js +++ b/classic/src/view/pages/pbfconfig/groups/GroupsController.js @@ -14,13 +14,14 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.groups.GroupsController', { var store = Ext.getStore('Groups'); var newRec = store.insert(0,{ id: Ext.id(), - expanded: true + expanded: true, + newRec:true })[0]; grid.getPlugin('rowexpander').toggleRow(0, newRec); grid.getSelectionModel().select(newRec); this.toggleNewGroupBtn(false); - form.down('[name=groupName]').focus(); form.show(); + form.down('[name=groupName]').focus(); }, editGroup: function(id) { @@ -30,8 +31,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.groups.GroupsController', { var selectedRow = store.findRecord('id', id); grid.getSelectionModel().select(selectedRow); this.toggleNewGroupBtn(false); - form.down('[name=groupName]').focus(); form.show(); + form.down('[name=groupName]').focus(); }, toggleNewGroupBtn: function(enabled) { @@ -53,7 +54,12 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.groups.GroupsController', { var form = this.lookupReference('add-new-group'); var grid = this.getView().down('groups-grid'); var store = Ext.getStore('Groups'); - store.rejectChanges(); + var selectedRec = grid.getSelectionModel().getSelection()[0]; + if(selectedRec.get('newRec')){ + store.remove(selectedRec) + }else{ + selectedRec.reject(); + } grid.getSelectionModel().deselectAll(); this.toggleNewGroupBtn(true); form.hide(); @@ -66,6 +72,11 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.groups.GroupsController', { } var store = Ext.getStore('Groups'); var grid = this.getView().down('groups-grid'); + Ext.each(store.getModifiedRecords(), function(rec){ + if(rec.get('newRec')){ + rec.set('newRec', null); + } + }); store.commitChanges(); grid.getSelectionModel().deselectAll(); this.fireEvent('showmessage', true, Ngcp.csc.locales.common.save_success[localStorage.getItem('languageSelected')]); diff --git a/classic/src/view/pages/pbfconfig/seats/SeatsController.js b/classic/src/view/pages/pbfconfig/seats/SeatsController.js index b17548a9..348be4c8 100644 --- a/classic/src/view/pages/pbfconfig/seats/SeatsController.js +++ b/classic/src/view/pages/pbfconfig/seats/SeatsController.js @@ -14,7 +14,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsController', { var store = Ext.getStore('Seats'); var newRec = store.insert(0, { id: Ext.id(), - expanded: true + expanded: true, + newRec: true })[0]; grid.getPlugin('rowexpander').toggleRow(0, newRec); grid.getSelectionModel().select(newRec); @@ -30,8 +31,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsController', { var selectedRow = store.findRecord('id', id); grid.getSelectionModel().select(selectedRow); this.toggleNewSeatBtn(false); - form.down('[name=seatName]').focus(); form.show(); + form.down('[name=seatName]').focus(); }, toggleNewSeatBtn: function(enabled) { @@ -53,7 +54,12 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsController', { var form = this.lookupReference('add-new-seat'); var grid = this.getView().down('seats-grid'); var store = Ext.getStore('Seats'); - store.rejectChanges(); + var selectedRec = grid.getSelectionModel().getSelection()[0]; + if (selectedRec.get('newRec')) { + store.remove(selectedRec) + } else { + selectedRec.reject(); + } grid.getSelectionModel().deselectAll(); this.toggleNewSeatBtn(true); form.hide(); @@ -66,6 +72,11 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.seats.SeatsController', { } var store = Ext.getStore('Seats'); var grid = this.getView().down('seats-grid'); + Ext.each(store.getModifiedRecords(), function(rec) { + if (rec.get('newRec')) { + rec.set('newRec', null); + } + }); store.commitChanges(); grid.getSelectionModel().deselectAll(); this.fireEvent('showmessage', true, Ngcp.csc.locales.common.save_success[localStorage.getItem('languageSelected')]);