]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/xul/staff_client/server/cat/volume_editor.xul
refactoring of Volume Editor invocations to use a utility function, make VOLUME_LABEL...
[working/Evergreen.git] / Open-ILS / xul / staff_client / server / cat / volume_editor.xul
1 <?xml version="1.0"?>
2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: Copy Viewer/Editor -->
4
5 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
6 <!-- STYLESHEETS -->
7 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
8 <?xml-stylesheet href="/xul/server/skin/global.css" type="text/css"?>
9
10 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
11 <!-- LOCALIZATION -->
12 <!DOCTYPE window PUBLIC "" ""[
13     <!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
14 ]>
15
16 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
17 <!-- OVERLAYS -->
18 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
19
20 <window id="cat_volume_editor_win" 
21     onload="try { my_init(); font_helper(); persist_helper(); } catch(E) { alert(E); }"
22     title="&staff.cat.volume_editor.title;" height="400" width="300" oils_persist="height width"
23     xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
24
25     <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
26     <!-- BEHAVIOR -->
27         <script type="text/javascript">
28         var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};
29     </script>
30         <scripts id="openils_util_scripts"/>
31
32     <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
33     <script>
34     <![CDATA[
35
36         var xulG = {};
37
38         function my_init() {
39             try {
40                 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
41                 if (typeof JSAN == 'undefined') { throw( $("commonStrings").getString('common.jsan.missing') ); }
42                 JSAN.errorLevel = "die"; // none, warn, or die
43                 JSAN.addRepository('/xul/server/');
44                 JSAN.use('util.error'); g.error = new util.error();
45                 g.error.sdump('D_TRACE','my_init() for cat/volume_editor.xul');
46
47                 JSAN.use('OpenILS.data'); g.data = new OpenILS.data(); g.data.init({'via':'stash'});
48
49                 JSAN.use('util.functional');
50
51                 g.volumes = xul_param('volumes',{'stash_name':'volumes_temp','clear_xpcom':true,'modal_xulG':true}); //JSON2js( g.data.volumes_temp );
52                 //g.data.volumes_temp = ''; g.data.stash('volumes_temp');
53
54                 var rows = document.getElementById('rows');
55
56                 var first_tb;
57
58                 for (var i = 0; i < g.volumes.length; i++) {
59                     var row = document.createElement('row'); rows.appendChild(row);
60                     var lib_label = document.createElement('label'); row.appendChild(lib_label);
61                     var tb = document.createElement('textbox'); row.appendChild(tb);
62                     if (!first_tb) { first_tb = tb; }
63
64                     var lib_id = g.volumes[i].owning_lib();
65                     var last_lib_seen;
66
67                     if (last_lib_seen != lib_id ) {
68                         lib_label.setAttribute('value',g.data.hash.aou[ lib_id ].shortname() );
69                         last_lib_seen = lib_id;
70                     }
71
72                     tb.setAttribute('value',g.volumes[i].label());
73                     tb.setAttribute('onchange','try { var v = g.volumes['+i+']; v.ischanged("1"); v.label( this.value ); } catch(E) { alert(E); }');
74                 }
75
76                 first_tb.select(); first_tb.focus();
77
78             } catch(E) {
79                 var err_msg = $("commonStrings").getFormattedString('common.exception', ['cat/volume_editor.xul', E]);
80                 try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); dump(js2JSON(E)); }
81                 alert(err_msg);
82             }
83         }
84
85         g.stash_and_close = function() {
86             try {
87                 //g.data.volumes_temp = js2JSON( g.volumes );
88                 //g.error.sdump('D_CAT','in modal window, g.data.volumes_temp = \n' + g.data.volumes_temp + '\n');
89                 //g.data.stash('volumes_temp');
90                 xulG.volumes = g.volumes;
91                 xulG.update_these_volumes = 1;
92                 xulG.auto_merge = document.getElementById('auto_merge').checked;
93                 update_modal_xulG(xulG);
94                 window.close();
95             } catch(E) {
96                 alert('FIXME: volume editor -> ' + E);
97             }
98         }
99
100     ]]>
101     </script>
102     
103     <messagecatalog id="catStrings" src="/xul/server/locale/<!--#echo var='locale'-->/cat.properties" />
104     <messagecatalog id="circStrings" src="/xul/server/locale/<!--#echo var='locale'-->/circ.properties" />
105
106     <groupbox flex="1" style="overflow: auto">
107         <caption id="caption" label="&staff.cat.volume_editor.caption.label;"/>
108         <hbox>
109             <button label="&staff.cat.volume_editor.cancel.label;" accesskey="&staff.cat.volume_editor.cancel.accesskey;" oncommand="window.close();"/>
110             <spacer flex="1" />
111             <button label="&staff.cat.volume_editor.modify.label;" accesskey="&staff.cat.volume_editor.modify.accesskey;" oncommand="g.stash_and_close();"/>
112         </hbox>
113         <hbox>
114             <spacer flex="1" />
115             <checkbox id="auto_merge" label="&staff.cat.volume_editor.automerge.label;" accesskey="&staff.cat.volume_editor.automerge.accesskey;" oils_persist="checked"/>
116         </hbox>
117         <grid flex="1">
118             <columns> <column /> <column /> <column flex="1"/> </columns>
119             <rows id="rows" />
120         </grid>
121     </groupbox>
122
123 </window>
124