diff --git a/classic/src/view/pages/callforward/CallForwardController.js b/classic/src/view/pages/callforward/CallForwardController.js index 3f05eed7..e601f2fb 100644 --- a/classic/src/view/pages/callforward/CallForwardController.js +++ b/classic/src/view/pages/callforward/CallForwardController.js @@ -81,6 +81,18 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { return timeSlot1.dayArrIndex > timeSlot2.dayArrIndex; }, + unmaskDestinationGrids: function () { + var stores = this.getStoresByStatus('all'); + Ext.each(stores.keys, function (storeName) { + if (storeName.indexOf('always') > -1) { + var grid = Ext.getCmp(storeName); + if (grid && grid.body) { + grid.body.unmask(); + } + } + }); + }, + cfTimesetStoreLoaded: function(store, data) { var me = this; var arrayOfModels = []; @@ -157,7 +169,8 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { }, 100) }, - getTimesetFromRoute: function(route) { + getTimesetFromRoute: function() { + var route = window.location.hash; switch (route) { case ('#callforward/always'): return null; @@ -262,9 +275,8 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { var hasCftAndCfuMappings = $cf.hasMappings(cfuMappings) && $cf.hasMappings(cftMappings); var timeset = store._type; var arrayOfModels = []; - var currentRoute = window.location.hash; - var routeTimeset = this.getTimesetFromRoute(currentRoute); $vm.set('destStoresPopulated', false); + var routeTimeset = this.getTimesetFromRoute(); $vm.set('cft_ringtimeout', cftRingTimeout); store.removeAll(); Ext.Ajax.request({ @@ -282,6 +294,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { $vm.set('arrayOfDestModels', arrayOfModels); $cf.populateDestinationStores(); }; + $cf.unmaskDestinationGrids(); }; }, @@ -289,7 +302,6 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { console.log('server-side failure with status code ' + response.status); } }); - }, hasDestinationWithId: function(arr, id) { @@ -558,7 +570,8 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { } }, - getModuleFromRoute: function(currentRoute) { + getModuleFromRoute: function() { + var currentRoute = window.location.hash; switch (currentRoute) { case '#callforward/always': return 'always'; @@ -596,8 +609,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { populateTimesetStores: function(models) { var vm = this.getViewModel(); - var currentRoute = window.location.hash; - var moduleName = this.getModuleFromRoute(currentRoute); + var moduleName = this.getModuleFromRoute(); var store = Ext.getStore(moduleName + '-Timeset'); if (store.getCount() === 0) { Ext.each(models, function(model) { @@ -688,13 +700,38 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { }; }, - addOwnPhoneToEmptyOnline: function() { + getStoresByStatus: function (status) { + var stores; + switch (status) { + case 'all': + stores = Ext.data.StoreManager.filterBy(function (item, key) { + return (key.indexOf('CallForward') > -1); + }); + break; + case 'online': + stores = Ext.data.StoreManager.filterBy(function (item, key) { + return (key.indexOf('CallForwardOnline') > -1); + }); + break; + case 'busy': + stores = Ext.data.StoreManager.filterBy(function (item, key) { + return (key.indexOf('CallForwardBusy') > -1); + }); + break; + case 'offline': + stores = Ext.data.StoreManager.filterBy(function (item, key) { + return (key.indexOf('CallForwardOffline') > -1); + }); + break; + }; + return stores; + }, + + addOwnPhoneToEmptyOnline: function () { var $cf = this; var $vm = $cf.getViewModel(); var timeout = $vm.get('cftRingTimeout'); - var stores = Ext.data.StoreManager.filterBy(function(item, key) { - return (key.indexOf('CallForwardOnline') >= 0); - }); + var stores = $cf.getStoresByStatus('online'); Ext.each(stores.getRange(), function(store) { if (!store.last()) { var cfModel = Ext.create('NgcpCsc.model.CallForwardDestination', { @@ -715,8 +752,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { var $vm = this.getViewModel(); var subscriberId = localStorage.getItem('subscriber_id'); var cfTabPanels = Ext.ComponentQuery.query('[name=cfTab]'); - var currentRoute = window.location.hash; - var moduleName = this.getModuleFromRoute(currentRoute); + var moduleName = this.getModuleFromRoute(); if (sourcesets && sourcesets.length > 0) { Ext.each(cfTabPanels, function(tabP) { if (tabP._tabId == moduleName) { @@ -744,7 +780,6 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { _sourcesetListId: sourcesetId, _firstprefix: tabP._firstPrefixes[index + 1], _secondprefix: tabP._secondprefix - }) ] }); @@ -909,8 +944,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { var vm = this.getViewModel(); var me = this; var cfTabPanels = Ext.ComponentQuery.query('[name=cfTab]'); - var currentRoute = window.location.hash; - var moduleName = this.getModuleFromRoute(currentRoute); + var moduleName = this.getModuleFromRoute(); var newTitle = vm.get('sourceset-' + sourcesetId + "-titleField-value"); Ext.each(cfTabPanels, function(tabP) { // every CF submodule has its own vm diff --git a/classic/src/view/pages/callforward/CallForwardMainGrid.js b/classic/src/view/pages/callforward/CallForwardMainGrid.js index 53051ffe..d71cd3f6 100644 --- a/classic/src/view/pages/callforward/CallForwardMainGrid.js +++ b/classic/src/view/pages/callforward/CallForwardMainGrid.js @@ -7,6 +7,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardMainGrid', { width: '100%', hideHeaders: true, ui: 'cf-grid', + minHeight: 70, viewConfig: { plugins: { @@ -30,6 +31,13 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardMainGrid', { } }, + listeners: { + render: function(grid) { + grid.body.mask('Loading...'); + }, + delay: 200 + }, + plugins: { ptype: 'cellediting', clicksToEdit: 1 diff --git a/classic/src/view/pages/callforward/CallForwardTab.js b/classic/src/view/pages/callforward/CallForwardTab.js index 5f730fa3..1327c4c0 100644 --- a/classic/src/view/pages/callforward/CallForwardTab.js +++ b/classic/src/view/pages/callforward/CallForwardTab.js @@ -14,6 +14,11 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardTab', { click: { element: 'el', fn: 'addOwnPhoneToEmptyOnline' + }, + click: { + element: 'el', + fn: 'unmaskDestinationGrids', + delay: 200 } },