]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/cat/record_list.js
tab disable is broken. Tab gets styled as disabled, but doesn't get unstyled. A...
[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                         try {
52                                 result = user_request(
53                                         'open-ils.search',
54                                         'open-ils.search.cat.biblio.tcn',
55                                         [ search_term ]
56                                 );
57                         } catch(E) {
58                                 handle_error(E);
59                         }
60                         break;
61                 default:
62                         try {
63                                 result = user_request(
64                                         'open-ils.search',
65                                         'open-ils.search.cat.biblio.class',
66                                         [ search_location, search_type, search_order, search_term ]
67                                 );
68                         } catch(E) {
69                                 handle_error(E);
70                         }
71                         break;
72         }
73         // populate record_list with results
74         //mw.sdump('D_CAT', js2JSON( result ) + '\n');
75         var tc = document.getElementById('record_list_tree_children');
76         for (var i in result) {
77                 if (typeof(result[i])=='object') {
78                         var data = result[i];
79                         var item = make_treeitem(data['doc_id']);
80                         var row = make_treerow(
81                                 data['title'],
82                                 data['author'],
83                                 data['tcn'],
84                                 data['publisher'],
85                                 data['pubdate'],
86                                 data['isbn'],
87                                 data['isbn'],
88                                 data['copy_count']
89                         );
90                         if (data['copy_count'] == 0) {
91                                 item.setAttribute('hidden','true');
92                         }
93                         item.appendChild( row );
94                         tc.appendChild( item );
95                 } else {
96                         //mw.sdump('D_CAT','unexpected typeof(result['+i+']) = ' + typeof(result[i]) + ' : ' + result[i] + '\n');
97                 }
98         }
99 }
100
101 function make_treeitem(owner_doc) {
102         var treeitem = document.createElement('treeitem');
103         treeitem.setAttribute('id',owner_doc);
104         //mw.sdump('D_CAT','treeitem = ' + treeitem + '\n');
105         return treeitem;
106 }
107
108 function make_treerow() {
109         var treerow = document.createElement('treerow');
110         //mw.sdump('D_CAT','treerow = ' + treerow + '\n');
111         //mw.sdump('D_CAT','arguments.length = ' + arguments.length + ' arguments = ' + js2JSON(arguments) + '\n');
112         for (var i = 0; i < arguments.length; i++) {
113                 //mw.sdump('D_CAT',i + ' : ' + arguments[i] + '\n');
114                 var treecell = document.createElement('treecell');
115                 //mw.sdump('D_CAT','treecell = ' + treecell + '\n');
116                 var text = '';
117                 if (typeof(arguments[i])=='object') {
118                         for (var j in arguments[i]) {
119                                 text = text + arguments[i][j] + ' / ';
120                         }
121                 } else {
122                         text = arguments[i];
123                 }
124                 treecell.setAttribute('label',text);
125                 treerow.appendChild(treecell);
126         }
127         return treerow;
128 }
129
130 function spawn_editors(tab) {
131         var hitlist = document.getElementById('record_list_tree');
132         var start = new Object();
133         var end = new Object();
134         var numRanges = hitlist.view.selection.getRangeCount();
135         for (var t=0; t<numRanges; t++){
136                 hitlist.view.selection.getRangeAt(t,start,end);
137                 for (var v=start.value; v<=end.value; v++){
138                         var i = hitlist.contentView.getItemAtIndex(v);
139                         mw.sdump('D_CAT',i.tagName + '\n');
140                         var params = [
141                                 i.getAttribute('id'),
142                                 i.firstChild.childNodes[0].getAttribute('label'),
143                                 i.firstChild.childNodes[1].getAttribute('label'),
144                                 i.firstChild.childNodes[2].getAttribute('label'),
145                                 i.firstChild.childNodes[3].getAttribute('label'),
146                                 i.firstChild.childNodes[4].getAttribute('label'),
147                                 i.firstChild.childNodes[5].getAttribute('label'),
148                                 i.firstChild.childNodes[6].getAttribute('label')
149                         ];
150                         var w = spawn_marc_editor(
151                                 window.app_shell,'new_tab','main_tabbox', {
152                                         'find_this_id' : params[0],
153                                         'record_columns' : params
154                                 }
155                         );
156                         w.find_this_id = params[0];
157                         w.record_columns = params;
158                 }
159         }
160 }
161
162 function spawn_browsers(tab) {
163         var hitlist = document.getElementById('record_list_tree');
164         var start = new Object();
165         var end = new Object();
166         var numRanges = hitlist.view.selection.getRangeCount();
167         for (var t=0; t<numRanges; t++){
168                 hitlist.view.selection.getRangeAt(t,start,end);
169                 for (var v=start.value; v<=end.value; v++){
170                         var i = hitlist.contentView.getItemAtIndex(v);
171                         mw.sdump('D_CAT',i.tagName + '\n');
172                         var params = [ i.getAttribute('id') ];
173                         var w = spawn_copy_browser(
174                                 window.app_shell,'new_tab','main_tabbox', {
175                                         'find_this_id' : params[0],
176                                         'record_columns' : params
177                                 }
178                         );
179                         w.find_this_id = params[0];
180                         w.record_columns = params;
181                 }
182         }
183 }
184
185 /*
186 function spawn_copy_browser(tab,params) {
187         mw.sdump('D_CAT','trying to spawn_marc_editor('+params[0]+')\n');
188         var w;
189         var chrome = 'chrome://evergreen/content/cat/browse_list.xul';
190         if (tab) {
191                 tabWindow.new_tab('main_tabbox');
192                 w = tabWindow.replace_tab('main_tabbox','COPIES',chrome);
193         } else {
194                 w = mw.new_window( chrome );
195         }
196         w.find_this_id = params[0];
197         w.record_columns = params;
198 }
199
200
201 function spawn_marc_editor(tab,params) {
202         mw.sdump('D_CAT','trying to spawn_marc_editor('+params[0]+')\n');
203         var w;
204         var chrome = 'chrome://evergreen/content/cat/marc.xul';
205         if (tab) {
206                 tabWindow.new_tab('main_tabbox');
207                 w = tabWindow.replace_tab('main_tabbox','MARC',chrome);
208         } else {
209                 w = mw.new_window( chrome );
210         }
211         w.find_this_id = params[0];
212         w.record_columns = params;
213 }
214 */
215