From: Lukas Wagner Date: Tue, 14 Nov 2023 12:59:46 +0000 (+0100) Subject: notification ui: remove notification groups X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=feacab72ca9db4ce44a09f5930552a7c46aa9721;p=proxmox-widget-toolkit.git notification ui: remove notification groups Signed-off-by: Lukas Wagner --- diff --git a/src/Makefile b/src/Makefile index 85ecea4..e07f17c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -61,7 +61,6 @@ JSSRC= \ panel/LogView.js \ panel/NodeInfoRepoStatus.js \ panel/NotificationConfigView.js \ - panel/NotificationGroupEditPanel.js \ panel/JournalView.js \ panel/PermissionView.js \ panel/PruneKeepPanel.js \ diff --git a/src/Schema.js b/src/Schema.js index e0f583a..d1b4ee5 100644 --- a/src/Schema.js +++ b/src/Schema.js @@ -48,11 +48,6 @@ Ext.define('Proxmox.Schema', { // a singleton ipanel: 'pmxGotifyEditPanel', iconCls: 'fa-bell-o', }, - group: { - name: gettext('Notification Group'), - ipanel: 'pmxNotificationGroupEditPanel', - iconCls: 'fa-bell-o', - }, }, pxarFileTypes: { diff --git a/src/panel/NotificationConfigView.js b/src/panel/NotificationConfigView.js index ff9c512..ba98395 100644 --- a/src/panel/NotificationConfigView.js +++ b/src/panel/NotificationConfigView.js @@ -191,10 +191,6 @@ Ext.define('Proxmox.panel.NotificationEndpointView', { callback: 'reload', enableFn: rec => rec.data.name !== 'mail-to-root', getUrl: function(rec) { - if (rec.data.type === 'group') { - return `${me.baseUrl}/groups/${rec.getId()}`; - } - return `${me.baseUrl}/endpoints/${rec.data.type}/${rec.getId()}`; }, }, diff --git a/src/panel/NotificationGroupEditPanel.js b/src/panel/NotificationGroupEditPanel.js deleted file mode 100644 index 910d15a..0000000 --- a/src/panel/NotificationGroupEditPanel.js +++ /dev/null @@ -1,174 +0,0 @@ -Ext.define('Proxmox.panel.NotificationGroupEditPanel', { - extend: 'Proxmox.panel.InputPanel', - xtype: 'pmxNotificationGroupEditPanel', - mixins: ['Proxmox.Mixin.CBind'], - - type: 'group', - - items: [ - { - xtype: 'pmxDisplayEditField', - name: 'name', - cbind: { - value: '{name}', - editable: '{isCreate}', - }, - fieldLabel: gettext('Group Name'), - allowBlank: false, - }, - { - xtype: 'pmxNotificationEndpointSelector', - name: 'endpoint', - allowBlank: false, - }, - { - xtype: 'proxmoxtextfield', - name: 'comment', - fieldLabel: gettext('Comment'), - cbind: { - deleteEmpty: '{!isCreate}', - }, - }, - ], -}); - -Ext.define('Proxmox.form.NotificationEndpointSelector', { - extend: 'Ext.grid.Panel', - alias: 'widget.pmxNotificationEndpointSelector', - - mixins: { - field: 'Ext.form.field.Field', - }, - - padding: '0 0 10 0', - - allowBlank: true, - selectAll: false, - isFormField: true, - - store: { - autoLoad: true, - model: 'proxmox-notification-endpoints', - sorters: 'name', - filters: item => item.data.type !== 'group', - }, - - columns: [ - { - header: gettext('Endpoint Name'), - dataIndex: 'name', - flex: 1, - }, - { - header: gettext('Type'), - dataIndex: 'type', - flex: 1, - }, - { - header: gettext('Comment'), - dataIndex: 'comment', - flex: 3, - }, - ], - - selModel: { - selType: 'checkboxmodel', - mode: 'SIMPLE', - }, - - checkChangeEvents: [ - 'selectionchange', - 'change', - ], - - listeners: { - selectionchange: function() { - // to trigger validity and error checks - this.checkChange(); - }, - }, - - getSubmitData: function() { - let me = this; - let res = {}; - res[me.name] = me.getValue(); - return res; - }, - - getValue: function() { - let me = this; - if (me.savedValue !== undefined) { - return me.savedValue; - } - let sm = me.getSelectionModel(); - return (sm.getSelection() ?? []).map(item => item.data.name); - }, - - setValueSelection: function(value) { - let me = this; - - let store = me.getStore(); - - let notFound = []; - let selection = value.map(item => { - let found = store.findRecord('name', item, 0, false, true, true); - if (!found) { - notFound.push(item); - } - return found; - }).filter(r => r); - - for (const name of notFound) { - let rec = store.add({ - name, - type: '-', - comment: gettext('Included endpoint does not exist!'), - }); - selection.push(rec[0]); - } - - let sm = me.getSelectionModel(); - if (selection.length) { - sm.select(selection); - } else { - sm.deselectAll(); - } - // to correctly trigger invalid class - me.getErrors(); - }, - - setValue: function(value) { - let me = this; - - let store = me.getStore(); - if (!store.isLoaded()) { - me.savedValue = value; - store.on('load', function() { - me.setValueSelection(value); - delete me.savedValue; - }, { single: true }); - } else { - me.setValueSelection(value); - } - return me.mixins.field.setValue.call(me, value); - }, - - getErrors: function(value) { - let me = this; - if (!me.isDisabled() && me.allowBlank === false && - me.getSelectionModel().getCount() === 0) { - me.addBodyCls(['x-form-trigger-wrap-default', 'x-form-trigger-wrap-invalid']); - return [gettext('No endpoint selected')]; - } - - me.removeBodyCls(['x-form-trigger-wrap-default', 'x-form-trigger-wrap-invalid']); - return []; - }, - - initComponent: function() { - let me = this; - me.callParent(); - me.initField(); - }, - -});