]>
git.proxmox.com Git - pve-manager.git/blob - www/manager/lxc/Snapshot.js
7b2e33ae5060bd575df1be2c6b56ecdeb1a92688
1 Ext
.define('PVE.window.LxcSnapshot', {
2 extend
: 'Ext.window.Window',
6 take_snapshot: function(snapname
, descr
, vmstate
) {
8 var params
= { snapname
: snapname
};
10 params
.description
= descr
;
13 PVE
.Utils
.API2Request({
15 url
: '/nodes/' + me
.nodename
+ '/lxc/' + me
.vmid
+ "/snapshot",
18 failure: function(response
, opts
) {
19 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
21 success: function(response
, options
) {
22 var upid
= response
.result
.data
;
23 var win
= Ext
.create('PVE.window.TaskProgress', { upid
: upid
});
30 update_snapshot: function(snapname
, descr
) {
32 PVE
.Utils
.API2Request({
33 params
: { description
: descr
},
34 url
: '/nodes/' + me
.nodename
+ '/lxc/' + me
.vmid
+ "/snapshot/" +
38 failure: function(response
, opts
) {
39 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
41 success: function(response
, options
) {
47 initComponent : function() {
51 throw "no node name specified";
55 throw "no VM ID specified";
58 var summarystore
= Ext
.create('Ext.data.Store', {
70 xtype
: me
.snapname
? 'displayfield' : 'textfield',
73 fieldLabel
: gettext('Name'),
81 xtype
: 'displayfield',
83 fieldLabel
: gettext('Timestamp')
88 xtype
: 'textareafield',
91 fieldLabel
: gettext('Description')
96 title
: gettext('Settings'),
101 {header
: gettext('Key'), width
: 150, dataIndex
: 'key'},
102 {header
: gettext('Value'), flex
: 1, dataIndex
: 'value'}
107 me
.formPanel
= Ext
.create('Ext.form.Panel', {
117 var form
= me
.formPanel
.getForm();
122 me
.title
= gettext('Edit') + ': ' + gettext('Snapshot');
123 submitBtn
= Ext
.create('Ext.Button', {
124 text
: gettext('Update'),
125 handler: function() {
126 if (form
.isValid()) {
127 var values
= form
.getValues();
128 me
.update_snapshot(me
.snapname
, values
.description
);
133 me
.title
="VM " + me
.vmid
+ ': ' + gettext('Take Snapshot');
134 submitBtn
= Ext
.create('Ext.Button', {
135 text
: gettext('Take Snapshot'),
136 handler: function() {
137 if (form
.isValid()) {
138 var values
= form
.getValues();
139 me
.take_snapshot(values
.snapname
, values
.description
);
150 buttons
: [ submitBtn
],
151 items
: [ me
.formPanel
]
168 PVE
.Utils
.API2Request({
169 url
: '/nodes/' + me
.nodename
+ '/lxc/' + me
.vmid
+ "/snapshot/" +
170 me
.snapname
+ '/config',
173 failure: function(response
, opts
) {
174 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
177 success: function(response
, options
) {
178 var data
= response
.result
.data
;
180 Ext
.Object
.each(data
, function(key
, value
) {
181 if (key
=== 'description' || key
=== 'snaptime') {
184 kvarray
.push({ key
: key
, value
: value
});
187 summarystore
.suspendEvents();
188 summarystore
.add(kvarray
);
190 summarystore
.resumeEvents();
191 summarystore
.fireEvent('datachanged', summarystore
);
193 form
.findField('snaptime').setValue(new Date(data
.snaptime
));
194 form
.findField('description').setValue(data
.description
);