pgadmin4/web/pgadmin/static/js/nodes/supported_database_node.js
2020-01-02 14:43:50 +00:00

38 lines
1.0 KiB
JavaScript

/////////////////////////////////////////////////////////////
//
// pgAdmin 4 - PostgreSQL Tools
//
// Copyright (C) 2013 - 2020, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
//////////////////////////////////////////////////////////////
import {isValidTreeNodeData} from 'sources/tree/tree';
function checkAllowConnIfDatabaseNode(treeNodeData) {
return (treeNodeData._type === 'database' && treeNodeData.allowConn)
|| treeNodeData._type !== 'database';
}
function ancestorWithTypeCatalog(treeNode) {
return treeNode.anyFamilyMember((node) => {
return node.getData()._type === 'catalog';
});
}
export function enabled(tree, supportedNodes, treeNodeData, domTreeNode) {
if (!isValidTreeNodeData(treeNodeData))
return false;
let treeNode = tree.findNodeByDomElement(domTreeNode);
if (!treeNode) {
return false;
}
return checkAllowConnIfDatabaseNode(treeNodeData) &&
_.indexOf(supportedNodes, treeNodeData._type) !== -1 &&
!ancestorWithTypeCatalog(treeNode);
}