]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/cat/bib_brief.xul
2032ce166353f169078b380b2b6d860c08393183
[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                                 g.cgi = new CGI();
49                                 docid = g.cgi.param('docid');
50
51                                 JSAN.use('util.network'); g.network = new util.network();
52                                 JSAN.use('util.date');
53
54                                 document.getElementById('caption').setAttribute('tooltiptext','Record ID = ' + docid);
55
56                                 if (docid > -1) {
57
58                                         JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'});
59                                         data.last_record = docid; data.stash('last_record');
60
61                                         g.network.request(
62                                                 api.MODS_SLIM_RECORD_RETRIEVE.app,
63                                                 api.MODS_SLIM_RECORD_RETRIEVE.method,
64                                                 [ docid ],
65                                                 function (req) {
66                                                         var mods = req.getResultObject();
67                                                         
68                                                         if (mods.title()) document.getElementById('title').appendChild(
69                                                                 document.createTextNode(String(mods.title()).substr(0,50))
70                                                         );
71                                                         if (mods.author()) document.getElementById('author').appendChild(
72                                                                 document.createTextNode(mods.author())
73                                                         );
74                                                         if (mods.edition()) document.getElementById('edition').appendChild(
75                                                                 document.createTextNode(mods.edition())
76                                                         );
77                                                         if (mods.pubdate()) document.getElementById('pubdate').appendChild(
78                                                                 document.createTextNode(mods.pubdate())
79                                                         );
80                                                         if (mods.tcn()) document.getElementById('tcn').appendChild(
81                                                                 document.createTextNode(mods.tcn())
82                                                         );
83         
84                                                         if (window.xulG && typeof window.xulG.set_tab_name == 'function') {
85                                                                 try {
86                                                                         window.xulG.set_tab_name(mods.tcn());
87                                                                 } catch(E) {
88                                                                         g.error.sdump('D_ERROR','bib_brief.xul, set_tab: ' + E);
89                                                                 }
90                                                         }
91         
92                                                         g.network.request(
93                                                                 api.FM_BRE_RETRIEVE_VIA_ID.app,
94                                                                 api.FM_BRE_RETRIEVE_VIA_ID.method,
95                                                                 [ ses(), [ docid ] ],
96                                                                 function (req) {
97                                                                         try {
98                                                                                 var meta = req.getResultObject();
99                                                                                 if (typeof meta.ilsevent != 'undefined') throw(meta);
100                                                                                 meta = meta[0];
101                                                                                 document.getElementById('tcn_source').appendChild(
102                                                                                         document.createTextNode(meta.tcn_source())
103                                                                                 );
104                                                                                 g.network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ses(),meta.creator().id()],
105                                                                                         function(rreq) {
106                                                                                                 var creator_au = rreq.getResultObject();
107                                                                                                 document.getElementById('creator_bc').appendChild(
108                                                                                                         document.createTextNode(creator_au.card().barcode())
109                                                                                                 );
110                                                                                         }
111                                                                                 );
112                                                                                 g.network.simple_request('FM_AU_FLESHED_RETRIEVE_VIA_ID',[ses(),meta.editor().id()],
113                                                                                         function(rreq) {
114                                                                                                 var editor_au = rreq.getResultObject();
115                                                                                                 document.getElementById('editor_bc').appendChild(
116                                                                                                         document.createTextNode(editor_au.card().barcode())
117                                                                                                 );
118                                                                                         }
119                                                                                 );
120                                                                                 document.getElementById('creator').appendChild(
121                                                                                         document.createTextNode('('+data.hash.aou[meta.creator().home_ou()].shortname()+') ')
122                                                                                 );
123                                                                                 document.getElementById('creator_bc').setAttribute('au_id',meta.creator().id());
124                                                                                 document.getElementById('editor').appendChild(
125                                                                                         document.createTextNode('('+data.hash.aou[meta.editor().home_ou()].shortname()+') ')
126                                                                                 );
127                                                                                 document.getElementById('editor_bc').setAttribute('au_id',meta.editor().id());
128                                                                                 document.getElementById('edit_date').appendChild(
129                                                                                         document.createTextNode(
130                                                                                                 util.date.formatted_date(meta.edit_date(),"%D")
131                                                                                         )
132                                                                                 );
133                                                                                 var t = document.getElementById('caption').getAttribute('label');
134                                                                                 if (get_bool( meta.deleted() )) { 
135                                                                                         t += ' (Deleted) '; 
136                                                                                         document.getElementById('caption').setAttribute('style','background: red; color: white;');
137                                                                                 }
138                                                                                 if ( ! get_bool( meta.active() ) ) { 
139                                                                                         t += ' (Inactive) '; 
140                                                                                         document.getElementById('caption').setAttribute('style','background: red; color: white;');
141                                                                                 }
142                                                                                 document.getElementById('caption').setAttribute('label',t);
143                                                                         } catch(E) {
144                                                                                 g.error.standard_unexpected_error_alert('meta retrieve',E);
145                                                                         }
146                                                                 }
147                                                         );
148                                                 }
149                                         );
150
151                                 } else {
152                                         var t = document.getElementById('caption').getAttribute('label');
153                                         t += ' (Not Cataloged) '; 
154                                         document.getElementById('caption').setAttribute('style','background: red; color: white;');
155                                         document.getElementById('caption').setAttribute('label',t);
156                                 }
157
158                         } catch(E) {
159                                 var err_msg = "!! This software has encountered an error.  Please tell your friendly " +
160                                         "system administrator or software developer the following:\ncat/bib_brief.xul\n" + E + '\n';
161                                 try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
162                                 alert(err_msg);
163                         }
164                 }
165
166                 function view_marc() {
167                         JSAN.use('util.window'); var win = new util.window();
168                         if (docid < 0) {
169                                 alert('Item not cataloged.');
170                         } else {
171                                 win.open( urls.XUL_MARC_VIEW + '?noprint=1&docid=' + docid, 'marc_view', 'chrome,resizable,modal,width=400,height=400');
172                         }
173                 }
174
175                 function spawn_patron(span) {
176             try {
177                 var loc = urls.XUL_PATRON_DISPLAY; // + '?barcode=' + window.escape(barcode);
178
179                 if (typeof window.xulG == 'object' && typeof window.xulG.set_tab == 'function') {
180                     window.xulG.set_tab( loc, {}, { 'id' : span.getAttribute('au_id') } );
181                 } else {
182                                         copy_to_clipboard( span.textContent );
183                                 }
184             } catch(E) {
185                 g.error.standard_unexpected_error_alert('spawning patron display',E);
186             }
187                 }
188
189         ]]>
190         </script>
191
192         <groupbox id="groupbox" flex="1" style="overflow: auto; min-height: 100px;">
193                 <caption label="Record Summary" id="caption"/>
194                         <html:table width="90%">
195                                 <html:tr valign="top">
196                                         <html:td colspan="3">
197                                                 <html:span style="font-weight: bold;">Title: </html:span><html:span id="title" />
198                                         </html:td>
199                                         <html:td>
200                                                 (<html:a href="javascript:view_marc();" style="text-decoration: underline; color: blue;">View MARC</html:a>)
201                                         </html:td>
202                                 </html:tr>
203                                 <html:tr valign="top">
204                                         <html:td colspan="2">
205                                                 <html:span style="font-weight: bold;">Author: </html:span><html:span id="author" />
206                                         </html:td>
207                                         <html:td>
208                                                 <html:span style="font-weight: bold;">Edition: </html:span><html:span id="edition" />
209                                         </html:td>
210                                         <html:td>
211                                                 <html:span style="font-weight: bold;">Pub Date: </html:span><html:span id="pubdate" />
212                                         </html:td>
213                                 </html:tr>
214                                 <html:tr valign="top">
215                                         <html:td>
216                                                 <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)"/>
217                                         </html:td>
218                                         <html:td>
219                                                 <html:span style="font-weight: bold;">Created By: </html:span><html:span id="creator" />
220                                                 <html:span id="creator_bc" style="text-decoration: underline; color: blue;" onclick="try{spawn_patron(this);}catch(E){alert(E);}"/>
221                                         </html:td>
222                                         <html:td>
223                                                 <html:span style="font-weight: bold;">Last Edited By: </html:span><html:span id="editor" />
224                                                 <html:span id="editor_bc" style="text-decoration: underline; color: blue;" onclick="try{spawn_patron(this);}catch(E){alert(E);}"/>
225                                         </html:td>
226                                         <html:td>
227                                                 <html:span style="font-weight: bold;">Last Edited On: </html:span><html:span id="edit_date" />
228                                         </html:td>
229                                 </html:tr>
230                         </html:table>
231         </groupbox>
232
233 </window>
234