]>
git.proxmox.com Git - pmg-gui.git/blob - js/BackupRestore.js
b66a80ebc3ca374b244f8205e12707bf6c30ca27
1 Ext
.define('pmg-backup-list', {
2 extend
: 'Ext.data.Model',
5 { type
: 'integer', name
: 'size' },
6 { type
: 'date', dateFormat
: 'timestamp', name
: 'timestamp' },
11 url
: "/api2/json/nodes/" + Proxmox
.NodeName
+ "/backup",
13 idProperty
: 'filename',
16 Ext
.define('PMG.RestoreWindow', {
17 extend
: 'Proxmox.window.Edit',
18 xtype
: 'pmgRestoreWindow',
19 onlineHelp
: 'chapter_pmgbackup',
22 title
: gettext('Restore'),
25 submitText
: gettext('Restore'),
31 xtype
: 'proxmoxcheckbox',
33 fieldLabel
: gettext('System Configuration'),
36 xtype
: 'proxmoxcheckbox',
40 fieldLabel
: gettext('Rule Database'),
42 change: function(field
, value
) {
43 field
.nextSibling('field[name=statistic]').setDisabled(!value
);
48 xtype
: 'proxmoxcheckbox',
50 fieldLabel
: gettext('Statistic'),
54 initComponent: function() {
58 throw "no filename given";
61 me
.url
= `/nodes/${Proxmox.NodeName}/backup/${encodeURIComponent(me.filename)}`;
67 Ext
.define('PMG.BackupRestore', {
68 extend
: 'Ext.grid.GridPanel',
69 xtype
: 'pmgBackupRestore',
71 title
: gettext('Backup') + '/' + gettext('Restore'),
74 xclass
: 'Ext.app.ViewController',
76 createBackup: function() {
77 let view
= this.getView();
78 Proxmox
.Utils
.API2Request({
79 url
: "/nodes/" + Proxmox
.NodeName
+ "/backup",
82 failure: function(response
, opts
) {
83 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
85 success: function(response
, opts
) {
86 let upid
= response
.result
.data
;
88 let win
= Ext
.create('Proxmox.window.TaskViewer', {
92 view
.mon(win
, 'close', () => view
.store
.load());
97 onRestore: function() {
98 let view
= this.getView();
99 let rec
= view
.getSelection()[0];
101 if (!(rec
&& rec
.data
&& rec
.data
.filename
)) {
105 Ext
.create('PMG.RestoreWindow', {
106 filename
: rec
.data
.filename
,
110 onAfterRemove: function(btn
, res
) {
111 let view
= this.getView();
118 text
: gettext('Backup'),
119 handler
: 'createBackup',
123 xtype
: 'proxmoxButton',
124 text
: gettext('Restore'),
125 handler
: 'onRestore',
129 xtype
: 'proxmoxStdRemoveButton',
130 baseurl
: '/nodes/' + Proxmox
.NodeName
+ '/backup',
131 reference
: 'removeBtn',
132 callback
: 'onAfterRemove',
139 model
: 'pmg-backup-list',
142 property
: 'timestamp',
150 header
: gettext('Filename'),
153 renderer
: Ext
.htmlEncode
,
154 dataIndex
: 'filename',
158 header
: gettext('Time'),
162 dataIndex
: 'timestamp',
165 header
: gettext('Size'),
168 renderer
: Proxmox
.Utils
.format_size
,
172 header
: gettext('Download'),
173 renderer: function(filename
) {
174 return "<a class='download' href='" +
175 "/api2/json/nodes/" + Proxmox
.NodeName
+ "/backup/" + encodeURIComponent(filename
) +
176 "'><i class='fa fa-fw fa-download'</i></a>";
178 dataIndex
: 'filename',