mirror of
https://git.proxmox.com/git/proxmox-widget-toolkit
synced 2025-05-22 15:15:53 +00:00
notify: change 'Remove' button to 'Reset to default' for built-ins
A HTTP DELETE for a built-in target/matcher acts as a reset to its defaults. This patch changes the 'Remove' button text based on the selected target/matcher. If it is a built-in, the button text is changed to 'Reset to default'. Also, if the built-in is not actually modified, the button is disabled. Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
This commit is contained in:
parent
26e2aa7ce4
commit
83bae06cae
@ -1,3 +1,32 @@
|
|||||||
|
Ext.define('Proxmox.panel.NotificationConfigViewModel', {
|
||||||
|
extend: 'Ext.app.ViewModel',
|
||||||
|
|
||||||
|
alias: 'viewmodel.pmxNotificationConfigPanel',
|
||||||
|
|
||||||
|
formulas: {
|
||||||
|
builtinSelected: function(get) {
|
||||||
|
let origin = get('selection')?.get('origin');
|
||||||
|
return origin === 'modified-builtin' || origin === 'builtin';
|
||||||
|
},
|
||||||
|
removeButtonText: function(get) {
|
||||||
|
if (get('builtinSelected')) {
|
||||||
|
return gettext('Reset to default');
|
||||||
|
} else {
|
||||||
|
return gettext('Remove');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
removeButtonConfirmMessage: function(get) {
|
||||||
|
if (get('builtinSelected')) {
|
||||||
|
return gettext('Do you want to reset {0} to its default settings?');
|
||||||
|
} else {
|
||||||
|
// Use default message provided by the button
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
Ext.define('Proxmox.panel.NotificationConfigView', {
|
Ext.define('Proxmox.panel.NotificationConfigView', {
|
||||||
extend: 'Ext.panel.Panel',
|
extend: 'Ext.panel.Panel',
|
||||||
alias: 'widget.pmxNotificationConfigView',
|
alias: 'widget.pmxNotificationConfigView',
|
||||||
@ -36,6 +65,14 @@ Ext.define('Proxmox.panel.NotificationEndpointView', {
|
|||||||
|
|
||||||
title: gettext('Notification Targets'),
|
title: gettext('Notification Targets'),
|
||||||
|
|
||||||
|
viewModel: {
|
||||||
|
type: 'pmxNotificationConfigPanel',
|
||||||
|
},
|
||||||
|
|
||||||
|
bind: {
|
||||||
|
selection: '{selection}',
|
||||||
|
},
|
||||||
|
|
||||||
controller: {
|
controller: {
|
||||||
xclass: 'Ext.app.ViewController',
|
xclass: 'Ext.app.ViewController',
|
||||||
|
|
||||||
@ -70,6 +107,7 @@ Ext.define('Proxmox.panel.NotificationEndpointView', {
|
|||||||
let me = this;
|
let me = this;
|
||||||
let view = me.getView();
|
let view = me.getView();
|
||||||
view.getStore().rstore.load();
|
view.getStore().rstore.load();
|
||||||
|
this.getView().setSelection(null);
|
||||||
},
|
},
|
||||||
|
|
||||||
testEndpoint: function() {
|
testEndpoint: function() {
|
||||||
@ -205,9 +243,17 @@ Ext.define('Proxmox.panel.NotificationEndpointView', {
|
|||||||
{
|
{
|
||||||
xtype: 'proxmoxStdRemoveButton',
|
xtype: 'proxmoxStdRemoveButton',
|
||||||
callback: 'reload',
|
callback: 'reload',
|
||||||
|
bind: {
|
||||||
|
text: '{removeButtonText}',
|
||||||
|
customConfirmationMessage: '{removeButtonConfirmMessage}',
|
||||||
|
},
|
||||||
getUrl: function(rec) {
|
getUrl: function(rec) {
|
||||||
return `${me.baseUrl}/endpoints/${rec.data.type}/${rec.getId()}`;
|
return `${me.baseUrl}/endpoints/${rec.data.type}/${rec.getId()}`;
|
||||||
},
|
},
|
||||||
|
enableFn: (rec) => {
|
||||||
|
let origin = rec.get('origin');
|
||||||
|
return origin === 'user-created' || origin === 'modified-builtin';
|
||||||
|
},
|
||||||
},
|
},
|
||||||
'-',
|
'-',
|
||||||
{
|
{
|
||||||
@ -260,9 +306,18 @@ Ext.define('Proxmox.panel.NotificationMatcherView', {
|
|||||||
|
|
||||||
reload: function() {
|
reload: function() {
|
||||||
this.getView().getStore().rstore.load();
|
this.getView().getStore().rstore.load();
|
||||||
|
this.getView().setSelection(null);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
viewModel: {
|
||||||
|
type: 'pmxNotificationConfigPanel',
|
||||||
|
},
|
||||||
|
|
||||||
|
bind: {
|
||||||
|
selection: '{selection}',
|
||||||
|
},
|
||||||
|
|
||||||
listeners: {
|
listeners: {
|
||||||
itemdblclick: 'openEditForSelectedItem',
|
itemdblclick: 'openEditForSelectedItem',
|
||||||
activate: 'reload',
|
activate: 'reload',
|
||||||
@ -342,7 +397,15 @@ Ext.define('Proxmox.panel.NotificationMatcherView', {
|
|||||||
{
|
{
|
||||||
xtype: 'proxmoxStdRemoveButton',
|
xtype: 'proxmoxStdRemoveButton',
|
||||||
callback: 'reload',
|
callback: 'reload',
|
||||||
|
bind: {
|
||||||
|
text: '{removeButtonText}',
|
||||||
|
customConfirmationMessage: '{removeButtonConfirmMessage}',
|
||||||
|
},
|
||||||
baseurl: `${me.baseUrl}/matchers`,
|
baseurl: `${me.baseUrl}/matchers`,
|
||||||
|
enableFn: (rec) => {
|
||||||
|
let origin = rec.get('origin');
|
||||||
|
return origin === 'user-created' || origin === 'modified-builtin';
|
||||||
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user