]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/window/Backup.js
1 Ext
.define('PVE.window.Backup', {
2 extend
: 'Ext.window.Window',
6 initComponent: function() {
10 throw "no node name specified";
14 throw "no VM ID specified";
18 throw "no VM type specified";
21 let compressionSelector
= Ext
.create('PVE.form.CompressionSelector', {
24 fieldLabel
: gettext('Compression'),
27 let modeSelector
= Ext
.create('PVE.form.BackupModeSelector', {
28 fieldLabel
: gettext('Mode'),
33 let mailtoField
= Ext
.create('Ext.form.field.Text', {
34 fieldLabel
: gettext('Send email to'),
36 emptyText
: Proxmox
.Utils
.noneText
,
39 let initialDefaults
= false;
41 var storagesel
= Ext
.create('PVE.form.StorageSelector', {
42 nodename
: me
.nodename
,
44 fieldLabel
: gettext('Storage'),
45 storageContent
: 'backup',
48 change: function(f
, v
) {
49 if (!initialDefaults
) {
53 if (v
=== null || v
=== undefined || v
=== '') {
57 let store
= f
.getStore();
58 let rec
= store
.findRecord('storage', v
, 0, false, true, true);
60 if (rec
&& rec
.data
&& rec
.data
.type
=== 'pbs') {
61 compressionSelector
.setValue('zstd');
62 compressionSelector
.setDisabled(true);
63 } else if (!compressionSelector
.getEditable()) {
64 compressionSelector
.setDisabled(false);
67 Proxmox
.Utils
.API2Request({
68 url
: `/nodes/${me.nodename}/vzdump/defaults`,
74 success: function(response
, opts
) {
75 const data
= response
.result
.data
;
77 if (!initialDefaults
&& data
.mailto
!== undefined) {
78 mailtoField
.setValue(data
.mailto
);
80 if (!initialDefaults
&& data
.mode
!== undefined) {
81 modeSelector
.setValue(data
.mode
);
84 initialDefaults
= true;
86 failure: function(response
, opts
) {
87 initialDefaults
= true;
88 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
95 me
.formPanel
= Ext
.create('Proxmox.panel.InputPanel', {
106 var submitBtn
= Ext
.create('Ext.Button', {
107 text
: gettext('Backup'),
108 handler: function() {
109 var storage
= storagesel
.getValue();
110 let values
= me
.formPanel
.getValues();
119 params
.mailto
= values
.mailto
;
122 if (values
.compress
) {
123 params
.compress
= values
.compress
;
126 Proxmox
.Utils
.API2Request({
127 url
: '/nodes/' + me
.nodename
+ '/vzdump',
130 failure: function(response
, opts
) {
131 Ext
.Msg
.alert('Error', response
.htmlStatus
);
133 success: function(response
, options
) {
134 // close later so we reload the grid
135 // after the task has completed
138 var upid
= response
.result
.data
;
140 var win
= Ext
.create('Proxmox.window.TaskViewer', {
154 var helpBtn
= Ext
.create('Proxmox.button.Help', {
155 onlineHelp
: 'chapter_vzdump',
156 listenToGlobalEvent
: false,
160 var title
= gettext('Backup') + " " +
161 (me
.vmtype
=== 'lxc' ? "CT" : "VM") +
169 items
: [me
.formPanel
],
170 buttons
: [helpBtn
, '->', submitBtn
],
172 afterrender: function() {
173 /// cleared within the storage selector's change listener
174 me
.setLoading(gettext('Please wait...'));
175 storagesel
.setValue(me
.storage
);