]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/cat/record_buckets_quick.xul
Commit large i18n patch from Craig Ricciuto
[Evergreen.git] / Open-ILS / xul / staff_client / server / cat / record_buckets_quick.xul
1 <?xml version="1.0"?>
2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: Patron 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 <?xml-stylesheet href="/xul/server/skin/cat.css" type="text/css"?>
11
12 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
13 <!-- LOCALIZATION -->
14 <!DOCTYPE window PUBLIC "" ""[
15         <!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
16 ]>
17
18 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
19 <!-- OVERLAYS -->
20 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
21
22 <window id="record_buckets_win" title="&staff.cat.record_buckets_quick.add_to_bucket.title;"
23         onload="try { my_init(); font_helper(); } catch(E) { alert(E); }" persist="height,width"
24         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
25
26         <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
27         <!-- BEHAVIOR -->
28         <script type="text/javascript">var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};</script>
29         <scripts id="openils_util_scripts"/>
30
31         <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
32         <script>
33         <![CDATA[
34                 function $(id) { return document.getElementById(id); }
35                 function $c(n) { return document.createElement(n); }
36
37                 function my_init() {
38                         try {
39                                 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
40                                 if (typeof JSAN == 'undefined') { throw( $("commonStrings").getString('common.jsan.missing') ); }
41                                 JSAN.errorLevel = "die"; // none, warn, or die
42                                 JSAN.addRepository('/xul/server/');
43                                 JSAN.use('util.error'); g.error = new util.error();
44                                 g.error.sdump('D_TRACE','my_init() for cat/record_buckets_quick.xul');
45                                 JSAN.use('util.network'); g.network = new util.network();
46                                 JSAN.use('OpenILS.data'); g.data = new OpenILS.data(); g.data.init({'via':'stash'});
47
48                                 g.record_ids = xul_param(
49                                         'record_ids',{
50                                                 'concat' : true,
51                                                 'JSON2js_if_cgi' : true,
52                                                 'JSON2js_if_xpcom' : true,
53                                                 'stash_name':'rb_temp_record_ids',
54                                                 'clear_xpcom' : true,
55                                         }
56                                 );
57
58                                 $('desc').appendChild( document.createTextNode( 
59                                         (g.record_ids.length == 1 ?
60                                                 $("catStrings").getString('staff.cat.record_buckets_quick.copy_one_record') :
61                                                 $("catStrings").getFormattedString('staff.cat.record_buckets_quick.copy_multiple_records', [g.record_ids.length])) 
62                                 ) );
63                                 var robj = g.network.simple_request('BUCKET_RETRIEVE_VIA_USER',[ ses(), g.data.list.au[0].id() ]);
64                                 if (typeof robj.ilsevent != 'undefined') throw(robj);
65
66                                 for (var i = 0; i < robj.biblio.length; i++) {
67                                         if (robj.biblio[i].btype() != 'staff_client') continue;
68                                         var listitem = $c('listitem');
69                                         listitem.setAttribute('label', robj.biblio[i].name());
70                                         listitem.setAttribute('id', robj.biblio[i].id());
71                                         $('bucket_list').appendChild(listitem);
72                                 }
73                                 try { $('bucket_list').selectedIndex = 0; } catch(E) { }
74                                 $('bucket_list').focus();
75
76                         } catch(E) {
77                                 try { 
78                                         g.error.standard_unexpected_error_alert($("catStrings").getString('staff.cat.record_buckets_quick.initing_record_buckets_quick_xul'), E);
79                                 } catch(F) { 
80                                         alert(E); 
81                                 }
82                         }
83                 }
84
85                 g.new_bucket = function() {
86                         try {
87                                 var name = prompt($("catStrings").getString('staff.cat.record_buckets_quick.name_of_bucket'),
88                                         '',
89                                         $("catStrings").getString('staff.cat.record_buckets_quick.name_of_bucket.title'));
90                                 if (name) {
91                                         var bucket = new cbreb();
92                                         bucket.btype('staff_client');
93                                         bucket.owner( g.data.list.au[0].id() );
94                                         bucket.name( name );
95
96                                         var bucket_id = g.network.simple_request('BUCKET_CREATE',[ses(),'biblio',bucket]);
97                                         if (typeof bucket_id == 'object') throw bucket_id;
98
99                                         g.add_to_bucket(bucket_id);
100                                 }
101                         } catch(E) {
102                                 g.error.standard_unexpected_error_alert($("catStrings").getString('staff.cat.record_buckets_quick.bucket_creation_failure'),E);
103                         }
104                 }
105
106                 g.add_to_bucket = function(b) {
107                         var bucket_id;
108                         if (b) {
109                                 bucket_id = b;
110                         } else {
111                                 try {
112                                         if ($('bucket_list').selectedItem) bucket_id = $('bucket_list').selectedItem.getAttribute('id');
113                                 } catch(E) {
114                                 }
115                         }
116                         if (!bucket_id) return;
117                         for (var i = 0; i < g.record_ids.length; i++) {
118                                 var bucket_item = new cbrebi();
119                                 bucket_item.isnew('1');
120                                 bucket_item.bucket(bucket_id);
121                                 bucket_item.target_biblio_record_entry( g.record_ids[i] );
122                                 try {
123                                         var robj = g.network.simple_request('BUCKET_ITEM_CREATE', [ ses(), 'biblio', bucket_item ]);
124                                         if (typeof robj == 'object') throw robj;
125
126                                 } catch(E) {
127                                         g.error.standard_unexpected_error_alert($("catStrings").getFormattedString('staff.cat.record_buckets_quick.add_to_bucket.addition_failed', [bucket_id, g.record_ids[i]]), E);
128                                 }
129                         }
130                         window.close();
131                 }
132
133                 g.advanced = function() {
134                         JSAN.use('util.window'); var win = new util.window();
135                         g.data.rb_temp_record_ids = js2JSON( g.record_ids ); g.data.stash('rb_temp_record_ids');
136                         win.open(urls.XUL_RECORD_BUCKETS,'adv_record_buckets','chrome,resizable,modal');
137                         window.close();
138                 }
139
140         ]]>
141         </script>
142         
143         <messagecatalog id="catStrings" src="/xul/server/locale/<!--#echo var='locale'-->/cat.properties" />
144         <messagecatalog id="circStrings" src="/xul/server/locale/<!--#echo var='locale'-->/circ.properties" />
145         <messagecatalog id="commonStrings" src="/xul/server/locale/<!--#echo var='locale'-->/common.properties" />
146
147         <vbox flex="1" style="overflow: auto">
148         <groupbox flex="1">
149                 <caption label="&staff.cat.record_buckets_quick.groupbox.caption;"/>
150                 <description id="desc"/>
151                 <listbox id="bucket_list" rows="5" flex="1" style="overflow: auto"/>
152                 <hbox>
153                         <button label="&staff.cat.record_buckets_quick.add_to_bucket.label;"
154                                 accesskey="&staff.cat.record_buckets_quick.add_to_bucket.accesskey;" oncommand="g.add_to_bucket()"/>
155                         <button label="&staff.cat.record_buckets_quick.new_bucket.label;"
156                                 accesskey="&staff.cat.record_buckets_quick.new_bucket.accesskey;" oncommand="g.new_bucket()"/>
157                 </hbox>
158                 <hbox>
159                         <!--
160                         <button label="Advanced" accesskey="v" oncommand="g.advanced()"/>
161                         -->
162                         <button label="&staff.cat.record_buckets_quick.cancel.label;"
163                                 accesskey="&staff.cat.record_buckets_quick.cancel.accesskey;" oncommand="window.close()"/>
164                 </hbox>
165         </groupbox>
166         </vbox>
167
168 </window>
169