1 sdump('D_TRACE','Loading fm_utils.js\n');
3 function get_my_orgs(user_ou) {
6 var current_item_id = user_ou.id();
7 //sdump('D_FM_UTILS','mw.G[user_ou] = ' + js2JSON(mw.G['user_ou']) + '\n');
8 //sdump('D_FM_UTILS','current_item_id = ' + current_item_id + '\n');
9 var item_ou; var my_orgs = {}; var other_orgs = {};
10 while( item_ou = find_ou(mw.G['org_tree'],current_item_id) ) {
11 //sdump('D_FM_UTILS','\titem_ou = ' + js2JSON(item_ou) + '\n');
12 my_orgs[ item_ou.id() ] = item_ou;
13 current_item_id = item_ou.parent_ou();
14 if (!current_item_id) { break; }
17 current_item_id = user_ou.id();
18 //sdump('D_FM_UTILS','self & ancestors : my_orgs = <<<'+js2JSON(my_orgs)+'>>>\n');
21 var find_ou_result = find_ou(mw.G['org_tree'],current_item_id);
23 my_children = find_ou_result.children() }
25 sdump('D_FM_UTILS','ERROR: find_ou(org_tree,'+current_item_id+') returned with no properties\n');
27 //sdump('D_FM_UTILS','my_children: ' + my_children + ' : ' + js2JSON(my_children) + '\n');
29 for (var i = 0; i < my_children.length; i++) {
30 var my_child = my_children[i];
31 my_orgs[ my_child.id() ] = my_child;
32 //sdump('D_FM_UTILS','my_child.children(): ' + my_child.children() + ' : ' + js2JSON(my_child.children()) + '\n');
33 if (my_child.children() != null) {
34 for (var j = 0; j < my_child.children().length; j++) {
35 var my_gchild = my_child.children()[j];
36 my_orgs[ my_gchild.id() ] = my_gchild;
41 //sdump('D_FM_UTILS','& descendants : my_orgs = <<<'+js2JSON(my_orgs)+'>>>\n');
45 function get_other_orgs(org,other_orgs) {
48 function flatten_ou_branch(branch) {
49 //sdump('D_FM_UTILS','flatten: branch = ' + js2JSON(branch) + '\n');
50 var my_array = new Array();
51 my_array.push( branch );
52 for (var i in branch.children() ) {
53 var child = branch.children()[i];
55 var temp_array = flatten_ou_branch(child);
56 for (var j in temp_array) {
57 my_array.push( temp_array[j] );
64 function find_ou(tree,id) {
65 if (typeof(id)=='object') { id = id.id(); }
69 for (var i in tree.children()) {
70 var child = tree.children()[i];
71 ou = find_ou( child, id );
72 if (ou) { return ou; }
77 function find_ou_by_shortname(tree,sn) {
79 if (tree.shortname()==sn) {
82 for (var i in tree.children()) {
83 var child = tree.children()[i];
84 ou = find_ou_by_shortname( child, sn );
85 if (ou) { return ou; }