]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/circ/print_list_template_editor.js
19bc1c87246947476d58ad893ffd64a768295ad0
[Evergreen.git] / Open-ILS / xul / staff_client / server / circ / print_list_template_editor.js
1 dump('entering print_list_template_editor.js\n');
2
3 if (typeof circ == 'undefined') circ = {};
4 circ.print_list_template_editor = function (params) {
5         try {
6                 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
7                 JSAN.use('util.error'); this.error = new util.error();
8         } catch(E) {
9                 dump('print_list: ' + E + '\n');
10         }
11 }
12
13 circ.print_list_template_editor.prototype = {
14
15         'init' : function( params ) {
16
17                 try {
18                         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
19
20                         var obj = this;
21
22                         JSAN.use('OpenILS.data'); obj.data = new OpenILS.data(); obj.data.init({'via':'stash'});
23                         this.test_patron = new au();
24                         this.test_patron.family_name('Doe');
25                         this.test_patron.first_given_name('John');
26                         this.test_card = new ac();
27                         this.test_card.barcode('123456789');
28                         this.test_patron.card( this.test_card );
29
30                         this.test_data = {
31                                 'payment' : {
32                                         'original_balance' : '16.36',
33                                         'payment_type' : 'Cash',
34                                         'payment_received' : '0.00',
35                                         'payment_applied' : '0.00',
36                                         'voided_balance' : '0.50',
37                                         'change_given' : '0.00',
38                                         'credit_given' : '0.00',
39                                         'note' : "We refunded this because...",
40                                         'new_balance' : '16.36',
41                                 },
42                         }
43
44                         this.test_list = {
45                         
46                                 'items' : [{"uses":"undefined","alert_message":"","author":"Annixter, Jane.","barcode":"3635300990263","call_number":"F","checkin_time":"   ","checkin_time_full":"","xact_start":"2006-08-23","xact_start_full":"2006-08-23T14:37:15-0400","circ_as_type":"","circ_id":"19907","circ_lib":"URRLS-SC","circ_modifier":"","circulate":"Yes","acp_id":"34","copy_number":"1","create_date":"2006-04-28","edit_date":"2006-08-23","deleted":"No","deposit_amount":"0.00","deposit":"No","mvr_doc_id":"13","due_date":"2006-08-23","edition":"","fine_level":"Low","stop_fines":"","stop_fines_time":"","holdable":"Yes","isbn":"","loan_duration":"Short","location":"Adult","message":"   ","opac_visible":"Yes","owning_lib":"URRLS-SC","price":"10.00","pubdate":"1961","publisher":"Longmans","ref":"No","renewal_remaining":"0","route_to":"   ","status":"Checked out","tcn":"PIN01000015 ","title":"Peace comes to Castle Oak ","xact_finish":""},{"uses":"undefined","alert_message":"","author":"Josephson, Matthew","barcode":"33207002163014","call_number":"NONFIC 330.922 JOSEPHSO","checkin_time":"   ","checkin_time_full":"","xact_start":"2006-08-23","xact_start_full":"2006-08-23T14:37:23-0400","circ_as_type":"","circ_id":"19908","circ_lib":"ARL-ATH","circ_modifier":"","circulate":"Yes","acp_id":"1658","copy_number":"1","create_date":"2006-04-28","edit_date":"2006-08-23","deleted":"No","deposit_amount":"0.00","deposit":"No","mvr_doc_id":"250","due_date":"2006-09-06","edition":"","fine_level":"Low","stop_fines":"","stop_fines_time":"","holdable":"Yes","isbn":"","loan_duration":"Short","location":"Adult","message":"   ","opac_visible":"Yes","owning_lib":"ARL-ATH","price":"10.95","pubdate":"[c1934]","publisher":"Harcourt, Brace and company","ref":"No","renewal_remaining":"0","route_to":"   ","status":"Checked out","tcn":"PIN01000311 ","title":"The  robber barons :  the great American capitalists, 1861-1901","xact_finish":""},{"uses":"undefined","alert_message":"","author":"Payne, Emmy","barcode":"33034001434539","call_number":"EJ PAYNE","checkin_time":"   ","checkin_time_full":"","xact_start":"2006-08-23","xact_start_full":"2006-08-23T14:36:54-0400","circ_as_type":"","circ_id":"19904","circ_lib":"SHRL-RM","circ_modifier":"","circulate":"Yes","acp_id":"6165596","copy_number":"1","create_date":"2006-04-28","edit_date":"2006-08-23","deleted":"No","deposit_amount":"0.00","deposit":"No","mvr_doc_id":"1220497","due_date":"2006-09-06","edition":"Reinforced ed.","fine_level":"Low","stop_fines":"","stop_fines_time":"","holdable":"Yes","isbn":"075872926X (BWI bdg.)","loan_duration":"Short","location":"Adult","message":"   ","opac_visible":"Yes","owning_lib":"SHRL-RM","price":"0.00","pubdate":"1944","publisher":"Houghton Mifflin","ref":"No","renewal_remaining":"0","route_to":"   ","status":"Checked out","tcn":"PIN01000377 ","title":"Katy no-pocket ","xact_finish":""},{"uses":"undefined","alert_message":"","author":"Ames, Leslie","barcode":"31039000791757","call_number":"AF AME","checkin_time":"   ","checkin_time_full":"","xact_start":"2006-08-23","xact_start_full":"2006-08-23T14:37:07-0400","circ_as_type":"","circ_id":"19906","circ_lib":"ORLS-TEL","circ_modifier":"","circulate":"Yes","acp_id":"28","copy_number":"1","create_date":"2006-04-28","edit_date":"2006-08-23","deleted":"No","deposit_amount":"0.00","deposit":"No","mvr_doc_id":"8","due_date":"2006-09-06","edition":"","fine_level":"Low","stop_fines":"","stop_fines_time":"","holdable":"Yes","isbn":"","loan_duration":"Short","location":"Adult","message":"   ","opac_visible":"Yes","owning_lib":"ORLS-TEL","price":"5.95","pubdate":"","publisher":"Lenox Hill","ref":"No","renewal_remaining":"0","route_to":"   ","status":"Checked out","tcn":"PIN01000009 ","title":"King's Castle ","xact_finish":""},{"uses":"undefined","alert_message":"","author":"Payne, Emmy","barcode":"33034001434539","call_number":"EJ PAYNE","checkin_time":"   ","checkin_time_full":"","xact_start":"2006-08-23","xact_start_full":"2006-08-23T14:36:54-0400","circ_as_type":"","circ_id":"19903","circ_lib":"SHRL-RM","circ_modifier":"","circulate":"Yes","acp_id":"6165596","copy_number":"1","create_date":"2006-04-28","edit_date":"2006-08-23","deleted":"No","deposit_amount":"0.00","deposit":"No","mvr_doc_id":"1220497","due_date":"2006-09-06","edition":"Reinforced ed.","fine_level":"Low","stop_fines":"","stop_fines_time":"","holdable":"Yes","isbn":"075872926X (BWI bdg.)","loan_duration":"Short","location":"Adult","message":"   ","opac_visible":"Yes","owning_lib":"SHRL-RM","price":"0.00","pubdate":"1944","publisher":"Houghton Mifflin","ref":"No","renewal_remaining":"0","route_to":"   ","status":"Checked out","tcn":"PIN01000377 ","title":"Katy no-pocket ","xact_finish":""}],
47                                 'holds' : [{"author":"Wells, H. G. ","available_time":"2006-08-03","available_timestamp":"2006-08-03T15:14:53-0400","capture_time":"2006-08-03","capture_timestamp":"2006-08-03T15:14:53-0400","current_copy":"33207003884402","edition":"","email_notify":"No","expire_time":"","fulfillment_time":"","id":"57","holdable_formats":"","isbn":"0192828266 :","notify_time":"","notify_count":"0","patron_name":"23500000023053 Stompro, Josh","phone_notify":"218-233-3757","pickup_lib_shortname":"ARL-ATH","pickup_lib":"Athens-Clarke County Library","prev_check_time":"2006-08-02T16:15:11-0400","pubdate":"1995","publisher":"Oxford University Press","request_time":"2006-05-20","request_timestamp":"2006-05-20","requestor":"1000000","selection_depth":"0","status":"Ready for pickup","tcn":"PIN03002240 ","target":"131469","title":"The  war of the worlds","transit_dest_recv_time":"","transit_dest_lib":"","transit_source":"","transit_source_send_time":"","hold_type":"T","usr":"1000567"},{"author":"Kramer, Kathryn.","available_time":"2006-08-03","available_timestamp":"2006-08-03T15:32:58-0400","capture_time":"2006-08-03","capture_timestamp":"2006-08-03T15:32:58-0400","current_copy":"33207004030757","edition":"1st ed.","email_notify":"No","expire_time":"","fulfillment_time":"","id":"470","holdable_formats":"","isbn":"0375400834","notify_time":"2006-08-24T15:12:30-0400","notify_count":"1","patron_name":"21034000217210 Jenkins, George","phone_notify":"229-985-3464","pickup_lib_shortname":"ARL-ATH","pickup_lib":"Athens-Clarke County Library","prev_check_time":"2006-08-03T12:15:03-0400","pubdate":"1998","publisher":"Knopf","request_time":"2006-07-28","request_timestamp":"2006-07-28","requestor":"3","selection_depth":"0","status":"Ready for pickup","tcn":"PIN03053147 ","target":"313678","title":"Sweet water ","transit_dest_recv_time":"","transit_dest_lib":"","transit_source":"","transit_source_send_time":"","hold_type":"T","usr":"1001151"},{"author":"Silva, Daniel","available_time":"2006-08-03","available_timestamp":"2006-08-03T15:39:35-0400","capture_time":"2006-08-03","capture_timestamp":"2006-08-03T15:39:35-0400","current_copy":"33207004323517","edition":"1st ed.","email_notify":"No","expire_time":"","fulfillment_time":"","id":"448","holdable_formats":"","isbn":"0375500898 (alk. paper)","notify_time":"","notify_count":"0","patron_name":"21099000002755 Broome, Sandra","phone_notify":"706-236-4632","pickup_lib_shortname":"ARL-ATH","pickup_lib":"Athens-Clarke County Library","prev_check_time":"2006-08-02T17:16:39-0400","pubdate":"c1999","publisher":"Random House","request_time":"2006-07-27","request_timestamp":"2006-07-27","requestor":"1000001","selection_depth":"0","status":"Ready for pickup","tcn":"ocm40444117 ","target":"77772","title":"The  marching season :  a novel","transit_dest_recv_time":"","transit_dest_lib":"","transit_source":"","transit_source_send_time":"","hold_type":"T","usr":"1000846"},{"author":"Seuss","available_time":"2006-08-13","available_timestamp":"2006-08-13T20:55:02-0400","capture_time":"2006-08-13","capture_timestamp":"2006-08-13T20:55:02-0400","current_copy":"20070805","edition":"","email_notify":"No","expire_time":"","fulfillment_time":"","id":"1697","holdable_formats":"","isbn":"039480001X :","notify_time":"","notify_count":"0","patron_name":"4545 Tripper, Jack","phone_notify":"444-333-2222","pickup_lib_shortname":"ARL-ATH","pickup_lib":"Athens-Clarke County Library","prev_check_time":"2006-08-13T20:45:09-0400","pubdate":"1992, c1957","publisher":"Seedlings Braille Books for Children","request_time":"2006-08-13","request_timestamp":"2006-08-13","requestor":"1000000","selection_depth":"0","status":"Ready for pickup","tcn":"ocm47673093 ","target":"1534993","title":"The  cat in the hat","transit_dest_recv_time":"","transit_dest_lib":"","transit_source":"","transit_source_send_time":"","hold_type":"T","usr":"1002261"},{"author":"Potter, Sally.","available_time":"2006-08-09","available_timestamp":"2006-08-09T18:06:10-0400","capture_time":"2006-08-09","capture_timestamp":"2006-08-09T18:06:10-0400","current_copy":"31001000843129","edition":"","email_notify":"No","expire_time":"","fulfillment_time":"","id":"1004","holdable_formats":"","isbn":"0783262663","notify_time":"2006-08-10T15:24:46-0400","notify_count":"12","patron_name":"2222233333 Erickson, Bill","phone_notify":"999-999-9999","pickup_lib_shortname":"ARL-ATH","pickup_lib":"Athens-Clarke County Library","prev_check_time":"2006-08-09T12:15:27-0400","pubdate":"c2001","publisher":"Universal Studios","request_time":"2006-08-08","request_timestamp":"2006-08-08","requestor":"3","selection_depth":"0","status":"Ready for pickup","tcn":"ocm48683123 ","target":"1572303","title":"The  man who cried","transit_dest_recv_time":"","transit_dest_lib":"","transit_source":"","transit_source_send_time":"","hold_type":"T","usr":"3"}],
48                                 'bills' : [{"balance_owed":"-5.00","xact_finish":"2006-05-08","xact_start":"2006-05-08","id":"9","last_billing_ts":"2006-05-08 18:53","last_billing_note":"test","last_billing_type":"Miscellaneous charges","last_payment_ts":"2006-05-08 18:53","last_payment_note":"","last_payment_type":"cash_payment","total_owed":"0.00","total_paid":"5.00","xact_type":"grocery","usr":"Id = 1000502"},{"balance_owed":"-5.00","xact_finish":"2006-05-08","xact_start":"2006-05-08","id":"11","last_billing_ts":"2006-05-08 19:11","last_billing_note":"test","last_billing_type":"Miscellaneous","last_payment_ts":"2006-05-08 19:12","last_payment_note":"","last_payment_type":"cash_payment","total_owed":"0.00","total_paid":"5.00","xact_type":"grocery","usr":"Id = 1000502"},{"balance_owed":"-50.00","xact_finish":"2006-05-08","xact_start":"2006-05-08","id":"18","last_billing_ts":"2006-05-08 20:20","last_billing_note":"","last_billing_type":"Miscellaneous","last_payment_ts":"2006-05-08 21:27","last_payment_note":"","last_payment_type":"cash_payment","total_owed":"0.00","total_paid":"50.00","xact_type":"grocery","usr":"Id = 1000502"},{"balance_owed":"1.00","xact_finish":"2006-06-14","xact_start":"2006-06-14","id":"451","last_billing_ts":"2006-06-14 16:49","last_billing_note":"SYSTEM GENERATED","last_billing_type":"Lost Materials","last_payment_ts":"2006-06-14 16:49","last_payment_note":"","last_payment_type":"cash_payment","total_owed":"6.00","total_paid":"5.00","xact_type":"circulation","usr":"Id = 1000502"},{"balance_owed":"-1.00","xact_finish":"2006-06-17","xact_start":"2006-06-17","id":"3689","last_billing_ts":"2006-06-17 04:01","last_billing_note":"","last_billing_type":"Miscellaneous","last_payment_ts":"2006-06-17 18:51","last_payment_note":"","last_payment_type":"cash_payment","total_owed":"10.00","total_paid":"11.00","xact_type":"grocery","usr":"Id = 1000502"},{"balance_owed":".66","xact_finish":"","xact_start":"2006-06-27","id":"5589","last_billing_ts":"2006-08-22 00:00","last_billing_note":"Overdue Fine","last_billing_type":"Overdue materials","last_payment_ts":"2006-09-04 17:31","last_payment_note":"","last_payment_type":"cash_payment","total_owed":"5.60","total_paid":"4.94","xact_type":"circulation","usr":"Id = 1000502"},{"balance_owed":".70","xact_finish":"","xact_start":"2006-06-27","id":"5593","last_billing_ts":"2006-08-22 00:00","last_billing_note":"Overdue Fine","last_billing_type":"Overdue materials","last_payment_ts":"2006-08-16 11:01","last_payment_note":"","last_payment_type":"cash_payment","total_owed":"5.50","total_paid":"4.80","xact_type":"circulation","usr":"Id = 1000502"},{"balance_owed":"5.00","xact_finish":"","xact_start":"2006-08-16","id":"14834","last_billing_ts":"2006-08-16 12:25","last_billing_note":"","last_billing_type":"Damaged material","last_payment_ts":"","last_payment_note":"","last_payment_type":"","total_owed":"5.00","total_paid":"0.00","xact_type":"grocery","usr":"Id = 1000502"},{"balance_owed":"10.00","xact_finish":"","xact_start":"2006-08-16","id":"14858","last_billing_ts":"2006-08-16 12:34","last_billing_note":"","last_billing_type":"Damaged material","last_payment_ts":"","last_payment_note":"","last_payment_type":"","total_owed":"10.00","total_paid":"0.00","xact_type":"grocery","usr":"Id = 1000502"}],
49                                 'payment' : [{"bill_id":5559,"payment":"-0.04","last_billing_type":"Overdue materials","last_billing_note":"Overdue Fine","title":"Hali Bote Azikaban de tao fan","barcode":"a16"},{"bill_id":5589,"payment":"0.04","last_billing_type":"Overdue materials","last_billing_note":"Overdue Fine","title":"Hali Bote Azikaban de tao fan","barcode":"a47"}],
50                                 'patrons' : [],
51                                 'transits' : [{"transit_item_author":"Arvetis, Chris.","transit_item_barcode":"3947801748348","transit_item_callnumber":"JE ARV","transit_item_title":"Why do birds sing?","transit_target_copy":"2385751","transit_dest_lib":"PIED-WIN","transit_id":"25","transit_source":"ARL-ATH","transit_source_send_time":"2006-05-24T16:37:09-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Pine, Tillie S.","transit_item_barcode":"3635300990762","transit_item_callnumber":"F","transit_item_title":"Water all around ","transit_target_copy":"1","transit_dest_lib":"URRLS-SC","transit_id":"26","transit_source":"ARL-ATH","transit_source_send_time":"2006-05-27T22:49:40-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"","transit_item_barcode":"31057000861941","transit_item_callnumber":"CD J 781.5246 CASPE","transit_item_title":"Casper's spookiest songs and sounds  10 spooky songs plus creepy sound effects","transit_target_copy":"7923932","transit_dest_lib":"WGRL-LS","transit_id":"98","transit_source":"ARL-ATH","transit_source_send_time":"2006-06-29T16:34:38-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Davidson, MaryJanice.","transit_item_barcode":"31027005649112","transit_item_callnumber":"AC DAV","transit_item_title":"Undead and unreturnable ","transit_target_copy":"7924995","transit_dest_lib":"HCLS-LG","transit_id":"100","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-07T16:02:32-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Evanovich, Janet.","transit_item_barcode":"31001001097295","transit_item_callnumber":"813/.54","transit_item_title":"Two for the dough","transit_target_copy":"8000335","transit_dest_lib":"ARL-BOG","transit_id":"102","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-11T12:12:11-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Edwards, Anne","transit_item_barcode":"39021423853564","transit_item_callnumber":"780.92 STREISAND","transit_item_title":"Streisand a biography","transit_target_copy":"949781","transit_dest_lib":"ECGR-BKM","transit_id":"110","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-14T10:00:01-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Riese, Randall.","transit_item_barcode":"31025900460205","transit_item_callnumber":"921 STREISAND 1993","transit_item_title":"Her name is Barbra an intimate portrait of the real Barbra Streisand","transit_target_copy":"2210566","transit_dest_lib":"HALL-BPL","transit_id":"112","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-14T10:01:39-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Rowling, J. K.","transit_item_barcode":"a45","transit_item_callnumber":"JROWLING2","transit_item_title":"Hali Bote Azikaban de tao fan","transit_target_copy":"8000297","transit_dest_lib":"WGRL-LS","transit_id":"118","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-19T13:52:38-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Some Author","transit_item_barcode":"321","transit_item_callnumber":"UNCATALOGED","transit_item_title":"Big Book","transit_target_copy":"8000387","transit_dest_lib":"ROCK-NG","transit_id":"119","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-19T13:58:21-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Thomas, Joyce Carol.","transit_item_barcode":"31036000522216","transit_item_callnumber":"E THOMAS","transit_item_title":"The  gospel Cinderella","transit_target_copy":"7422951","transit_dest_lib":"NCLS-COVTN","transit_id":"200","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-25T15:20:00-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Robinson, Barbara","transit_item_barcode":"31036000545159","transit_item_callnumber":"J ROBINSON","transit_item_title":"The  best Halloween ever","transit_target_copy":"7487432","transit_dest_lib":"NCLS-COVTN","transit_id":"206","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-25T15:25:44-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Robinson, Barbara","transit_item_barcode":"31036000545142","transit_item_callnumber":"J ROBINSON","transit_item_title":"The  best Halloween ever","transit_target_copy":"7487431","transit_dest_lib":"NCLS-COVTN","transit_id":"207","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-25T15:25:49-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Grafton, Sue.","transit_item_barcode":"31036000527900","transit_item_callnumber":"F GRAFTON","transit_item_title":"\"H\" is for homicide","transit_target_copy":"7273824","transit_dest_lib":"NCLS-COVTN","transit_id":"208","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-25T15:25:58-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Beaumont, Karen.","transit_item_barcode":"31036000521853","transit_item_callnumber":"E BEAUMONT","transit_item_title":"I like myself!","transit_target_copy":"7387328","transit_dest_lib":"NCLS-COVTN","transit_id":"211","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-25T15:26:08-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Sandler, Martin W.","transit_item_barcode":"31036000522612","transit_item_callnumber":"J 388.42 SANDLER","transit_item_title":"Straphanging in the USA trolleys and subways in American life","transit_target_copy":"7360328","transit_dest_lib":"NCLS-COVTN","transit_id":"212","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-25T15:35:17-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},{"transit_item_author":"Bohjalian, Christopher A.","transit_item_barcode":"31036000538303","transit_item_callnumber":"F BOHJALIAN","transit_item_title":"Before you know kindness :  a novel","transit_target_copy":"7544549","transit_dest_lib":"NCLS-COVTN","transit_id":"218","transit_source":"ARL-ATH","transit_source_send_time":"2006-07-26T10:23:20-0400","capture_time":"   ","capture_timestamp":"   ","expire_time":"   ","patron_name":"undefined undefined, undefined","request_time":"   ","request_timestamp":"   ","hold_type":"   "},],
52                                 'offline_checkout' : [],
53                                 'offline_checkin' : [],
54                                 'offline_renew' : [],
55                                 'offline_inhouse_use' : [],
56                         }
57
58                         obj.controller_init();
59                         obj.controller.render(); obj.controller.view.template_name_menu.focus();
60
61                         obj.post_init();
62
63                 } catch(E) {
64                         alert('init: ' + E);
65                         this.error.sdump('D_ERROR','print_list.init: ' + E + '\n');
66                 }
67         },
68
69         'post_init' : function() {
70                 var obj = this;
71                 setTimeout(
72                         function() {
73                                 var tmp = obj.data.print_list_templates[ obj.controller.view.template_name_menu.value ];
74                                 obj.controller.view.template_type_menu.value = tmp.type;
75                                 obj.controller.view.header.value = tmp.header;
76                                 obj.controller.view.line_item.value = tmp.line_item;
77                                 obj.controller.view.footer.value = tmp.footer;
78                                 obj.preview();
79                         }, 0
80                 );
81         },
82
83         'controller_init' : function() {
84                 try {
85                         var obj = this;
86                         JSAN.use('util.controller'); obj.controller = new util.controller();
87                         obj.controller.init(
88                                 {
89                                         control_map : {
90                                                 'sample' : [ ['command'], function() { } ],
91                                                 'header' : [ ['change'], function() { obj.preview(); } ],
92                                                 'line_item' : [ ['change'], function() { obj.preview(); } ],
93                                                 'footer' : [ ['change'], function() { obj.preview(); } ],
94                                                 'preview' : [
95                                                         ['command'],
96                                                         function() {
97                                                                 obj.preview();
98                                                         }
99                                                 ],
100                                                 'save' : [
101                                                         ['command'],
102                                                         function() {
103                                                                 obj.save_template( obj.controller.view.template_name_menu.value );
104                                                         }
105                                                 ],
106                                                 'export' : [
107                                                         ['command'],
108                                                         function() {
109                                                                 obj.export_templates();
110                                                         }
111                                                 ],
112                                                 'import' : [
113                                                         ['command'],
114                                                         function() {
115                                                                 obj.import_templates();
116                                                         }
117                                                 ],
118                                                 'default' : [
119                                                         ['command'],
120                                                         function() {
121                                                                 obj.data.print_list_defaults();
122                                                                 obj.post_init();
123                                                         }
124                                                 ],
125                                                 'macros' : [
126                                                         ['command'],
127                                                         function() {
128                                                                 try {
129                                                                         JSAN.use('util.functional');
130                                                                         var template_type = obj.controller.view.template_type_menu.value;
131                                                                         var macros;
132                                                                         switch(template_type) {
133                                                                                 case 'items':
134                                                                                         JSAN.use('circ.util');
135                                                                                         macros = util.functional.map_list(
136                                                                                                 circ.util.columns( {} ),
137                                                                                                 function(o) {
138                                                                                                         return '%' + o.id + '%';
139                                                                                                 }
140                                                                                         );
141                                                                                 break;
142                                                                                 case 'holds':
143                                                                                         JSAN.use('circ.util');
144                                                                                         macros = util.functional.map_list(
145                                                                                                 circ.util.hold_columns( {} ),
146                                                                                                 function(o) {
147                                                                                                         return '%' + o.id + '%';
148                                                                                                 }
149                                                                                         );
150                                                                                 break;
151                                                                                 case 'bills':
152                                                                                         JSAN.use('patron.util');
153                                                                                         macros = util.functional.map_list(
154                                                                                                 patron.util.mbts_columns( {} ),
155                                                                                                 function(o) {
156                                                                                                         return '%' + o.id + '%';
157                                                                                                 }
158                                                                                         );
159                                                                                 break;
160                                                                                 case 'patrons':
161                                                                                         JSAN.use('patron.util');
162                                                                                         macros = util.functional.map_list(
163                                                                                                 patron.util.columns( {} ),
164                                                                                                 function(o) {
165                                                                                                         return '%' + o.id + '%';
166                                                                                                 }
167                                                                                         );
168                                                                                 break;
169                                                                                 case 'payment' : 
170                                                                                         macros = [ '%original_balance%', '%payment_received%', '%payment_applied%', '%payment_type%', '%voided_balance%', '%change_given%', '%new_balance%', '%note%', '%bill_id%', '%payment%', '%title%' ];
171                                                                                 break;
172                                                                         }
173                                                                         var macro_string = macros.join(', ');
174                                                                         JSAN.use('util.window');
175                                                                         var win = new util.window();
176                                                                         win.open('data:text/html,'
177                                                                                 + window.escape(
178                                                                                         '<html style="width: 600; height: 400;">'
179                                                                                         + '<head><title>Template Macros</title></head>'
180                                                                                         + '<body onload="document.getElementById(\'btn\').focus()">'
181                                                                                         + '<h1>General:</h1>'
182                                                                                         + '<p>%PINES_CODE%, %TODAY%, %STAFF_FIRSTNAME%, %STAFF_LASTNAME%, '
183                                                                                         + '%PATRON_FIRSTNAME%, %LIBRARY%</p>'
184                                                                                         + '<h1>For type: '
185                                                                                         + template_type + '</h1>'
186                                                                                         + '<p>' + macro_string + '</p>'
187                                                                                         + '<button id="btn" onclick="window.close()">Close Window</button>'
188                                                                                         + '</body></html>'
189                                                                                 ), 'title', 'chrome,resizable');
190                                                                 } catch(E) {
191                                                                         alert(E);
192                                                                 }
193                                                         }
194                                                 ],
195                                                 'template_name_menu_placeholder' : [
196                                                         ['render'],
197                                                         function(e) {
198                                                                 return function() {
199                                                                         JSAN.use('util.widgets'); JSAN.use('util.functional');
200                                                                         util.widgets.remove_children(e);
201                                                                         var ml = util.widgets.make_menulist(
202                                                                                 util.functional.map_object_to_list(
203                                                                                         obj.data.print_list_templates,
204                                                                                         function(o,i) { return [i,i]; }
205                                                                                 )
206                                                                         );
207                                                                         ml.setAttribute('id','template_name_menu');
208                                                                         //ml.setAttribute('editable','true');
209                                                                         ml.setAttribute('flex','1');
210                                                                         e.appendChild(ml);
211                                                                         obj.controller.view.template_name_menu = ml;
212                                                                         ml.addEventListener(
213                                                                                 'command',
214                                                                                 function(ev) {
215                                                                                         var tmp = obj.data.print_list_templates[ ev.target.value ];
216                                                                                         obj.controller.view.template_type_menu.value = tmp.type;
217                                                                                         obj.controller.view.header.value = tmp.header;
218                                                                                         obj.controller.view.line_item.value = tmp.line_item;
219                                                                                         obj.controller.view.footer.value = tmp.footer;
220                                                                                         obj.preview();
221                                                                                 },
222                                                                                 false
223                                                                         );
224                                                                 }
225                                                         }
226                                                 ],
227                                                 'template_type_menu_placeholder' : [
228                                                         ['render'],
229                                                         function(e) {
230                                                                 return function() {
231                                                                         JSAN.use('util.widgets'); JSAN.use('util.functional');
232                                                                         util.widgets.remove_children(e);
233                                                                         var ml = util.widgets.make_menulist(
234                                                                                 util.functional.map_list(
235                                                                                         obj.data.print_list_types,
236                                                                                         function(o) { return [o,o]; }
237                                                                                 )
238                                                                         );
239                                                                         ml.setAttribute('id','template_types_menu');
240                                                                         ml.setAttribute('disabled','true');
241                                                                         e.appendChild(ml);
242                                                                         obj.controller.view.template_type_menu = ml;
243                                                                 }
244                                                         }
245                                                 ],
246
247                                         }
248                                 }
249                         );
250                 } catch(E) {
251                         alert('controller_init: ' + E );
252                 }
253         },
254
255         'preview' : function () { 
256                 try {
257                         var list = this.test_list[ this.controller.view.template_type_menu.value ];
258                         if (typeof list == 'undefined') list = [];
259                         var data = this.test_data[ this.controller.view.template_type_menu.value ];
260                         if (typeof data == 'undefined') data = {};
261
262                         var params = { 
263                                 'patron' : this.test_patron, 
264                                 'lib' : this.data.hash.aou[ this.data.list.au[0].ws_ou() ],
265                                 'staff' : this.data.list.au[0],
266                                 'header' : this.controller.view.header.value,
267                                 'line_item' : this.controller.view.line_item.value,
268                                 'footer' : this.controller.view.footer.value,
269                                 'type' : this.controller.view.template_type_menu.value,
270                                 'list' : list,
271                                 'data' : data,
272                                 'sample_frame' : this.controller.view.sample,
273                         };
274                         JSAN.use('util.print'); var print = new util.print();
275                         print.tree_list( params );
276                 } catch(E) {
277                         this.error.sdump('D_ERROR','preview: ' + E);
278                         alert('preview: ' + E);
279                 }
280         },
281
282         'save_template' : function(name) {
283                 var obj = this;
284                 obj.data.print_list_templates[name].header = obj.controller.view.header.value;
285                 obj.data.print_list_templates[name].line_item = obj.controller.view.line_item.value;
286                 obj.data.print_list_templates[name].footer = obj.controller.view.footer.value;
287                 obj.data.print_list_templates[name].type = obj.controller.view.template_type_menu.value;
288                 obj.data.stash( 'print_list_templates' );
289                 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
290                 JSAN.use('util.file'); var file = new util.file('print_list_templates');
291                 file.set_object(obj.data.print_list_templates); file.close();
292                 alert('Template Saved\n' + js2JSON(obj.data.print_list_templates[name]));
293         },
294
295         'export_templates' : function() {
296                 try {
297                         var obj = this;
298                         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
299                         JSAN.use('util.file'); var f = new util.file('');
300             f.export_file( { 'title' : 'Save Templates File As', 'data' : obj.data.print_list_templates } );
301
302                 } catch(E) {
303                         this.error.standard_unexpected_error_alert('Error exporting templates',E);
304                 }
305         },
306
307         'import_templates' : function() {
308                 try {
309                         var obj = this;
310                         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
311                         JSAN.use('util.file'); var f = new util.file('');
312             var temp = f.import_file( { 'title' : 'Import Templates File' } );
313             if (!temp) return;
314             var s = '';
315             function set_t(k,v) {
316                 obj.data.print_list_templates[k] = v;
317                 if (s) s+= ', '; s += k;
318             }
319             for (var i in temp) { set_t(i,temp[i]); }
320             obj.data.stash('print_list_templates');
321             alert('Imported these templates: ' + s);
322             if (xulG) { 
323                 xulG.set_tab(xulG.url_prefix(urls.XUL_PRINT_LIST_TEMPLATE_EDITOR), {}, {});
324             } else {
325                 alert('Please reload this interface.');
326             }
327         
328                 } catch(E) {
329                         this.error.standard_unexpected_error_alert('Error importing templates',E);
330                 }
331         },
332
333 }
334
335 dump('exiting print_list_template_editor.js\n');