]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/functional.js
df52039e2b13a2d41b801cab684d08215d3e9493
[working/Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / functional.js
1 sdump('D_FUNCTIONAL',"Loading functional.js\n");
2
3 function filter_list(list,f) {
4         var new_list = [];
5         for (var i in list) {
6                 var t = f( list[i] );
7                 if (t) new_list.push( list[i] );
8         }
9         return new_list;
10 }
11
12 function filter_object(obj,f) {
13         var new_obj = {};
14         for (var i in obj) {
15                 var t = f( i, obj[i] );
16                 if (t) new_obj[i] = obj[i];
17         }
18         return new_obj;
19 }
20
21 function find_list(list,f) {
22         for (var i in list) {
23                 var t = f( list[i] );
24                 if (t) return list[i];
25         }
26         return null;
27 }
28
29 function find_object(obj,f) {
30         for (var i in obj) {
31                 var t = f( i, obj[i] );
32                 if (t) return obj[i];
33         }
34         return null;
35 }
36
37 function map_list(list,f) {
38         var new_list = [];
39         for (var i in list) {
40                 new_list.push( f( list[i] ) );
41         }
42         return new_list;
43 }
44
45 function map_object(obj,f) {
46         var new_obj = {};
47         for (var i in obj) {
48                 new_obj[ f( i, obj[i] )[0] ] = f( i, obj[i] )[1];
49         }
50         return new_obj;
51 }
52
53 function map_object_to_list(obj,f) {
54         var new_list = [];
55         for (var i in obj) {
56                 new_list.push( f( obj, i ) );
57         }
58         return new_list;
59 }
60
61 function convert_object_list_to_hash(list) {
62         var my_hash = new Object();
63         if (list) {
64                 for (var i = 0; i < list.length; i++) {
65                         my_hash[ list[i].id() ] = list[i];
66                 }
67         }
68         return my_hash;
69 }
70
71 function find_id_object_in_list(list,id) {
72         //sdump('D_FUNCTIONAL','find_id_object_in_list(' + js2JSON(list).substr(0,20) + '... ,' + id + ')\n');
73         if (list) {
74                 for (var i = 0; i < list.length; i++ ) {
75                         try {
76                                 if ( list[i].id() == id ) {
77                                         return list[i];
78                                 }
79                         } catch(E) {
80                                 sdump('D_FUNCTIONAL','find_id_object_in_list error, i = ' + i + '  typeof(list[i]) = ' + typeof(list[i]) + '  list[i] = ' + js2JSON(list[i]) + ' : ' + js2JSON(E) + '\n');
81                         }
82                 }
83         }
84         //sdump('D_FUNCTIONAL','not found\n');
85         return null;
86 }
87
88 function find_attr_object_in_list(list,attr,value) {
89         if (list) {
90                 for (var i = 0; i < list.length; i++ ) {
91                         sdump('D_FUNCTIONAL','find_attr_object_in_list: i = ' + i + '  id = ' + list[i].id() + '\n');
92                         try {
93                                 var command = 'list[' + i + '].'+attr+'() == ' + value;
94                                 if ( eval(command) ) {
95                                         return list[i];
96                                 }
97                         } catch(E) {
98                                 sdump('D_FUNCTIONAL','find_attr_object_in_list error, i = ' + i + '  typeof(list[i]) = ' + typeof(list[i]) + '  list[i] = ' + js2JSON(list[i]) + ' :   list = ' + js2JSON(list) + ' : ' + js2JSON(E) + '\n');
99                         }
100                 }
101         }
102         return null;
103 }
104
105