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