]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/functional.js
some refactoring
[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 find_list(list,f) {
13         for (var i in list) {
14                 var t = f( list[i] );
15                 if (t) return list[i];
16         }
17         return null;
18 }
19
20 function map_list(list,f) {
21         var new_list = [];
22         for (var i in list) {
23                 new_list.push( f( list[i] ) );
24         }
25         return new_list;
26 }
27
28 function map_object_to_list(obj,f) {
29         var new_list = [];
30         for (var i in obj) {
31                 new_list.push( f( obj, i ) );
32         }
33         return new_list;
34 }
35
36 function convert_object_list_to_hash(list) {
37         var my_hash = new Object();
38         if (list) {
39                 for (var i = 0; i < list.length; i++) {
40                         my_hash[ list[i].id() ] = list[i];
41                 }
42         }
43         return my_hash;
44 }
45
46 function find_id_object_in_list(list,id) {
47         //sdump('D_FUNCTIONAL','find_id_object_in_list(' + js2JSON(list).substr(0,20) + '... ,' + id + ')\n');
48         if (list) {
49                 for (var i = 0; i < list.length; i++ ) {
50                         try {
51                                 if ( list[i].id() == id ) {
52                                         return list[i];
53                                 }
54                         } catch(E) {
55                                 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');
56                         }
57                 }
58         }
59         //sdump('D_FUNCTIONAL','not found\n');
60         return null;
61 }
62
63 function find_attr_object_in_list(list,attr,value) {
64         if (list) {
65                 for (var i = 0; i < list.length; i++ ) {
66                         sdump('D_FUNCTIONAL','find_attr_object_in_list: i = ' + i + '  id = ' + list[i].id() + '\n');
67                         try {
68                                 var command = 'list[' + i + '].'+attr+'() == ' + value;
69                                 if ( eval(command) ) {
70                                         return list[i];
71                                 }
72                         } catch(E) {
73                                 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');
74                         }
75                 }
76         }
77         return null;
78 }
79
80