ui: factor out pending changes revert button

makes no sense to have the, more or less, exact same 25 line method 5
times..

could be moved to widget TK, but that's for another time.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht 2019-10-30 11:19:35 +01:00
parent b8d53fbe54
commit 591efb6725
7 changed files with 51 additions and 135 deletions

View File

@ -8,6 +8,7 @@ JSSRC= \
menu/MenuItem.js \
menu/TemplateMenu.js \
button/ConsoleButton.js \
button/Revert.js \
button/Split.js \
controller/StorageEdit.js \
qemu/CmdMenu.js \

View File

@ -0,0 +1,38 @@
Ext.define('PVE.button.PendingRevert', {
extend: 'Proxmox.button.Button',
alias: 'widget.pvePendingRevertButton',
text: gettext('Revert'),
disabled: true,
config: {
pendingGrid: null,
baseurl: undefined,
},
handler: function() {
let view = this.pendingGrid;
let rec = view.getSelectionModel().getSelection()[0];
if (!rec) return;
let rowdef = view.rows[rec.data.key] || {};
let keys = rowdef.multiKey || [ rec.data.key ];
Proxmox.Utils.API2Request({
url: this.baseurl || view.editorConfig.url,
waitMsgTarget: view,
selModel: view.getSelectionModel(),
method: 'PUT',
params: {
'revert': keys.join(',')
},
callback: () => view.reload(),
failure: (response) => Ext.Msg.alert('Error', response.htmlStatus),
});
},
initComponent: function() {
if (!this.pendingGrid) throw "revert button requires a pendingGrid";
this.callParent(arguments);
},
});

View File

@ -213,37 +213,9 @@ Ext.define('PVE.lxc.DNS', {
handler: run_editor
});
var revert_btn = new Proxmox.button.Button({
text: gettext('Revert'),
disabled: true,
handler: function() {
var sm = me.getSelectionModel();
var rec = sm.getSelection()[0];
if (!rec) {
return;
}
var rowdef = me.rows[rec.data.key] || {};
var keys = rowdef.multiKey || [ rec.data.key ];
var revert = keys.join(',');
Proxmox.Utils.API2Request({
url: '/api2/extjs/' + baseurl,
waitMsgTarget: me,
method: 'PUT',
params: {
'revert': revert
},
callback: function() {
me.reload();
},
failure: function (response, opts) {
Ext.Msg.alert('Error',response.htmlStatus);
}
var revert_btn = new PVE.button.PendingRevert({
pendingGrid: me,
});
}
});
var set_button_status = function() {
var sm = me.getSelectionModel();

View File

@ -161,35 +161,8 @@ Ext.define('PVE.lxc.Options', {
handler: function() { me.run_editor(); }
});
var revert_btn = new Proxmox.button.Button({
text: gettext('Revert'),
disabled: true,
handler: function() {
var sm = me.getSelectionModel();
var rec = sm.getSelection()[0];
if (!rec) {
return;
}
var rowdef = me.rows[rec.data.key] || {};
var keys = rowdef.multiKey || [ rec.data.key ];
var revert = keys.join(',');
Proxmox.Utils.API2Request({
url: '/api2/extjs/' + baseurl,
waitMsgTarget: me,
method: 'PUT',
params: {
'revert': revert
},
callback: function() {
me.reload();
},
failure: function (response, opts) {
Ext.Msg.alert('Error',response.htmlStatus);
}
});
}
var revert_btn = new PVE.button.PendingRevert({
pendingGrid: me,
});
var set_button_status = function() {

View File

@ -215,29 +215,8 @@ Ext.define('PVE.lxc.RessourceView', {
handler: run_move
});
var revert_btn = new Proxmox.button.Button({
text: gettext('Revert'),
selModel: me.selModel,
disabled: true,
handler: function(b, e, rec) {
var rowdef = me.rows[rec.data.key] || {};
var keys = rowdef.multiKey || [ rec.data.key ];
var revert = keys.join(',');
Proxmox.Utils.API2Request({
url: '/api2/extjs/' + baseurl,
waitMsgTarget: me,
method: 'PUT',
params: {
'revert': revert
},
callback: function() {
me.rstore.load();
},
failure: function (response, opts) {
Ext.Msg.alert('Error',response.htmlStatus);
}
});
}
var revert_btn = new PVE.button.PendingRevert({
pendingGrid: me,
});
var set_button_status = function() {

View File

@ -500,29 +500,9 @@ Ext.define('PVE.qemu.HardwareView', {
}
});
var revert_btn = new Proxmox.button.Button({
text: gettext('Revert'),
selModel: sm,
disabled: true,
handler: function(b, e, rec) {
var rowdef = me.rows[rec.data.key] || {};
var keys = rowdef.multiKey || [ rec.data.key ];
var revert = keys.join(',');
Proxmox.Utils.API2Request({
url: '/api2/extjs/' + baseurl,
waitMsgTarget: me,
method: 'PUT',
params: {
'revert': revert
},
callback: function() {
reload();
},
failure: function (response, opts) {
Ext.Msg.alert('Error',response.htmlStatus);
}
});
}
var revert_btn = new PVE.button.PendingRevert({
pendingGrid: me,
baseurl: '/api2/extjs/' + baseurl,
});
var efidisk_menuitem = Ext.create('Ext.menu.Item',{

View File

@ -309,35 +309,8 @@ Ext.define('PVE.qemu.Options', {
handler: function() { me.run_editor(); }
});
var revert_btn = new Proxmox.button.Button({
text: gettext('Revert'),
disabled: true,
handler: function() {
var sm = me.getSelectionModel();
var rec = sm.getSelection()[0];
if (!rec) {
return;
}
var rowdef = me.rows[rec.data.key] || {};
var keys = rowdef.multiKey || [ rec.data.key ];
var revert = keys.join(',');
Proxmox.Utils.API2Request({
url: '/api2/extjs/' + baseurl,
waitMsgTarget: me,
method: 'PUT',
params: {
'revert': revert
},
callback: function() {
me.reload();
},
failure: function (response, opts) {
Ext.Msg.alert('Error',response.htmlStatus);
}
});
}
var revert_btn = new PVE.button.PendingRevert({
pendingGrid: me,
});
var set_button_status = function() {