]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/cat/bib_brief.xul
xul_param and modal xulG conversion
[Evergreen.git] / Open-ILS / xul / staff_client / server / cat / bib_brief.xul
1 <?xml version="1.0"?>
2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: Brief Bib Display -->
4
5 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
6 <!-- STYLESHEETS -->
7 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
8 <?xml-stylesheet href="chrome://open_ils_staff_client/skin/global.css" type="text/css"?>
9 <?xml-stylesheet href="/xul/server/skin/global.css" type="text/css"?>
10
11 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
12 <!-- LOCALIZATION -->
13 <!DOCTYPE window PUBLIC "" ""[
14         <!--#include virtual="/opac/locale/en-US/lang.dtd"-->
15 ]>
16
17 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
18 <!-- OVERLAYS -->
19 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
20
21 <window id="cat_bib_brief_win" 
22         onload="try { my_init(); font_helper(); } catch(E) { alert(E); }"
23         xmlns:html="http://www.w3.org/1999/xhtml"
24         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
25
26         <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
27         <!-- BEHAVIOR -->
28         <script type="text/javascript">
29                 var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};
30         </script>
31         <scripts id="openils_util_scripts"/>
32
33         <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
34         <script>
35         <![CDATA[
36
37                 var docid;
38
39                 function my_init() {
40                         try {
41                                 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
42                                 if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
43                                 JSAN.errorLevel = "die"; // none, warn, or die
44                                 JSAN.addRepository('/xul/server/');
45                                 JSAN.use('util.error'); g.error = new util.error();
46                                 g.error.sdump('D_TRACE','my_init() for cat_bib_brief.xul');
47
48                                 JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
49
50                                 docid = xul_param('docid');
51
52                                 var key = location.pathname + location.search + location.hash;
53                                 if (!docid && typeof data.modal_xulG_stack != 'undefined' && typeof data.modal_xulG_stack[key] != 'undefined') {
54                                         var xulG = data.modal_xulG_stack[key][ data.modal_xulG_stack[key].length - 1 ];
55                                         if (typeof xulG == 'object') {
56                                                 docid = xulG.docid;
57                                         }
58                                 }
59
60                                 JSAN.use('util.network'); g.network = new util.network();
61                                 JSAN.use('util.date');
62
63                                 document.getElementById('caption').setAttribute('tooltiptext','Record ID = ' + docid);
64
65                                 if (docid > -1) {
66
67                                         data.last_record = docid; data.stash('last_record');
68
69                                         g.network.request(
70                                                 api.MODS_SLIM_RECORD_RETRIEVE.app,
71                                                 api.MODS_SLIM_RECORD_RETRIEVE.method,
72                                                 [ docid ],
73                                                 function (req) {
74                                                         var mods = req.getResultObject();
75                                                         
76                                                         if (mods.title()) document.getElementById('title').appendChild(
77                                                                 document.createTextNode(String(mods.title()).substr(0,50))
78                                                         );
79                                                         if (mods.author()) document.getElementById('author').appendChild(
80                                                                 document.createTextNode(mods.author())
81                                                         );
82                                                         if (mods.edition()) document.getElementById('edition').appendChild(
83                                                                 document.createTextNode(mods.edition())
84                                                         );
85                                                         if (mods.pubdate()) document.getElementById('pubdate').appendChild(
86                                                                 document.createTextNode(mods.pubdate())
87                                                         );
88                                                         if (mods.tcn()) document.getElementById('tcn').appendChild(
89                                                                 document.createTextNode(mods.tcn())
90                                                         );
91         
92                                                         if (window.xulG && typeof window.xulG.set_tab_name == 'function') {
93                                                                 try {
94                                                                         window.xulG.set_tab_name(mods.tcn());
95                                                                 } catch(E) {
96                                                                         g.error.sdump('D_ERROR','bib_brief.xul, set_tab: ' + E);
97                                                                 }
98                                                         }
99         
100                                                         g.network.request(
101                                                                 api.FM_BRE_RETRIEVE_VIA_ID.app,
102                                                                 api.FM_BRE_RETRIEVE_VIA_ID.method,
103                                                                 [ ses(), [ docid ] ],
104                                                                 function (req) {
105                                                                         try {
106                                                                                 var meta = req.getResultObject();
107                                                                                 if (typeof meta.ilsevent != 'undefined') throw(meta);
108                                                                                 meta = meta[0];
109                                                                                 document.getElementById('tcn_source').appendChild(
110                                                                                         document.createTextNode(meta.tcn_source())
111                                                                                 );
112                                                                                 g.network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ses(),meta.creator().id()],
113                                                                                         function(rreq) {
114                                                                                                 var creator_au = rreq.getResultObject();
115                                                                                                 document.getElementById('creator_bc').appendChild(
116                                                                                                         document.createTextNode(creator_au.card().barcode())
117                                                                                                 );
118                                                                                         }
119                                                                                 );
120                                                                                 g.network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ses(),meta.editor().id()],
121                                                                                         function(rreq) {
122                                                                                                 var editor_au = rreq.getResultObject();
123                                                                                                 document.getElementById('editor_bc').appendChild(
124                                                                                                         document.createTextNode(editor_au.card().barcode())
125                                                                                                 );
126                                                                                         }
127                                                                                 );
128                                                                                 document.getElementById('creator').appendChild(
129                                                                                         document.createTextNode('('+data.hash.aou[meta.creator().home_ou()].shortname()+') ')
130                                                                                 );
131                                                                                 document.getElementById('creator_bc').setAttribute('au_id',meta.creator().id());
132                                                                                 document.getElementById('editor').appendChild(
133                                                                                         document.createTextNode('('+data.hash.aou[meta.editor().home_ou()].shortname()+') ')
134                                                                                 );
135                                                                                 document.getElementById('editor_bc').setAttribute('au_id',meta.editor().id());
136                                                                                 document.getElementById('edit_date').appendChild(
137                                                                                         document.createTextNode(
138                                                                                                 util.date.formatted_date(meta.edit_date(),"%D")
139                                                                                         )
140                                                                                 );
141                                                                                 var t = document.getElementById('caption').getAttribute('label');
142                                                                                 if (get_bool( meta.deleted() )) { 
143                                                                                         t += ' (Deleted) '; 
144                                                                                         document.getElementById('caption').setAttribute('style','background: red; color: white;');
145                                                                                 }
146                                                                                 if ( ! get_bool( meta.active() ) ) { 
147                                                                                         t += ' (Inactive) '; 
148                                                                                         document.getElementById('caption').setAttribute('style','background: red; color: white;');
149                                                                                 }
150                                                                                 document.getElementById('caption').setAttribute('label',t);
151                                                                         } catch(E) {
152                                                                                 g.error.standard_unexpected_error_alert('meta retrieve',E);
153                                                                         }
154                                                                 }
155                                                         );
156                                                 }
157                                         );
158
159                                 } else {
160                                         var t = document.getElementById('caption').getAttribute('label');
161                                         t += ' (Not Cataloged) '; 
162                                         document.getElementById('caption').setAttribute('style','background: red; color: white;');
163                                         document.getElementById('caption').setAttribute('label',t);
164                                 }
165
166                         } catch(E) {
167                                 var err_msg = "!! This software has encountered an error.  Please tell your friendly " +
168                                         "system administrator or software developer the following:\ncat/bib_brief.xul\n" + E + '\n';
169                                 try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
170                                 alert(err_msg);
171                         }
172                 }
173
174                 function view_marc() {
175                         try {
176                                 JSAN.use('util.window'); var win = new util.window();
177                                 if (docid < 0) {
178                                         alert('Item not cataloged.');
179                                 } else {
180                                         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
181                                         //win.open( urls.XUL_MARC_VIEW + '?noprint=1&docid=' + docid, 'marc_view', 'chrome,resizable,modal,width=400,height=400');
182                                         win.open( urls.XUL_MARC_VIEW, 'marc_view', 'chrome,resizable,modal,width=400,height=400',{'noprint':1,'docid':docid});
183                                 }
184                         } catch(E) {
185                 g.error.standard_unexpected_error_alert('spawning marc display',E);
186                         }
187                 }
188
189                 function spawn_patron(span) {
190             try {
191                 var loc = urls.XUL_PATRON_DISPLAY; // + '?barcode=' + window.escape(barcode);
192
193                 if (typeof window.xulG == 'object' && typeof window.xulG.set_tab == 'function') {
194                     window.xulG.set_tab( loc, {}, { 'id' : span.getAttribute('au_id') } );
195                 } else {
196                                         copy_to_clipboard( span.textContent );
197                                 }
198             } catch(E) {
199                 g.error.standard_unexpected_error_alert('spawning patron display',E);
200             }
201                 }
202
203         ]]>
204         </script>
205
206         <groupbox id="groupbox" flex="1" style="overflow: auto; min-height: 100px;">
207                 <caption label="Record Summary" id="caption"/>
208                         <html:table width="90%">
209                                 <html:tr valign="top">
210                                         <html:td colspan="3">
211                                                 <html:span style="font-weight: bold;">Title: </html:span><html:span id="title" />
212                                         </html:td>
213                                         <html:td>
214                                                 (<html:a href="javascript:view_marc();" style="text-decoration: underline; color: blue;">View MARC</html:a>)
215                                         </html:td>
216                                 </html:tr>
217                                 <html:tr valign="top">
218                                         <html:td colspan="2">
219                                                 <html:span style="font-weight: bold;">Author: </html:span><html:span id="author" />
220                                         </html:td>
221                                         <html:td>
222                                                 <html:span style="font-weight: bold;">Edition: </html:span><html:span id="edition" />
223                                         </html:td>
224                                         <html:td>
225                                                 <html:span style="font-weight: bold;">Pub Date: </html:span><html:span id="pubdate" />
226                                         </html:td>
227                                 </html:tr>
228                                 <html:tr valign="top">
229                                         <html:td>
230                                                 <html:span style="font-weight: bold;">TCN: (</html:span><html:span id="tcn_source"/><html:span style="font-weight: bold;">) </html:span><html:span id="tcn" style="text-decoration: underline; color: blue;" onclick="copy_to_clipboard(event)"/>
231                                         </html:td>
232                                         <html:td>
233                                                 <html:span style="font-weight: bold;">Created By: </html:span><html:span id="creator" />
234                                                 <html:span id="creator_bc" style="text-decoration: underline; color: blue;" onclick="try{spawn_patron(this);}catch(E){alert(E);}"/>
235                                         </html:td>
236                                         <html:td>
237                                                 <html:span style="font-weight: bold;">Last Edited By: </html:span><html:span id="editor" />
238                                                 <html:span id="editor_bc" style="text-decoration: underline; color: blue;" onclick="try{spawn_patron(this);}catch(E){alert(E);}"/>
239                                         </html:td>
240                                         <html:td>
241                                                 <html:span style="font-weight: bold;">Last Edited On: </html:span><html:span id="edit_date" />
242                                         </html:td>
243                                 </html:tr>
244                         </html:table>
245         </groupbox>
246
247 </window>
248