diff --git a/classic/src/view/main/MainController.js b/classic/src/view/main/MainController.js index ffba891f..695ea6c4 100644 --- a/classic/src/view/main/MainController.js +++ b/classic/src/view/main/MainController.js @@ -9,6 +9,7 @@ Ext.define('NgcpCsc.view.main.MainController', { }, '*': { showmessage: 'showMessage', + showconfirmbox: 'showConfirmBox', updateconversationtitle: 'setSectionTitle', setCentralContentHeight: 'setCentralContentHeight' } @@ -280,6 +281,22 @@ Ext.define('NgcpCsc.view.main.MainController', { }; }, + showConfirmBox: function(title, question, msg, callbackEvent, callbackParams) { + var me = this; + Ext.Msg.show({ + title: title, + message: question, + buttons: Ext.Msg.YESNO, + icon: Ext.Msg.QUESTION, + fn: function(btn) { + if (btn === 'yes') { + me.fireEvent(callbackEvent, callbackParams); + me.fireEvent('showmessage', true, msg); + } + } + }); + }, + setItemsSize: function(view) { var defaultHeight = view.down('#headerBar').getHeight(); var currentMainViewHeight = view.getHeight() - defaultHeight; // tbar height diff --git a/classic/src/view/pages/callblocking/CallBlockingController.js b/classic/src/view/pages/callblocking/CallBlockingController.js index 003a288f..b7e6f7d3 100644 --- a/classic/src/view/pages/callblocking/CallBlockingController.js +++ b/classic/src/view/pages/callblocking/CallBlockingController.js @@ -3,7 +3,15 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', { alias: 'controller.callblocking', - onEnterPressed: function (field, el) { + listen: { + controller: { + '*': { + confirmCallBlockingRemoval: 'confirmCallBlockingRemoval' + } + } + }, + + onEnterPressed: function(field, el) { if (el.getKey() == el.ENTER) { this.addNewNumber(); }; @@ -24,24 +32,28 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', { } }, - addUnsuccessful: function () { + addUnsuccessful: function() { this.fireEvent('showmessage', false, Ngcp.csc.locales.common.save_unsuccess[localStorage.getItem('languageSelected')]); }, - addToStore: function (newNumber, newId, store) { - store.add({ "id": newId, "block_list": newNumber, "enabled": true }); + addToStore: function(newNumber, newId, store) { + store.add({ + "id": newId, + "block_list": newNumber, + "enabled": true + }); this.fireEvent('showmessage', true, Ngcp.csc.locales.common.add_success[localStorage.getItem('languageSelected')]); }, - getCallBlockingStoreName: function (currentRoute) { + getCallBlockingStoreName: function(currentRoute) { return currentRoute === '#callblocking/incoming' ? 'CallBlockingIncoming' : 'CallBlockingOutgoing'; }, - getAcceptedCharacters: function () { + getAcceptedCharacters: function() { return ['1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '?']; }, - addNewNumber: function () { + addNewNumber: function() { var me = this; var vm = me.getViewModel(); var invalidCheck = 0; @@ -56,7 +68,7 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', { } else { newNumber = newNumber.split(''); }; - newNumber.forEach(function (character) { + newNumber.forEach(function(character) { if (acceptedCharacters.indexOf(character) === -1) invalidCheck = 1; }); switch (newNumber.length) { @@ -99,7 +111,7 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', { vm.set('new_number', ''); }, - clickAllowModeButton: function () { + clickAllowModeButton: function() { var vm = this.getViewModel(); var blockAllowMode = vm.get('block_mode'); if (blockAllowMode === 'allow') { @@ -109,7 +121,7 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', { }; }, - clickHideModeButton: function () { + clickHideModeButton: function() { var vm = this.getViewModel(); var hideMode = vm.get('hide_mode'); if (hideMode === 'on') { @@ -124,11 +136,18 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', { var currentRoute = window.location.hash; var storeName = currentRoute === '#callblocking/incoming' ? 'CallBlockingIncoming' : 'CallBlockingOutgoing'; var store = Ext.getStore(storeName); - store.remove(rec); - this.fireEvent('showmessage', true, Ngcp.csc.locales.common.remove_success[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 sucessMsg = Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')]; + this.fireEvent('showconfirmbox', title, question, sucessMsg, 'confirmCallBlockingRemoval', rec); + }, + + confirmCallBlockingRemoval: function(record) { + var store = record.store; + store.remove(record); }, - enableNumberBlocking: function (event) { + enableNumberBlocking: function(event) { var rec = event.record; var enabledDisabledMode = rec.get('enabled'); rec.set('enabled', !enabledDisabledMode); @@ -139,7 +158,7 @@ Ext.define('NgcpCsc.view.pages.callblocking.CallBlockingController', { }; }, - toggleBlockCalls: function (event) { + toggleBlockCalls: function(event) { var vm = this.getViewModel(); var submoduleName = event.getTarget().id.split('-')[1]; var classList = event.target.classList; diff --git a/classic/src/view/pages/callforward/CallForwardController.js b/classic/src/view/pages/callforward/CallForwardController.js index 2dbe82de..5dc94396 100644 --- a/classic/src/view/pages/callforward/CallForwardController.js +++ b/classic/src/view/pages/callforward/CallForwardController.js @@ -3,6 +3,14 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { alias: 'controller.callforward', + listen: { + controller: { + '*': { + confirmCFRemoval: 'confirmCFRemoval' + } + } + }, + editingPhoneDone: function(editor, context) { var record = context.record; var grid = context.grid; @@ -10,7 +18,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { grid.getView().refresh(); }, - collapsePanel: function (el) { + collapsePanel: function(el) { var panelId = el.id.split('-')[1]; var isCollapsed = el.collapsed === false ? false : true; var store = Ext.getStore('CallForwardLocalStorage'); @@ -20,41 +28,41 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { switch (isCollapsed) { case true: localStorageRecord.set('afterHoursCollapsed', true); - break; + break; case false: localStorageRecord.set('afterHoursCollapsed', false); - break; + break; } break; case 'companyHours': switch (isCollapsed) { case true: localStorageRecord.set('companyHoursCollapsed', true); - break; + break; case false: localStorageRecord.set('companyHoursCollapsed', false); - break; + break; } break; }; store.sync(); }, - onEnterPressed: function (field, el) { + onEnterPressed: function(field, el) { var me = this; if (el.getKey() == el.ENTER) { me.addNewDestination(field); }; }, - toggleChangeTitle: function (button) { + toggleChangeTitle: function(button) { var vm = this.getViewModel(); var buttonId = button.id; var hiddenKey = 'hide_' + buttonId.split('-')[2]; vm.set(hiddenKey, !vm.get(hiddenKey)); }, - saveNewTitle: function (button) { + saveNewTitle: function(button) { var vm = this.getViewModel(); var buttonId = button.id; var hiddenKey = 'hide_' + buttonId.split('-')[2]; @@ -62,7 +70,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { this.fireEvent('showmessage', true, Ngcp.csc.locales.common.save_success[localStorage.getItem('languageSelected')]); }, - onEditClicked: function (el) { + onEditClicked: function(el) { var vm = this.getViewModel(); var classList = el.target.classList; switch (true) { @@ -81,19 +89,25 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { return target.indexOf(string) > -1; }, - saveEmptyRowToStore: function (grid) { + saveEmptyRowToStore: function(grid) { var store = grid.getStore(); var plugin = grid.getPlugin('celleditingTime'); var newRowIndex = store.getCount() + 1; var record = store.getAt(store.getCount() - 1); if (record == null || (record.data.phone !== ' ' && record.data.phone !== '')) { // Need to add whitespace in record when using widgetcolumn - store.add({ "phone": " ", "edit": true }); + store.add({ + "phone": " ", + "edit": true + }); }; - plugin.startEditByPosition({ row: newRowIndex, column: 0 }); + plugin.startEditByPosition({ + row: newRowIndex, + column: 0 + }); }, - addEmptyRow: function (button) { + addEmptyRow: function(button) { var buttonIdSplit = button.id.split('-'); var buttonPrefixOne = buttonIdSplit[0]; var buttonPrefixTwo = buttonIdSplit[1]; @@ -113,17 +127,24 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { removeEntry: function(grid, rowIndex, colIndex) { var store = grid.getStore(); var rec = grid.getStore().getAt(rowIndex); - store.remove(rec); - this.fireEvent('showmessage', true, Ngcp.csc.locales.common.remove_success[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 sucessMsg = Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')]; + this.fireEvent('showconfirmbox', title, question, sucessMsg, 'confirmCFRemoval', rec); }, - getStoresArrayFromRoute: function (currentRoute, currentSourceset) { + confirmCFRemoval: function(record) { + var store = record.store; + store.remove(record); + }, + + getStoresArrayFromRoute: function(currentRoute, currentSourceset) { var view = currentRoute.split('/')[1]; var prefix = currentSourceset + '-' + view + '-'; return [prefix + 'CallForwardOnline', prefix + 'CallForwardBusy', prefix + 'CallForwardOffline']; }, - onTabClicked: function (cmp) { + onTabClicked: function(cmp) { var me = this; var vm = me.getViewModel(); var currentRoute = window.location.hash.replace('hours', 'Hours'); @@ -139,7 +160,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { success: function(response, opts) { var obj = Ext.decode(response.responseText); var combinationStore = obj.data[0]; - storesArray.map(function (storeName) { + storesArray.map(function(storeName) { var store = Ext.getStore(storeName); var strippedStoreName = storeName.split('-')[2]; // Workaround since tabpanel being in initComponent causes this function to run before we have a route set. @@ -151,13 +172,12 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { store.add(records); }; }; - Ext.defer(function () { + Ext.defer(function() { loadingBar.clearStatus(); }, 300); }); }, - failure: function(response, opts) { - } + failure: function(response, opts) {} }); }, @@ -174,15 +194,17 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { this.renderDay(record.get('closed'), null, record); }, - toggleClosedClass: function (val, meta, rec) { + toggleClosedClass: function(val, meta, rec) { return rec.get('closed') === true ? Ngcp.csc.icons.square_checked : Ngcp.csc.icons.square; }, removeSourcelistRecord: function(grid, rowIndex) { var store = grid.getStore(); var rec = grid.getStore().getAt(rowIndex); - store.remove(rec); - this.fireEvent('showmessage', true, Ngcp.csc.locales.common.remove_success[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 sucessMsg = Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')]; + this.fireEvent('showconfirmbox', title, question, sucessMsg, 'confirmCFRemoval', rec); }, renderPhoneColumn: function(value, metaData, record) { @@ -195,7 +217,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { }; }, - showHideTimeoutField: function (vm, record, timeoutField) { + showHideTimeoutField: function(vm, record, timeoutField) { switch (record) { case 'Number': case 'Own phone': @@ -209,7 +231,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { }; }, - selectRing: function (component, record) { + selectRing: function(component, record) { var vm = this.getViewModel(); var cmpIdSplit = component.getId().split('-'); var timeoutFieldCategory = cmpIdSplit[2].replace(/FirstDest|ThenDest/, ''); @@ -217,7 +239,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { this.showHideTimeoutField(vm, record, timeoutFieldCategory + '_' + firstOrThen + '_timeout_hidden'); }, - toggleNewDestinationForm: function (button) { + toggleNewDestinationForm: function(button) { var me = this; var vm = this.getViewModel(); var targetId = button.id; @@ -234,7 +256,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { }; }, - hideThenFieldsByStoreName: function (vm, storeNameStripped) { + hideThenFieldsByStoreName: function(vm, storeNameStripped) { this.fireEvent('showmessage', true, Ngcp.csc.locales.common.save_success[localStorage.getItem('languageSelected')]); switch (storeNameStripped) { case 'CallForwardOnline': @@ -249,7 +271,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { }; }, - validateDestinationForm: function (storeName) { + validateDestinationForm: function(storeName) { var me = this; var vm = me.getViewModel(); var targetStore = Ext.getStore(storeName); @@ -265,7 +287,10 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { me.fireEvent('showmessage', false, 'Number is required. Please retry.'); break; case false: - targetStore.add({ "phone": newDest, "ring_for": "" }); + targetStore.add({ + "phone": newDest, + "ring_for": "" + }); me.hideThenFieldsByStoreName(vm, storeNameStripped); break; }; @@ -280,7 +305,10 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { case true: var newTimeout = newDest === 'Number' ? vm.get(storeNameCategory + '_then_timeout') : ''; var newPhone = newDest === 'Number' ? newNumber : newDest; - targetStore.add({ "phone": newPhone, "ring_for": newTimeout }); + targetStore.add({ + "phone": newPhone, + "ring_for": newTimeout + }); vm.set(storeNameCategory + '_then_number', ''); me.hideThenFieldsByStoreName(vm, storeNameStripped); break; @@ -289,7 +317,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { }; }, - addNewDestination: function (element) { + addNewDestination: function(element) { var me = this; var targetId = element.id; var splitTargetId = targetId.split('-'); @@ -308,7 +336,7 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardController', { }; }, - saveGrid: function (el) { + saveGrid: function(el) { this.fireEvent('showmessage', true, Ngcp.csc.locales.common.save_success[localStorage.getItem('languageSelected')]); } diff --git a/classic/src/view/pages/callforward/CallForwardMainGrid.js b/classic/src/view/pages/callforward/CallForwardMainGrid.js index e77871bd..7a85134d 100644 --- a/classic/src/view/pages/callforward/CallForwardMainGrid.js +++ b/classic/src/view/pages/callforward/CallForwardMainGrid.js @@ -35,7 +35,6 @@ Ext.define('NgcpCsc.view.pages.callforward.CallForwardMainGrid', { xtype: 'actioncolumn', width: 30, align: 'right', - iconCls: Ngcp.csc.icons.trash, handler: 'removeEntry' }, { diff --git a/classic/src/view/pages/contacts/ContactsController.js b/classic/src/view/pages/contacts/ContactsController.js index cbd390f8..438a95e5 100644 --- a/classic/src/view/pages/contacts/ContactsController.js +++ b/classic/src/view/pages/contacts/ContactsController.js @@ -9,7 +9,8 @@ Ext.define('NgcpCsc.view.pages.contacts.ContactsController', { collapseContacts: 'collapseContacts', expandContacts: 'expandContacts', resizeContactPanel: 'resizeContactPanel', - addContact: 'addContact' + addContact: 'addContact', + confirmUserRemoval: 'confirmUserRemoval' } }, store: { @@ -183,21 +184,15 @@ Ext.define('NgcpCsc.view.pages.contacts.ContactsController', { }, deleteUser: function(view, rowIndex, colIndex, item, ev, record) { var contactStore = Ext.getStore('Contacts'); - var me = this; - Ext.Msg.show({ - title: Ngcp.csc.locales.common.delete[localStorage.getItem('languageSelected')], - message: Ext.String.format(Ngcp.csc.locales.contacts.delete_user[localStorage.getItem('languageSelected')], record.get('name')), - buttons: Ext.Msg.YESNO, - icon: Ext.Msg.QUESTION, - fn: function(btn) { - if (btn === 'yes') { - me.resizePanel(record) - record.remove(); - me.fireEvent('showmessage', true, Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')]); - me.getView().view.refresh(); - } - } - }); + var me = this;var title = Ngcp.csc.locales.common.delete[localStorage.getItem('languageSelected')]; + var question = Ext.String.format(Ngcp.csc.locales.contacts.delete_user[localStorage.getItem('languageSelected')], record.get('name')); + var sucessMsg = Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')]; + this.fireEvent('showconfirmbox', title, question, sucessMsg, 'confirmUserRemoval', record); + }, + confirmUserRemoval: function(userRec){ + var store = this.getView().getStore(); + store.remove(userRec); + this.getView().view.refresh(); }, onPressEnter: function(field, e) { if (e.getKey() == e.ENTER) { @@ -297,23 +292,6 @@ Ext.define('NgcpCsc.view.pages.contacts.ContactsController', { }, 100); return false; }, - deleteNode: function(grid, rowIndex, colIndex, item, ev) { - var nodeToDelete = grid.getStore().getAt(rowIndex); - var me = this; - if (nodeToDelete.get('leaf')) - return; - Ext.Msg.show({ - message: Ext.String.format(Ngcp.csc.locales.conversationwith.alerts.channel_delete[localStorage.getItem('languageSelected')], nodeToDelete.get('name')), - buttons: Ext.Msg.YESNO, - icon: Ext.Msg.QUESTION, - fn: function(btn) { - if (btn === 'yes') { - nodeToDelete.remove(); - me.fireEvent('destroytab', nodeToDelete.get('name')); - } - } - }); - }, validateFields: function(btn) { var me = this; var doSave = this.getView().getStore().getModifiedRecords().length > 0, diff --git a/classic/src/view/pages/pbxconfig/PbxConfigController.js b/classic/src/view/pages/pbxconfig/PbxConfigController.js index bdce59fe..d342f102 100644 --- a/classic/src/view/pages/pbxconfig/PbxConfigController.js +++ b/classic/src/view/pages/pbxconfig/PbxConfigController.js @@ -6,7 +6,8 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', { listen: { controller: { '*': { - unmatchedroute: 'onRouteChange' + unmatchedroute: 'onRouteChange', + confirmPbxCardRemoval: 'confirmPbxCardRemoval' } } }, @@ -369,17 +370,15 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.PbxConfigController', { var store = Ext.getStore(storeName); var recId = el.id.split("-")[1]; var selectedRow = store.findRecord('id', recId); - Ext.Msg.show({ - message: Ext.String.format(Ngcp.csc.locales.common.remove_confirm[localStorage.getItem('languageSelected')]), - buttons: Ext.Msg.YESNO, - icon: Ext.Msg.QUESTION, - fn: function(btn) { - if (btn === 'yes') { - store.remove(selectedRow); - me.fireEvent('showmessage', true, Ngcp.csc.locales.common.remove_success[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 sucessMsg = Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')]; + me.fireEvent('showconfirmbox', title, question, sucessMsg, 'confirmPbxCardRemoval', selectedRow); + }, + + confirmPbxCardRemoval:function(card){ + var store = card.store; + store.remove(card); }, toggleCancelCard: function(el, state) { diff --git a/classic/src/view/pages/pbxconfig/devices/DevicesController.js b/classic/src/view/pages/pbxconfig/devices/DevicesController.js index 26f0dbc8..e71fb79d 100644 --- a/classic/src/view/pages/pbxconfig/devices/DevicesController.js +++ b/classic/src/view/pages/pbxconfig/devices/DevicesController.js @@ -1,6 +1,13 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', { extend: 'NgcpCsc.view.pages.pbxconfig.PbxConfigController', alias: 'controller.devices', + listen: { + controller: { + '*': { + seatRemoveConfirmed: 'seatRemoveConfirmed' + } + } + }, onIconClicked: function(event, el) { // overrides onIconClicked of PbxConfigController if (el.dataset.onseatclick) { @@ -104,32 +111,29 @@ Ext.define('NgcpCsc.view.pages.pbxconfig.DevicseController', { }, deleteSeat: function() { var me = this; - var grid = me.lookupReference('devicesGrid'); var selectedRec = me.getSelectedRec(); - var showPanel = Ext.ComponentQuery.query('#seat-show-panel-' + selectedRec.get('id'))[0]; var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + selectedRec.get('id'))[0]; - Ext.each(selectedRec.get('seats'), function(seat) { if (seat.order == editPanel._order) { - Ext.Msg.show({ - message: Ext.String.format(Ngcp.csc.locales.pbxconfig.devices.delete_assignment[localStorage.getItem('languageSelected')], seat.order), - buttons: Ext.Msg.YESNO, - icon: Ext.Msg.QUESTION, - fn: function(btn) { - if (btn === 'yes') { - seat.name = null; - seat.type = null; - me.commitUnsavedChanges(); - me.fireEvent('showmessage', true, Ngcp.csc.locales.pbxconfig.changes_saved[localStorage.getItem('languageSelected')]) - editPanel.hide(); - grid.focus(); - } - } - }); - return; + var title = Ngcp.csc.locales.common.delete[localStorage.getItem('languageSelected')]; + var question = Ext.String.format(Ngcp.csc.locales.pbxconfig.devices.delete_assignment[localStorage.getItem('languageSelected')]); + var sucessMsg = Ngcp.csc.locales.pbxconfig.changes_saved[localStorage.getItem('languageSelected')]; + me.fireEvent('showconfirmbox', title, question, sucessMsg, 'seatRemoveConfirmed', seat); } }); + }, + seatRemoveConfirmed: function(seat) { + var me = this; + var grid = me.lookupReference('devicesGrid'); + var selectedRec = me.getSelectedRec(); + var editPanel = Ext.ComponentQuery.query('#seat-edit-panel-' + selectedRec.get('id'))[0]; + seat.name = null; + seat.type = null; + me.commitUnsavedChanges(); + editPanel.hide(); + grid.focus(); + }, saveSeat: function() { var me = this;