]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/window/Backup.js
use Button from widget toolkit
[pve-manager.git] / www / manager6 / window / Backup.js
CommitLineData
56c8ef92
DM
1Ext.define('PVE.window.Backup', {
2 extend: 'Ext.window.Window',
3
4 resizable: false,
5
6 initComponent : function() {
7 var me = this;
8
9 if (!me.nodename) {
10 throw "no node name specified";
11 }
12
13 if (!me.vmid) {
14 throw "no VM ID specified";
15 }
16
17 if (!me.vmtype) {
18 throw "no VM type specified";
19 }
20
21 var storagesel = Ext.create('PVE.form.StorageSelector', {
22 nodename: me.nodename,
23 name: 'storage',
24 value: me.storage,
25 fieldLabel: gettext('Storage'),
26 storageContent: 'backup',
27 allowBlank: false
28 });
29
30 me.formPanel = Ext.create('Ext.form.Panel', {
31 bodyPadding: 10,
32 border: false,
33 fieldDefaults: {
34 labelWidth: 100,
35 anchor: '100%'
36 },
37 items: [
38 storagesel,
39 {
40 xtype: 'pveBackupModeSelector',
41 fieldLabel: gettext('Mode'),
42 value: 'snapshot',
43 name: 'mode'
44 },
45 {
46 xtype: 'pveCompressionSelector',
47 name: 'compress',
48 value: 'lzo',
49 fieldLabel: gettext('Compression')
8b8a4583
DC
50 },
51 {
52 xtype: 'textfield',
53 fieldLabel: gettext('Send email to'),
54 name: 'mailto',
55 emptyText: PVE.Utils.noneText
56c8ef92
DM
56 }
57 ]
58 });
59
60 var form = me.formPanel.getForm();
61
62 var submitBtn = Ext.create('Ext.Button', {
63 text: gettext('Backup'),
64 handler: function(){
65 var storage = storagesel.getValue();
66 var values = form.getValues();
67 var params = {
68 storage: storage,
69 vmid: me.vmid,
70 mode: values.mode,
71 remove: 0
72 };
8b8a4583
DC
73
74 if ( values.mailto ) {
75 params.mailto = values.mailto;
76 }
77
56c8ef92
DM
78 if (values.compress) {
79 params.compress = values.compress;
80 }
81
82 PVE.Utils.API2Request({
83 url: '/nodes/' + me.nodename + '/vzdump',
84 params: params,
85 method: 'POST',
86 failure: function (response, opts) {
87 Ext.Msg.alert('Error',response.htmlStatus);
88 },
89 success: function(response, options) {
e83e60bf
EK
90 // close later so we reload the grid
91 // after the task has completed
92 me.hide();
93
56c8ef92
DM
94 var upid = response.result.data;
95
96 var win = Ext.create('PVE.window.TaskViewer', {
e83e60bf
EK
97 upid: upid,
98 listeners: {
99 close: function() {
100 me.close();
101 }
102 }
56c8ef92
DM
103 });
104 win.show();
56c8ef92
DM
105 }
106 });
107 }
108 });
109
0de33b54
EK
110 var helpBtn = Ext.create('PVE.button.Help', {
111 onlineHelp: 'chapter_vzdump',
112 listenToGlobalEvent: false,
113 hidden: false
114 });
115
56c8ef92 116 var title = gettext('Backup') + " " +
c817f7da 117 ((me.vmtype === 'lxc') ? "CT" : "VM") +
56c8ef92
DM
118 " " + me.vmid;
119
120 Ext.apply(me, {
121 title: title,
122 width: 350,
123 modal: true,
124 layout: 'auto',
125 border: false,
126 items: [ me.formPanel ],
0de33b54 127 buttons: [ helpBtn, '->', submitBtn ]
56c8ef92
DM
128 });
129
130 me.callParent();
131 }
132});