2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: Cataloger's Search Result Screen -->
5 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
7 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
8 <?xml-stylesheet href="chrome://evergreen/skin/evergreen.css" type="text/css"?>
10 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
12 <!DOCTYPE window SYSTEM "chrome://evergreen/locale/lang.dtd">
14 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
16 <?xul-overlay href="chrome://evergreen/content/OpenILS/util_overlay.xul"?>
17 <?xul-overlay href="chrome://evergreen/content/legacy/browse_list_overlay.xul"?>
19 <window id="browse_list_win"
20 orient="vertical" style="overflow: scroll"
21 onload="try { my_pre_init(); } catch(E) { alert(E); }"
22 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
24 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
26 <script type="text/javascript">var myPackageDir = 'evergreen'; var IAMXUL = true; var g = {};</script>
27 <scripts id="openils_util_scripts"/>
28 <script type="text/javascript" src="chrome://evergreen/content/main/JSAN.js"/>
29 <script type="text/javascript">
32 var parentWindow = {};
37 var org_shortname2id = {};
39 var browse_meter_per = 0;
40 var orgs_with_copies = [];
41 var orgs_with_copies_hash = {};
43 function my_pre_init() {
45 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
46 if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
47 JSAN.errorLevel = "die"; // none, warn, or die
48 JSAN.addRepository('..');
49 JSAN.use('util.error'); g.error = new util.error();
50 g.error.sdump('D_TRACE','my_pre_init() for legacy/_browse.xul');
53 mw.G.main_test_variable = 'Hello World';
55 mw.G.auth_ses = [ g.cgi.param('session') ];
56 mw.sdump = function(a,b) { g.error.sdump(a,b); }
58 find_this_id = g.cgi.param('docid');
60 JSAN.use('util.network');
61 g.network = new util.network();
63 JSAN.use('OpenILS.data');
64 g.data = new OpenILS.data(); g.data.init({'via':'stash'});
65 mw.G.my_orgs = g.data.list.my_aou;
66 mw.G.my_orgs_hash = g.data.hash.my_aou;
67 mw.G.org_tree = g.data.tree.aou;
68 mw.G.user_ou = g.data.list.au[0];
69 mw.G.aout_list = g.data.list.aout;
70 mw.G.aout_hash = g.data.hash.aout;
71 mw.G.ccs_list = g.data.list.ccs;
72 mw.G.ccs_hash = g.data.hash.ccs;
77 var err_msg = "!! This software has encountered an error. Please tell your friendly " +
78 "system administrator or software developer the following:\nlegacy/_browse.xul\n" + E + '\n';
79 try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
84 function timer_init() {
88 function timer_elapsed() {
92 function handle_error(err) {
93 try { alert(js2JSON(err)); } catch(E) { alert(err); }
96 function user_request(a,b,c,d) {
97 return [ g.network.request(a,b,c,d) ];
100 function user_async_request(a,b,c,d) {
101 return [ g.network.request(a,b,c,d) ];
106 function counter_init(id) {
110 function counter_incr(id) {
111 if (! counter[id]) { counter_init(id); }
112 return ++counter[id];
115 function counter_peek(id) {
116 if (! counter[id]) { return 0; }
120 function disable_widgets() {
121 var d = document; var idx = 0;
122 if (arguments[0].nodeName == '#document') {
123 idx = 1; d = arguments[0];
125 for (var i = idx; i < arguments.length; i++) {
126 if (typeof(arguments[i]) == 'object') {
127 arguments[i].disabled = true;
129 var w = d.getElementById( arguments[i] );
137 function enable_widgets() {
138 var d = document; var idx = 0;
139 if (arguments[0].nodeName == '#document') {
140 idx = 1; d = arguments[0];
142 for (var i = idx; i < arguments.length; i++) {
143 if (typeof(arguments[i]) == 'object') {
144 arguments[i].disabled = false;
146 var w = d.getElementById( arguments[i] );
154 function find_ou(tree,id) {
155 if (typeof(id)=='object') { id = id.id(); }
159 for (var i in tree.children()) {
160 var child = tree.children()[i];
161 ou = find_ou( child, id );
162 if (ou) { return ou; }
167 function yesno(value) {
169 case true: case 'true': case '1': case 'on':
176 function empty_widget() {
178 if (arguments.length == 1) {
183 if (typeof(e) != 'object') { e = d.getElementById(e); }
185 if (typeof(e) != 'object') { dump('Failed on empty_widget\n'); return null; }
186 while (e.lastChild) { e.removeChild(e.lastChild); }
189 function get_list_from_tree_selection() {
190 var d = document; var tree_w;
191 if (arguments.length == 1) {
192 tree_w = arguments[0];
195 tree_w = arguments[1];
198 if (typeof(tree_w) != 'object') {
199 hitlist = d.getElementById(tree_w);
204 var start = new Object();
205 var end = new Object();
206 var numRanges = hitlist.view.selection.getRangeCount();
207 for (var t=0; t<numRanges; t++){
208 hitlist.view.selection.getRangeAt(t,start,end);
209 for (var v=start.value; v<=end.value; v++){
210 var i = hitlist.contentView.getItemAtIndex(v);
211 //sdump('D_WIDGETS',i.tagName + '\n');
218 function filter_list(list,f) {
220 for (var i in list) {
221 var t = f( list[i] );
222 if (t) new_list.push( list[i] );
227 function mapChrome(chrome) {
229 case 'chrome://evergreen/content/cat/volume_copy_add_wizard.xul':
230 return 'chrome://evergreen/content/legacy/_volume_copy_add_wizard.xul'; break;
231 case 'chrome://evergreen/content/cat/copy_add_wizard.xul':
232 return 'chrome://evergreen/content/legacy/_copy_add_wizard.xul'; break;
233 case 'chrome://evergreen/content/cat/volume_edit_wizard.xul':
234 return 'chrome://evergreen/content/legacy/_volume_edit_wizard.xul':
239 parentWindow.new_tab = function() { };
241 parentWindow.replace_tab = function(a,b,c) {
242 if (window.xulG && typeof window.xulG.new_tab == 'function') {
244 var f = window.xulG.new_tab( mapChrome(c), { 'tab_name' : b }, {} );
245 return f.contentWindow;
252 mw.new_window = function(a,b,c) {
253 JSAN.use('util.window); var win = new util.window();
254 return util.window.open( mapChrome(a), b, c );
259 <!-- The logic for this app -->
260 <Evergreen id="browse_list_js" />
262 <!-- XUL'ified abstraction for logic to attach to widgets -->
263 <commandset id="browse_list_cmds" />
265 <!-- Accelerator Keys (Accessor Keys are in DTD's) -->
266 <keyset id="browse_list_keys" />
268 <!-- Context menus -->
269 <popupset id="browse_list_popupset" />
271 <!-- Layout to be filled in by overlays and javascript -->
273 <caption label="Copy Browser"/>
274 <vbox id="browse_list_vbox" class="test_class"/>