]>
git.proxmox.com Git - pmg-gui.git/blob - js/BackupRestore.js
2 Ext
.define('pmg-backup-list', {
3 extend
: 'Ext.data.Model',
6 { type
: 'integer', name
: 'size' },
7 { type
: 'date', dateFormat
: 'timestamp', name
: 'timestamp' }
12 url
: "/api2/json/nodes/" + Proxmox
.NodeName
+ "/backup"
14 idProperty
: 'filename'
17 Ext
.define('PMG.RestoreWindow', {
18 extend
: 'Proxmox.window.Edit',
19 xtype
: 'pmgRestoreWindow',
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(cb
, value
) {
44 me
.up().down('field[name=statistic]').setDisabled(!value
);
49 xtype
: 'proxmoxcheckbox',
51 fieldLabel
: gettext('Statistic')
55 initComponent: function() {
59 throw "no filename given";
62 me
.url
= "/nodes/" + Proxmox
.NodeName
+ "/backup/" + encodeURIComponent(me
.filename
);
68 Ext
.define('PMG.BackupRestore', {
69 extend
: 'Ext.grid.GridPanel',
70 xtype
: 'pmgBackupRestore',
72 title
: gettext('Backup') + '/' + gettext('Restore'),
75 xclass
: 'Ext.app.ViewController',
77 createBackup: function() {
78 var me
= this.getView();
79 Proxmox
.Utils
.API2Request({
80 url
: "/nodes/" + Proxmox
.NodeName
+ "/backup",
83 failure: function (response
, opts
) {
84 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
86 success: function(response
, opts
) {
87 var upid
= response
.result
.data
;
89 var win
= Ext
.create('Proxmox.window.TaskViewer', {
93 me
.mon(win
, 'close', function() { me
.store
.load(); });
98 onRestore: function() {
99 var me
= this.getView();
100 var rec
= me
.getSelection()[0];
102 if (!(rec
&& rec
.data
&& rec
.data
.filename
)) {
106 Ext
.create('PMG.RestoreWindow', {
107 filename
: rec
.data
.filename
111 onAfterRemove: function(btn
, res
) {
112 var me
= this.getView();
119 text
: gettext('Backup'),
120 handler
: 'createBackup'
124 xtype
: 'proxmoxButton',
125 text
: gettext('Restore'),
126 handler
: 'onRestore',
130 xtype
: 'proxmoxStdRemoveButton',
131 baseurl
: '/nodes/' + Proxmox
.NodeName
+ '/backup',
132 reference
: 'removeBtn',
133 callback
: 'onAfterRemove',
140 model
: 'pmg-backup-list',
143 property
: 'timestamp',
151 header
: gettext('Filename'),
154 renderer
: Ext
.htmlEncode
,
155 dataIndex
: 'filename'
159 header
: gettext('Time'),
163 dataIndex
: 'timestamp'
166 header
: gettext('Size'),
169 renderer
: Proxmox
.Utils
.format_size
,
173 header
: gettext('Download'),
174 renderer: function(filename
) {
175 return "<a class='download' href='" +
176 "/api2/json/nodes/" + Proxmox
.NodeName
+ "/backup/" + encodeURIComponent(filename
) +
177 "'><i class='fa fa-fw fa-download'</i></a>";
179 dataIndex
: 'filename'