fix #3602: ui: datastore/Content: add action to set protection status
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
aba6189c4f
commit
e33758d1b8
@ -494,6 +494,68 @@ Ext.define('PBS.DataStoreContent', {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onProtectionChange: function(view, rI, cI, item, e, rec) {
|
||||||
|
let me = this;
|
||||||
|
view = this.getView();
|
||||||
|
|
||||||
|
if (!(rec && rec.data)) return;
|
||||||
|
let data = rec.data;
|
||||||
|
if (!view.datastore) return;
|
||||||
|
|
||||||
|
let type = data["backup-type"];
|
||||||
|
let id = data["backup-id"];
|
||||||
|
let time = (data["backup-time"].getTime()/1000).toFixed(0);
|
||||||
|
|
||||||
|
let params = {
|
||||||
|
'backup-type': type,
|
||||||
|
'backup-id': id,
|
||||||
|
'backup-time': time,
|
||||||
|
};
|
||||||
|
|
||||||
|
let url = `/api2/extjs/admin/datastore/${view.datastore}/protected`;
|
||||||
|
|
||||||
|
Ext.create('Proxmox.window.Edit', {
|
||||||
|
subject: gettext('Protection') + ` - ${data.text}`,
|
||||||
|
width: 400,
|
||||||
|
|
||||||
|
method: 'PUT',
|
||||||
|
autoShow: true,
|
||||||
|
isCreate: false,
|
||||||
|
autoLoad: true,
|
||||||
|
|
||||||
|
loadUrl: `${url}?${Ext.Object.toQueryString(params)}`,
|
||||||
|
url,
|
||||||
|
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
xtype: 'hidden',
|
||||||
|
name: 'backup-type',
|
||||||
|
value: type,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'hidden',
|
||||||
|
name: 'backup-id',
|
||||||
|
value: id,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'hidden',
|
||||||
|
name: 'backup-time',
|
||||||
|
value: time,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'proxmoxcheckbox',
|
||||||
|
fieldLabel: gettext('Protected'),
|
||||||
|
uncheckedValue: 0,
|
||||||
|
name: 'protected',
|
||||||
|
value: data.protected,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
listeners: {
|
||||||
|
destroy: () => me.reload(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
onForget: function(view, rI, cI, item, e, rec) {
|
onForget: function(view, rI, cI, item, e, rec) {
|
||||||
let me = this;
|
let me = this;
|
||||||
view = this.getView();
|
view = this.getView();
|
||||||
@ -710,7 +772,7 @@ Ext.define('PBS.DataStoreContent', {
|
|||||||
header: gettext('Actions'),
|
header: gettext('Actions'),
|
||||||
xtype: 'actioncolumn',
|
xtype: 'actioncolumn',
|
||||||
dataIndex: 'text',
|
dataIndex: 'text',
|
||||||
width: 140,
|
width: 150,
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
handler: 'onVerify',
|
handler: 'onVerify',
|
||||||
@ -730,6 +792,12 @@ Ext.define('PBS.DataStoreContent', {
|
|||||||
getClass: (v, m, rec) => rec.parentNode.id ==='root' ? 'fa fa-scissors' : 'pmx-hidden',
|
getClass: (v, m, rec) => rec.parentNode.id ==='root' ? 'fa fa-scissors' : 'pmx-hidden',
|
||||||
isActionDisabled: (v, r, c, i, rec) => rec.parentNode.id !=='root',
|
isActionDisabled: (v, r, c, i, rec) => rec.parentNode.id !=='root',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
handler: 'onProtectionChange',
|
||||||
|
getTip: (v, m, rec) => Ext.String.format(gettext("Change protection of '{0}'"), v),
|
||||||
|
getClass: (v, m, rec) => !rec.data.leaf && rec.parentNode.id !== 'root' ? 'fa fa-shield' : 'pmx-hidden',
|
||||||
|
isActionDisabled: (v, r, c, i, rec) => !!rec.data.leaf || rec.parentNode.id === 'root',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
handler: 'onForget',
|
handler: 'onForget',
|
||||||
getTip: (v, m, rec) => rec.parentNode.id !=='root'
|
getTip: (v, m, rec) => rec.parentNode.id !=='root'
|
||||||
|
Loading…
Reference in New Issue
Block a user