]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/grid/BackupView.js
1 Ext
.define('PVE.grid.BackupView', {
2 extend
: 'Ext.grid.GridPanel',
4 alias
: ['widget.pveBackupView'],
6 onlineHelp
: 'chapter_vzdump',
9 stateId
: 'grid-guest-backup',
11 initComponent : function() {
14 var nodename
= me
.pveSelNode
.data
.node
;
16 throw "no node name specified";
19 var vmid
= me
.pveSelNode
.data
.vmid
;
21 throw "no VM ID specified";
24 var vmtype
= me
.pveSelNode
.data
.type
;
26 throw "no VM type specified";
30 if (vmtype
=== 'lxc' || vmtype
=== 'openvz') {
31 vmtypeFilter = function(item
) {
32 return PVE
.Utils
.volume_is_lxc_backup(item
.data
.volid
, item
.data
.format
);
34 } else if (vmtype
=== 'qemu') {
35 vmtypeFilter = function(item
) {
36 return PVE
.Utils
.volume_is_qemu_backup(item
.data
.volid
, item
.data
.format
);
39 throw "unsupported VM type '" + vmtype
+ "'";
54 me
.store
= Ext
.create('Ext.data.Store', {
55 model
: 'pve-storage-content',
67 let updateFilter = function() {
75 var reload
= Ext
.Function
.createBuffered(function() {
81 var setStorage = function(storage
) {
82 var url
= '/api2/json/nodes/' + nodename
+ '/storage/' + storage
+ '/content';
83 url
+= '?content=backup';
93 var storagesel
= Ext
.create('PVE.form.StorageSelector', {
95 fieldLabel
: gettext('Storage'),
97 storageContent
: 'backup',
100 change: function(f
, value
) {
106 var storagefilter
= Ext
.create('Ext.form.field.Text', {
107 fieldLabel
: gettext('Search'),
110 enableKeyEvents
: true,
111 value
: searchFilter
.value
,
114 keyup: function(field
) {
115 me
.store
.clearFilter(true);
116 searchFilter
.value
= field
.getValue();
122 var vmidfilterCB
= Ext
.create('Ext.form.field.Checkbox', {
123 fieldLabel
: gettext('Filter ID'),
127 change: function(cb
, value
) {
128 vmidFilter
.value
= !!value
? vmid
: '';
134 var sm
= Ext
.create('Ext.selection.RowModel', {});
136 var backup_btn
= Ext
.create('Ext.button.Button', {
137 text
: gettext('Backup now'),
138 handler: function() {
139 var win
= Ext
.create('PVE.window.Backup', {
143 storage
: storagesel
.getValue(),
154 var restore_btn
= Ext
.create('Proxmox.button.Button', {
155 text
: gettext('Restore'),
158 enableFn: function(rec
) {
161 handler: function(b
, e
, rec
) {
162 var volid
= rec
.data
.volid
;
164 var win
= Ext
.create('PVE.window.Restore', {
167 volid
: rec
.data
.volid
,
168 volidText
: PVE
.Utils
.render_storage_content(rec
.data
.volid
, {}, rec
),
172 win
.on('destroy', reload
);
176 var delete_btn
= Ext
.create('Proxmox.button.StdRemoveButton', {
180 confirmMsg: function(rec
) {
181 var msg
= Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
182 "'" + rec
.data
.volid
+ "'");
183 msg
+= " " + gettext('This will permanently erase all data.');
187 getUrl: function(rec
) {
188 var storage
= storagesel
.getValue();
189 return '/nodes/' + nodename
+ '/storage/' + storage
+ '/content/' + rec
.data
.volid
;
191 callback: function() {
196 var config_btn
= Ext
.create('Proxmox.button.Button', {
197 text
: gettext('Show Configuration'),
200 enableFn: function(rec
) {
203 handler: function(b
, e
, rec
) {
204 var storage
= storagesel
.getValue();
209 var win
= Ext
.create('PVE.window.BackupConfig', {
210 volume
: rec
.data
.volid
,
211 pveSelNode
: me
.pveSelNode
221 overflowHandler
: 'scroller',
222 items
: [ backup_btn
, restore_btn
, delete_btn
,config_btn
, '->', storagesel
, vmidfilterCB
, storagefilter
],
226 header
: gettext('Name'),
229 renderer
: PVE
.Utils
.render_storage_content
,
233 header
: gettext('Date'),
238 header
: gettext('Format'),
243 header
: gettext('Size'),
245 renderer
: Proxmox
.Utils
.format_size
,
249 header
: gettext('VMID'),