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