]>
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
=== 'openvz') {
31 vmtypeFilter = function(item
) {
32 return item
.data
.volid
.match(':backup/vzdump-openvz-');
34 } else if (vmtype
=== 'lxc') {
35 vmtypeFilter = function(item
) {
36 return item
.data
.volid
.match(':backup/vzdump-lxc-');
38 } else if (vmtype
=== 'qemu') {
39 vmtypeFilter = function(item
) {
40 return item
.data
.volid
.match(':backup/vzdump-qemu-');
43 throw "unsupported VM type '" + vmtype
+ "'";
48 // on initial store display only our vmid backups
49 // surround with minus sign to prevent the 2016 VMID bug
50 value
: vmtype
+ '-' + vmid
+ '-',
55 me
.store
= Ext
.create('Ext.data.Store', {
56 model
: 'pve-storage-content',
67 var reload
= Ext
.Function
.createBuffered(function() {
73 var setStorage = function(storage
) {
74 var url
= '/api2/json/nodes/' + nodename
+ '/storage/' + storage
+ '/content';
75 url
+= '?content=backup';
85 var storagesel
= Ext
.create('PVE.form.StorageSelector', {
87 fieldLabel
: gettext('Storage'),
89 storageContent
: 'backup',
92 change: function(f
, value
) {
98 var storagefilter
= Ext
.create('Ext.form.field.Text', {
99 fieldLabel
: gettext('Search'),
102 enableKeyEvents
: true,
103 value
: searchFilter
.value
,
106 keyup: function(field
) {
107 me
.store
.clearFilter(true);
108 searchFilter
.value
= field
.getValue();
117 var sm
= Ext
.create('Ext.selection.RowModel', {});
119 var backup_btn
= Ext
.create('Ext.button.Button', {
120 text
: gettext('Backup now'),
121 handler: function() {
122 var win
= Ext
.create('PVE.window.Backup', {
126 storage
: storagesel
.getValue(),
137 var restore_btn
= Ext
.create('Proxmox.button.Button', {
138 text
: gettext('Restore'),
141 enableFn: function(rec
) {
144 handler: function(b
, e
, rec
) {
145 var volid
= rec
.data
.volid
;
147 var win
= Ext
.create('PVE.window.Restore', {
150 volid
: rec
.data
.volid
,
151 volidText
: PVE
.Utils
.render_storage_content(rec
.data
.volid
, {}, rec
),
155 win
.on('destroy', reload
);
159 var delete_btn
= Ext
.create('Proxmox.button.StdRemoveButton', {
162 confirmMsg: function(rec
) {
163 var msg
= Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
164 "'" + rec
.data
.volid
+ "'");
165 msg
+= " " + gettext('This will permanently erase all data.');
169 getUrl: function(rec
) {
170 var storage
= storagesel
.getValue();
171 return '/nodes/' + nodename
+ '/storage/' + storage
+ '/content/' + rec
.data
.volid
;
173 callback: function() {
178 var config_btn
= Ext
.create('Proxmox.button.Button', {
179 text
: gettext('Show Configuration'),
182 enableFn: function(rec
) {
185 handler: function(b
, e
, rec
) {
186 var storage
= storagesel
.getValue();
191 var win
= Ext
.create('PVE.window.BackupConfig', {
192 volume
: rec
.data
.volid
,
193 pveSelNode
: me
.pveSelNode
202 tbar
: [ backup_btn
, restore_btn
, delete_btn
,config_btn
, '->', storagesel
, storagefilter
],
205 header
: gettext('Name'),
208 renderer
: PVE
.Utils
.render_storage_content
,
212 header
: gettext('Format'),
217 header
: gettext('Size'),
219 renderer
: Proxmox
.Utils
.format_size
,