From 06c8315d86de5d67f523ad1a2afd4c1b7cae882b Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Wed, 2 Dec 2020 13:56:31 +0100 Subject: [PATCH] fix #3182 #3183: change backup retention mask logic instead of relying on the contentTypeField (which does not need to exists, e.g. for iscsi), explicitely write it into the panel/icon mapping and check that better would be if we query the backend about storage capabilities, but such an api call does not exist yet, so this should be ok for now Signed-off-by: Dominik Csapak --- www/manager6/Utils.js | 41 +++++++++++++++++++++++----------- www/manager6/dc/StorageView.js | 1 + www/manager6/storage/Base.js | 3 +-- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js index 6e6498a2..2bc505f2 100644 --- a/www/manager6/Utils.js +++ b/www/manager6/Utils.js @@ -713,78 +713,93 @@ Ext.define('PVE.Utils', { utilities: { dir: { name: Proxmox.Utils.directoryText, ipanel: 'DirInputPanel', - faIcon: 'folder' + faIcon: 'folder', + backups: true, }, lvm: { name: 'LVM', ipanel: 'LVMInputPanel', - faIcon: 'folder' + faIcon: 'folder', + backups: false, }, lvmthin: { name: 'LVM-Thin', ipanel: 'LvmThinInputPanel', - faIcon: 'folder' + faIcon: 'folder', + backups: false, }, nfs: { name: 'NFS', ipanel: 'NFSInputPanel', - faIcon: 'building' + faIcon: 'building', + backups: true, }, cifs: { name: 'CIFS', ipanel: 'CIFSInputPanel', - faIcon: 'building' + faIcon: 'building', + backups: true, }, glusterfs: { name: 'GlusterFS', ipanel: 'GlusterFsInputPanel', - faIcon: 'building' + faIcon: 'building', + backups: true, }, iscsi: { name: 'iSCSI', ipanel: 'IScsiInputPanel', - faIcon: 'building' + faIcon: 'building', + backups: false, }, cephfs: { name: 'CephFS', ipanel: 'CephFSInputPanel', - faIcon: 'building' + faIcon: 'building', + backups: true, }, pvecephfs: { name: 'CephFS (PVE)', ipanel: 'CephFSInputPanel', hideAdd: true, - faIcon: 'building' + faIcon: 'building', + backups: true, }, rbd: { name: 'RBD', ipanel: 'RBDInputPanel', - faIcon: 'building' + faIcon: 'building', + backups: false, }, pveceph: { name: 'RBD (PVE)', ipanel: 'RBDInputPanel', hideAdd: true, - faIcon: 'building' + faIcon: 'building', + backups: false, }, zfs: { name: 'ZFS over iSCSI', ipanel: 'ZFSInputPanel', - faIcon: 'building' + faIcon: 'building', + backups: false, }, zfspool: { name: 'ZFS', ipanel: 'ZFSPoolInputPanel', - faIcon: 'folder' + faIcon: 'folder', + backups: false, }, pbs: { name: 'Proxmox Backup Server', ipanel: 'PBSInputPanel', faIcon: 'floppy-o', + backups: true, }, drbd: { name: 'DRBD', hideAdd: true, + backups: false, }, }, diff --git a/www/manager6/dc/StorageView.js b/www/manager6/dc/StorageView.js index 83f86c47..74deb442 100644 --- a/www/manager6/dc/StorageView.js +++ b/www/manager6/dc/StorageView.js @@ -18,6 +18,7 @@ Ext.define('PVE.dc.StorageView', { paneltype: 'PVE.storage.' + schema.ipanel, type: type, storageId: sid, + canDoBackups: schema.backups, autoShow: true, listeners: { destroy: this.reloadStore diff --git a/www/manager6/storage/Base.js b/www/manager6/storage/Base.js index 13ba5b7b..45fa2bb3 100644 --- a/www/manager6/storage/Base.js +++ b/www/manager6/storage/Base.js @@ -211,8 +211,7 @@ Ext.define('PVE.storage.BaseEdit', { me.callParent(); - let contentTypeField = me.ipanel.down('pveContentTypeSelector'); - if (contentTypeField && !contentTypeField.cts.includes('backup')) { + if (!me.canDoBackups) { // cannot mask now, not fully rendered until activated me.down('pmxPruneInputPanel').needMask = true; }