From: Niclas Berglind Date: Fri, 12 Sep 2014 10:36:01 +0000 (+0200) Subject: Dynamically hide/show top buttons based on user selection. X-Git-Url: http://git.datanom.net/omvzfs.git/commitdiff_plain/5690c58bd4b068fca83db81fd99ba342c54f9420 Dynamically hide/show top buttons based on user selection. Signed-off-by: Niclas Berglind --- diff --git a/gui/js/omv/module/admin/storage/zfs/TreePanel.js b/gui/js/omv/module/admin/storage/zfs/TreePanel.js index 004a246..320a6cd 100644 --- a/gui/js/omv/module/admin/storage/zfs/TreePanel.js +++ b/gui/js/omv/module/admin/storage/zfs/TreePanel.js @@ -98,9 +98,9 @@ Ext.define("OMV.module.admin.storage.zfs.TreePanel", { hideTopToolbar: false, hidePagingToolbar: true, hideAddButton: false, - hideAddObjButton: false, - hideEditButton: false, - hideDeleteButton: false, + hideAddObjButton: true, + hideEditButton: true, + hideDeleteButton: true, hideUpButton: true, hideDownButton: true, hideApplyButton: true, @@ -193,16 +193,6 @@ Ext.define("OMV.module.admin.storage.zfs.TreePanel", { hidden: me.hideAddButton, handler: Ext.Function.bind(me.onAddButton, me, [ me ]), scope: me - },{ - id: me.getId() + "-addobj", - xtype: "button", - text: me.addObjButtonText, - icon: "images/add.png", - iconCls: Ext.baseCSSPrefix + "btn-icon-16x16", - hidden: me.hideAddObjButton, - handler: Ext.Function.bind(me.onAddObjButton, me, [ me ]), - scope: me, - disabled: true },{ id: me.getId() + "-edit", xtype: "button", @@ -213,6 +203,16 @@ Ext.define("OMV.module.admin.storage.zfs.TreePanel", { handler: Ext.Function.bind(me.onEditButton, me, [ me ]), scope: me, disabled: true + },{ + id: me.getId() + "-addobj", + xtype: "button", + text: me.addObjButtonText, + icon: "images/add.png", + iconCls: Ext.baseCSSPrefix + "btn-icon-16x16", + hidden: me.hideAddObjButton, + handler: Ext.Function.bind(me.onAddObjButton, me, [ me ]), + scope: me, + disabled: true },{ id: me.getId() + "-delete", xtype: "button", @@ -281,6 +281,13 @@ Ext.define("OMV.module.admin.storage.zfs.TreePanel", { "up": true, "down": true }; + var tbarBtnHidden = { + "addobj": true, + "edit": true, + "delete": true, + "up": true, + "down": true + }; // Enable/disable buttons depending on the number of selected rows. if(records.length <= 0) { tbarBtnDisabled["addobj"] = true; @@ -288,24 +295,34 @@ Ext.define("OMV.module.admin.storage.zfs.TreePanel", { tbarBtnDisabled["delete"] = true; tbarBtnDisabled["up"] = true; tbarBtnDisabled["down"] = true; + tbarBtnHidden["addobj"] = true; + tbarBtnHidden["edit"] = true; + tbarBtnHidden["delete"] = true; } else if(records.length == 1) { tbarBtnDisabled["addobj"] = false; tbarBtnDisabled["edit"] = false; tbarBtnDisabled["delete"] = false; tbarBtnDisabled["up"] = false; tbarBtnDisabled["down"] = false; + tbarBtnHidden["addobj"] = false; + tbarBtnHidden["edit"] = false; + tbarBtnHidden["delete"] = false; } else { tbarBtnDisabled["addobj"] = true; tbarBtnDisabled["edit"] = true; tbarBtnDisabled["delete"] = false; tbarBtnDisabled["up"] = false; tbarBtnDisabled["down"] = false; + tbarBtnHidden["addobj"] = true; + tbarBtnHidden["edit"] = true; + tbarBtnHidden["delete"] = false; } //Disable 'AddObj' button if selected row is a Poool or a Snapshot Ext.Array.each(records, function(record) { if(("Pool" == record.get("type")) || ("Snapshot" == record.get("type"))) { tbarBtnDisabled["addobj"] = true; + tbarBtnHidden["addobj"] = true; return false; } }); @@ -314,6 +331,7 @@ Ext.define("OMV.module.admin.storage.zfs.TreePanel", { Ext.Array.each(records, function(record) { if((false == record.get("leaf"))) { tbarBtnDisabled["delete"] = true; + tbarBtnHidden["delete"] = true; return false; } }); @@ -327,6 +345,11 @@ Ext.define("OMV.module.admin.storage.zfs.TreePanel", { } else { tbarBtnCtrl.enable(); } + if(true == tbarBtnHidden[name]) { + tbarBtnCtrl.hide(); + } else { + tbarBtnCtrl.show(); + } } }); },