Commit 9822bddd authored by Dietmar Maurer's avatar Dietmar Maurer

use new button class

parent 5838b3ba
...@@ -61,7 +61,9 @@ Ext.define('PVE.grid.BackupView', { ...@@ -61,7 +61,9 @@ Ext.define('PVE.grid.BackupView', {
} }
}); });
var backup_btn = new Ext.Button({ var sm = Ext.create('Ext.selection.RowModel', {});
var backup_btn = Ext.create('Ext.button.Button', {
text: 'Backup now', text: 'Backup now',
handler: function() { handler: function() {
var win = Ext.create('PVE.window.Backup', { var win = Ext.create('PVE.window.Backup', {
...@@ -74,111 +76,91 @@ Ext.define('PVE.grid.BackupView', { ...@@ -74,111 +76,91 @@ Ext.define('PVE.grid.BackupView', {
} }
}); });
var restore_btn = new Ext.Button({ var restore_btn = Ext.create('PVE.button.Button', {
text: 'Restore', text: 'Restore',
disabled: true, disabled: true,
handler: function(){ selModel: sm,
var sm = me.getSelectionModel(); confirmMsg: function(rec) {
var rec = sm.getSelection()[0]; return 'Are you sure you want to restore from "' + rec.data.volid + '"? ' +
if (!rec) {
return;
}
var volid = rec.data.volid;
msg = 'Are you sure you want to restore from "' + volid + '"? ' +
'This will permanently erase current VM data.'; 'This will permanently erase current VM data.';
Ext.Msg.confirm('Restore Confirmation', msg, function(btn) { },
if (btn !== 'yes') { enableFn: function(rec) {
return; return !!rec;
} },
handler: function(b, e, rec) {
var volid = rec.data.volid;
var url; var url;
var params = { var params = {
vmid: vmid, vmid: vmid,
force: 1 force: 1
}; };
if (vmtype === 'openvz') { if (vmtype === 'openvz') {
url = '/nodes/' + nodename + '/openvz'; url = '/nodes/' + nodename + '/openvz';
params.ostemplate = volid; params.ostemplate = volid;
} else if (vmtype === 'qemu') { } else if (vmtype === 'qemu') {
url = '/nodes/' + nodename + '/qemu'; url = '/nodes/' + nodename + '/qemu';
params.archive = volid; params.archive = volid;
} else { } else {
throw 'unknown VM type'; throw 'unknown VM type';
} }
PVE.Utils.API2Request({ PVE.Utils.API2Request({
url: url, url: url,
params: params, params: params,
method: 'POST', method: 'POST',
waitMsgTarget: me, waitMsgTarget: me,
failure: function(response, opts) { failure: function(response, opts) {
Ext.Msg.alert('Error', response.htmlStatus); Ext.Msg.alert('Error', response.htmlStatus);
}, },
success: function(response, options) { success: function(response, options) {
var upid = response.result.data; var upid = response.result.data;
var win = Ext.create('PVE.window.TaskViewer', { var win = Ext.create('PVE.window.TaskViewer', {
upid: upid upid: upid
}); });
win.show(); win.show();
} }
});
}); });
} }
}); });
var delete_btn = new Ext.Button({ var delete_btn = Ext.create('PVE.button.Button', {
text: 'Delete', text: 'Delete',
disabled: true, disabled: true,
handler: function(){ selModel: sm,
var sm = me.getSelectionModel(); confirmMsg: function(rec) {
var rec = sm.getSelection()[0]; return 'Are you sure you want to delete "' + rec.data.volid + '"? ' +
if (!rec) { 'This will permanently erase all data.';
return; },
} enableFn: function(rec) {
return !!rec;
},
handler: function(b, e, rec){
var storage = storagesel.getValue(); var storage = storagesel.getValue();
if (!storage) { if (!storage) {
return; return;
} }
var volid = rec.data.volid; var volid = rec.data.volid;
PVE.Utils.API2Request({
msg = 'Are you sure you want to delete "' + volid + '"? ' + url: "/nodes/" + nodename + "/storage/" + storage + "/content/" + volid,
'This will permanently erase all data.'; method: 'DELETE',
Ext.Msg.confirm('Delete Confirmation', msg, function(btn) { waitMsgTarget: me,
if (btn !== 'yes') { failure: function(response, opts) {
return; Ext.Msg.alert('Error', response.htmlStatus);
},
success: function(response, options) {
reload();
} }
PVE.Utils.API2Request({
url: "/nodes/" + nodename + "/storage/" + storage + "/content/" + volid,
method: 'DELETE',
waitMsgTarget: me,
failure: function(response, opts) {
Ext.Msg.alert('Error', response.htmlStatus);
},
success: function(response, options) {
reload();
}
});
}); });
} }
}); });
var set_button_status = function() {
var sm = me.getSelectionModel();
var rec = sm.getSelection()[0];
restore_btn.setDisabled(!(rec && rec.data.volid));
delete_btn.setDisabled(!(rec && rec.data.volid));
}
Ext.apply(me, { Ext.apply(me, {
stateful: false, stateful: false,
selModel: sm,
tbar: [ backup_btn, restore_btn, delete_btn, '->', storagesel ], tbar: [ backup_btn, restore_btn, delete_btn, '->', storagesel ],
columns: [ columns: [
{ {
...@@ -201,8 +183,7 @@ Ext.define('PVE.grid.BackupView', { ...@@ -201,8 +183,7 @@ Ext.define('PVE.grid.BackupView', {
} }
], ],
listeners: { listeners: {
show: reload, show: reload
selectionchange: set_button_status
} }
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment