]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/circ/receipt_template_editor.xul
checkout receipt in the template editor
[working/Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / circ / receipt_template_editor.xul
1 <?xml version="1.0"?>
2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: About -->
4
5 <!-- Stylesheets -->
6 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
7 <?xml-stylesheet href="chrome://evergreen/skin/evergreen.css" type="text/css"?>
8
9 <window id="itemsout_receipt_template_win" 
10         onload="try { my_init(); } catch(E) { alert(E); }"
11         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
12
13         <script>mw.sdump('D_TRACE','Loading itemsout_receipt_template.xul\n');</script>
14
15         <script>
16         <![CDATA[
17                 var test_patron = mw.JSON2js('/*--S au --*/[null,null,null,[/*--S aua --*/[null,null,null,"work","CITY","USA","Fulton","13","30043","GA","123 street road","#AR54","18","1"]/*--E aua --*/,/*--S aua --*/[null,null,null,"Vacation","PC Beach","USA","PC County","42","01010","FL","111 A Street","Unit #12A","18","1"]/*--E aua --*/],[/*--S ac --*/[null,null,null,"1","21099000006699","14","18"]/*--E ac --*/],[{"circ":/*--S aoc --*/[null,null,null,"212","2005-07-05 04:58:02-04","14 days","2wk_default","1 day","134","50.00","books","0.10","books","1","1",null,"11","18",null,"2005-07-19 10:38:25.211964-04"]/*--E aoc --*/,"copy":/*--S acp --*/[null,null,null,null,"31041005404709","11",null,"212",null,"1","1","2005-05-06 11:13:05.063398-04","1","0","0.00","2005-05-06 11:13:05.063398-04","1","2","1","11","2","1","1","0.00","0","1"]/*--E acp --*/,"record":/*--S mvr --*/[null,null,null,"Albrand, Martha.",[],null,"3",null,null,"",[],"1959","Random House",null,[],[],null,"PIN01000004 ","A  day in Monte Carlo",["text"]]/*--E mvr --*/},{"circ":/*--S aoc --*/[null,null,null,"12","2005-08-04 11:31:02-04","14 days","2wk_default","1 day","171","50.00","books","0.10","books","0","2",null,"2139800","18",null,"2005-07-21 17:11:44.203345-04"]/*--E aoc --*/,"copy":/*--S acp --*/[null,null,null,null,"33207000838641","1938753",null,"10",null,"1","1","2005-05-06 11:13:05.063398-04","1","0","0.00","2005-07-21 17:08:53.504341-04","1","2","1","2139800","2","1","1","10.00","0","1"]/*--E acp --*/,"record":/*--S mvr --*/[null,null,null,"Sproule, Anna.",[],null,"330278",null,null,"0531182150 (lib. bdg.)",[],"1988","Bookwright Press",null,["Know your pet"],[["Dogs"],["Dog breeds"]],"Discusses how to choose and care for a pet dog and provides information on various breeds.","PIN03092988 ","Dogs",["text"]]/*--E mvr --*/},{"circ":/*--S aoc --*/[null,null,null,"1","2005-08-05 14:36:02-04","14 days","2wk_default","1 day","173","50.00","books","0.10","books","0","2",null,"1329873","18",null,"2005-07-22 20:17:07.199888-04"]/*--E aoc --*/,"copy":/*--S acp --*/[null,null,null,null,"34520000676111","1187974",null,"182",null,"1","1","2005-05-06 11:13:05.063398-04","1","0","0.00","2005-05-06 11:13:05.063398-04","1","2","1","1329873","2","1","1","0.00","0","1"]/*--E acp --*/,"record":/*--S mvr --*/[null,null,null,"Margolis, Matthew.",[],null,"97448",null,"1st Vintage Books ed.","0394711742 (pbk.) :",[],"1982, c1979","Vintage Books",null,[],[["Dogs"]],null,"PIN02040633 ","The  dog in your life a complete guide to choosing, raising, feeding, training, and caring for your dog plus sections on show dogs, hunting dogs, coursing dogs, herd dogs, sled dogs, guard dogs, guide dogs, and a discussion of common canine illnesses",["text"]]/*--E mvr --*/}],[/*--S ahr --*/[null,null,null,"Copy found, waiting for capture",null,"3601016","email2@somewheres.info",null,null,"T",null,"45","800.555.0000","12","2005-07-24 15:47:42.091479-04","2005-07-21 16:35:16.026892-04","18","0","847314","18"]/*--E ahr --*/,/*--S ahr --*/[null,null,null,"Copy found, waiting for capture",null,"1386122","email2@somewheres.info",null,null,"T",null,"46","800.555.0000","12","2005-07-24 15:47:45.240195-04","2005-07-21 16:40:12.783469-04","18","0","152833","18"]/*--E ahr --*/,/*--S ahr --*/[null,null,null,"Available","2005-07-21 17:04:11.853992-04","548582","email2@somewheres.info",null,null,"T",null,"47","800.555.0000","12","2005-07-21 17:03:49.248665-04","2005-07-21 17:03:10.523049-04","18","0","23932","18"]/*--E ahr --*/],null,[/*--S actscecm --*/[null,null,null,"40","17","Yes","18"]/*--E actscecm --*/,/*--S actscecm --*/[null,null,null,"14","2","Yes","18"]/*--E actscecm --*/,/*--S actscecm --*/[null,null,null,"46","18","test2","18"]/*--E actscecm --*/,/*--S actscecm --*/[null,null,null,"42","16","","18"]/*--E actscecm --*/],null,"1",null,/*--S aua --*/[null,null,null,"Vacation","PC Beach","USA","PC County","42","01010","FL","111 A Street","Unit #12A","18","1"]/*--E aua --*/,/*--S ac --*/[null,null,null,"1","21099000006699","14","18"]/*--E ac --*/,"0","2005-05-13","0.00","800.555.0000","1900-01-02","email2@somewheres.info",null,"2008-05-13","Erickson","Bill","10","18","5","2","345","365","1122211188.708583190.17503114108",/*--S aua --*/[null,null,null,"work","CITY","USA","Fulton","13","30043","GA","123 street road","#AR54","18","1"]/*--E aua --*/,"0","1",null,null,null,"Councilperson","3",null,"1","Jr","0","18","erickson"]/*--E au --*/');
18
19                 function my_init() {
20                         document.getElementById('itemsout_header_tb').value = mw.G.itemsout_header;
21                         document.getElementById('itemsout_line_item_tb').value = mw.G.itemsout_line_item;
22                         document.getElementById('itemsout_footer_tb').value = mw.G.itemsout_footer;
23                         document.getElementById('checkout_header_tb').value = mw.G.checkout_header;
24                         document.getElementById('checkout_line_item_tb').value = mw.G.checkout_line_item;
25                         document.getElementById('checkout_footer_tb').value = mw.G.checkout_footer;
26                         document.getElementById('checkin_header_tb').value = mw.G.checkin_header;
27                         document.getElementById('checkin_line_item_tb').value = mw.G.checkin_line_item;
28                         document.getElementById('checkin_footer_tb').value = mw.G.checkin_footer;
29                         document.getElementById('holds_header_tb').value = mw.G.holds_header;
30                         document.getElementById('holds_line_item_tb').value = mw.G.holds_line_item;
31                         document.getElementById('holds_footer_tb').value = mw.G.holds_footer;
32                         test_itemsout(document.getElementById('sample_view'));
33                         test_patron._current_checkouts = test_patron.checkouts();
34                 }
35
36                 function test_itemsout(sample_view) {
37                         var params = { 
38                                 'au' : test_patron, 
39                                 'lib' : mw.G.user_ou,
40                                 'staff' : mw.G.user,
41                                 'header' : document.getElementById('itemsout_header_tb').value,
42                                 'line_item' : document.getElementById('itemsout_line_item_tb').value,
43                                 'footer' : document.getElementById('itemsout_footer_tb').value
44                         };
45                         mw.print_itemsout_receipt( params, sample_view );
46                 }
47
48                 function save_itemsout() {
49                         mw.G.itemsout_header = document.getElementById('itemsout_header_tb').value;
50                         mw.G.itemsout_line_item = document.getElementById('itemsout_line_item_tb').value;
51                         mw.G.itemsout_footer = document.getElementById('itemsout_footer_tb').value;
52                 }
53
54                 function test_checkout(sample_view) {
55                         var params = { 
56                                 'au' : test_patron, 
57                                 'lib' : mw.G.user_ou,
58                                 'staff' : mw.G.user,
59                                 'header' : document.getElementById('checkout_header_tb').value,
60                                 'line_item' : document.getElementById('checkout_line_item_tb').value,
61                                 'footer' : document.getElementById('checkout_footer_tb').value
62                         };
63                         mw.print_checkout_receipt( params, sample_view );
64                 }
65
66                 function save_checkout() {
67                         mw.G.checkout_header = document.getElementById('checkout_header_tb').value;
68                         mw.G.checkout_line_item = document.getElementById('checkout_line_item_tb').value;
69                         mw.G.checkout_footer = document.getElementById('checkout_footer_tb').value;
70                 }
71
72                 function test_checkin(sample_view) {
73                         var params = { 
74                                 'au' : test_patron, 
75                                 'lib' : mw.G.user_ou,
76                                 'staff' : mw.G.user,
77                                 'header' : document.getElementById('checkin_header_tb').value,
78                                 'line_item' : document.getElementById('checkin_line_item_tb').value,
79                                 'footer' : document.getElementById('checkin_footer_tb').value
80                         };
81                         mw.print_checkin_receipt( params, sample_view );
82                 }
83
84                 function save_checkin() {
85                         mw.G.checkin_header = document.getElementById('checkin_header_tb').value;
86                         mw.G.checkin_line_item = document.getElementById('checkin_line_item_tb').value;
87                         mw.G.checkin_footer = document.getElementById('checkin_footer_tb').value;
88                 }
89
90                 function test_holds(sample_view) {
91                         var params = { 
92                                 'au' : test_patron, 
93                                 'lib' : mw.G.user_ou,
94                                 'staff' : mw.G.user,
95                                 'header' : document.getElementById('holds_header_tb').value,
96                                 'line_item' : document.getElementById('holds_line_item_tb').value,
97                                 'footer' : document.getElementById('holds_footer_tb').value
98                         };
99                         mw.print_holds_receipt( params, sample_view );
100                 }
101
102                 function save_holds() {
103                         mw.G.holds_header = document.getElementById('holds_header_tb').value;
104                         mw.G.holds_line_item = document.getElementById('holds_line_item_tb').value;
105                         mw.G.holds_footer = document.getElementById('holds_footer_tb').value;
106                 }
107
108                 function switch_sample_view() {
109                         try {
110                                 var sv = document.getElementById('sample_view');
111                                 switch( document.getElementById('tps').selectedPanel.id ) {
112                                         case 'itemsout' : test_itemsout(sv); break;
113                                         case 'checkout' : test_checkout(sv); break;
114                                         case 'checkin' : test_checkin(sv); break;
115                                         case 'holds' : test_holds(sv); break;
116                                 }
117                         } catch(E) {
118                                 mw.sdump('D_ERROR',mw.js2JSON(E));
119                         }
120                 }
121
122         ]]>
123         </script>
124
125         <vbox flex="1" class="my_overflow">
126                 <groupbox orient="vertical" flex="1">
127                         <caption label="Receipt Template Editor"/>
128                         <hbox flex="1">
129                                 <groupbox orient="vertical" flex="1">
130                                         <caption label="HELP" />
131                                         <tabbox flex="1">
132                                                 <tabs>
133                                                         <tab label="Description"/>
134                                                         <tab label="Sample View"/>
135                                                 </tabs>
136                                                 <tabpanels flex="1">
137                                                         <tabpanel flex="1">
138                                                                 <hbox flex="1">
139                                                                         <iframe flex="1" src="data:text/html,&lt;html&gt;&lt;p&gt;Please note that this interface is for testing purposes, and that modifications you make here will not persist between different invocations of the staff client.  In future versions of the software, you will be able to save and share named templates.  Also note that the Sample View is not intended to be a print preview of the receipt.  You should print the test receipt to determine how your template will actually look.&lt;/p&gt;&lt;p&gt;The following macros get evaluated and substituted for each receipt printed: %LIBRARY% %PINES_CODE% %PATRON_LASTNAME% %PATRON_FIRSTNAME% %PATRON_MIDDLENAME% %PATRON_BARCODE% %TODAY% %OUT% %DUE% %DURATION% %COPY_BARCODE% %TITLE% %AUTHOR% %PUBLISHER% %PUBDATE% %NUMBER% %STAFF_LASTNAME% %STAFF_FIRSTNAME% %STAFF_MIDDLENAME% %STAFF BARCODE%&lt;/p&gt;&lt;p&gt;If there's a specific macro you would like to see, please let us know.  There will be variations on these for handling truncation and date formats.  You may also include HTML markup in your template, but how that renders will depend on your printer and print driver.  Please see the examples:&lt;/p&gt;&lt;/html&gt;" />;
140                                                                 </hbox>
141                                                         </tabpanel>
142                                                         <tabpanel flex="1">
143                                                                 <hbox flex="1">
144                                                                         <iframe flex="1" id="sample_view" />
145                                                                 </hbox>
146                                                         </tabpanel>
147                                                 </tabpanels>
148                                         </tabbox>
149                                 </groupbox>
150                                 <groupbox orient="vertical" flex="1">
151                                         <caption label="TEMPLATES" />
152                                 <tabbox flex="1">
153                                         <tabs>
154                                                 <tab label="Items Out"/>
155                                                 <tab label="Check Out"/>
156                                                 <tab label="Check In"/>
157                                                 <tab label="Holds"/>
158                                         </tabs>
159                                         <tabpanels id="tps" flex="1" onselect="switch_sample_view();">
160                                                 <tabpanel id="itemsout">
161                                                         <vbox flex="1">
162                                                                 <groupbox orient="vertical" flex="1">
163                                                                         <caption label="Header"/>
164                                                                         <textbox id="itemsout_header_tb" multiline="true" flex="1" onchange="test_itemsout(document.getElementById('sample_view'));"/>
165                                                                 </groupbox>
166                                                                 <groupbox orient="vertical" flex="1">
167                                                                         <caption label="Line Item"/>
168                                                                         <textbox id="itemsout_line_item_tb" multiline="true" flex="1" onchange="test_itemsout(document.getElementById('sample_view'));"/>
169                                                                 </groupbox>
170                                                                 <groupbox orient="vertical" flex="1">
171                                                                         <caption label="Footer"/>
172                                                                         <textbox id="itemsout_footer_tb" multiline="true" flex="1" onchange="test_itemsout(document.getElementById('sample_view'));"/>
173                                                                 </groupbox>
174                                                                 <hbox>
175                                                                         <spacer flex="1"/>
176                                                                         <button label="Update Sample View" accesskey="V" />
177                                                                         <button label="Test Print" accesskey="T" oncommand="test_itemsout();"/>
178                                                                         <button label="Save" accesskey="S" oncommand="save_itemsout();"/>
179                                                                 </hbox>
180                                                         </vbox>
181                                                 </tabpanel>
182                                                 <tabpanel id="checkout">
183                                                         <vbox flex="1">
184                                                                 <groupbox orient="vertical" flex="1">
185                                                                         <caption label="Header"/>
186                                                                         <textbox id="checkout_header_tb" multiline="true" flex="1" onchange="test_checkout(document.getElementById('sample_view'));"/>
187                                                                 </groupbox>
188                                                                 <groupbox orient="vertical" flex="1">
189                                                                         <caption label="Line Item"/>
190                                                                         <textbox id="checkout_line_item_tb" multiline="true" flex="1" onchange="test_checkout(document.getElementById('sample_view'));"/>
191                                                                 </groupbox>
192                                                                 <groupbox orient="vertical" flex="1">
193                                                                         <caption label="Footer"/>
194                                                                         <textbox id="checkout_footer_tb" multiline="true" flex="1" onchange="test_checkout(document.getElementById('sample_view'));"/>
195                                                                 </groupbox>
196                                                                 <hbox>
197                                                                         <spacer flex="1"/>
198                                                                         <button label="Update Sample View" accesskey="V" />
199                                                                         <button label="Test Print" accesskey="T" oncommand="test_checkout();"/>
200                                                                         <button label="Save" accesskey="S" oncommand="save_checkout();"/>
201                                                                 </hbox>
202                                                         </vbox>
203                                                 </tabpanel>
204                                                 <tabpanel id="checkin">
205                                                         <vbox flex="1">
206                                                                 <groupbox orient="vertical" flex="1">
207                                                                         <caption label="Header"/>
208                                                                         <textbox id="checkin_header_tb" multiline="true" flex="1" onchange="test_checkin(document.getElementById('sample_view'));"/>
209                                                                 </groupbox>
210                                                                 <groupbox orient="vertical" flex="1">
211                                                                         <caption label="Line Item"/>
212                                                                         <textbox id="checkin_line_item_tb" multiline="true" flex="1" onchange="test_checkin(document.getElementById('sample_view'));"/>
213                                                                 </groupbox>
214                                                                 <groupbox orient="vertical" flex="1">
215                                                                         <caption label="Footer"/>
216                                                                         <textbox id="checkin_footer_tb" multiline="true" flex="1" onchange="test_checkin(document.getElementById('sample_view'));"/>
217                                                                 </groupbox>
218                                                                 <hbox>
219                                                                         <spacer flex="1"/>
220                                                                         <button label="Update Sample View" accesskey="V" />
221                                                                         <button label="Test Print" accesskey="T" oncommand="test_checkin();"/>
222                                                                         <button label="Save" accesskey="S" oncommand="save_checkin();"/>
223                                                                 </hbox>
224                                                         </vbox>
225                                                 </tabpanel>
226                                                 <tabpanel id="holds">
227                                                         <vbox flex="1">
228                                                                 <groupbox orient="vertical" flex="1">
229                                                                         <caption label="Header"/>
230                                                                         <textbox id="holds_header_tb" multiline="true" flex="1" onchange="test_holds(document.getElementById('sample_view'));"/>
231                                                                 </groupbox>
232                                                                 <groupbox orient="vertical" flex="1">
233                                                                         <caption label="Line Item"/>
234                                                                         <textbox id="holds_line_item_tb" multiline="true" flex="1" onchange="test_holds(document.getElementById('sample_view'));"/>
235                                                                 </groupbox>
236                                                                 <groupbox orient="vertical" flex="1">
237                                                                         <caption label="Footer"/>
238                                                                         <textbox id="holds_footer_tb" multiline="true" flex="1" onchange="test_holds(document.getElementById('sample_view'));"/>
239                                                                 </groupbox>
240                                                                 <hbox>
241                                                                         <spacer flex="1"/>
242                                                                         <button label="Update Sample View" accesskey="V" />
243                                                                         <button label="Test Print" accesskey="T" oncommand="test_holds();"/>
244                                                                         <button label="Save" accesskey="S" oncommand="save_holds();"/>
245                                                                 </hbox>
246                                                         </vbox>
247                                                 </tabpanel>
248                                         </tabpanels>
249                                 </tabbox>
250                                 </groupbox>
251                         </hbox>
252                 </groupbox>
253         </vbox>
254
255 </window>
256