]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/dojo/openils/vandelay/TreeStoreModel.js
Merge remote branch 'working/user/shadowspar/ttopac-altcleanup' into template-toolkit...
[Evergreen.git] / Open-ILS / web / js / dojo / openils / vandelay / TreeStoreModel.js
1 dojo.provide("openils.vandelay.TreeStoreModel");
2 dojo.require("dijit.tree.TreeStoreModel");
3 dojo.require("openils.Util");
4
5 /* This class specifically serves the eg/vandelay/match_set interface
6  * for editing Vandelay Match Set trees.  It should probably  have a more
7  * specific name that reflects that.
8  */
9
10 function _simple_item(model, item) {
11     /* Instead of model.getLabel(), could do
12      * model.store.getValue(item, "blah") or something like that ... */
13     var mp = model.store.getValue(item, "match_point");
14     mp.children([]);
15     return mp;
16 }
17
18 dojo.declare(
19     "openils.vandelay.TreeStoreModel", dijit.tree.TreeStoreModel, {
20         "replace_mode": 0,
21         "get_simple_tree": function(item, oncomplete, result) {
22             var self = this;
23             var me;
24             if (!result) {
25                 me = result = _simple_item(this, item);
26             } else {
27                 me = _simple_item(this, item);
28                 result.push(me);
29             }
30
31             if (this.mayHaveChildren(item)) {
32                 this.getChildren(
33                     item, function(children) {
34                         var kids_here = [];
35                         for (var i = 0; i < children.length; i++) {
36                             self.get_simple_tree(children[i], null, kids_here);
37                         }
38                         me.children(kids_here);
39                         if (oncomplete) oncomplete(result);
40                     }
41                 );
42             }
43         },
44         "mayHaveChildren": function(item) {
45             var match_point = this.store.getValue(item, "match_point");
46             if (match_point)
47                 return openils.Util.isTrue(match_point.bool_op());
48             else
49                 return true;
50         }
51     }
52 );