]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/xul/staff_client/server/index.xhtml
Merge branch 'master' of ssh://senator@yeti.esilibrary.com/home/evergreen/evergreen...
[working/Evergreen.git] / Open-ILS / xul / staff_client / server / index.xhtml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!DOCTYPE html PUBLIC
4         "-//W3C//DTD XHTML 1.0 Transitional//EN" 
5         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
6         <!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
7 ]>
8
9 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
10 <head>
11   <meta name="generator" content=
12   "HTML Tidy for Linux/x86 (vers 11 February 2007), see www.w3.org" />
13
14   <title>&staff.client.portal.title;</title>
15   <script type="text/javascript">
16 // <![CDATA[
17
18   // FIXME - some I18N love still needed in this file.  See @alt on img tags, and javascript for tab names
19
20   function SearchOnBlur() {
21         var textbox = document.getElementById("quicksearch");
22
23         if(textbox && textbox.value == "")
24                 textbox.style.background = "#FFFFFF url(\"eg_tiny_logo.jpg\") center no-repeat";
25   }
26
27   function SearchOnFocus() {
28         var textbox = document.getElementById("quicksearch");
29         
30         if(textbox)
31                 textbox.style.background = "#FFFFFF";
32   }
33
34   var home_ou_id = 1;
35
36   function SearchOnSubmit() {
37         var textbox = document.getElementById("quicksearch");
38         
39         //var home_ou_id = 1; // 1 = all org units. Should come from staff client scripts
40         // a quicksearch should probably just default to the whole system. Staff can narrow it down later if they want.
41         var search_depth = 0; // 0 = consortium, 1 = system, 2 = library, 3 = sub-library, etc.
42         
43         if(textbox && textbox.value != "") {
44                 var opac_url =  xulG.url_prefix(urls.opac_rresult) + "?rt=keyword&tp=keyword&l=" + home_ou_id + "&d=" + search_depth +"&f=&t=" + escape(textbox.value);
45                 var params = {'tab_name':'Catalog'};
46                 var content_params = { 'session' : ses(), 'authtime' : ses('authtime'), 'opac_url' : opac_url };
47                 xulG.set_tab(urls.XUL_OPAC_WRAPPER, params, content_params);
48         }
49         
50         return false;
51   }
52   // ]]> 
53   </script>
54   <script type="text/javascript" src="main/constants.js">
55 </script>
56   <script type="text/javascript" src="main/lang.js">
57 </script>
58   <script type="text/javascript" src="/opac/common/js/utils.js">
59 </script>
60   <script type="text/javascript" src="/opac/common/js/CGI.js">
61 </script>
62   <script type="text/javascript" src="/opac/common/js/md5.js">
63 </script>
64   <script type="text/javascript" src="/opac/common/js/JSON.js">
65 </script>
66   <script type="text/javascript" src="/opac/common/js/fmall.js">
67 </script>
68   <script type="text/javascript" src="/opac/common/js/fmgen.js">
69 </script>
70   <script type="text/javascript" src="/opac/common/js/RemoteRequest.js">
71 </script>
72   <script type="text/javascript" src="/opac/common/js/OrgTree.js">
73 </script>
74   <script type="text/javascript" src="/opac/common/js/org_utils.js">
75 </script>
76   <script type="text/javascript" src="OpenILS/global_util.js">
77 </script>
78   <script type="text/javascript" src="main/JSAN.js">
79 </script>
80   <script type="text/javascript">
81       // <![CDATA[
82         
83                 //this function will allow for the "Hello, Staff Member" messages
84                 function init() { 
85                         SearchOnBlur();
86                         JSAN.use('OpenILS.data'); 
87                         var data = new OpenILS.data(); 
88                         data.stash_retrieve(); 
89                         document.getElementById('staffname').innerHTML = ", " + data.list.au[0].first_given_name(); 
90                         home_ou_id = data.list.au[0].ws_ou();
91                 }
92                 function jb_open_eg_web_page(path, label) {
93                         var loc = urls.XUL_BROWSER + '?url=' + window.escape(xulG.url_prefix(urls.EG_WEB_BASE) + '/' + path);
94
95                         xulG.set_tab( 
96                                 loc, 
97                                 {tab_name : label, browser : false }, 
98                                 {no_xulG : false, show_print_button : false, show_nav_buttons : true }
99                         );
100                 }
101                 function jb_open_eg_web_page_newtab(path, label) {
102                         var loc = urls.XUL_BROWSER + '?url=' + window.escape(xulG.url_prefix(urls.EG_WEB_BASE) + '/' + path);
103
104                         xulG.new_tab( 
105                                 loc, 
106                                 {tab_name : label, browser : false }, 
107                                 {no_xulG : false, show_print_button : false, show_nav_buttons : true }
108                         );
109                 }
110                 
111                 //Place your helpdesk link here
112                 function helpdesk(newtab) {
113                         loc = "http://evergreen-ils.org/communicate.php";
114                         var params = {'tab_name':'Evergreen Project Website'};
115                         
116                         if(newtab)
117                                 xulG.new_tab(loc, params, {}); 
118                         else
119                                 xulG.set_tab(loc, params, {}); 
120                 }
121                 
122                 //A good place for a Google map.  Evergreen Indiana uses GIS data to create a Google map to verify if a library is within district boundaries
123                 //http://208.119.72.68/evergreen/evergreenmap.html
124                 function address_map(newtab) {
125                         loc = "http://maps.google.com";
126                         var params = {'tab_name':'Locate Address In Map'};
127                         
128                         if(newtab)
129                                 xulG.new_tab(loc, params, {}); 
130                         else
131                                 xulG.set_tab(loc, params, {}); 
132                 }
133                 function local_admin(newtab) {
134                         var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.XUL_LOCAL_ADMIN + '?ses=' + window.escape(ses()) + '&session=' + window.escape(ses())); 
135                         var params = {'tab_name':'Local Administration', 'browser' : true };
136                         var content_params = { 'no_xulG' : false, 'show_nav_buttons' : true, 'show_print_button' : true };
137                         
138                         if(newtab)
139                                 xulG.new_tab(loc, params, content_params);
140                         else
141                                 xulG.set_tab(loc, params, content_params);
142                 }
143                 function copy_status(newtab) {
144                         if(newtab)
145                                 xulG.new_tab(urls.XUL_COPY_STATUS,{},{});
146                         else
147                                 xulG.set_tab(urls.XUL_COPY_STATUS,{},{});
148                 }
149                 function hold_pull_list(newtab) {
150                         var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.XUL_HOLD_PULL_LIST + '?ses=' + window.escape(ses()));
151                         var params = {'tab_name':'On Shelf Pull List'};
152                         var content_params = {'show_print_button':true};
153                         
154                         if(newtab)
155                                 xulG.new_tab(loc, params, content_params);
156                         else
157                                 xulG.set_tab(loc, params, content_params);
158                 }
159                 function checkout(newtab) {
160                         if(newtab)
161                                 xulG.new_tab(urls.XUL_PATRON_BARCODE_ENTRY,{},{});
162                         else
163                                 xulG.set_tab(urls.XUL_PATRON_BARCODE_ENTRY,{},{});
164                 }
165                 function catalog(newtab) {
166                         var params = {'tab_name':'Catalog'};
167                         var content_params = { 'session' : ses(), 'authtime' : ses('authtime') };
168                         
169                         if(newtab)
170                                 xulG.new_tab(urls.XUL_OPAC_WRAPPER, params, content_params);
171                         else
172                                 xulG.set_tab(urls.XUL_OPAC_WRAPPER, params, content_params);
173                 }
174                 function z39_50(newtab) {
175                         if(newtab)
176                                 xulG.new_tab(urls.XUL_Z3950_IMPORT,{},{});
177                         else
178                                 xulG.set_tab(urls.XUL_Z3950_IMPORT,{},{});
179                 }
180                 function copy_buckets(newtab) {
181                         params = {'tab_name':'Copy Buckets'};
182                         if(newtab)
183                                 xulG.new_tab(urls.XUL_COPY_BUCKETS, params, {});
184                         else
185                                 xulG.set_tab(urls.XUL_COPY_BUCKETS, params, {});
186                 }
187                 function record_buckets(newtab) {
188                         params = {'tab_name':'Record Buckets'};
189                         if(newtab)
190                                 xulG.new_tab(urls.XUL_RECORD_BUCKETS, params, {});
191                         else
192                                 xulG.set_tab(urls.XUL_RECORD_BUCKETS, params, {});
193                 }
194                 function receipt_editor(newtab) {
195                         if(newtab)
196                                 xulG.new_tab(urls.XUL_PRINT_LIST_TEMPLATE_EDITOR, {}, {});
197                         else
198                                 xulG.set_tab(urls.XUL_PRINT_LIST_TEMPLATE_EDITOR, {}, {});
199                 }
200                 function checkin(newtab) {
201                         if(newtab)
202                                 xulG.new_tab(urls.XUL_CHECKIN,{},{});
203                         else
204                                 xulG.set_tab(urls.XUL_CHECKIN,{},{});
205                 }
206                 function MARC_batch_import(newtab) {
207                         if(newtab)
208                                 jb_open_eg_web_page_newtab('vandelay/vandelay', 'Server Settings');
209                         else
210                                 jb_open_eg_web_page('vandelay/vandelay', 'Server Settings');
211                 }
212                 function local_admin_reports(newtab) {
213                         var loc = urls.XUL_BROWSER + '?url=' + window.escape( xulG.url_prefix(urls.XUL_REPORTS) + '?ses=' + ses());
214                         params = {'tab_name' : 'Reports', 'browser' : false }
215                         content_params = {'no_xulG' : false, 'show_print_button' : false, show_nav_buttons : true }
216                         if(newtab)
217                                 xulG.new_tab(loc, params, content_params);
218                         else
219                                 xulG.set_tab(loc, params, content_params);
220                 }
221                 function find_patron(newtab) {
222                         if(newtab)
223                                 xulG.new_tab(urls.XUL_PATRON_DISPLAY,{},{});
224                         else
225                                 xulG.set_tab(urls.XUL_PATRON_DISPLAY,{},{});
226                 }
227                 
228                 function spawn_search(s) {
229                         var loc = urls.XUL_PATRON_DISPLAY;
230                         loc += '?doit=1&amp;query=' + window.escape(js2JSON(s));
231                         xulG.new_tab( loc, {}, {} );
232                 }
233                 function register_patron(newtab) {
234                         function spawn_editor(p) {
235                                 var url = urls.XUL_PATRON_EDIT;
236                                 var param_count = 0;
237                                 for (var i in p) {
238                                         if (param_count++ == 0) url += '?'; else url += '&amp;';
239                                         url += i + '=' + window.escape(p[i]);
240                                 }
241                                 var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape( url );
242                                 xulG.new_tab(loc, {}, { 'show_print_button' : true , 'tab_name' : 'Editing Related Patron' , 'passthru_content_params' : {'spawn_search' : function(s) { spawn_search(s); }, 'spawn_editor' : spawn_editor }});
243                         }
244                         
245                         var loc = urls.XUL_REMOTE_BROWSER  + '?url=' + window.escape( urls.XUL_PATRON_EDIT + '?ses=' + window.escape( ses() ) );
246                         var content_params = { 
247                                                      'show_print_button' : true , 
248                                                      'tab_name' : 'Register Patron' ,
249                                                      'passthru_content_params' : { 'spawn_search' : function(s) { spawn_search(s); },
250                                                                                     'spawn_editor' : spawn_editor }
251                                                  }
252                         if(newtab)
253                                 xulG.new_tab(loc, {}, content_params);
254                         else
255                                 xulG.set_tab(loc, {}, content_params);
256                 }
257                 // ]]>
258   </script>
259   <style type="text/css">
260 /*<![CDATA[*/
261   body {
262   font-family: "Trebuchet MS", Helvetica, Verdana, Arial, sans-serif;
263   }
264
265   hr {
266   border-style: solid;
267   border-color: black;
268   width: 180px;
269   }
270
271   a {
272   font-size: 85%;
273   font-weight: bold;
274   color: black;
275   text-decoration: none;
276   }
277
278   #alignment {
279         border-collapse: collapse;
280         border-style: none;
281         width: 100%;
282   }
283
284   #alignment td {
285         vertical-align: top;
286   }
287
288   .functionlist {
289         border-style: none;
290         margin-left: auto;
291         margin-right: auto;
292   }
293
294   .functionlist td {
295   text-align: left;
296         margin: 2px;
297         padding: 2px;
298   }
299
300   .functionalgroup {
301         text-align: center;
302   }
303
304   a img {
305         border-style: none;
306   }
307
308   .attribution {
309         font-size: 75%;
310   }
311
312   form {
313         margin: 0px;
314         padding: 0px;
315   }
316
317   .newtabimg {
318         float: right;
319         padding-left:4px;
320   }
321
322   .funcimg {
323         width: 48px;
324         height: 48px;
325   }
326
327   /*]]>*/
328   </style>
329   <style type="text/css">
330 /*<![CDATA[*/
331   body.c4 {margin-top: 0px; padding-top: 0px; background-image: url(skin/media/images/portal/background.png);}
332   td.c3 {border: 1px solid black; border-top: 0px; border-bottom: 0px;}
333   span.c2 {font-size:75%;}
334   div.c1 {text-align: center}
335   /*]]>*/
336   </style>
337 </head>
338
339 <body class="c4" onload="init();">
340   <div class="c1">
341     <img src="skin/media/images/portal/logo.png" height="121" width="396" alt="Evergreen logo" /><br />
342     &staff.client.portal.welcome;<span id="staffname"></span><br />
343     <br />
344   </div>
345
346   <table id="alignment">
347     <tr>
348       <td>
349         <div class="functionalgroup">
350           &staff.client.portal.circpatron;
351           <hr />
352
353           <table class="functionlist">
354             <tr>
355               <td height="50"><img src="skin/media/images/portal/forward.png" height="48" width="48"
356               onclick="try { checkout(false); } catch(E) { alert(E); }" alt=
357               "Check Out Items" /></td>
358
359               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
360               onclick="try { checkout(true); } catch(E) { alert(E); }" /><a href="#"
361               onclick=
362               "try { checkout(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.checkout;</a><br />
363               <a href="#" onclick=
364               "try { checkout(false); } catch(E) { alert(E); }; return false;"><span class="c2">
365               &staff.client.portal.retrievebc;</span></a></td>
366             </tr>
367
368             <tr>
369               <td height="50"><img src="skin/media/images/portal/back.png" height="48" width="48" onclick=
370               "try { checkin(false); } catch(E) { alert(E); }" alt=
371               "Check In Items" /></td>
372
373               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
374               onclick="try { checkin(true); } catch(E) { alert(E); }" /> <a href="#"
375               onclick=
376               "try { checkin(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.checkin;</a><br /></td>
377             </tr>
378
379             <tr>
380               <td height="50"><img src="skin/media/images/portal/registerpatron.png" height="48" width="48"
381               onclick="try { register_patron(false); } catch(E) { alert(E); }" alt=
382               "Register Patron" /></td>
383
384               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
385               onclick="try { register_patron(true); } catch(E) { alert(E); }" /> <a href=
386               "#" onclick=
387               "try { register_patron(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.patronreg;</a></td>
388             </tr>
389
390             <tr>
391               <td height="50"><img src="skin/media/images/portal/retreivepatron.png" height="48" width="48"
392               onclick="try { find_patron(false); } catch(E) { alert(E); }" alt=
393               "Search For Patron By Name" /></td>
394
395               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
396               onclick="try { find_patron(true); } catch(E) { alert(E); }" /> <a href="#"
397               onclick=
398               "try { find_patron(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.patronsearch;</a></td>
399             </tr>
400
401             <tr>
402               <td height="50"><img class="funcimg" src="skin/media/images/portal/holds.png" height="48"
403               width="48" onclick="try { hold_pull_list(false); } catch(E) { alert(E); }"
404               alt="Pull List for Hold Requests" /></td>
405
406               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
407               onclick="try { hold_pull_list(true); } catch(E) { alert(E); }" /> <a href=
408               "#" onclick=
409               "try { hold_pull_list(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.holdlist;</a></td>
410             </tr>
411 <!--
412             <tr>
413               <td height="50"><img src="skin/media/images/portal/map.PNG" alt="Locate Address In Map"
414               onclick="try { address_map(false); } catch(E) { alert(E); }" /></td>
415
416               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
417               onclick="try { address_map(true); } catch(E) { alert(E); }" /> <a href="#"
418               onclick=
419               "try { address_map(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.addrmap;</a></td>
420             </tr>
421 -->
422           </table>
423         </div>
424       </td>
425
426       <td class="c3">
427         <div class="functionalgroup">
428           &staff.client.portal.itemcataloging;
429           <hr />
430
431           <table class="functionlist">
432             <tr>
433               <td colspan="2" rowspan="1">
434                 <form action="#" onsubmit="return SearchOnSubmit();">
435                   <input id="quicksearch" onfocus="SearchOnFocus();" onblur=
436                   "SearchOnBlur();" /> <input value="Search" type="submit" />
437                 </form>
438               </td>
439             </tr>
440
441             <tr>
442               <td height="50"><img src="skin/media/images/portal/book.png" height="48" width="48" onclick=
443               "try { catalog(false); } catch(E) { alert(E); }" alt=
444               "Advanced Search" /></td>
445
446               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
447               onclick="try { catalog(true); } catch(E) { alert(E); }" /> <a href="#"
448               onclick=
449               "try { catalog(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.advsearch;</a></td>
450             </tr>
451
452             <tr>
453               <td height="50"><img src="skin/media/images/portal/book.png" height="48" width="48" onclick=
454               "try { copy_status(false); } catch(E) { alert(E); }" alt=
455               "Item Status / Display" /></td>
456
457               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
458               onclick="try { copy_status(true); } catch(E) { alert(E); }" /> <a href="#"
459               onclick=
460               "try { copy_status(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.itemstatus;</a></td>
461             </tr>
462
463             <tr>
464               <td height="50"><img src="skin/media/images/portal/batchimport.png" height="48" width="48"
465               onclick="try { MARC_batch_import(false); } catch(E) { alert(E); }" alt=
466               "MARC Batch Import / Export" /></td>
467
468               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
469               onclick="try { MARC_batch_import(true); } catch(E) { alert(E); }" />
470               <a href="#" onclick=
471               "try { MARC_batch_import(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.marcutil;</a></td>
472             </tr>
473
474             <tr>
475               <td height="50"><img src="skin/media/images/portal/z3950.png" height="48" width="48" onclick=
476               "try { z39_50(false); } catch(E) { alert(E); }" alt="Z39.50 Import" /></td>
477
478               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
479               onclick="try { z39_50(true); } catch(E) { alert(E); }" /> <a href="#"
480               onclick=
481               "try { z39_50(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.z3950;</a></td>
482             </tr>
483
484             <tr>
485               <td height="50"><img src="skin/media/images/portal/bucket.png" height="48" width="48" onclick=
486               "try { copy_buckets(false); } catch(E) { alert(E); }" alt=
487               "Copy Buckets" /></td>
488
489               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
490               onclick="try { copy_buckets(true); } catch(E) { alert(E); }" /> <a href="#"
491               onclick=
492               "try { copy_buckets(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.copybuckets;</a></td>
493             </tr>
494
495             <tr>
496               <td height="50"><img src="skin/media/images/portal/bucket.png" height="48" width="48" onclick=
497               "try { record_buckets(false); } catch(E) { alert(E); }" alt=
498               "Record Buckets" /></td>
499
500               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
501               onclick="try { record_buckets(true); } catch(E) { alert(E); }" /> <a href=
502               "index.html#" onclick=
503               "try { record_buckets(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.recordbuckets;</a></td>
504             </tr>
505           </table><br />
506         </div>
507       </td>
508
509       <td>
510         <div class="functionalgroup">
511           &staff.client.portal.admin;
512           <hr />
513
514           <table class="functionlist">
515             <tr>
516               <td height="50"><img src="skin/media/images/portal/helpdesk.png" height="48" width="48"
517               onclick="try { helpdesk(false); } catch(E) { alert(E); }" alt=
518               "Submit A Helpdesk Ticket" /></td>
519
520               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
521               onclick="try { helpdesk(true); } catch(E) { alert(E); }" /> <a href="#"
522               onclick="try { helpdesk(false); } catch(E) { alert(E); }">&staff.client.portal.helpdesk;</a></td>
523             </tr>
524
525             <tr>
526               <td height="50"><img src="skin/media/images/portal/reports.png" height="48" width="48"
527               onclick="try { local_admin_reports(false); } catch(E) { alert(E); }" alt=
528               "Reports" /></td>
529
530               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
531               onclick="try { local_admin_reports(true); } catch(E) { alert(E); }" />
532               <a href="#" onclick=
533               "try { local_admin_reports(false); } catch(E) { alert(E); }; return false;">
534               &staff.client.portal.reports;</a></td>
535             </tr>
536
537             <tr>
538               <td height="50"><img src="skin/media/images/portal/receipt_editor.png" height="48" width="48"
539               onclick="try { receipt_editor(false); } catch(E) { alert(E); }" alt=
540               "Edit Receipt Templates" /></td>
541
542               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
543               onclick="try { receipt_editor(true); } catch(E) { alert(E); }" /> <a href=
544               "#" onclick=
545               "try { receipt_editor(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.receipts;</a></td>
546             </tr>
547           </table>
548         </div>
549       </td>
550     </tr>
551   </table>
552
553   <div class="attribution c1">&staff.client.portal.copyright;<br />
554   &staff.client.portal.poweredby; <img src="skin/media/images/portal/eg_tiny_logo.jpg" alt="Evergreen logo" /></div>
555 </body>
556 </html>
557
558