-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnesting.js
26 lines (23 loc) · 1.06 KB
/
nesting.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Drop.nesting = new Mongo.Collection(null, { ref: 'templ:drop/nesting' });
Drop.nesting.attachGraph();
Drop.nesting.selection = Shuttler.Selection(Drop.nesting, { source: 'source' })
.byPaths(Drop.nesting, { sources: ['source'], targets: ['target'] })
.watchSelections().watchPaths(Drop.nesting)
.recursionProtection()
Drop.instances.after.remove(function(userId, instance) {
var instance = Drop.instances._transform(instance);
var drop = instance.drop();
delete Drop._instances[drop.data._instance];
delete drop.data._instance;
Drop.nesting.remove(lodash.merge(instance.Ref('_source'), Drop.nesting.selection.selectorQuery()));
});
Drop.instances.after.update(function(userId, instance) {
var instance = Drop.instances._transform(instance);
Drop.nesting.links.find.source(instance, Drop.nesting.selection.selectorQuery()).forEach(function(nesting) {
var target = nesting.target();
if (target) target.drop().tick();
});
});
Drop.nesting.after.remove(function(userId, nest) {
Drop.instances.remove(nest._target.id);
});