]>
git.proxmox.com Git - pve-manager.git/blob - www/manager/window/Restore.js
da5a2591db22a40a72871718cb9c37512b720c0e
1 Ext
.define('PVE.window.Restore', {
2 extend
: 'Ext.window.Window', // fixme: PVE.window.Edit?
6 initComponent : function() {
10 throw "no node name specified";
14 throw "no volume ID specified";
18 throw "no vmtype specified";
21 var storagesel
= Ext
.create('PVE.form.StorageSelector', {
22 nodename
: me
.nodename
,
25 fieldLabel
: gettext('Storage'),
26 storageContent
: (me
.vmtype
=== 'openvz') ? 'rootdir' : 'images',
30 me
.formPanel
= Ext
.create('Ext.form.Panel', {
39 xtype
: 'displayfield',
40 value
: me
.volidText
|| me
.volid
,
41 fieldLabel
: gettext('Source')
45 xtype
: me
.vmid
? 'displayfield' : 'pveVMIDSelector',
49 loadNextFreeVMID
: me
.vmid
? false: true,
55 var form
= me
.formPanel
.getForm();
57 var doRestore = function(url
, params
) {
58 PVE
.Utils
.API2Request({
63 failure: function (response
, opts
) {
64 Ext
.Msg
.alert('Error', response
.htmlStatus
);
66 success: function(response
, options
) {
67 var upid
= response
.result
.data
;
69 var win
= Ext
.create('PVE.window.TaskViewer', {
78 var submitBtn
= Ext
.create('Ext.Button', {
79 text
: gettext('Restore'),
81 var storage
= storagesel
.getValue();
82 var values
= form
.getValues();
86 vmid
: me
.vmid
|| values
.vmid
,
87 force
: me
.vmid
? 1 : 0
91 if (me
.vmtype
=== 'openvz') {
92 url
= '/nodes/' + me
.nodename
+ '/openvz';
93 params
.ostemplate
= me
.volid
;
95 } else if (me
.vmtype
=== 'qemu') {
96 url
= '/nodes/' + me
.nodename
+ '/qemu';
97 params
.archive
= me
.volid
;
99 throw 'unknown VM type';
103 var msg
= gettext('Are you sure you want to restore this VM?') + ' ' +
104 gettext('This will permanently erase current VM data.');
105 Ext
.Msg
.confirm('Confirmation', msg
, function(btn
) {
109 doRestore(url
, params
);
112 doRestore(url
, params
);
117 form
.on('validitychange', function(f
, valid
) {
118 submitBtn
.setDisabled(!valid
);
121 var title
= (me
.vmtype
=== 'openvz') ? "Restore CT" : "Restore VM";
129 items
: [ me
.formPanel
],
130 buttons
: [ submitBtn
]