diff options
Diffstat (limited to 'ui/imports/ui/lib/inventory-tree-node-behavior.js')
-rw-r--r-- | ui/imports/ui/lib/inventory-tree-node-behavior.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/ui/imports/ui/lib/inventory-tree-node-behavior.js b/ui/imports/ui/lib/inventory-tree-node-behavior.js new file mode 100644 index 0000000..ecf9c60 --- /dev/null +++ b/ui/imports/ui/lib/inventory-tree-node-behavior.js @@ -0,0 +1,66 @@ +///////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2017 Koren Lev (Cisco Systems), Yaron Yogev (Cisco Systems) and others / +// / +// All rights reserved. This program and the accompanying materials / +// are made available under the terms of the Apache License, Version 2.0 / +// which accompanies this distribution, and is available at / +// http://www.apache.org/licenses/LICENSE-2.0 / +///////////////////////////////////////////////////////////////////////////////////////// +import { Inventory } from '/imports/api/inventories/inventories'; +//import * as R from 'ramda'; + +export let InventoryTreeNodeBehavior = { + subscribeGetChildrenFn: function (instance, parent) { + instance.subscribe('inventory.children', + parent.id, parent.type, parent.name, parent.environment); + }, + + subscribeGetFirstChildFn: function (instance, parent) { + instance.subscribe('inventory.first-child', + parent.id, parent.type, parent.name, parent.environment); + }, + + getChildrenFn: function (parent) { + let query = { + $or: [{ + parent_id: parent.id, + parent_type: parent.type, + environment: parent.environment, + show_in_tree: true + }] + }; + + /* + if (R.equals('host_ref', parent.type)) { + let realParent = Inventory.findOne({ + name: parent.name, + environment: parent.environment, + type: 'host' + }); + + if (! R.isNil(realParent)) { + query = R.merge(query, { + $or: R.append({ + environment: parent.environment, + parent_id: realParent.id + }, query.$or) + }); + } + } + */ + + return Inventory.find(query); + }, + + hasChildrenFn: function (parent) { + let query = { + $or: [ + { + parent_id: parent._id + } + ] + }; + + return Inventory.find(query).count() > 0; + } +}; |