From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 9462C99E50 for ; Tue, 14 Nov 2023 14:07:04 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7BC4D30F13 for ; Tue, 14 Nov 2023 14:07:04 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Tue, 14 Nov 2023 14:07:02 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 0C2444299C for ; Tue, 14 Nov 2023 14:00:20 +0100 (CET) From: Lukas Wagner To: pve-devel@lists.proxmox.com Date: Tue, 14 Nov 2023 13:59:46 +0100 Message-Id: <20231114130000.565122-39-l.wagner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231114130000.565122-1-l.wagner@proxmox.com> References: <20231114130000.565122-1-l.wagner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.009 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [me.name, data.name] Subject: [pve-devel] [PATCH v2 proxmox-widget-toolkit 38/52] notification ui: remove notification groups X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Nov 2023 13:07:04 -0000 Signed-off-by: Lukas Wagner --- src/Makefile | 1 - src/Schema.js | 5 - src/panel/NotificationConfigView.js | 4 - src/panel/NotificationGroupEditPanel.js | 174 ------------------------ 4 files changed, 184 deletions(-) delete mode 100644 src/panel/NotificationGroupEditPanel.js 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 a7ffdf8..37ecd88 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(); - }, - -}); -- 2.39.2