]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/cat/record_list.js
faf8e6974a9f75f812c633c33494ae1507bff65d
[working/Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / cat / record_list.js
1 mw.sdump('D_CAT','Parsing record_list.js\n');
2
3 var test_hash = { 'a' : '123' } ;
4
5 function my_init() {
6         timer_init('cat');
7         mw.sdump('D_CAT','TESTING: record_list.js: ' + mw.G['main_test_variable'] + '\n');
8         mw.sdump('D_CAT','test_hash = ' + js2JSON(test_hash) + '\n');
9         mw.sdump('D_CAT','search_term = ' + search_term + '  search_type = ' + search_type + '  search_order = ' + search_order + '  search_location = ' + search_location + '\n');
10         var b = document.getElementById('count_copy_toggle');
11         b.setAttribute('label','Click to Show Records for All Libraries');
12         b.setAttribute('alt_label','Click to Show Only Records with Copies at ' + find_ou(mw.G['org_tree'],search_location).name());
13         b.setAttribute('value','-1');
14         b.setAttribute('oncommand','toggle_view(event);');
15
16         search();
17 }
18
19 function toggle_view(ev) {
20         var b = ev.target;
21         var value = b.getAttribute('value');
22         var label = b.getAttribute('label');
23         var alt_label = b.getAttribute('alt_label');
24         var temp = label; label = alt_label; alt_label = temp;
25         b.setAttribute('label',label); b.setAttribute('alt_label',alt_label);
26         b.setAttribute('value',-value);
27         var rows = document.getElementById('record_list_tree_children');
28         var nl = rows.getElementsByTagName('treeitem');
29         for (var i in nl) {
30                 if (typeof(nl[i])=='object') {
31                         var treeitem = nl[i];
32                         var treerow = treeitem.firstChild;
33                         var copy_count_cell = treerow.lastChild;
34                         var copy_count = copy_count_cell.getAttribute('label');
35                         if (value == '-1') {
36                                 treeitem.setAttribute('hidden','false');
37                         } else {
38                                 if (copy_count == '0') {
39                                         treeitem.setAttribute('hidden','true');
40                                 }
41                         }
42                 }
43         }
44 }
45
46 function search() {
47         var result;
48         mw.sdump('D_CAT','search_type = ' + search_type + '  search_order = ' + search_order + '  search_term = ' + search_term + '\n');
49         switch(search_type) {
50                 case 'tcn':
51                         result = user_request(
52                                 'open-ils.search',
53                                 'open-ils.search.cat.biblio.tcn',
54                                 [ search_term ]
55                         );
56                         break;
57                 default:
58                         result = user_request(
59                                 'open-ils.search',
60                                 'open-ils.search.cat.biblio.class',
61                                 [ search_location, search_type, search_order, search_term ]
62                         );
63                         break;
64         }
65         // populate record_list with results
66         //mw.sdump('D_CAT', js2JSON( result ) + '\n');
67         var tc = document.getElementById('record_list_tree_children');
68         for (var i in result) {
69                 if (typeof(result[i])=='object') {
70                         var data = result[i];
71                         var item = make_treeitem(data['doc_id']);
72                         var row = make_treerow(
73                                 data['title'],
74                                 data['author'],
75                                 data['tcn'],
76                                 data['publisher'],
77                                 data['pubdate'],
78                                 data['isbn'],
79                                 data['isbn'],
80                                 data['copy_count']
81                         );
82                         if (data['copy_count'] == 0) {
83                                 item.setAttribute('hidden','true');
84                         }
85                         item.appendChild( row );
86                         tc.appendChild( item );
87                 } else {
88                         //mw.sdump('D_CAT','unexpected typeof(result['+i+']) = ' + typeof(result[i]) + ' : ' + result[i] + '\n');
89                 }
90         }
91 }
92
93 function make_treeitem(owner_doc) {
94         var treeitem = document.createElement('treeitem');
95         treeitem.setAttribute('id',owner_doc);
96         //mw.sdump('D_CAT','treeitem = ' + treeitem + '\n');
97         return treeitem;
98 }
99
100 function make_treerow() {
101         var treerow = document.createElement('treerow');
102         //mw.sdump('D_CAT','treerow = ' + treerow + '\n');
103         //mw.sdump('D_CAT','arguments.length = ' + arguments.length + ' arguments = ' + js2JSON(arguments) + '\n');
104         for (var i = 0; i < arguments.length; i++) {
105                 //mw.sdump('D_CAT',i + ' : ' + arguments[i] + '\n');
106                 var treecell = document.createElement('treecell');
107                 //mw.sdump('D_CAT','treecell = ' + treecell + '\n');
108                 var text = '';
109                 if (typeof(arguments[i])=='object') {
110                         for (var j in arguments[i]) {
111                                 text = text + arguments[i][j] + ' / ';
112                         }
113                 } else {
114                         text = arguments[i];
115                 }
116                 treecell.setAttribute('label',text);
117                 treerow.appendChild(treecell);
118         }
119         return treerow;
120 }
121
122 function spawn_editors(tab) {
123         var hitlist = document.getElementById('record_list_tree');
124         var start = new Object();
125         var end = new Object();
126         var numRanges = hitlist.view.selection.getRangeCount();
127         for (var t=0; t<numRanges; t++){
128                 hitlist.view.selection.getRangeAt(t,start,end);
129                 for (var v=start.value; v<=end.value; v++){
130                         var i = hitlist.contentView.getItemAtIndex(v);
131                         mw.sdump('D_CAT',i.tagName + '\n');
132                         var params = [
133                                 i.getAttribute('id'),
134                                 i.firstChild.childNodes[0].getAttribute('label'),
135                                 i.firstChild.childNodes[1].getAttribute('label'),
136                                 i.firstChild.childNodes[2].getAttribute('label'),
137                                 i.firstChild.childNodes[3].getAttribute('label'),
138                                 i.firstChild.childNodes[4].getAttribute('label'),
139                                 i.firstChild.childNodes[5].getAttribute('label'),
140                                 i.firstChild.childNodes[6].getAttribute('label')
141                         ];
142                         var w = spawn_marc_editor(
143                                 window.app_shell,'new_tab','main_tabbox', {
144                                         'find_this_id' : params[0],
145                                         'record_columns' : params
146                                 }
147                         );
148                         w.find_this_id = params[0];
149                         w.record_columns = params;
150                 }
151         }
152 }
153
154 function spawn_browsers(tab) {
155         var hitlist = document.getElementById('record_list_tree');
156         var start = new Object();
157         var end = new Object();
158         var numRanges = hitlist.view.selection.getRangeCount();
159         for (var t=0; t<numRanges; t++){
160                 hitlist.view.selection.getRangeAt(t,start,end);
161                 for (var v=start.value; v<=end.value; v++){
162                         var i = hitlist.contentView.getItemAtIndex(v);
163                         mw.sdump('D_CAT',i.tagName + '\n');
164                         var params = [ i.getAttribute('id') ];
165                         var w = spawn_copy_browser(
166                                 window.app_shell,'new_tab','main_tabbox', {
167                                         'find_this_id' : params[0],
168                                         'record_columns' : params
169                                 }
170                         );
171                         w.find_this_id = params[0];
172                         w.record_columns = params;
173                 }
174         }
175 }
176
177 /*
178 function spawn_copy_browser(tab,params) {
179         mw.sdump('D_CAT','trying to spawn_marc_editor('+params[0]+')\n');
180         var w;
181         var chrome = 'chrome://evergreen/content/cat/browse_list.xul';
182         if (tab) {
183                 tabWindow.new_tab('main_tabbox');
184                 w = tabWindow.replace_tab('main_tabbox','COPIES',chrome);
185         } else {
186                 w = mw.new_window( chrome );
187         }
188         w.find_this_id = params[0];
189         w.record_columns = params;
190 }
191
192
193 function spawn_marc_editor(tab,params) {
194         mw.sdump('D_CAT','trying to spawn_marc_editor('+params[0]+')\n');
195         var w;
196         var chrome = 'chrome://evergreen/content/cat/marc.xul';
197         if (tab) {
198                 tabWindow.new_tab('main_tabbox');
199                 w = tabWindow.replace_tab('main_tabbox','MARC',chrome);
200         } else {
201                 w = mw.new_window( chrome );
202         }
203         w.find_this_id = params[0];
204         w.record_columns = params;
205 }
206 */
207