]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js
Toward a new look for XUL Record Summary. bib_brief.xul modified for existing instan...
[Evergreen.git] / Open-ILS / xul / staff_client / server / cat / bib_brief_overlay.js
1 dump('loading bib_brief_overlay.js\n');
2
3 function bib_brief_overlay(params) {
4     try {
5
6         var net; var session;
7
8         if (params.network) {
9             net = params.network;
10         } else {
11             JSAN.use('util.network');
12             net = new util.network();
13         }
14
15         if (params.session) {
16             session = params.session;
17         } else {
18             session = ses(); // For some reason, this breaks, starting with an internal instantiation of util.error failing because util.error being an object instead of a constructor
19         }
20
21
22         // See if we have mvr or mvr.id, and possibly retrieve the mvr ourselves
23         if (params.mvr_id && ! params.mvr) {
24             var robj = net.simple_request('MODS_SLIM_RECORD_RETRIEVE.authoritative',[ params.mvr_id ]);
25             if (typeof robj.ilsevent != 'undefined') throw(robj); 
26             params.mvr = robj;
27         }
28         if (! params.mvr) { alert('early mvr return!'); return; }
29         if (! params.mvr_id) params.mvr_id = params.mvr.doc_id();
30
31         // Ditto with the bre
32         if ( (params.bre_id || params.mvr_id) && ! params.bre) {
33             var robj = net.simple_request('FM_BRE_RETRIEVE_VIA_ID.authoritative',[ session, [ (params.bre_id||params.mvr_id) ] ]);
34             if (typeof robj.ilsevent != 'undefined') throw(robj); 
35             params.bre = robj[0];
36         }
37         if (! params.bre) { alert('early bre return!'); return; }
38
39         JSAN.use('util.widgets');
40         function set(name,value) { 
41             var nodes = document.getElementsByAttribute('name',name); 
42             for (var i = 0; i < nodes.length; i++) {
43                 util.widgets.set_text( nodes[i], value ); 
44             }
45             return nodes.length;
46         }
47         function set_tooltip(name,value) { 
48             var nodes = document.getElementsByAttribute('name',name); 
49             for (var i = 0; i < nodes.length; i++) {
50                 nodes[i].setAttribute('tooltiptext',value);
51             }
52             return nodes.length;
53         }
54
55
56         // Use the list column definitions for rendering the mvr against the elements in bib_brief_overlay.xul
57         JSAN.use('circ.util');
58         var columns = circ.util.columns({});
59         for (var i = 0; i < columns.length; i++) {
60             var c = columns[i];
61             //dump('considering column ' + c.id + '... ');
62             if (c.fm_class == 'mvr' || c.fm_class == 'bre') {
63                 //dump('is an mvr or bre... ');
64                 if (typeof c.render == 'function') { // Non-function renders are deprecated
65                     //dump('render is a function... ');
66                     var value;
67                     try { 
68                         value = c.render( { 'mvr' : params.mvr, 'acp' : params.acp, 'bre' : params.bre } ); 
69                     } catch(E) { 
70                         value = ''; 
71                         //dump('Error in bib_brief_overlay(), with render() for c.id = ' + c.id + ' : ' + E + '\n'); 
72                     }
73                     //dump('value = ' + value + '\n');
74                     var n = set(c.id, value ? value : '');
75                     if (c.id == 'tcn_source') set_tooltip('tcn',value);
76                     if (c.id == 'doc_id') set_tooltip('title',value);
77                     //dump('set text on ' + n + ' elements\n');
78                 } else {
79                     //dump('render is not a function\n');
80                 }
81             } else {
82                 //dump('is not an mvr or bre\n');
83             }
84         }
85
86     } catch(E) {
87         alert(location.href + '\nError in bib_brief_overlay(' + js2JSON(params) + '): ' + E);
88         return;
89     }
90 }