]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/storage/BackupView.js
ui: eslint: fix trailing comma and comma related whitespaces errors
[pve-manager.git] / www / manager6 / storage / BackupView.js
CommitLineData
1665b840
FE
1Ext.define('PVE.storage.BackupView', {
2 extend: 'PVE.storage.ContentView',
3
4 alias: 'widget.pveStorageBackupView',
5
1665b840
FE
6 initComponent: function() {
7 var me = this;
8
9 var nodename = me.nodename = me.pveSelNode.data.node;
10 if (!nodename) {
11 throw "no node name specified";
12 }
13
14 var storage = me.storage = me.pveSelNode.data.storage;
15 if (!storage) {
16 throw "no storage ID specified";
17 }
18
19 me.content = 'backup';
20
21 var sm = me.sm = Ext.create('Ext.selection.RowModel', {});
22
23 var reload = function() {
24 me.store.load();
25 };
26
e969d187
FE
27 let pruneButton = Ext.create('Proxmox.button.Button', {
28 text: gettext('Prune group'),
29 disabled: true,
30 selModel: sm,
31 setBackupGroup: function(backup) {
32 if (backup) {
33 let name = backup.text;
34 let vmid = backup.vmid;
35 let format = backup.format;
36
37 let vmtype;
38 if (name.startsWith('vzdump-lxc-') || format === "pbs-ct") {
39 vmtype = 'lxc';
40 } else if (name.startsWith('vzdump-qemu-') || format === "pbs-vm") {
41 vmtype = 'qemu';
42 }
43
44 if (vmid && vmtype) {
45 this.setText(gettext('Prune group') + ` ${vmtype}/${vmid}`);
46 this.vmid = vmid;
47 this.vmtype = vmtype;
48 this.setDisabled(false);
49 return;
50 }
51 }
52 this.setText(gettext('Prune group'));
53 this.vmid = null;
54 this.vmtype = null;
55 this.setDisabled(true);
56 },
57 handler: function(b, e, rec) {
58 let win = Ext.create('PVE.window.Prune', {
59 nodename: nodename,
60 storage: storage,
61 backup_id: this.vmid,
62 backup_type: this.vmtype,
63 });
64 win.show();
65 win.on('destroy', reload);
66 },
67 });
68
69 me.on('selectionchange', function(model, srecords, eOpts) {
70 if (srecords.length === 1) {
71 pruneButton.setBackupGroup(srecords[0].data);
72 } else {
73 pruneButton.setBackupGroup(null);
74 }
75 });
76
1665b840
FE
77 me.tbar = [
78 {
79 xtype: 'proxmoxButton',
80 text: gettext('Restore'),
81 selModel: sm,
82 disabled: true,
1665b840
FE
83 handler: function(b, e, rec) {
84 var vmtype;
85 if (PVE.Utils.volume_is_qemu_backup(rec.data.volid, rec.data.format)) {
86 vmtype = 'qemu';
87 } else if (PVE.Utils.volume_is_lxc_backup(rec.data.volid, rec.data.format)) {
88 vmtype = 'lxc';
89 } else {
90 return;
91 }
92
93 var win = Ext.create('PVE.window.Restore', {
94 nodename: nodename,
95 volid: rec.data.volid,
96 volidText: PVE.Utils.render_storage_content(rec.data.volid, {}, rec),
f6710aac 97 vmtype: vmtype,
1665b840
FE
98 });
99 win.show();
100 win.on('destroy', reload);
f6710aac 101 },
1665b840
FE
102 },
103 {
104 xtype: 'proxmoxButton',
105 text: gettext('Show Configuration'),
106 disabled: true,
107 selModel: sm,
f6710aac 108 handler: function(b, e, rec) {
1665b840
FE
109 var win = Ext.create('PVE.window.BackupConfig', {
110 volume: rec.data.volid,
f6710aac 111 pveSelNode: me.pveSelNode,
1665b840
FE
112 });
113
114 win.show();
f6710aac 115 },
1665b840 116 },
e969d187 117 pruneButton,
1665b840
FE
118 ];
119
a4b87129
TL
120 if (me.pluginType === 'pbs') {
121 me.extraColumns = {
122 encrypted: {
123 header: gettext('Encrypted'),
124 dataIndex: 'encrypted',
125 renderer: PVE.Utils.render_backup_encryption,
126 },
127 verification: {
128 header: gettext('Verify State'),
129 dataIndex: 'verification',
130 renderer: PVE.Utils.render_backup_verification,
f6710aac 131 },
a4b87129
TL
132 };
133 }
134
1665b840
FE
135 me.callParent();
136 },
137});