[Search] Move reindex function

Move function used to listen for mutation changes (to trigger
reindexing) up in scope, to avoid retaining references to
domain objects via closure. nasa/openmctweb#141

Also, includes misc. whitespace normalization (provided by
code editor.)
This commit is contained in:
Victor Woeltjen
2015-09-29 10:54:14 -07:00
parent d6fe543c16
commit ad7d3d642e

View File

@@ -113,6 +113,23 @@ define(
// Helper function for getItems(). Indexes the tree.
function indexItems(nodes) {
function handleMutation(model) {
if (model && model.composition) {
// If the node was mutated to have children, get the child domain objects
objectService.getObjects(listener.composition).then(function (objectsById) {
var objects = [],
id;
// Get each of the domain objects in objectsById
for (id in objectsById) {
objects.push(objectsById[id]);
}
indexItems(objects);
});
}
}
nodes.forEach(function (node) {
var id = node && node.getId && node.getId();
@@ -146,22 +163,7 @@ define(
// Watch for changes to this item, in case it gets new children
if (node && node.hasCapability && node.hasCapability('mutation')) {
node.getCapability('mutation').listen(function (listener) {
if (listener && listener.composition) {
// If the node was mutated to have children, get the child domain objects
objectService.getObjects(listener.composition).then(function (objectsById) {
var objects = [],
id;
// Get each of the domain objects in objectsById
for (id in objectsById) {
objects.push(objectsById[id]);
}
indexItems(objects);
});
}
});
node.getCapability('mutation').listen(handleMutation);
}
});
}