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