Skip to content

Instantly share code, notes, and snippets.

@sampettersson
Created March 21, 2016 16:55
Show Gist options
  • Save sampettersson/153cb23a4656e6ba8f9c to your computer and use it in GitHub Desktop.
Save sampettersson/153cb23a4656e6ba8f9c to your computer and use it in GitHub Desktop.
var getNodeByAttribute = function (attribute, page) {
var nodeIteratorUtil = require("NodeIteratorUtil");
var nodeFilterUtil = require("NodeFilterUtil");
var resourceLocatorUtil = require("ResourceLocatorUtil");
var propertyUtil = require("PropertyUtil");
var attributeFilter = nodeFilterUtil.getStringPropertyFilter("attribute", attribute);
if (page === void 0) {
page = resourceLocatorUtil.getSitePage();
}
var search = function (node) {
var nodeIterator = nodeIteratorUtil.getMenuItemsIncludingFolders(node);
var filtered = nodeIteratorUtil.findAll(nodeIterator, attributeFilter);
if (filtered.isEmpty()) {
var array = [];
nodeIterator = nodeIteratorUtil.getMenuItemsIncludingFolders(node);
while (nodeIterator.hasNext()) {
var result = search(nodeIterator.next());
if (result !== null) {
array.push(result);
}
}
if (array[0] !== void 0) {
return array[0];
} else {
return null;
}
} else {
return filtered.get(0);
}
};
return search(page);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment