Files
pgadmin4/web/pgadmin/static/js/nodes/supported_database_node.js
Joao De Almeida Pereira 7dd6372eeb Extract the tests and refactor some of the methods.
Extract some of the ACI Tree functionalities, and decouple it from the
main source. Also - create some abstractions from the repeated code
around the enable/disable the schema children object create/edit/delete
functionalities, and also created the dialog wrappers for backup and
restore dialogs.

Reviewed by: Khushboo and Ashesh
Refactored by: Ashesh
2018-06-05 16:42:59 +05:30

38 lines
1.0 KiB
JavaScript

/////////////////////////////////////////////////////////////
//
// pgAdmin 4 - PostgreSQL Tools
//
// Copyright (C) 2013 - 2018, 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);
}