notification ui: remove notification groups

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
This commit is contained in:
Lukas Wagner 2023-11-14 13:59:46 +01:00 committed by Thomas Lamprecht
parent 159fec230d
commit feacab72ca
4 changed files with 0 additions and 184 deletions

View File

@ -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 \

View File

@ -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: {

View File

@ -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()}`;
},
},

View File

@ -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();
},
});