}
});
+ var revert_btn = new PVE.button.Button({
+ text: gettext('Revert'),
+ selModel: sm,
+ disabled: true,
+ enableFn: function(rec) {
+ if (!rec) {
+ return false;
+ }
+ if(!rec.data['pending'] && !rec.data['delete']){
+ return false;
+ }
+ var rowdef = rows[rec.data.key];
+
+ return true;
+ },
+ handler: function(b, e, rec) {
+ PVE.Utils.API2Request({
+ url: '/api2/extjs/' + baseurl,
+ waitMsgTarget: me,
+ method: 'PUT',
+ params: {
+ 'revert': rec.data.key
+ },
+ callback: function() {
+ reload();
+ },
+ failure: function (response, opts) {
+ Ext.Msg.alert('Error',response.htmlStatus);
+ }
+ });
+ }
+ });
+
Ext.applyIf(me, {
url: '/api2/json/' + 'nodes/' + nodename + '/qemu/' + vmid + '/pending',
selModel: sm,
edit_btn,
resize_btn,
move_btn,
- diskthrottle_btn
+ diskthrottle_btn,
+ revert_btn
],
rows: rows,
sorterFn: sorterFn,
handler: run_editor
});
+ var revert_btn = new PVE.button.Button({
+ text: gettext('Revert'),
+ disabled: true,
+ handler: function() {
+ var sm = me.getSelectionModel();
+ var rec = sm.getSelection()[0];
+ if (!rec) {
+ return;
+ }
+
+ PVE.Utils.API2Request({
+ url: '/api2/extjs/' + baseurl,
+ waitMsgTarget: me,
+ method: 'PUT',
+ params: {
+ 'revert': rec.data.key
+ },
+ callback: function() {
+ reload();
+ },
+ failure: function (response, opts) {
+ Ext.Msg.alert('Error',response.htmlStatus);
+ }
+ });
+ }
+ });
+
var set_button_status = function() {
var sm = me.getSelectionModel();
var rec = sm.getSelection()[0];
edit_btn.disable();
return;
}
+
+ if(rec.data['pending'] || rec.data['delete']){
+ revert_btn.setDisabled(false);
+ }else {
+ revert_btn.setDisabled(true);
+ }
+
var rowdef = rows[rec.data.key];
edit_btn.setDisabled(!rowdef.editor);
};
Ext.applyIf(me, {
url: "/api2/json/nodes/" + nodename + "/qemu/" + vmid + "/pending",
cwidth1: 170,
- tbar: [ edit_btn ],
+ tbar: [ edit_btn, revert_btn ],
rows: rows,
listeners: {
itemdblclick: run_editor,