]>
git.proxmox.com Git - proxmox-backup.git/blob - www/DataStorePrune.js
1 Ext
.define('pbs-prune-list', {
2 extend
: 'Ext.data.Model',
9 dateFormat
: 'timestamp'
14 Ext
.define('PBS.DataStorePruneInputPanel', {
15 extend
: 'Proxmox.panel.InputPanel',
16 alias
: 'widget.pbsDataStorePruneInputPanel',
17 mixins
: ['Proxmox.Mixin.CBind'],
19 onGetValues: function(values
) {
22 values
["backup-type"] = me
.backup_type
;
23 values
["backup-id"] = me
.backup_id
;
28 xclass
: 'Ext.app.ViewController',
30 init: function(view
) {
32 throw "no url specified";
34 if (!view
.backup_type
) {
35 throw "no backup_type specified";
37 if (!view
.backup_id
) {
38 throw "no backup_id specified";
41 this.reload(); // initial load
45 var view
= this.getView();
47 let params
= view
.getValues();
48 params
["dry-run"] = true;
50 Proxmox
.Utils
.API2Request({
54 callback: function() {
55 return; // for easy breakpoint setting
57 failure: function (response
, opts
) {
58 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
60 success: function(response
, options
) {
61 var data
= response
.result
.data
;
62 view
.prune_store
.setData(data
);
68 field
: { change
: 'reload' }
74 xtype
: 'proxmoxintegerfield',
77 fieldLabel
: gettext('keep-last'),
81 xtype
: 'proxmoxintegerfield',
84 fieldLabel
: gettext('keep-hourly'),
88 xtype
: 'proxmoxintegerfield',
91 fieldLabel
: gettext('keep-daily'),
95 xtype
: 'proxmoxintegerfield',
98 fieldLabel
: gettext('keep-weekly'),
102 xtype
: 'proxmoxintegerfield',
103 name
: 'keep-monthly',
105 fieldLabel
: gettext('keep-monthly'),
109 xtype
: 'proxmoxintegerfield',
112 fieldLabel
: gettext('keep-yearly'),
118 initComponent : function() {
121 me
.prune_store
= Ext
.create('Ext.data.Store', {
122 model
: 'pbs-prune-list',
123 sorters
: { property
: 'backup-time', direction
: 'DESC' }
130 store
: me
.prune_store
,
133 header
: gettext('Backup Time'),
135 dataIndex
: 'backup-time',
136 renderer: function(value
, metaData
, record
) {
137 let text
= Ext
.Date
.format(value
, 'Y-m-d H:i:s');
138 if (record
.data
.keep
) {
141 return '<div style="text-decoration: line-through;">'+ text
+'</div>';
158 Ext
.define('PBS.DataStorePrune', {
159 extend
: 'Proxmox.window.Edit',
166 initComponent : function() {
170 throw "no datastore specified";
172 if (!me
.backup_type
) {
173 throw "no backup_type specified";
176 throw "no backup_id specified";
180 url
: '/api2/extjs/admin/datastore/' + me
.datastore
+ "/prune",
181 title
: "Prune Datastore '" + me
.datastore
+ "'",
183 xtype
: 'pbsDataStorePruneInputPanel',
184 url
: '/api2/extjs/admin/datastore/' + me
.datastore
+ "/prune",
185 backup_type
: me
.backup_type
,
186 backup_id
: me
.backup_id