Add file for 1.6 branch.
authorrsoulliere <robert.soulliere@mohawkcollege.ca>
Wed, 5 Oct 2011 18:09:08 +0000 (14:09 -0400)
committerrsoulliere <robert.soulliere@mohawkcollege.ca>
Wed, 5 Oct 2011 18:09:08 +0000 (14:09 -0400)
467 files changed:
admin/AdminMisc.xml [new file with mode: 0644]
admin/Upgrading-Evergreen_1.6.xml [new file with mode: 0644]
admin/actiontriggers.xml [new file with mode: 0644]
admin/admin-booking.xml [new file with mode: 0644]
admin/admin-intro.xml [new file with mode: 0644]
admin/admin-lsa.xml [new file with mode: 0644]
admin/admin-receipt.xml [new file with mode: 0644]
admin/admin-survey.xml [new file with mode: 0644]
admin/localization.xml [new file with mode: 0644]
admin/migratingdata_1.6.xml [new file with mode: 0644]
admin/requirements-configuration.xml [new file with mode: 0644]
admin/serveradministration.xml [new file with mode: 0644]
admin/serversideinstallation.xml [new file with mode: 0644]
admin/sip.xml [new file with mode: 0644]
admin/staffclientinstallation.xml [new file with mode: 0644]
admin/troubleshooting.xml [new file with mode: 0644]
admin/z3950.xml [new file with mode: 0644]
appendices/about_this_documentation.xml [new file with mode: 0644]
appendices/bookindex.xml [new file with mode: 0755]
appendices/glossary.xml [new file with mode: 0644]
appendices/installchecklist.xml [new file with mode: 0644]
appendices/more_info.xml [new file with mode: 0644]
appendices/schema.xml [new file with mode: 0644]
appendices/schema1.6.1.2.xml [new file with mode: 0644]
appendices/schema1.6.1.6.xml [new file with mode: 0644]
development/OpenSRF_intro.xml [new file with mode: 0644]
development/customize_opac.xml [new file with mode: 0644]
development/customizingstaffclient.xml [new file with mode: 0644]
development/datamodelsandaccess.xml [new file with mode: 0644]
development/development_intro.xml [new file with mode: 0644]
development/directoriesandFiles.xml [new file with mode: 0644]
development/installchecklist.xml [new file with mode: 0644]
development/introduction_to_sql.xml [new file with mode: 0644]
development/json.xml [new file with mode: 0644]
development/supercat.xml [new file with mode: 0644]
integration/intro.xml [new file with mode: 0644]
intro/about_evergreen.xml [new file with mode: 0644]
intro/intro_intro.xml [new file with mode: 0644]
intro/releasenotes.xml [new file with mode: 0644]
media/1.png [new file with mode: 0755]
media/10.png [new file with mode: 0755]
media/11.png [new file with mode: 0755]
media/12.png [new file with mode: 0755]
media/13.png [new file with mode: 0755]
media/14.png [new file with mode: 0755]
media/15.png [new file with mode: 0755]
media/2.png [new file with mode: 0755]
media/3.png [new file with mode: 0755]
media/4.png [new file with mode: 0755]
media/5.png [new file with mode: 0755]
media/6.png [new file with mode: 0755]
media/7.png [new file with mode: 0755]
media/8.png [new file with mode: 0755]
media/9.png [new file with mode: 0755]
media/add_holdings-1.png [new file with mode: 0755]
media/add_holdings-2.png [new file with mode: 0755]
media/add_holdings-3.png [new file with mode: 0755]
media/add_holdings-4.png [new file with mode: 0755]
media/add_holdings-5.png [new file with mode: 0755]
media/bills-1.png [new file with mode: 0755]
media/bills-10.png [new file with mode: 0755]
media/bills-11.png [new file with mode: 0755]
media/bills-12.png [new file with mode: 0755]
media/bills-13.png [new file with mode: 0755]
media/bills-14.png [new file with mode: 0755]
media/bills-15.png [new file with mode: 0755]
media/bills-16.png [new file with mode: 0755]
media/bills-17.png [new file with mode: 0755]
media/bills-18.png [new file with mode: 0755]
media/bills-19.png [new file with mode: 0755]
media/bills-2.png [new file with mode: 0755]
media/bills-20.png [new file with mode: 0755]
media/bills-3.png [new file with mode: 0755]
media/bills-4.png [new file with mode: 0755]
media/bills-5.png [new file with mode: 0755]
media/bills-6.png [new file with mode: 0755]
media/bills-7.png [new file with mode: 0755]
media/bills-8.png [new file with mode: 0755]
media/bills-9.png [new file with mode: 0755]
media/catalogue-10.png [new file with mode: 0755]
media/catalogue-11.png [new file with mode: 0755]
media/catalogue-3.png [new file with mode: 0755]
media/catalogue-4.png [new file with mode: 0755]
media/catalogue-5.png [new file with mode: 0755]
media/catalogue-6.png [new file with mode: 0755]
media/catalogue-7.png [new file with mode: 0755]
media/catalogue-8.png [new file with mode: 0755]
media/catalogue-9.png [new file with mode: 0755]
media/caution.png [new file with mode: 0755]
media/circulation-1.png [new file with mode: 0755]
media/circulation-10.png [new file with mode: 0755]
media/circulation-11.png [new file with mode: 0755]
media/circulation-12.png [new file with mode: 0755]
media/circulation-13.png [new file with mode: 0755]
media/circulation-14.png [new file with mode: 0755]
media/circulation-15.png [new file with mode: 0755]
media/circulation-16.png [new file with mode: 0755]
media/circulation-17.png [new file with mode: 0755]
media/circulation-18.png [new file with mode: 0755]
media/circulation-19.png [new file with mode: 0755]
media/circulation-2.png [new file with mode: 0755]
media/circulation-20.png [new file with mode: 0755]
media/circulation-21.png [new file with mode: 0755]
media/circulation-22.png [new file with mode: 0755]
media/circulation-23.png [new file with mode: 0755]
media/circulation-24.png [new file with mode: 0755]
media/circulation-25.png [new file with mode: 0755]
media/circulation-26.png [new file with mode: 0755]
media/circulation-27.png [new file with mode: 0755]
media/circulation-28.png [new file with mode: 0755]
media/circulation-29.png [new file with mode: 0755]
media/circulation-3.png [new file with mode: 0755]
media/circulation-30.png [new file with mode: 0755]
media/circulation-31.png [new file with mode: 0755]
media/circulation-32.png [new file with mode: 0755]
media/circulation-33.png [new file with mode: 0755]
media/circulation-34.png [new file with mode: 0755]
media/circulation-35.png [new file with mode: 0755]
media/circulation-36.png [new file with mode: 0755]
media/circulation-4.png [new file with mode: 0755]
media/circulation-5.png [new file with mode: 0755]
media/circulation-6.png [new file with mode: 0755]
media/circulation-7.png [new file with mode: 0755]
media/circulation-8.png [new file with mode: 0755]
media/circulation-9.png [new file with mode: 0755]
media/create-template-1.png [new file with mode: 0755]
media/create-template-10.png [new file with mode: 0755]
media/create-template-11.png [new file with mode: 0755]
media/create-template-12.png [new file with mode: 0755]
media/create-template-13.png [new file with mode: 0755]
media/create-template-15.png [new file with mode: 0755]
media/create-template-16.png [new file with mode: 0755]
media/create-template-17.png [new file with mode: 0755]
media/create-template-19.png [new file with mode: 0755]
media/create-template-2.png [new file with mode: 0755]
media/create-template-20.png [new file with mode: 0755]
media/create-template-21.png [new file with mode: 0755]
media/create-template-22.png [new file with mode: 0755]
media/create-template-23.png [new file with mode: 0755]
media/create-template-24.png [new file with mode: 0755]
media/create-template-25.png [new file with mode: 0755]
media/create-template-26.png [new file with mode: 0755]
media/create-template-27.png [new file with mode: 0755]
media/create-template-28.png [new file with mode: 0755]
media/create-template-29.png [new file with mode: 0755]
media/create-template-3.png [new file with mode: 0755]
media/create-template-30.png [new file with mode: 0755]
media/create-template-31.png [new file with mode: 0755]
media/create-template-32.png [new file with mode: 0755]
media/create-template-33.png [new file with mode: 0755]
media/create-template-34.png [new file with mode: 0755]
media/create-template-35.png [new file with mode: 0755]
media/create-template-4.png [new file with mode: 0755]
media/create-template-5.png [new file with mode: 0755]
media/create-template-6.png [new file with mode: 0755]
media/create-template-7.png [new file with mode: 0755]
media/create-template-8.png [new file with mode: 0755]
media/create-template-9.png [new file with mode: 0755]
media/evergreen_logo.gif [new file with mode: 0755]
media/folder-1.png [new file with mode: 0755]
media/folder-10.png [new file with mode: 0755]
media/folder-11.png [new file with mode: 0755]
media/folder-12.png [new file with mode: 0755]
media/folder-13.png [new file with mode: 0755]
media/folder-14.png [new file with mode: 0755]
media/folder-7a.png [new file with mode: 0755]
media/generate-report-1.png [new file with mode: 0755]
media/generate-report-10.png [new file with mode: 0755]
media/generate-report-14.png [new file with mode: 0755]
media/generate-report-2.png [new file with mode: 0755]
media/generate-report-3.png [new file with mode: 0755]
media/generate-report-8.png [new file with mode: 0755]
media/generate-report-9.png [new file with mode: 0755]
media/hold-1.png [new file with mode: 0755]
media/hold-10.png [new file with mode: 0755]
media/hold-11.png [new file with mode: 0755]
media/hold-12.png [new file with mode: 0755]
media/hold-14.png [new file with mode: 0755]
media/hold-15.png [new file with mode: 0755]
media/hold-16.png [new file with mode: 0755]
media/hold-17.png [new file with mode: 0755]
media/hold-18.png [new file with mode: 0755]
media/hold-19.png [new file with mode: 0755]
media/hold-2.png [new file with mode: 0755]
media/hold-20.png [new file with mode: 0755]
media/hold-21.png [new file with mode: 0755]
media/hold-22.png [new file with mode: 0755]
media/hold-23.png [new file with mode: 0755]
media/hold-24.png [new file with mode: 0755]
media/hold-25.png [new file with mode: 0755]
media/hold-26.png [new file with mode: 0755]
media/hold-27.png [new file with mode: 0755]
media/hold-28.png [new file with mode: 0755]
media/hold-29.png [new file with mode: 0755]
media/hold-4.png [new file with mode: 0755]
media/hold-5.png [new file with mode: 0755]
media/hold-6.png [new file with mode: 0755]
media/hold-7.png [new file with mode: 0755]
media/hold-8.png [new file with mode: 0755]
media/hold-9.png [new file with mode: 0755]
media/k_book_record.png [new file with mode: 0755]
media/lsa-1.png [new file with mode: 0755]
media/lsa-10.jpg [new file with mode: 0755]
media/lsa-11.jpg [new file with mode: 0755]
media/lsa-12.jpg [new file with mode: 0755]
media/lsa-14.jpg [new file with mode: 0755]
media/lsa-16.jpg [new file with mode: 0755]
media/lsa-17.jpg [new file with mode: 0755]
media/lsa-18.jpg [new file with mode: 0755]
media/lsa-2.jpg [new file with mode: 0755]
media/lsa-22.png [new file with mode: 0755]
media/lsa-23.jpg [new file with mode: 0755]
media/lsa-25.jpg [new file with mode: 0755]
media/lsa-26.jpg [new file with mode: 0755]
media/lsa-27.jpg [new file with mode: 0755]
media/lsa-28.jpg [new file with mode: 0755]
media/lsa-32.jpg [new file with mode: 0755]
media/lsa-33.jpg [new file with mode: 0755]
media/lsa-4.jpg [new file with mode: 0755]
media/lsa-5.jpg [new file with mode: 0755]
media/lsa-7.jpg [new file with mode: 0755]
media/lsa-8.jpg [new file with mode: 0755]
media/lsa-closed-mountain-1.png [new file with mode: 0755]
media/lsa-closed-mountain-2.png [new file with mode: 0755]
media/lsa-group-0.png [new file with mode: 0755]
media/lsa-group-1.png [new file with mode: 0755]
media/lsa-group-1a.png [new file with mode: 0755]
media/lsa-group-2.png [new file with mode: 0755]
media/lsa-group-3.png [new file with mode: 0755]
media/lsa-group-4.png [new file with mode: 0755]
media/lsa-group-5.png [new file with mode: 0755]
media/lsa-group-6.png [new file with mode: 0755]
media/main_logo.jpg [new file with mode: 0755]
media/myaccount-bookbags.png [new file with mode: 0755]
media/myaccount-itemrenew.png [new file with mode: 0755]
media/myaccount-itemscheckedout.png [new file with mode: 0755]
media/myaccount-itemsonhold.png [new file with mode: 0755]
media/myaccount-login-arrow.png [new file with mode: 0755]
media/myaccount-login-info.png [new file with mode: 0755]
media/myaccount-login.png [new file with mode: 0755]
media/myaccount-loginpasswordupdate.png [new file with mode: 0755]
media/myaccount-summary.png [new file with mode: 0755]
media/note.png [new file with mode: 0755]
media/offline-1.png [new file with mode: 0755]
media/offline-10.png [new file with mode: 0755]
media/offline-11.png [new file with mode: 0755]
media/offline-12.png [new file with mode: 0755]
media/offline-13.png [new file with mode: 0755]
media/offline-14.png [new file with mode: 0755]
media/offline-15.png [new file with mode: 0755]
media/offline-16.png [new file with mode: 0755]
media/offline-17.png [new file with mode: 0755]
media/offline-18.png [new file with mode: 0755]
media/offline-19.png [new file with mode: 0755]
media/offline-2.png [new file with mode: 0755]
media/offline-20.png [new file with mode: 0755]
media/offline-21.png [new file with mode: 0755]
media/offline-22.png [new file with mode: 0755]
media/offline-23.png [new file with mode: 0755]
media/offline-24.png [new file with mode: 0755]
media/offline-25.png [new file with mode: 0755]
media/offline-26.png [new file with mode: 0755]
media/offline-27.png [new file with mode: 0755]
media/offline-28.png [new file with mode: 0755]
media/offline-29.png [new file with mode: 0755]
media/offline-3.png [new file with mode: 0755]
media/offline-30.png [new file with mode: 0755]
media/offline-31.png [new file with mode: 0755]
media/offline-32.png [new file with mode: 0755]
media/offline-33.png [new file with mode: 0755]
media/offline-34.png [new file with mode: 0755]
media/offline-35.png [new file with mode: 0755]
media/offline-36.png [new file with mode: 0755]
media/offline-4.png [new file with mode: 0755]
media/offline-5.png [new file with mode: 0755]
media/offline-6.png [new file with mode: 0755]
media/offline-7.png [new file with mode: 0755]
media/offline-8.png [new file with mode: 0755]
media/offline-9.png [new file with mode: 0755]
media/passwordresetmessage.png [new file with mode: 0755]
media/patron-1.png [new file with mode: 0755]
media/patron-10.png [new file with mode: 0755]
media/patron-11.png [new file with mode: 0755]
media/patron-12.png [new file with mode: 0755]
media/patron-13.png [new file with mode: 0755]
media/patron-14.png [new file with mode: 0755]
media/patron-15.png [new file with mode: 0755]
media/patron-16.png [new file with mode: 0755]
media/patron-17.png [new file with mode: 0755]
media/patron-18.png [new file with mode: 0755]
media/patron-19.png [new file with mode: 0755]
media/patron-2.png [new file with mode: 0755]
media/patron-20.png [new file with mode: 0755]
media/patron-21.png [new file with mode: 0755]
media/patron-22.png [new file with mode: 0755]
media/patron-23.png [new file with mode: 0755]
media/patron-24.png [new file with mode: 0755]
media/patron-25.png [new file with mode: 0755]
media/patron-26.png [new file with mode: 0755]
media/patron-27.png [new file with mode: 0755]
media/patron-28.png [new file with mode: 0755]
media/patron-29.png [new file with mode: 0755]
media/patron-3.png [new file with mode: 0755]
media/patron-30.png [new file with mode: 0755]
media/patron-31.png [new file with mode: 0755]
media/patron-32.png [new file with mode: 0755]
media/patron-3a.png [new file with mode: 0755]
media/patron-4.png [new file with mode: 0755]
media/patron-5.png [new file with mode: 0755]
media/patron-6.png [new file with mode: 0755]
media/patron-7.png [new file with mode: 0755]
media/patron-8.png [new file with mode: 0755]
media/patron-9.png [new file with mode: 0755]
media/patron-record-status-1.png [new file with mode: 0755]
media/patron-record-status-dark-grey.png [new file with mode: 0755]
media/patron-record-status-green.png [new file with mode: 0755]
media/patron-record-status-light-grey.png [new file with mode: 0755]
media/patron-record-status-orange.png [new file with mode: 0755]
media/patron-record-status-purple.png [new file with mode: 0755]
media/patron-record-status-red.png [new file with mode: 0755]
media/patron-record-status-yellow.png [new file with mode: 0755]
media/pdf_icon.gif [new file with mode: 0755]
media/profile-5.png [new file with mode: 0755]
media/profile-6.png [new file with mode: 0755]
media/profile-7.png [new file with mode: 0755]
media/receipt-10.jpg [new file with mode: 0755]
media/receipt-11.jpg [new file with mode: 0755]
media/receipt-12.jpg [new file with mode: 0755]
media/receipt-13.jpg [new file with mode: 0755]
media/receipt-14.jpg [new file with mode: 0755]
media/receipt-15.jpg [new file with mode: 0755]
media/receipt-16.png [new file with mode: 0755]
media/receipt-17.jpg [new file with mode: 0755]
media/receipt-18.jpg [new file with mode: 0755]
media/receipt-19.jpg [new file with mode: 0755]
media/receipt-2.jpg [new file with mode: 0755]
media/receipt-20.jpg [new file with mode: 0755]
media/receipt-21.jpg [new file with mode: 0755]
media/receipt-22.jpg [new file with mode: 0755]
media/receipt-23.jpg [new file with mode: 0755]
media/receipt-24.jpg [new file with mode: 0755]
media/receipt-3.jpg [new file with mode: 0755]
media/receipt-4.jpg [new file with mode: 0755]
media/receipt-5.jpg [new file with mode: 0755]
media/receipt-6.jpg [new file with mode: 0755]
media/receipt-7.jpg [new file with mode: 0755]
media/receipt-8.jpg [new file with mode: 0755]
media/receipt-9.jpg [new file with mode: 0755]
media/server-3.png [new file with mode: 0755]
media/server-4.png [new file with mode: 0755]
media/server-5.png [new file with mode: 0755]
media/server-6.png [new file with mode: 0755]
media/serversideinstallation-staffclient-running-1.png [new file with mode: 0755]
media/serversideinstallation-staffclient-running-2.png [new file with mode: 0755]
media/serversideinstallation-staffclient-running-3.png [new file with mode: 0755]
media/serversideinstallation-staffclient-running-4.png [new file with mode: 0755]
media/serversideinstallation-testing-1.png [new file with mode: 0755]
media/serversideinstallation-testing-2.png [new file with mode: 0755]
media/serversideinstallation-virtual-vbox-install-1.png [new file with mode: 0755]
media/serversideinstallation-virtual-vbox-install-2.png [new file with mode: 0755]
media/serversideinstallation-virtual-vbox-install-3.png [new file with mode: 0755]
media/serversideinstallation-virtual-vbox-install-4.png [new file with mode: 0755]
media/serversideinstallation-virtual-vbox-install-5.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-1.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-10.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-11.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-12.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-13.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-14.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-15.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-16.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-17.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-18.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-19.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-2.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-20.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-21.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-3.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-4.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-5.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-6.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-7.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-8.png [new file with mode: 0755]
media/serversideinstallation-virtual-vm-install-9.png [new file with mode: 0755]
media/shared-template-6.png [new file with mode: 0755]
media/shared-template-7.png [new file with mode: 0755]
media/shared-template-9.png [new file with mode: 0755]
media/small_logo_white.jpg [new file with mode: 0755]
media/staffclient-1.png [new file with mode: 0755]
media/staffclient-2.png [new file with mode: 0755]
media/staffclient-3.png [new file with mode: 0755]
media/staffclient-4.png [new file with mode: 0755]
media/staffclient-5.png [new file with mode: 0755]
media/staffclient-6.png [new file with mode: 0755]
media/staffclient-6a.png [new file with mode: 0755]
media/staffclient-6b.png [new file with mode: 0755]
media/staffclient-6c.png [new file with mode: 0755]
media/staffclient-6d.png [new file with mode: 0755]
media/staffclient-7.png [new file with mode: 0755]
media/staffclient-7a.png [new file with mode: 0755]
media/staffclient-8.png [new file with mode: 0755]
media/staffclient-9.png [new file with mode: 0755]
media/staffclientinstallation-proxy-putty-1.png [new file with mode: 0755]
media/staffclientinstallation-proxy-socks-1.png [new file with mode: 0755]
media/staffclientinstallation-proxy-socks-2.png [new file with mode: 0755]
media/staffclientinstallation-staffclient-1.png [new file with mode: 0755]
media/staffclientinstallation-staffclient-2.png [new file with mode: 0755]
media/staffclientinstallation-staffclient-3.png [new file with mode: 0755]
media/staffclientinstallation-staffclient-4.png [new file with mode: 0755]
media/staffclientinstallation-staffclient-workstationnames-1.png [new file with mode: 0755]
media/staffclientinstallation-staffclient-workstationnames-2.png [new file with mode: 0755]
media/staffclientinstallation-staffclient-workstationnames-3.png [new file with mode: 0755]
media/staffclientinstallation-tabbed-1.png [new file with mode: 0755]
media/survey-1.png [new file with mode: 0755]
media/survey-10.png [new file with mode: 0755]
media/survey-2.png [new file with mode: 0755]
media/survey-3.png [new file with mode: 0755]
media/survey-4.png [new file with mode: 0755]
media/survey-5.png [new file with mode: 0755]
media/survey-6.png [new file with mode: 0755]
media/survey-7.png [new file with mode: 0755]
media/survey-8.png [new file with mode: 0755]
media/survey-9.png [new file with mode: 0755]
media/tip.png [new file with mode: 0755]
media/transit-1.png [new file with mode: 0755]
media/transit-10.png [new file with mode: 0755]
media/transit-2.png [new file with mode: 0755]
media/transit-3.png [new file with mode: 0755]
media/transit-4a.png [new file with mode: 0755]
media/transit-5.png [new file with mode: 0755]
media/transit-6.png [new file with mode: 0755]
media/transit-7.png [new file with mode: 0755]
media/transit-8.png [new file with mode: 0755]
media/transit-9.png [new file with mode: 0755]
media/view-output-1.png [new file with mode: 0755]
media/view-output-2.png [new file with mode: 0755]
media/view-output-3.png [new file with mode: 0755]
media/view-output-4.png [new file with mode: 0755]
media/view-output-5.png [new file with mode: 0755]
media/warning.png [new file with mode: 0755]
opac/advancedsearch.xml [new file with mode: 0644]
opac/basicsearch.xml [new file with mode: 0644]
opac/myaccount.xml [new file with mode: 0644]
opac/opac_intro.xml [new file with mode: 0644]
opac/search_URL.xml [new file with mode: 0644]
opac/searchmethodology.xml [new file with mode: 0644]
opac/searchresults.xml [new file with mode: 0644]
opac/searchtips.xml [new file with mode: 0644]
opac/simpleselfcheck.xml [new file with mode: 0644]
reports/report-create-template.xml [new file with mode: 0644]
reports/report-exporting-report-templates-using-phppgadmin.xml [new file with mode: 0644]
reports/report-folder.xml [new file with mode: 0644]
reports/report-generate-report.xml [new file with mode: 0644]
reports/report-intro.xml [new file with mode: 0644]
reports/report-recurring-report.xml [new file with mode: 0644]
reports/report-report-introduction.xml [new file with mode: 0644]
reports/report-shared-template.xml [new file with mode: 0644]
reports/report-startingreporter.xml [new file with mode: 0644]
reports/report-template-terminology.xml [new file with mode: 0644]
reports/report-view-output.xml [new file with mode: 0644]
root.xml [new file with mode: 0755]
stafftasks/booking.xml [new file with mode: 0644]
stafftasks/cataloging.xml [new file with mode: 0644]
stafftasks/circulation.xml [new file with mode: 0644]
stafftasks/intro.xml [new file with mode: 0644]
stafftasks/staffclient.xml [new file with mode: 0644]
stafftasks/stafftasks_intro.xml [new file with mode: 0644]

diff --git a/admin/AdminMisc.xml b/admin/AdminMisc.xml
new file mode 100644 (file)
index 0000000..331f46e
--- /dev/null
@@ -0,0 +1,615 @@
+<?xml version='1.0' encoding='UTF-8'?>\r
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"\r
+           xmlns:xl="http://www.w3.org/1999/xlink" version="5.0" xml:id="adminmisc">\r
+       <info>\r
+               \r
+       <title>Server Operations</title>\r
+       <indexterm><primary>receipt template editor</primary></indexterm>\r
+               <abstract>\r
+                       <para>This chapter deals with basic server operations such as starting and stopping <application>Evergreen</application> as well wall \r
+                       security, backing up and troubleshooting <application>Evergreen</application>.</para>\r
+               </abstract>\r
+       </info>    \r
+       <section xml:id="startingopensrf">\r
+               <title>Starting, Stopping and Restarting</title>\r
+               <para>Occasionally, you may need to restart <application>Evergreen</application>. It is imperative that you understand the basic \r
+               commands to stop and start the <application>Evergreen</application> server. You can start and stop <application>Evergreen</application> from the command line of \r
+               the server using the <command>osrf_ctl.sh</command> script located in the \r
+               <filename class="directory">openils/bin</filename> directory.</para>   \r
+               <note><para><command>The osrf_ctl.sh</command> command must be run as the <systemitem class="username">opensrf</systemitem> user.</para></note>\r
+               <para>To view help on <command>osrf_ctl.sh</command> and get all of its options, run:</para>\r
+               <screen><userinput>osrf_ctl.sh -h</userinput></screen>\r
+               <para>To start Evergreen, run:</para>\r
+               <screen><userinput>osrf_ctl.sh -l -a start_all</userinput></screen>\r
+               <para>The <option>-l</option> flag is used to indicate that Evergreen is configured to use <systemitem class="domainname">localhost</systemitem> as \r
+               the host. If you have configured <filename>opensrf.xml</filename> to use your real hostname, do not use the <option>-l</option> flag. The <option>-a</option> \r
+               option is required and indicates the <emphasis>action</emphasis> of the command. In this case \r
+               <option>start_all</option>.    \r
+               </para> \r
+               <note>\r
+                       <para>If you receive the error message: <errortext>osrf_ctl.sh: command not found</errortext>, then your environment variable \r
+                       <varname>PATH</varname><indexterm><primary>environment variable</primary><secondary>PATH</secondary></indexterm> does not include the \r
+                       <filename class="directory">/openils/bin</filename> directory. You can set it using the following command:</para>\r
+                       <screen><userinput>export <varname>PATH</varname>=$PATH:<filename class="directory">/openils/bin</filename></userinput></screen>\r
+                       <para>If you receive the error message <errortext>Can't locate OpenSRF/System.pm in @INC … BEGIN \r
+                       failed–compilation aborted</errortext>, then your environment variable <varname>PERL5LIB</varname><indexterm><primary>environment \r
+                       variable</primary><secondary>PERL5LIB</secondary></indexterm> does not \r
+                       include the <filename class="directory">/openils/lib/perl5</filename> directory.  You can set it \r
+                       using the following command:</para>\r
+                       <screen><userinput>export <varname>PERL5LIB</varname>=$PERL5LIB:<filename class="directory">/openils/lib/perl5</filename></userinput></screen>\r
+               </note>         \r
+               <para>It is also possible to start a specific service. For example:</para>\r
+               <screen><userinput>osrf_ctl.sh -l -a start_router</userinput></screen>\r
+               <para>will only start the <systemitem class="service">router</systemitem> service.</para>\r
+               <caution>\r
+                       <para>If you decide to start each service individually, you need to start them in a specific order:</para>\r
+<screen>\r
+<userinput>osrf_ctl.sh -l -a start_router</userinput>\r
+<userinput>osrf_ctl.sh -l -a start_perl</userinput>\r
+<userinput>osrf_ctl.sh -l -a start_c</userinput>\r
+</screen>\r
+               </caution>      \r
+               <para>After starting or restarting Evergreen, it is also necessary to restart the <systemitem class="service">Apache web server</systemitem>\r
+               <indexterm><primary>web server</primary><secondary>Apache</secondary></indexterm> for the OPAC to work correctly.</para>  \r
+               <para>To stop <application>Evergreen</application>, run:</para>\r
+               <screen><userinput>osrf_ctl.sh -l -a stop_all</userinput></screen>\r
+               <para>As with starting, you can choose to stop services individually.</para>\r
+               <para>To restart <application>Evergreen</application>, run:</para>\r
+               <screen><userinput>osrf_ctl.sh -l -a restart_all</userinput></screen>\r
+               <simplesect>\r
+                       <title>Starting Specific Perl Services</title>\r
+                       <para>It is also possible to start and stop a specific perl service using <filename>opensrf-perl.pl</filename>.  Here is the syntax for starting a perl service with this command:</para>\r
+<screen><userinput>opensrf-perl.pl --service <systemitem class="service">&lt;service-name&gt;</systemitem> -a start -p <filename class="directory">&lt;PID-directory&gt;</filename> </userinput></screen>\r
+<para>Example (starting the booking module):</para>\r
+<screen><userinput>opensrf-perl.pl --service <systemitem class="service">open-ils.booking</systemitem> -a start -p <filename class="directory">/openils/var/run/opensrf</filename></userinput></screen>\r
+\r
+<para>This is the syntax for stopping a perl service with this command:</para>\r
+<screen><userinput>opensrf-perl.pl --service <systemitem class="service">&lt;service-name&gt;</systemitem> -a stop -p <filename class="directory">&lt;PID-directory&gt;</filename> </userinput></screen>\r
+<para>Example (stopping the booking module):</para>\r
+<screen><userinput>opensrf-perl.pl --service <systemitem class="service">open-ils.booking</systemitem> -a stop -p <filename class="directory">/openils/var/run/opensrf</filename></userinput></screen>\r
+                       <para>These commands can be very useful when you edit Perl modules and only need to restart the specific service for changes to take effect.</para>\r
+                       \r
+                       <note>\r
+                       <para>The default for the PID-directory: <filename class="directory">/openils/var/run/opensrf</filename></para>\r
+                       <para>For a clustered server instance of Evergreen, you must store the PIDs on a directory \r
+                       that is local to each server, or else one of your cluster servers may try killing processes on itself that actually have PIDs on other servers.</para>\r
+                       <para>For services running on the local server use the <option>--localhost</option> to force the hostname to be <systemitem class="domainname">localhost</systemitem>, \r
+                       instead of the fully qualified domain name for the machine.</para>\r
+                       <para>To see other options run the command with the <option>-h</option> option:</para>\r
+<screen><userinput>opensrf-perl.pl  -h</userinput></screen>\r
+                       </note>\r
+<para>For a list of Evergreen/OpenSRF perl services see: <xref linkend="_evergreen_specific_opensrf_services"/>.</para>\r
+               </simplesect>\r
+       </section>\r
+       <section xml:id="evergreen_startup_script">\r
+               <title>Automating Evergreen Startup and Shutdown</title>\r
+               <para>Once you understand starting and stopping Evergreen, you will want to create a start up script for two purposes:</para>\r
+               <itemizedlist>\r
+                       <listitem>Allow you to start, restart and stop Evergreen, SIP, reporter and z39.50 services with one command.</listitem>\r
+                       <listitem>Allow Evergreen to stop and start properly during a system restart.</listitem>\r
+               </itemizedlist>\r
+               <para>The following procedure is for Debian or Ubuntu distributions of Linux.</para>\r
+               <procedure>\r
+                       <step>\r
+                               <para>Create a bash script for starting Evergreen and all associated services. Here is an example script:</para>  \r
+\r
+<programlisting><![CDATA[\r
+#!/bin/bash\r
+\r
+OPENILS_BASE="/openils"\r
+OPENILS_CORE="${OPENILS_BASE}/conf/opensrf_core.xml"\r
+SRU_LOG="${OPENILS_BASE}/var/log/sru.log"\r
+\r
+SIP_PID="${OPENILS_BASE}/var/run"\r
+SIP_CONF="${OPENILS_BASE}/conf/oils_sip.xml"\r
+\r
+REP_LOCK="${OPENILS_BASE}/var/lock/reporter-LOCK"\r
+REP_NAME="Clark Kent, waiting for trouble"\r
+\r
+sru_name='simple2zoom'\r
+\r
+if [ $(whoami) != 'opensrf' ]; then\r
+ PERL5LIB='/openils/lib/perl5:$PERL5LIB';\r
+fi;\r
+\r
+start() {\r
+        sleep 3\r
+        echo "Starting Evergreen"\r
+        sudo -u opensrf /bin/bash -c \ \r
+       "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5 PATH=${PATH}:${OPENILS_BASE}/bin osrf_ctl.sh \\r
+       -l -a start_all"\r
+}\r
+\r
+stop() {\r
+        echo "Stopping Evergreen"\r
+        sudo -u opensrf /bin/bash -c \\r
+       "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5 PATH=${PATH}:${OPENILS_BASE}/bin osrf_ctl.sh \\r
+       -l -a stop_all"\r
+}\r
+\r
+autogen() {\r
+        echo "Running Autogen Update"\r
+        sudo -u opensrf /bin/bash -c \ \r
+       "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5 PATH=${PATH}:${OPENILS_BASE}/bin autogen.sh \\r
+        -u -c ${OPENILS_CORE}"\r
+}\r
+\r
+sip_start() {\r
+        sudo -u opensrf /bin/bash -c \\r
+       "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5 PATH=${PATH}:${OPENILS_BASE}/bin oils_ctl.sh \\r
+        -d ${SIP_PID} \\r
+       -s ${SIP_CONF} \\r
+       -a start_sip"\r
+}\r
+\r
+sip_stop() {\r
+        sudo -u opensrf /bin/bash -c \ \r
+       "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5 PATH=${PATH}:${OPENILS_BASE}/bin oils_ctl.sh \\r
+       -d ${SIP_PID} \\r
+       -s ${SIP_CONF} \\r
+       -a stop_sip"\r
+}\r
+\r
+sip_restart() {\r
+        sudo -u opensrf /bin/bash -c \\r
+       "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5 PATH=${PATH}:${OPENILS_BASE}/bin oils_ctl.sh \\r
+       -d ${SIP_PID} \\r
+        -s ${SIP_CONF} \\r
+       -a restart_sip"\r
+}\r
+]]></programlisting>\r
+<programlisting><![CDATA[\r
+\r
+start_rep() {\r
+        pids="$(pidof "$REP_NAME")"\r
+        if [ ! x"$pids" = x ] ; then\r
+          echo FAILURE ; echo $"Starting Reporting: already running as $pids" \r
+          return 1\r
+        fi\r
+        rm -f $REP_LOCK\r
+        sudo -u opensrf bash -c \\r
+       "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5 PATH=${PATH}:${OPENILS_BASE}/bin clark-kent.pl \\r
+       --lockfile=${REP_LOCK} --boostrap=${OPENILS_CORE} --concurrency=1 --sleep=30 --daemon" ;\r
+        pids="$(pidof "$REP_NAME")"\r
+        if [ x"$pids" = x ] ; then\r
+          echo FAILURE \r
+        else \r
+          echo OK\r
+        fi\r
+        echo "Starting Reporting: $pids" \r
+        return $RETVAL\r
+}\r
+\r
+stop_rep() {\r
+        pids="$(pidof "$REP_NAME")"\r
+        if [ x"$pids" = x ] ; then\r
+          echo FAILURE ; echo $"Stopping Reporting: not running" ; RETVAL=1\r
+        else \r
+          kill $pids ; RETVAL=$?\r
+          if [ $RETVAL ] ; then\r
+            echo OK ; echo $"Stopping Reporting: $pids"\r
+          else\r
+            echo FAILURE \r
+          fi\r
+        fi\r
+        rm -f $REP_LOCK\r
+        return $RETVAL\r
+}\r
+\r
+z39_50_start() {\r
+        pids=`ps -eo pid,args | grep $sru_name | grep -v grep | cut -c1-6`\r
+        if [ ! x"$pids" = x ] ; then\r
+          echo FAILURE ; echo $"Starting Z39.50/SRU: already running as $pids" \r
+          return 1\r
+        fi\r
+        sudo -u opensrf bash -c "touch ${SRU_LOG}"\r
+        sudo bash -c \ \r
+       "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5 PATH=${PATH}:${OPENILS_BASE}/bin \\r
+       z39_50.sh >> ${SRU_LOG} 2>&1" &\r
+        sleep 1\r
+        pids=`ps -eo pid,args | grep $sru_name | grep -v grep | cut -c1-6`\r
+        if [ x"$pids" = x ] ; then\r
+          echo FAILURE \r
+        else \r
+          echo OK\r
+        fi\r
+        echo "Starting Z39.50/SRU: $pids" \r
+        return $RETVAL\r
+}\r
+\r
+z39_50_stop() {\r
+        pids=`ps -eo pid,args | grep $sru_name | grep -v grep | cut -c1-6`\r
+        if [ x"$pids" = x ] ; then\r
+          echo FAILURE ; echo $"Stopping Z39.50/SRU: not running" ; RETVAL=1\r
+        else \r
+          kill $pids ; RETVAL=$?\r
+          if [ $RETVAL ] ; then\r
+            echo OK ; echo $"Stopping Z39.50/SRU: $pids"\r
+          else\r
+            echo FAILURE \r
+          fi\r
+        fi\r
+        return $RETVAL\r
+}\r
+]]></programlisting>\r
+<programlisting><![CDATA[\r
+case "$1" in\r
+    start)\r
+        start\r
+        start_rep\r
+        z39_50_start\r
+        sip_start\r
+    ;;\r
+    stop)\r
+        sip_stop\r
+        z39_50_stop\r
+        stop_rep\r
+        stop\r
+    ;;\r
+    restart)\r
+        echo "Restarting Evergreen, Reporter and Z39.50 Processes"\r
+        sip_stop\r
+        z39_50_stop\r
+        stop_rep\r
+        stop\r
+        start\r
+        start_rep\r
+        z39_50_start\r
+        sip_start\r
+    ;;\r
+    autogen)\r
+        autogen\r
+    ;;\r
+    sip_start)\r
+        sip_start\r
+    ;;\r
+    sip_stop)\r
+        sip_stop\r
+    ;;\r
+    sip_restart)\r
+        sip_restart\r
+    ;;\r
+    start_reporter)\r
+        start_rep\r
+    ;;\r
+    stop_reporter)\r
+        stop_rep\r
+    ;;\r
+    restart_reporter)\r
+       stop_rep\r
+       start_rep\r
+    ;;\r
+    z39_50_start)\r
+        z39_50_start\r
+    ;;\r
+    z39_50_stop)\r
+        z39_50_stop\r
+    ;;\r
+    z39_50_restart)\r
+        z39_50_stop\r
+        z39_50_start\r
+    ;;\r
+    start_router|stop_router|restart_router|start_perl|stop_perl|restart_perl| \\r
+    start_c|stop_c|restart_c|start_osrf|stop_osrf|restart_osrf|stop_all|start_all|restart_all)\r
+        sudo -u opensrf /bin/bash -c \\r
+       "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5 \ \r
+       PATH=${PATH}:${OPENILS_BASE}/bin osrf_ctl.sh -l -a $1"\r
+    ;;\r
+    *)\r
+        echo " * Usage: /etc/init.d/evergreen {start|stop|restart|autogen"\r
+        echo " |sip_start|sip_stop|sip_restart"\r
+        echo " |z39_50_start|z39_50_stop|z39_50_restart"\r
+        echo "  |start_reporter|stop_reporter|restart_reporter"\r
+        echo " |start_router|stop_router|restart_router|start_perl|stop_perl|restart_perl"\r
+        echo " |start_c|stop_c|restart_c|start_osrf|stop_osrf|restart_osrf \r
+               |stop_all|start_all|restart_all}"\r
+        exit 1\r
+    ;;\r
+esac;\r
+]]></programlisting>\r
+                       </step>\r
+                       <step>\r
+                               <para>Save file in <filename class="directory">/etc/bin</filename> folder as <filename>evergreenstart</filename> \r
+                               if you would like this as a manual script for starting Evergreen services.</para> \r
+                               \r
+                               <para>Save file in <filename class="directory">/etc/init.d</filename> folder as <filename>evergreenstart</filename> \r
+                               if you would like to run this script automatically during your server's boot process as explained in later steps.</para> \r
+                       </step>\r
+                       <step>\r
+                       <para>Ensure that the script is executable.</para>\r
+<screen><userinput>sudo chmod 755 evergreenstart </userinput></screen>\r
+                       </step> \r
+                       <step>\r
+                               <para>Test the script by running it from the command line as the <systemitem class="username">root</systemitem> user.</para>\r
+<screen><userinput>/etc/init.d/evergreenstart restart</userinput></screen>\r
+                               <para>You will also need to restart apache as the <systemitem class="username">root</systemitem> user.</para>\r
+<screen><userinput>/etc/init.d/apache2 restart</userinput></screen>\r
+                       </step> \r
+                       <step>\r
+                               <note>\r
+                                       <para>The next steps are optional if you want to automate Evergreen so it starts during your server's boot process.</para>\r
+                               </note>\r
+                               <para>Update runlevel defaults of the new evergreenstart service as the <systemitem class="username">root</systemitem>  user:</para>\r
+<screen><userinput>update-rc.d evergreenstart defaults 80 20</userinput></screen>\r
+                               <note>\r
+                                       <para>For Evergreen to start properly during a reboot, you will want to ensure that the first number \r
+                                       (<option>80</option>) is lower than the assigned \r
+                                       starting priority for Apache, so it starts before Apache. It should also have a larger stopping priority number \r
+                                       (<option>20</option>) than Apache so it stops \r
+                                       after Apache during a boot cycle.</para>\r
+                               </note>\r
+                       </step> \r
+                       <step>\r
+                       <para>Test the startup script by rebooting the Evergreen Server and checking to ensure that all Evergreen sercices started properly.</para>\r
+                       </step> \r
+               </procedure>\r
+               <caution><para>This has not yet been tested in a Evergreen multi-server, <quote>brick</quote> configuration.</para></caution> \r
+               <para>For more information on update-rc.d you should review the documentation on this topic for \r
+               <link xl:href="http://www.debuntu.org/how-to-manage-services-with-update-rc.d">\r
+               Debian</link> or <link xl:href="http://manpages.ubuntu.com/manpages/hardy/man8/update-rc.d.8.html">Ubuntu</link> \r
+               depending on your distribution of Linux.</para>         \r
+       </section>\r
+       <section xml:id="backingup">\r
+               <title>Backing Up</title>\r
+               <indexterm><primary>databases</primary><secondary>backing up</secondary></indexterm>\r
+               <para>Backing up your system files and data is a critical task for server and database administrators. \r
+               Having a strategy for backing up and recovery could be the difference between a minor annoyance for users and\r
+               a complete catastrophe.</para>   \r
+               <simplesect>\r
+                       <title>Backing up the <application>Evergreen</application> Database</title><indexterm><primary>databases</primary></indexterm>\r
+                       <para>Most of the critical data for an <application>Evergreen</application> system – patrons, bibliographic records, holdings, \r
+                       transactions, bills – is stored in the <application>PostgreSQL</application><indexterm><primary>databases</primary>\r
+                       <secondary>PostgreSQL</secondary></indexterm>  database. You can therefore use normal \r
+                       <application>PostgreSQL</application> backup procedures to backup this data. For example, the simplest method of backing up the Evergreen\r
+                       database is to use the <command>pg_dump</command> command to create a live backup of the database without having to \r
+                       interrupt any Evergreen services. Here is an example pg_dump command which will dump a local Evergreen database into a the file \r
+                       <filename>evergreen_db.backup</filename>:</para>\r
+                       <screen><userinput>pg_dump -U evergreen -h localhost -f evergreen_db.backup evergreen</userinput></screen>\r
+                       <para>To restore the backed up database into a new database, create a new database using the \r
+                       template0 database template and the UTF8 encoding, and run the <command>psql</command> command, specifying the new \r
+                       database as your target:</para>\r
+                       <screen><userinput>createdb -T template0 -E UTF8 -U evergreen -h localhost new_evergreen</userinput></screen>\r
+                       <screen><userinput>psql -U evergreen -h localhost -f evergreen_db.backup new_evergreen</userinput></screen>\r
+                       <note>\r
+                               <para>This method of backup is only suitable for small Evergreen instances. Larger sites \r
+                               should consider implementing continuous archiving (also known as <quote>log shipping</quote>) to provide \r
+                               more granular backups with lower system overhead. More information on backing up <application>PostgreSQL</application> \r
+                               databases can be found in the official <link xl:href="http://www.postgresql.org/docs/"><application>PostgreSQL</application> \r
+                               documentation</link>.</para>\r
+                       </note>\r
+               </simplesect>\r
+               <simplesect>\r
+                       <title>Backing up Evergreen Files</title>\r
+                       <indexterm><primary>directories</primary><secondary>backing up</secondary></indexterm>\r
+                       <para>When you deploy Evergreen, you will probably customize many aspects of your system including \r
+                       the system configuration files, <application>Apache</application> configuration files, OPAC and Staff Client. In order to \r
+                       protect your investment of time, you should carefully consider the best approach to backing up \r
+                       files.</para>\r
+                       <para>There are a number of ways of tackling this problem. You could create a script that regularly \r
+                       creates a time-stamped tarball of all of these files and copies it to a remote server - but that \r
+                       would build up over time to hundreds of files. You could use <link xl:href="http://www.samba.org/rsync/"><application>rsync</application></link>\r
+                       <indexterm><primary>rsync</primary></indexterm> to ensure that the files of \r
+                       interest are regularly updated on a remote server - but then you would lose track of the changes to \r
+                       the files, should you make a change that introduces a problem down the road.</para>\r
+                       <para>Perhaps one of the best options is to use a version control system like <link xl:href="http://bazaar.canonical.com">\r
+                       <application>Bazaar</application></link><indexterm><primary>Version Control System</primary><secondary>Subversion</secondary></indexterm>, \r
+                       <link xl:href="http://git-scm.com/"><application>git</application></link><indexterm><primary>Version Control System</primary><secondary>git</secondary></indexterm> \r
+                       or <link xl:href="http://subversion.apache.org/"><application>Subversion</application></link><indexterm><primary>Version Control System</primary>\r
+                       <secondary>Subversion</secondary></indexterm> to regularly push updates of the files you care about to a repository on a \r
+                       remote server. This gives you the advantage of quickly being able to run through the history of the \r
+                       changes you made, with a commenting system that reminds you why each change was made, combined with \r
+                       remote storage of the pertinent files in case of disaster on site. In addition, your team can create \r
+                       local copies of the repository and test their own changes in isolation from the production \r
+                       system. Using a version control system also helps to recover system customizations after an \r
+                       upgrade.</para>\r
+               </simplesect>\r
+               <simplesect>\r
+                       <title>Full System Backup</title>\r
+                       <para>A full system backup archives every file on the file system. Some basic methods require you \r
+                       to shut down most system processes; other methods can use mirrored RAID<indexterm><primary>RAID</primary></indexterm> setups or \r
+                       SAN<indexterm><primary>SAN</primary></indexterm> storage to \r
+                       take <quote>snapshot</quote> backups of your full system while the system continues to run. The subject of how \r
+                       to implement full system backups is beyond the scope of this documentation.</para>\r
+               </simplesect>\r
+       </section>\r
+       <section xml:id="security">\r
+               <title>Security</title>\r
+               <indexterm><primary>security</primary></indexterm>\r
+               <para>As with an ILS and resource accessible from the world wide web careful consideration needs to be \r
+               given to the security of your <application>Evergreen</application> servers and database. While it is impossible to cover all aspects \r
+               of security, it is important to take several precautions when setting up production <application>Evergreen</application> site.</para>\r
+               <orderedlist>\r
+                       <listitem>\r
+                               <para>Change the Evergreen <systemitem class="username">admin</systemitem> password and keep it secure. The \r
+                               default admin password is known by anyone who has installed <application>Evergreen</application>. It is not a secret \r
+                               and needs to be changed by the Administrator. It should also only be shared by those who \r
+                               need the highest level of access to your system.</para>\r
+                       </listitem>\r
+                       <listitem>\r
+                               <para>Create strong passwords using a combination of numerical and alphabetical characters \r
+                               for all of the Administrative passwords including the <systemitem class="username">postgres</systemitem> and \r
+                               <systemitem class="username">opensrf</systemitem> users</para>     \r
+                       </listitem>\r
+                       <listitem>\r
+                               <para>Open ports in the firewall<indexterm><primary>firewall</primary></indexterm> with caution - It is only necessary to open ports \r
+                               <systemitem class="protocol">80</systemitem> and <systemitem class="protocol">443</systemitem>\r
+                               for <systemitem class="protocol">TCP</systemitem> connections to the Evergreen server from the OPAC and the staff client.  It is \r
+                               critical for administrators to understand the concepts of network security and take precautions to minimize vulnerabilities. \r
+                               </para>\r
+                       </listitem>\r
+                       <listitem>\r
+                               <para>Use permissions <indexterm><primary>permissions</primary></indexterm> and permission groups wisely - it is important to understand the \r
+                               purpose of the permissions and to only give users the level of access that they require.\r
+                               </para> \r
+                       </listitem>\r
+                                       </orderedlist>  \r
+       </section>\r
+       <section xml:id="logfiles">\r
+               <title>Managing Log Files</title>\r
+               <indexterm><primary>logs</primary><secondary>managing</secondary></indexterm>\r
+               <para><application>Evergreen</application> comes with a sophisticated logging system, but it is important to manage the <application>OpenSRF</application> \r
+               and <application>Evergreen</application> logs. This section will provide a couple of log management techniques and tools.</para>        \r
+               <simplesect>\r
+                       <title>Using the <systemitem class="service">logrotate</systemitem> Utility to Manage Log Size</title> \r
+                       <indexterm><primary>logs</primary><secondary>Log Rotate</secondary></indexterm>\r
+                        <para>Fortunately, this is not a new problem for <systemitem class="osname">Unix</systemitem> administrators, and \r
+                       there are a number of ways of keeping your logs under control. \r
+                       On <systemitem class="osname">Debian</systemitem> and <systemitem class="osname">Ubuntu</systemitem>, for example, \r
+                       the <systemitem class="service">logrotate</systemitem> utility controls when old log files are compressed and a new log file is started. \r
+                       <systemitem class="service">logrotate</systemitem> runs once a day and checks all log files that it knows about to see if a \r
+                       threshold of time or size has been reached and rotates the log files if a threshold condition has been met.</para>\r
+                       <para>To teach <systemitem class="service">logrotate</systemitem> to rotate Evergreen logs on a weekly basis, or if they are > 50MB in size, \r
+                       create a new file <filename>/etc/logrotate.d/evergreen</filename> with the following contents: </para>\r
+<programlisting>\r
+compress\r
+/openils/var/log/*.log {\r
+# keep the last 4 archived log files along with the current log file\r
+ # log log.1.gz log.2.gz log.3.gz log.4.gz\r
+ # and delete the oldest log file (what would have been log.5.gz)\r
+rotate 5\r
+# if the log file is > 50MB in size, rotate it immediately\r
+size 50M\r
+ # for those logs that don't grow fast, rotate them weekly anyway\r
+  weekly\r
+}\r
+</programlisting>\r
+               </simplesect>\r
+               <simplesect>\r
+                       <title>Changing Logging Level for <application>Evergreen</application></title>\r
+                       <indexterm><primary>logs</primary><secondary>logging levels</secondary></indexterm>\r
+                       <para>Change the Log Levels in your config files. Changing the level of logging will help \r
+                       narrow down errors.</para> \r
+                       <tip>\r
+                               <para>A high logging level is not wise to do in a production environment since  it \r
+                               will produce vastly larger log files and thus reduce server performance.</para>\r
+                       </tip>\r
+                       <para>Change logging levels by editing the configuration file \r
+                       <filename>/openils/conf/opensrf_core.xml</filename><indexterm><primary>configuration files</primary><secondary>opensrf_core.xml</secondary></indexterm></para>\r
+                       <para>you will want to search for lines containing &lt;loglevel&gt;.</para>\r
+                       <para> the default setting for loglevel is 3 which will log <emphasis>errors</emphasis>, \r
+                       <emphasis>warnings</emphasis> and <emphasis>information</emphasis>.</para>\r
+                       <para>The next level is 4 which is for debugging and provides additional information \r
+                       helpful for the debugging process.</para>\r
+                       <para>Thus, lines with:</para>\r
+                       <programlisting>&lt;loglevel&gt;3&lt;/loglevel&gt;</programlisting>\r
+                       <para>Should be changed to:</para>\r
+                       <programlisting>&lt;loglevel&gt;4&lt;/loglevel&gt;</programlisting>\r
+                       <para>to allow debugging level logging</para>\r
+                       <para>Other logging levels include <emphasis>0</emphasis> for no logging, \r
+                       <emphasis>1</emphasis> for logging errors and <emphasis>2</emphasis> for logging warnings \r
+                       and errors.</para>\r
+               </simplesect>\r
+       </section>\r
+       <section xml:id="InstallingPostgreSQL">\r
+               <title>Installing PostgreSQL from Source</title>\r
+               <indexterm><primary>databases</primary><secondary>PostgreSQL</secondary></indexterm>\r
+               <para>Some <systemitem class="osname">Linux</systemitem> distributions, such as <systemitem class="osname">Debian Etch (4.0)</systemitem>, do not offer PostgreSQL \r
+               version 8.2 as an installable package. Before you continue, examine the software dependencies listed in <xref linkend="serversideinstall-software-dependencies"/> \r
+               to ensure that your Linux distribution supports the required version of PostgreSQL.</para>\r
+\r
+               <note>\r
+                       <para>Some <systemitem class="osname">Linux</systemitem> distributions, such as <systemitem class="osname">Debian Etch (4.0)</systemitem>, do not offer PostgreSQL \r
+               version 8.2 as an installable package. Before you continue, examine the software dependencies listed in <xref linkend="serversideinstall-software-dependencies"/> \r
+               to ensure that your Linux distribution supports the required version of PostgreSQL.</para>\r
+               </note>\r
+               \r
+               <procedure>\r
+                       <step>\r
+                               <para>Install the application <application>stow</application> on your system if it is not already installed. Issue the following command as \r
+                               the <systemitem class="username">root</systemitem> user:</para>\r
+<screen>\r
+<userinput>apt-get install stow</userinput>\r
+</screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>Download, compile, and install the latest release for PostgreSQL 8.2 (which was version <literal>8.2.12</literal> at the time of this writing). \r
+                               As the <systemitem class="username">root</systemitem> user, follow these steps:</para>\r
+                               \r
+<screen>\r
+<userinput>\r
+wget http://wwwmaster.postgresql.org/redir/198/h/source/v8.2.17/postgresql-8.2.17.tar.bz2\r
+tar xzf postgresql-8.2.17.tar.gz\r
+cd postgresql-8.2.17\r
+./configure --with-perl --enable-integer-datetimes --with-openssl --prefix=/usr/local/stow/pgsql\r
+make\r
+make install\r
+cd contrib\r
+make\r
+make install\r
+cd xml2\r
+make\r
+make install\r
+cd /usr/local/stow\r
+stow pgsql\r
+</userinput>\r
+</screen>\r
+                               \r
+                       </step>\r
+                       <step>\r
+                               <para>Create the new user <systemitem class="username">postgres</systemitem> to run the PostgreSQL processes. \r
+                               As the <systemitem class="username">root</systemitem> user, execute this command:</para>\r
+                               <screen><userinput>adduser postgres</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>Initialize the database directory and start up PostgreSQL. As the <systemitem class="username">root</systemitem> user, follow these steps:</para>\r
+                               \r
+<screen>\r
+<userinput>\r
+mkdir -p /usr/local/pgsql/data\r
+chown postgres /usr/local/pgsql/data\r
+su - postgres\r
+initdb -D /usr/local/pgsql/data -E UNICODE --locale=C\r
+pg_ctl -D /usr/local/pgsql/data -l /home/postgres/logfile start\r
+</userinput>\r
+</screen>\r
+                               <note>\r
+                                       <para>If an error occurs during the final step above, review the path of the home directory for the \r
+                                       <systemitem class="username">postgres</systemitem> user. It may be <literal>/var/lib/postresql</literal> instead of <literal>/home/postres</literal>.</para>\r
+                               </note>\r
+                       </step>\r
+               </procedure>\r
+       </section>\r
+       <section xml:id="configuringPostgreSQL">\r
+               <title>Configuring PostgreSQL</title>\r
+               <indexterm><primary>databases</primary><secondary>PostgreSQL</secondary></indexterm>\r
+               <para>The values of several PostreSQL configuration parameters may be changed for enhanced performance. The following table lists the default values \r
+               and some suggested updates for several useful parameters:</para>\r
+               <table>\r
+                       <title>Suggested configuration values</title>\r
+                       <tgroup align="left" cols="3" colsep="1" rowsep="1">\r
+                               <colspec colnum="1" colwidth="1.0*"/>\r
+                               <colspec colnum="2" colwidth="1.0*"/>\r
+                               <colspec colnum="3" colwidth="1.0*"/>\r
+                               <thead>\r
+                                       <row>\r
+                                               <entry>Parameter</entry>\r
+                                               <entry>Default</entry>\r
+                                               <entry>Suggested</entry>\r
+                                       </row>\r
+                               </thead>\r
+                               <tbody>\r
+                                       <row>\r
+                                               <entry>default_statistics_target</entry>\r
+                                               <entry>10</entry>\r
+                                               <entry>100</entry>\r
+                                       </row>\r
+                                       <row>\r
+                                               <entry>work_mem</entry>\r
+                                               <entry>4Mb</entry>\r
+                                               <entry>128Mb</entry>\r
+                                       </row>\r
+                                       <row>\r
+                                               <entry>shared_buffers</entry>\r
+                                               <entry>8Mb</entry>\r
+                                               <entry>512Mb</entry>\r
+                                       </row>\r
+                                       <row>\r
+                                               <entry>effective_cache_size</entry>\r
+                                               <entry>128Mb</entry>\r
+                                               <entry>4Gb</entry>\r
+                                       </row>\r
+                               </tbody>\r
+                       </tgroup>\r
+               </table>\r
+       </section>\r
+</chapter>\r
diff --git a/admin/Upgrading-Evergreen_1.6.xml b/admin/Upgrading-Evergreen_1.6.xml
new file mode 100644 (file)
index 0000000..1804b8a
--- /dev/null
@@ -0,0 +1,431 @@
+<?xml version='1.0' encoding='UTF-8'?>\r
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"\r
+       xmlns:xl="http://www.w3.org/1999/xlink" version="5.0" xml:id="upgradingevergreen">\r
+       <info>\r
+               <title>Upgrading Evergreen to 1.6.1</title>\r
+               <abstract>\r
+                       <para>This Chapter will explain the step-by-step process of upgrading <application>Evergreen\r
+                       </application> to 1.6.1, including steps to upgrade <application>OpenSRF</application>. Before \r
+                       upgrading, it is important to carefully plan an upgrade strategy to minimize system downtime and \r
+                       service interruptions. All of the steps in this chapter are to be completed from the command line.</para>\r
+               </abstract>\r
+       </info>    \r
+               <para>In the following instructions, you are asked to perform certain steps as either the <systemitem class="username">root</systemitem>  or <systemitem class="username">opensrf</systemitem> user.</para>\r
+               <itemizedlist>\r
+                       <listitem>Debian: To become the <systemitem class="username">root</systemitem> user, issue the <command>su</command> command and enter the password of the \r
+                       <systemitem class="username">root</systemitem> user.</listitem>\r
+                       <listitem>Ubuntu: To become the <systemitem class="username">root</systemitem> user, issue the <command>sudo su</command> command and enter the password of your current user.</listitem>\r
+               </itemizedlist>\r
+               <para>To switch from the <systemitem class="username">root</systemitem> user to a different user, issue the <command>su - [user]</command> command; for example, \r
+               <command>su - opensrf</command>. Once you have become a non-root user, to become the <systemitem class="username">root</systemitem> user again simply issue the exit command.</para> \r
+               <para>In the following instructions, <filename class='directory'>/path/to/OpenSRF/</filename> represents the path to the OpenSRF source directory.</para>\r
+       <section xml:id="upgradingevergreen-stop_evergreen">\r
+               <title>Backing Up Data</title>\r
+               <procedure>\r
+                       <step>\r
+                               <para>As <systemitem class="username">root</systemitem>, stop the <application>Apache</application> \r
+                               web server<indexterm><primary>web server</primary><secondary>Apache</secondary></indexterm>.</para>\r
+                       </step>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, stop all \r
+                               <application>Evergreen</application>\r
+                               and <application>OpenSRF</application> services:</para>\r
+                               <screen><userinput>osrf_ctl.sh -l -a stop_all</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>Back up of the <filename class='directory'>/openils</filename> \r
+                               directory.</para>\r
+                       </step>\r
+                       <step>\r
+                               <para><link linkend="backingup">Back up the <application>evergreen\r
+                               </application> database</link>.</para>\r
+                       </step>\r
+               </procedure>\r
+       </section>\r
+       <section xml:id="upgradingevergreen-upgradingOpenSRF">\r
+               <title>Upgrading OpenSRF to 1.6</title><indexterm><primary>OpenSRF</primary></indexterm>\r
+               <procedure>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, download and extract the source files for <application>OpenSRF</application> \r
+                               1.6:</para>\r
+<screen><userinput>\r
+wget http://open-ils.org/downloads/opensrf-1.6.3.tar.gz\r
+tar xzf opensrf-1.6.3.tar.gz\r
+</userinput></screen>\r
+                               <para>A new directory opensrf-1.6.3 is created.</para>\r
+                               <note><para>For the latest edition of OpenSRF, check the Evergreen download page at \r
+                               <ulink url="http://www.open-ils.org/downloads.php" />.\r
+                               </para></note>\r
+                       </step>\r
+                       <step>  \r
+                               <para>As the <systemitem class="username">root</systemitem> user, install the software prerequisites using the automatic \r
+                               prerequisite installer.</para> \r
+<screen><userinput>\r
+aptitude install make\r
+cd /home/opensrf/opensrf-1.6.3\r
+</userinput></screen>          \r
+                               <para>Replace <option>[distribution]</option> below with the following value \r
+                               for your distribution:</para>\r
+                               <itemizedlist>\r
+                                       <listitem>\r
+                                               <para><option>debian-etch</option> for <systemitem class="osname">Debian Etch (4.0)</systemitem>\r
+                                               <indexterm><primary>Linux</primary><secondary>Debian</secondary></indexterm></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>debian-lenny</option> for <systemitem class="osname">Debian Lenny (5.0)</systemitem></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                       <para><option>ubuntu-hardy</option> for <systemitem class="osname">Ubuntu Hardy Heron (8.04)</systemitem>\r
+                                       <indexterm><primary>Linux</primary><secondary>Ubuntu</secondary></indexterm></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>ubuntu-intrepid</option> for <systemitem class="osname">Ubuntu Intrepid Ibex \r
+                                               (8.10)</systemitem></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>ubuntu-jaunty</option> for <systemitem class="osname">Ubuntu Jaunty Jackalope \r
+                                               (9.04)</systemitem></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>ubuntu-karmic</option> for <systemitem class="osname">Ubuntu Karmic Koala \r
+                                               (9.10)</systemitem></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>ubuntu-lucid</option> for <systemitem class="osname">Ubuntu Lucid Lynx\r
+                                               (10.04)</systemitem></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>centos</option> for <systemitem class="osname">CentOS 5</systemitem></para>\r
+                                       </listitem>\r
+                               </itemizedlist>\r
+<screen><userinput>\r
+cd /path/to/OpenSRF\r
+make -f src/extras/Makefile.install [distribution]\r
+</userinput></screen>\r
+                               <para>This will install a number of packages required by OpenSRF on your system, \r
+                               including some Perl modules from <systemitem class="resource">CPAN</systemitem><indexterm><primary>Perl</primary><secondary>CPAN</secondary>\r
+                               </indexterm>. You can type <userinput>no</userinput> to the initial <systemitem class="resource">CPAN</systemitem> \r
+                               configuration prompt to allow it to automatically configure itself to download \r
+                               and install Perl modules from <systemitem class="resource">CPAN</systemitem>. The <systemitem class="resource">CPAN</systemitem> installer will ask you a number of \r
+                               times whether it should install prerequisite modules - type <userinput>yes</userinput>.</para>\r
+                       </step>\r
+                       <step>  \r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, configure and compile OpenSRF:</para> \r
+                               <note>You can include the <option>–enable-python</option> and <option>–enable-java</option> configure options if \r
+                               you want to include support for Python<indexterm><primary>Python</primary></indexterm> and Java\r
+                               <indexterm><primary>Java</primary></indexterm>, respectively.</note>\r
+<screen><userinput>\r
+cd /home/opensrf/opensrf-1.6.3\r
+./configure --prefix=/openils --sysconfdir=/openils/conf\r
+make\r
+</userinput></screen>          \r
+                       </step>\r
+                       <step>  \r
+                               <para>As the <systemitem class="username">root</systemitem> user, return to your OpenSRF build directory and install \r
+                               OpenSRF:</para>\r
+<screen><userinput>\r
+cd /home/opensrf/opensrf-1.6.3\r
+make install\r
+</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">root</systemitem> user, change the ownership of the installed files to the \r
+                               <systemitem class="username">opensrf</systemitem> user:</para>\r
+                               <screen><userinput>chown -R opensrf:opensrf /openils</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>Restart and Test OpenSRF</para>\r
+<screen><userinput>\r
+osrf_ctl.sh -l -a start_all\r
+/openils/bin/srfsh\r
+srfsh#  request opensrf.math add 2 2\r
+</userinput></screen>\r
+                               <para>You should see output such as:</para>\r
+<screen>\r
+Received Data: 4\r
+\r
+------------------------------------\r
+Request Completed Successfully\r
+Request Time in seconds: 0.007519\r
+------------------------------------\r
+\r
+srfsh#\r
+</screen>      \r
+                               <para>If test completed successfully move onto the next section. \r
+                               Otherwise, refer to the <link linkend="troubleshooting">troubleshooting</link> chapter \r
+                               of this documentation.</para> \r
+                       </step> \r
+               </procedure>    \r
+       </section>\r
+       <section xml:id="upgradingevergreen-upgrading_from_1.4_to_1.6.1">\r
+               <title>Upgrade <application>Evergreen</application> from 1.4 to 1.6.1</title>\r
+               <procedure>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, download and extract <application>Evergreen 1.6.1.8</application>\r
+                               </para>\r
+<screen><userinput>\r
+wget http://open-ils.org/downloads/Evergreen-ILS-1.6.1.8.tar.gz\r
+tar xzf Evergreen-ILS-1.6.1.8.tar.gz\r
+</userinput></screen>\r
+                               <note><para>For the latest edition of Evergreen check the Evergreen download page at\r
+                               <ulink url="http://www.open-ils.org/downloads.php" /> and adjust upgrading instructions accordingly.</para></note>\r
+                       </step>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">root</systemitem> user, install the prerequisites:</para> \r
+                               <screen><userinput>cd /home/opensrf/Evergreen-ILS-1.6.1.8</userinput></screen>  \r
+                               <para>On the next command, replace <option>[distribution]</option> with one of \r
+                               these values for your distribution of Debian or Ubuntu:</para>\r
+                               <itemizedlist>\r
+                                       <listitem>\r
+                                               <para><option>debian-etch</option> for <systemitem class="osname">Debian Etch (4.0)</systemitem></para><indexterm><primary>Linux</primary><secondary>Debian</secondary></indexterm>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>debian-lenny</option> for <systemitem class="osname">Debian Lenny (5.0)</systemitem></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>ubuntu-hardy</option> for <systemitem class="osname">Ubuntu Hardy Heron \r
+                                               (8.04)</systemitem></para><indexterm><primary>Linux</primary><secondary>Ubuntu</secondary></indexterm>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>ubuntu-intrepid</option> for <systemitem class="osname">Ubuntu Intrepid Ibex \r
+                                               (8.10)</systemitem></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>ubuntu-jaunty</option> for <systemitem class="osname">Ubuntu Jaunty Jackalope \r
+                                               (9.04)</systemitem></para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para><option>ubuntu-karmic</option> for <systemitem class="osname">Ubuntu Karmic Koala \r
+                                               (9.10)</systemitem> or <systemitem class="osname">Ubuntu Lucid Lynx \r
+                                               (10.04)</systemitem></para>\r
+                                       </listitem>\r
+                               </itemizedlist>\r
+                               <screen><userinput>make -f Open-ILS/src/extras/Makefile.install <option>[distribution]</option></userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, configure and compile \r
+                               <application>Evergreen</application>:</para>\r
+                               <screen><userinput>cd /home/opensrf/Evergreen-ILS-1.6.1.8</userinput></screen>\r
+                               <screen><userinput>./configure --prefix=/openils --sysconfdir=/openils/conf</userinput></screen>\r
+                               <screen><userinput>make</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">root</systemitem> user, install \r
+                               <application>Evergreen</application>:</para>\r
+                               <screen><userinput>make STAFF_CLIENT_BUILD_ID=rel_1_6_1_8 install</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>Change to the <application>Evergreen</application> installation \r
+                               directory:</para>\r
+                               <screen><userinput>cd /home/opensrf/Evergreen-ILS-1.6.1.8</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>As the <emphasis>root</emphasis> user, change all files to be owned by the \r
+                               <emphasis>opensrf</emphasis> user and group:</para>\r
+                               <screen><userinput>chown -R opensrf:opensrf /openils</userinput></screen>\r
+                       </step>                 \r
+                       <step>\r
+                               <para>As the <systemitem class="username">root</systemitem> user, build <filename>live-db-setup.pl</filename> for the cgi-bin \r
+                               bootstrapping scripts and <filename>offline-config.pl</filename> for the offline staff client data uploader:</para>\r
+<screen><userinput>\r
+cd /home/opensrf/Evergreen-ILS-1.6.1.8\r
+perl Open-ILS/src/support-scripts/eg_db_config.pl --create-bootstrap --create-offline \ \r
+--user evergreen --password evergreen --hostname localhost --port 5432 \\r
+--database evergreen\r
+</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, update server symlink in <filename class="directory">/openils/var/web/xul/</filename>:</para>\r
+<screen><userinput>\r
+cd /openils/var/web/xul/\r
+rm server\r
+ln -s rel_1_6_1_8/server\r
+</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>Update the Evergreen database:</para>\r
+                               <note><para>it is recommended that you <link linkend="backingup">back up your Evergreen database</link> in order to restore your data if anything goes wrong.</para></note>\r
+<screen>\r
+<userinput>\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.4.0.5-1.6.0.0-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.0.0-1.6.0.1-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.0.1-1.6.0.2-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.0.2-1.6.0.3-upgrade-db.sql evergreen \r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.0.3-1.6.0.4-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.0.4-1.6.1.0-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.0-1.6.1.1-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.1-1.6.1.2-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.2-1.6.1.3-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.3-1.6.1.4-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.4-1.6.1.5-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.5-1.6.1.6-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.6-1.6.1.7-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.8-1.6.1.8-upgrade-db.sql evergreen\r
+</userinput>\r
+</screen>      \r
+                       </step>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, \r
+                               copy <filename>/openils/conf/oils_web.xml.example</filename> to <filename>/openils/conf/oils_web.xml</filename>\r
+                               <indexterm><primary>configuration files</primary><secondary>oils_web.xml</secondary></indexterm>\r
+                               (needed for acquisitions templates).</para>\r
+                               <screen><userinput>cp /openils/conf/oils_web.xml.example /openils/conf/oils_web.xml</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>Update <filename>opensrf_core.xml</filename> and <filename>opensrf.xml</filename> by copying the new example files \r
+                               (<filename>/openils/conf/opensrf_core.xml.example</filename> and <filename>/openils/conf/opensrf.xml</filename>).</para>\r
+                               <indexterm><primary>configuration files</primary><secondary>opensrf.xml</secondary></indexterm>\r
+                               <screen><userinput>cp /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml</userinput></screen>\r
+                               <indexterm><primary>configuration files</primary><secondary>opensrf_core.xml</secondary></indexterm>\r
+                               <screen><userinput>cp /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>Update <filename>opensrf.xml</filename> with the database connection info:</para>\r
+<screen><userinput>\r
+perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config --service all --user evergreen \\r
+--password evergreen --hostname localhost --port 5432 --database evergreen\r
+</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>Update /etc/apache2/startup.pl by copying the example from \r
+                               Open-ILS/examples/apache/startup.pl.</para><indexterm><primary>configuration files</primary><secondary>startup.pl</secondary></indexterm>\r
+                       </step>\r
+                       <step>\r
+                               <para>Update /etc/apache2/eg_vhost.conf by copying the example from \r
+                               Open-ILS/examples/apache/eg_vhost.conf.</para><indexterm><primary>configuration files</primary><secondary>eg_vhost.conf</secondary></indexterm>\r
+                       </step>\r
+                       <step>\r
+                       <para>Update /etc/apache2/sites-available/eg.conf by copying the example from Open-ILS/\r
+                       examples/apache/eg.conf.</para><indexterm><primary>configuration files</primary><secondary>eg.conf</secondary></indexterm>\r
+                       </step>\r
+                       <step>\r
+                               <para>Recover customizations you have made to the <application>Apache</application><indexterm><primary>Apache</primary></indexterm> \r
+                               configuration files. For example, if you purchased an SSL certificate, you \r
+                               will need to edit <filename>eg.conf</filename> to point to the appropriate SSL certificate files.</para>\r
+                               <indexterm><primary>SSL</primary><secondary>certificates</secondary></indexterm>\r
+                       </step> \r
+               </procedure>    \r
+       </section>\r
+       <section xml:id="upgradingevergreen_1.6.0_to_1.6.1">\r
+               <title>Upgrade <application>Evergreen</application> from 1.6.0 to 1.6.1</title>\r
+               <procedure>\r
+                       <step>\r
+                               <para>Follow steps 1-8 of the <link linkend="upgradingevergreen-upgrading_from_1.4_to_1.6.1">instructions for upgrading Evergreen from 1.4</link></para> \r
+                               \r
+                       </step>\r
+                       <step>\r
+                               <para>Update the Evergreen database:</para>\r
+                               <note><para>It is recommended that you <link linkend="backingup">back up your Evergreen database</link> in order to restore your data if anything goes wrong.</para></note>\r
+<screen>\r
+<userinput>\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.0.4-1.6.1.0-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.0-1.6.1.1-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.1-1.6.1.2-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.2-1.6.1.3-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.3-1.6.1.4-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.4-1.6.1.5-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.5-1.6.1.6-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.6-1.6.1.7-upgrade-db.sql evergreen\r
+psql -U evergreen -h localhost -f Open-ILS/src/sql/Pg/1.6.1.7-1.6.1.8-upgrade-db.sql evergreen\r
+</userinput>\r
+</screen>      \r
+                       </step>\r
+                       <step>\r
+                               <para>Follow steps 10-16 of the <link linkend="upgradingevergreen-upgrading_from_1.4_to_1.6.1">instructions for upgrading Evergreen from 1.4</link></para>\r
+                               \r
+                       \r
+                       </step>\r
+               </procedure>    \r
+       </section>\r
+       <section xml:id="testing_after_upgrade">\r
+               <title>Restart Evergreen and Test</title>\r
+               <procedure>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, start all \r
+                               <application>Evergreen</application> and <application>OpenSRF</application> \r
+                               services:</para>\r
+                               <screen><userinput>osrf_ctl.sh -l -a start_all</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, run <command>autogen</command> to refresh the static \r
+                               organizational data files:</para><indexterm><primary>autogen</primary></indexterm>\r
+<screen><userinput>\r
+cd /openils/bin\r
+./autogen.sh -c /openils/conf/opensrf_core.xml -u\r
+</userinput></screen>\r
+                                       \r
+                       </step>\r
+                       <step>\r
+                               <para>Start <command>srfsh</command> and try logging in  using your <application>Evergreen</application>\r
+                               username and password:</para>\r
+<screen>\r
+<userinput>/openils/bin/srfsh</userinput>\r
+<prompt>srfsh%</prompt> <userinput>login <option>username</option> <option>password</option></userinput>\r
+</screen> \r
+                       </step> \r
+                       <step>\r
+                               <para>Start the <application>Apache</application> web server.</para>\r
+                       </step>\r
+               </procedure>\r
+               <note>\r
+                       <para>If you encounter errors, refer to the <link linkend="troubleshooting">troubleshooting \r
+                       section</link> of this documentation for tips \r
+                       on finding solutions and seeking further assistance from the Evergreen community.</para>  \r
+               </note>\r
+       </section>\r
+       <section xml:id="upgrading_Postgresqlto8.4">\r
+               <title>Upgrading PostgreSQL from 8.2 to 8.4</title>\r
+               <para>Evergreen 1.6.1 supports PostgreSQL version 8.4 and it is recommended that you upgrade PostgreSQL when you upgrade Evergreen to 1.6.</para>\r
+               <note><para>The order of the following steps is very important.</para></note><indexterm><primary>databases</primary><secondary>PostgreSQL</secondary></indexterm>\r
+               <procedure>\r
+                       <step>\r
+                               <para>As <systemitem class="username">opensrf</systemitem>, stop the evergreen and opensrf services:</para>\r
+                               <screen><userinput>osrf_ctl.sh -l -a stop_all</userinput></screen>\r
+                       </step>                 \r
+                       <step>\r
+                               <para><link linkend="backingup">Backup the Evergreen database data</link></para>\r
+                       </step>\r
+                       <step>\r
+                               <para>Upgrade to Postgresql 8.4 by removing old version and installing Postgresql 8.4</para>\r
+                       </step>\r
+                       <step>                  \r
+                               <para>Create an empty Evergreen database in postgresql 8.4 by issuing the following commands as the postgres user:</para>\r
+<screen>\r
+<userinput>\r
+createdb -E UNICODE evergreen\r
+createlang plperl   evergreen\r
+createlang plperlu  evergreen\r
+createlang plpgsql  evergreen\r
+psql -f /usr/share/postgresql/8.4/contrib/tablefunc.sql evergreen\r
+psql -f /usr/share/postgresql/8.4/contrib/tsearch2.sql evergreen\r
+psql -f /usr/share/postgresql/8.4/contrib/pgxml.sql evergreen\r
+</userinput>\r
+</screen>              \r
+                       </step>\r
+                       <step>\r
+                               <para>As the <systemitem class="username">postgres</systemitem> user on the PostgreSQL server, create a PostgreSQL user named <systemitem class="username">evergreen</systemitem> for the database cluster:</para>\r
+                               <screen><userinput>createuser -P -s evergreen</userinput></screen>\r
+                               <para>Enter the password for the new PostgreSQL superuser (<systemitem class="username">evergreen</systemitem>)</para>  \r
+                       </step>                 \r
+                       <step>\r
+                               <para>Restore data from backup created in step 1.</para>\r
+                       </step>\r
+                       <step>\r
+                               <para>To point tsearch2 to proper function names in 8.4, run the SQL script \r
+                               <filename>/home/opensrf/Evergreen-ILS*/Open-ILS/src/sql/Pg/000.english.pg84.fts-config.sql</filename> using the <command>psql</command> command.</para>\r
+                               <screen><userinput>cd /home/opensrf/Evergreen-ILS*</userinput></screen>\r
+                               <screen><userinput>psql -f /Open-ILS/src/sql/Pg/000.english.pg84.fts-config.sql evergreen</userinput></screen>\r
+                       </step>\r
+                       <step>\r
+                               <para><link linkend="startingopensrf">Restart Evergreen and OpenSRF services</link></para>\r
+                       </step>\r
+                       <step>\r
+                               <para>For additional information regarding upgrading PostgreSQL, see the following documentation in PostgreSQL:</para>\r
+                               <para><ulink url="http://www.postgresql.org/docs/8.4/static/install-upgrading.html" /></para>\r
+                               <para><ulink url="http://www.postgresql.org/docs/8.4/interactive/textsearch-migration.html" /> \r
+                               </para>\r
+                               <para><ulink url="http://www.postgresql.org/docs/current/static/tsearch2.html#AEN102824" /></para>\r
+                       </step>\r
+               </procedure>\r
+       </section>\r
+</chapter>\r
diff --git a/admin/actiontriggers.xml b/admin/actiontriggers.xml
new file mode 100644 (file)
index 0000000..adeb6f2
--- /dev/null
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<chapter xml:id="actiontriggers" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="EN"\r
+    xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink">\r
+    <info>\r
+        <title>Action Triggers</title>\r
+       <indexterm><primary>action triggers</primary></indexterm>    \r
+       </info>\r
+       <para>Action Triggers were introduced to Evergreen in 1.6. They allow administrators the ability to set up actions for specific events. They are useful for notification events such as \r
+       hold notifications.</para>\r
+       \r
+                       \r
+       <para>To access the Action Triggers module, select\r
+               <menuchoice>\r
+                       <guimenu>Admin</guimenu>  \r
+                       <guisubmenu>Local Administration</guisubmenu>\r
+                       <guisubmenu>Notifications / Action triggers</guisubmenu>\r
+               </menuchoice>\r
+       </para>\r
+       <note><para>You must have Local Administrator permissions to access the Action Triggers module.</para></note>\r
+       <para>You will notice four tabs on this page: <guilabel><link linkend="eventdefinitions">Event Definitions</link></guilabel>, <guilabel><link linkend="Hooks">Hooks</link></guilabel>, \r
+       <guilabel><link linkend="Reactors">Reactors</link></guilabel> and <guilabel><link linkend="Validators">Validators</link></guilabel>.</para>\r
+               \r
+       <section xml:id="eventdefinitions">\r
+               <title>Event Definitions</title>\r
+               <indexterm><primary>action triggers</primary><secondary>event definitions</secondary></indexterm>   \r
+               <para><guilabel>Event Definitions</guilabel> is the main tab and contains the key fields when working with action triggers. These fields include:</para>\r
+                       <table xml:id="eventdefinitionstable">\r
+                               <title>Action Trigger Event Definitions</title>\r
+                               <tgroup cols="2">\r
+                                       <colspec colnum="1" colname="col1" colwidth="1.0*"/>\r
+                                       <colspec colnum="2" colname="col2" colwidth="3.0*"/>\r
+                                       <thead>\r
+                                               <row>\r
+                                                       <entry>Field</entry>\r
+                                                       <entry>Description</entry>\r
+                                               </row>\r
+                                       </thead>\r
+                                       <tbody>\r
+                                               <row>\r
+                                                       <entry><guilabel>Owning library</guilabel></entry>\r
+                                                       <entry>The shortname of the library for which the action / trigger / hook is defined.</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry><guilabel>Name</guilabel></entry>\r
+                                                       <entry>The name of the trigger event, that links to a trigger event environment containing a set of fields  \r
+                                                       that will be returned to the <link linkend="Validators">Validators</link> / <link linkend="Reactors">Reactors</link> for processing.</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry><guilabel><link linkend="Hooks">Hooks</link></guilabel></entry>\r
+                                                       <entry>The name of the trigger for the trigger event. The underlying action_trigger.hook table defines the Fieldmapper \r
+                                                       class in the core_type column off of which the rest of the field definitions <quote>hang</quote>. </entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry><guilabel>Enabled</guilabel></entry>\r
+                                                       <entry>Sets the given trigger as enabled or disabled. This must be set to enabled for the Action trigger to run.</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry><guilabel>Processing Delay</guilabel></entry>\r
+                                                       <entry>Defines how long after a given trigger / hook event has occurred before the associated action (<quote>Reactor</quote>) \r
+                                                       will be taken.</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry><guilabel>Processing Delay Field</guilabel></entry>\r
+                                                       <entry>Defines the field associated with the event on which the processing delay is calculated. For example, the processing delay \r
+                                                       context field on the hold.capture hook (which has a core_type of ahr) is <emphasis>capture_time</emphasis>.</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry><guilabel>Processing Group Context Field</guilabel></entry>\r
+                                                       <entry>Used to batch actions based on its associated group.</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry><guilabel><link linkend="Validators">Validators</link></guilabel></entry>\r
+                                                       <entry>The subroutines receive the trigger environment as an argument (see the linked <emphasis>Name</emphasis> for \r
+                                                       the environment definition) and returns either <emphasis>1</emphasis> if the validator is <emphasis>true</emphasis> or <emphasis>0</emphasis> \r
+                                                       if the validator returns <emphasis>false</emphasis>.</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry><guilabel><link linkend="Reactors">Reactors</link></guilabel></entry>\r
+                                                       <entry>Links the action trigger to the Reactor.</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry><guilabel>Max Event Validity Delay</guilabel></entry>\r
+                                                       <entry>Define the threshold for how far back the action_trigger_runner.pl script should reach to generate \r
+                                                       a batch of events.</entry>\r
+                                               </row>\r
+                                       </tbody>        \r
+                               </tgroup>\r
+                       </table>\r
+               \r
+               <procedure>\r
+               <title>Creating Action Triggers</title>\r
+               <indexterm><primary>action triggers</primary><secondary>creating</secondary></indexterm>  \r
+                       <step>\r
+                               <para>From the top menu, select\r
+                                       <menuchoice>\r
+                                               <guimenu>Admin</guimenu>  \r
+                                               <guisubmenu>Local Administration</guisubmenu>\r
+                                               <guisubmenu>Notifications / Action triggers</guisubmenu>\r
+                                       </menuchoice>\r
+                               </para>\r
+                       </step>\r
+                       <step><para>Click on the <guibutton>New</guibutton> button.</para></step>\r
+                       <step><para>Select an <guilabel>Owning Library</guilabel>.</para></step>\r
+                       <step><para>Create a unique <guilabel>Name</guilabel> for your new action trigger.</para></step>                                \r
+                       <step><para>Select the <guilabel>Hook</guilabel>.</para></step>\r
+                       <step><para>Check the <guilabel>Enabled</guilabel> check box.</para></step>\r
+               \r
+                       <step><para>Create a unique <guilabel>Name</guilabel> for your new action trigger.</para></step>\r
+                       <step><para>Set the <guilabel>Processing Delay</guilabel> in the appropriate format. Eg. <emphasis class="bold">7 days</emphasis> to run 7 days from the trigger event \r
+                       or <emphasis class="bold">00:01:00</emphasis> to run 1 hour after the <guilabel>Processing Delay Context Field</guilabel>.</para></step>\r
+                       <step><para>Set the <guilabel>Processing Delay Context Field</guilabel> and <guilabel>Processing Group Context Field</guilabel>.</para></step>  \r
+                       <step><para>Select the <guilabel>Validator</guilabel>, <guilabel>Reactor</guilabel>, <guilabel>Failure Cleanup</guilabel> and <guilabel>Success Cleanup</guilabel>.\r
+                       </para></step>  \r
+                       <step><para>Set the <guilabel>Processing Delay Context Field</guilabel> and <guilabel>Processing Group Context Field</guilabel>.</para></step>  \r
+                       <step preformance="optional"><para>Enter text in the <guilabel>Template</guilabel> text box if required. These are for email messages. Here is an sample \r
+                       template for sending 90 day overdue notices:</para>\r
+<programlisting><![CDATA[\r
+\r
+[%- USE date -%]\r
+[%- user = target.0.usr -%]\r
+To: [%- params.recipient_email || user.email %]\r
+From: [%- params.sender_email || default_sender %]\r
+Subject: Overdue Items Marked Lost\r
+\r
+Dear [% user.family_name %], [% user.first_given_name %]\r
+The following items are 90 days overdue and have been marked LOST.\r
+[%- params.recipient_email || user.email %][%- params.sender_email || default_sender %]\r
+[% FOR circ IN target %]\r
+    Title: [% circ.target_copy.call_number.record.simple_record.title %] \r
+    Barcode: [% circ.target_copy.barcode %] \r
+    Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]\r
+    Item Cost: [% helpers.get_copy_price(circ.target_copy) %]\r
+    Total Owed For Transaction: [% circ.billable_transaction.summary.total_owed %]\r
+    Library: [% circ.circ_lib.name %]\r
+[% END %]\r
+\r
+\r
+[% FOR circ IN target %]\r
+    Title: [% circ.target_copy.call_number.record.simple_record.title %] \r
+    Barcode: [% circ.target_copy.barcode %] \r
+    Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]\r
+    Item Cost: [% helpers.get_copy_price(circ.target_copy) %]\r
+    Total Owed For Transaction: [% circ.billable_transaction.summary.total_owed %]\r
+    Library: [% circ.circ_lib.name %]\r
+[% END %]\r
+]]>\r
+</programlisting>      \r
+                       </step> \r
+                       <step><para>Once you are satisfied with your new event trigger , click the <guibutton>Save</guibutton> button located at the bottom of the \r
+                       form</para></step>\r
+               </procedure>\r
+               <tip><para>A quick and easy way to create new action triggers is to clone an existing action trigger.</para></tip>\r
+               <procedure>\r
+                       <title>Cloning Existing Action Triggers</title>\r
+                       <step>\r
+                               <para>Check the check box next to the action trigger you wish to clone</para>\r
+                       </step>\r
+                       <step>\r
+                               <para>Click the <guibutton>Clone Selected</guibutton> on the top left of the page.</para>\r
+                       </step>\r
+                       <step>\r
+                               <para>An editing window with open. Notice that the fields will be populated with content from the cloned action trigger. Edit as necessary and \r
+                       give the new action trigger a unique <guilabel>Name</guilabel>.</para>\r
+                       </step>\r
+                       <step>\r
+                               <para>Click <guilabel>Save</guilabel>.</para>\r
+                       </step>\r
+               </procedure>\r
+               <procedure>\r
+                       <title>Editing Action Triggers</title>\r
+                       <step>\r
+                               <para>Check the check box next to the action trigger you wish to delete</para>\r
+                       </step>\r
+                       <step>\r
+                               <para>Click the <guibutton>Delete Selected</guibutton> on the top left of the page.</para>\r
+                       </step>\r
+               </procedure>\r
+               \r
+               <note><para>Before deleting an action trigger, you should consider disabling it through the editing form. This way you can simply enable it if you decide that you would like to use \r
+               the action trigger in the future.</para></note>\r
+               <procedure>\r
+                       <title>Deleting Action Triggers</title>\r
+                       <step>\r
+                               <para>Check the check box next to the action trigger you wish to delete</para>\r
+                       </step>\r
+                       <step>\r
+                               <para>Click the <guibutton>Delete Selected</guibutton> on the top left of the page.</para>\r
+                       </step>\r
+               </procedure>\r
+       </section>\r
+       <section xml:id="Hooks">\r
+               <title>Hooks</title>\r
+               <indexterm><primary>action triggers</primary><secondary>hooks</secondary></indexterm>\r
+               <para><guilabel>Hooks</guilabel> define the Fieldmapper class in the core_type column off of which the rest of the field definitions <quote>hang</quote>.</para>\r
+               <table xml:id="Hookstable">\r
+                       <title>Hooks</title>\r
+                       <tgroup cols="2">\r
+                               <colspec colnum="1" colname="col1" colwidth="1.0*"/>\r
+                               <colspec colnum="2" colname="col2" colwidth="3.0*"/>\r
+                               <thead>\r
+                                       <row>\r
+                                               <entry>Field</entry>\r
+                                               <entry>Description</entry>\r
+                                       </row>\r
+                               </thead>\r
+                               <tbody>\r
+                                       <row>\r
+                                               <entry><guilabel>Hook Key</guilabel></entry>\r
+                                               <entry>A unique name given to the hook.</entry>\r
+                                       </row>\r
+                                       <row>\r
+                                               <entry><guilabel>Core Type</guilabel></entry>\r
+                                               <entry>Used to link the action trigger to the IDL class in fm_IDL.xml</entry>\r
+                                       </row>\r
+                                       <row>\r
+                                               <entry><guilabel>Description</guilabel></entry>\r
+                                               <entry>Text to describe the purpose of the hook. </entry>\r
+                                       </row>\r
+                                       <row>\r
+                                               <entry><guilabel>Passive</guilabel></entry>\r
+                                               <entry>Indicates whether or not an event is created by direct user action or is circumstantial.</entry>\r
+                                       </row>\r
+                               </tbody>        \r
+                       </tgroup>\r
+               </table>\r
+               <para>You may also create, edit and delete Hooks but the <guilabel>Core Type</guilabel> must refer to an IDL class in the fm_IDL.xml file.</para>\r
+       </section>      \r
+       <section xml:id="Reactors">\r
+               <title>Reactors</title>\r
+               <indexterm><primary>action triggers</primary><secondary>reactors</secondary></indexterm>\r
+               <para><guilabel>Reactors</guilabel> link the trigger definition to the action to be carried out.</para>\r
+               <table xml:id="Reactorstable">\r
+                       <title>Action Trigger Reactors</title>\r
+                       <tgroup cols="2">\r
+                               <colspec colnum="1" colname="col1" colwidth="1.0*"/>\r
+                               <colspec colnum="2" colname="col2" colwidth="3.0*"/>\r
+                               <thead>\r
+                                       <row>\r
+                                               <entry>Field</entry>\r
+                                               <entry>Description</entry>\r
+                                       </row>\r
+                               </thead>\r
+                               <tbody>\r
+                                       <row>\r
+                                               <entry><guilabel>Module Name</guilabel></entry>\r
+                                               <entry>The name of the Module to run if the action trigger is validated. It must be defined as a subroutine in \r
+                                               <filename>/openils/lib/perl5/OpenILS/Application/Trigger/Reactor.pm</filename> or as a module\r
+                                                in <filename>/openils/lib/perl5/OpenILS/Application/Trigger/Reactor/*.pm</filename>.</entry>\r
+                                       </row>\r
+                                       <row>\r
+                                               <entry><guilabel>Description</guilabel></entry>\r
+                                               <entry>Description of the Action to be carried out.</entry>\r
+                                       </row>\r
+                               </tbody>        \r
+                       </tgroup>\r
+               </table>\r
+               <para>You may also create, edit and delete Reactors. Just remember that their must be an associated subroutine or module in the Reactor Perl module.</para>\r
+       </section>      \r
+       <section xml:id="Validators">\r
+               <title>Validators</title>\r
+               <indexterm><primary>action triggers</primary><secondary>validators</secondary></indexterm>\r
+               <para><guilabel>Validators</guilabel> set the validation test to be preformed to determine whether the action trigger is executed.</para>\r
+               <table xml:id="Validatorstable">\r
+                       <title>Action Trigger Validators</title>\r
+                       \r
+                       <tgroup cols="2">\r
+                               <colspec colnum="1" colname="col1" colwidth="1.0*"/>\r
+                               <colspec colnum="2" colname="col2" colwidth="3.0*"/>\r
+                               <thead>\r
+                                       <row>\r
+                                               <entry>Field</entry>\r
+                                               <entry>Description</entry>\r
+                                       </row>\r
+                               </thead>\r
+                               <tbody>\r
+                                       <row>\r
+                                               <entry><guilabel>Module Name</guilabel></entry>\r
+                                               <entry>The name of the subroutine in \r
+                                               <filename>/openils/lib/perl5/OpenILS/Application/Trigger/Reactor.pm</filename> to validate the action trigger.</entry>\r
+                                       </row>\r
+                                       <row>\r
+                                               <entry><guilabel>Description</guilabel></entry>\r
+                                               <entry>Description of validation test to run.</entry>\r
+                                       </row>\r
+                               </tbody>        \r
+                       </tgroup>\r
+               </table>\r
+               <para>You may also create, edit and delete Validators. Just remember that their must be an associated subroutine in the <filename>Reactor.pm</filename> Perl module.</para>\r
+       </section>      \r
+       <section xml:id="ProcessingActionTriggers">     \r
+               <title>Processing Action Triggers</title>\r
+               <indexterm><primary>action triggers</primary><secondary>processing</secondary></indexterm>\r
+               <para>To run the action triggers, an Evergreen administrator will need to run the trigger processing script <command>/openils/bin/action_trigger_runner.pl \r
+               <option>--process-hooks</option> <option>--run-pending</option></command>. This should be set up as a cron job to run \r
+               periodically.</para> \r
+               <para>You have several options when running the script:</para>\r
+               <itemizedlist>\r
+                       <listitem><option>--run-pending</option>: Run the pending events.</listitem>\r
+                       <listitem><option>--process-hooks</option>: Create hook events</listitem>\r
+                       <listitem><option>--osrf-config=[<varname>config_file</varname>]</option>: OpenSRF core config file.  Defaults to: \r
+                       <filename>/openils/conf/opensrf_core.xml</filename>.</listitem>\r
+                       <listitem><option>--custom-filters=[<varname>filter_file</varname>]</option>: File containing a JSON Object which describes any hooks that should\r
+                       use a user-defined filter to find their target objects.  Defaults to: <filename>/openils/conf/action_trigger_filters.json</filename></listitem>\r
+                       <listitem><option>--max-sleep=[<varname>seconds</varname>]</option>: When in process-hooks mode, wait up to [<varname>seconds</varname>] for the lock file to go away.  \r
+                       Defaults to 3600 (1 hour).</listitem>\r
+                       <listitem><option>--hooks=hook1[,hook2,hook3,...]</option>: Define which hooks to create events for.  If none are defined, it defaults to the list of hooks defined \r
+                       in the <option>--custom-filters</option> option.</listitem>\r
+                       <listitem><option>--debug-stdout</option>: Print server responses to stdout (as JSON) for debugging.</listitem>\r
+                       <listitem><option>--lock-file=[<varname>file_name</varname>]</option>: Sets the lock file for the process.</listitem>\r
+                       <listitem><option>--help</option>: Show help information.</listitem>\r
+               </itemizedlist>\r
+       </section>                                                                                                                                      \r
+</chapter>\r
+\r
diff --git a/admin/admin-booking.xml b/admin/admin-booking.xml
new file mode 100644 (file)
index 0000000..1a5ae44
--- /dev/null
@@ -0,0 +1,310 @@
+<?xml version='1.0' encoding='UTF-8'?>\r
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"\r
+   xml:lang="EN" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="admin-booking">\r
+   <info>\r
+      <title>Booking Module Administration</title>\r
+      <legalnotice>\r
+         <para><emphasis role="bold">Adapted with permission from original material by the <link\r
+                  xlink:title="http://docs.evergreen-ils.org/1.6/draft/html/"\r
+                  xlink:href="http://docs.evergreen-ils.org/1.6/draft/html/">Evergreen\r
+                  Community</link></emphasis></para>\r
+      </legalnotice>\r
+\r
+      <abstract>\r
+         <para>The Evergreen booking module is included in Evergreen 1.6.1.x and above.The following\r
+            documentation will include information about making cataloged items bookable; making\r
+            non-bibliographic items bookable; and setting permissions in the booking module for\r
+            staff.</para>\r
+      </abstract>\r
+   </info>\r
+   <section xml:id="MakeCataloguedItemBookable">\r
+      <title>Make a Cataloged Item Bookable in Advance</title>\r
+       <indexterm><primary>booking reservation</primary><secondary>making a cataloged item bookable</secondary></indexterm>\r
+      <para>If their permission settings allow, staff members can make items bookable. Staff members\r
+         can do this in advance of a booking request, or they can do it on the fly.</para>\r
+      <para>If you know in advance of the request that an item will need to be booked, you can make\r
+         the item bookable.</para>\r
+\r
+\r
+      <procedure>\r
+         <step>\r
+            <para>In the staff client, select <menuchoice>\r
+                  <guimenu>Search</guimenu>\r
+                  <guimenuitem>Search the Catalog</guimenuitem>\r
+               </menuchoice></para>\r
+         </step>\r
+         <step>\r
+            <para>Begin a title search to find an item.</para>\r
+         </step>\r
+         <step>\r
+            <para>Click the title of the item that you want to book.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>The <guilabel>Record Summary</guilabel> will appear. In this view you can see\r
+               information about the item and its locations. Click <menuchoice>\r
+                  <guimenu>Actions for this Record</guimenu>\r
+                  <guimenuitem>Holdings Maintenance</guimenuitem>\r
+               </menuchoice> in the top right corner of the screen.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>The <guilabel>Holdings Maintenance</guilabel> screen will appear. In this screen,\r
+               you can view the volumes and copies of an item avaialable at each branch. To view the\r
+               barcodes and other information for each copy, click the arrow adjacent to the branch\r
+               with the copy that you need to view. Click on successive arrows until you find the\r
+               copy that you need to view.</para>\r
+         </step>\r
+         <step>\r
+            <para>Select the item that you want to make bookable. Right click to open the menu, and\r
+               click <guimenuitem>Make Item Bookable</guimenuitem>.</para>\r
+         </step>\r
+         <step>\r
+            <para>The item has now been added to the list of resources that are bookable. To book\r
+               the item, return to the <guilabel>Record Summary</guilabel>, and proceed with\r
+               booking..</para>\r
+         </step>\r
+\r
+      </procedure>\r
+      <note>\r
+         <para>In Evergreen 1.6.1, there is no way to make an item “unbookable” after it has been\r
+            made bookable and has been reserved. The <guibutton>Delete Selected</guibutton> button\r
+            on this screen deletes the resource from the screen, but the item will be able to be\r
+            booked after it has been returned.</para>\r
+      </note>\r
+\r
+   </section>\r
+   <section xml:id="MakeItemBookableOnTheFly">\r
+      <title>Make a Cataloged Item Bookable On the Fly</title>\r
+      <para>If a patron wants to book an item immediately that does not have bookable status, you\r
+         can book the item on the fly if you have the appropriate permissions.</para>\r
+\r
+      <procedure>\r
+         <step>\r
+            <para>Follow steps one through five in <xref linkend="MakeCataloguedItemBookable"\r
+               />.</para>\r
+         </step>\r
+         <step>\r
+            <para>Select the item that you want to make bookable. Right click to open the menu, and\r
+               click <guimenuitem>Book Item Now</guimenuitem>.</para>\r
+         </step>\r
+         <step>\r
+            <para>A <guilabel>Reservations</guilabel> screen will appear in a new tab, and you can\r
+               make the reservation.</para>\r
+         </step>\r
+\r
+      </procedure>\r
+\r
+   </section>\r
+   <section xml:id="MakeNon-CataloguedItemBookable">\r
+      <title>Create a Bookable Status for Non-Bibliographic Items</title>\r
+       <indexterm><primary>booking reservation</primary><secondary>non-bibliographic items</secondary></indexterm>\r
+      <para>Staff with the required permissions can create a bookable status for non-bibliographic\r
+         items. For example, staff can book conference rooms or laptops. You will be able to create\r
+         types of resources, specify the names of individual resources within each type, and set\r
+         attributes to describe those resources. You can then bring the values together through the\r
+            <guilabel>Resource Attribute Map</guilabel>.</para>\r
+      <procedure>\r
+         <step>\r
+            <para>First, create the type of resource that you want to make bookable. Select <menuchoice>\r
+                  <guimenu>Admin</guimenu>\r
+                  <guisubmenu>Server Administration</guisubmenu>\r
+                  <guisubmenu>Booking</guisubmenu>\r
+                  <guimenuitem>Resource Types</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+         <step>\r
+            <para>A list of resource types will appear. You may also see titles of cataloged items\r
+               on this screen if they were added using the <guilabel>Make Item Bookable</guilabel>\r
+               or <guilabel>Book Now</guilabel> links. You should not attempt to add cataloged items\r
+               on this screen; it is best to use the aforementioned links to make those items\r
+               bookable. In this screen, you will create a type of resource.</para>\r
+         </step>\r
+         <step>\r
+            <para>In the right corner, click <guibutton>New Resource Type</guibutton>.</para>\r
+         </step>\r
+         <step>\r
+            <para>A box will appear in which you will create a type of resource. In this box, you\r
+               can set fines, determine “elbow room” periods between reservations on this type of\r
+               resource, and indicate if this type of resource can be transferred to another\r
+               library. Click <guibutton>Save</guibutton> when you have entered the needed\r
+               information.</para>\r
+         </step>\r
+         <step>\r
+            <para>After you click <guibutton>Save</guibutton>, the box will disappear. Refresh the\r
+               screen to see the item that you have added.</para>\r
+         </step>\r
+         <step>\r
+            <para>Next, set the attributes for the type of resource that you have created. Select <menuchoice>\r
+                  <guimenu>Server Administration</guimenu>\r
+                  <guisubmenu>Booking</guisubmenu>\r
+                  <guimenuitem>Resource Attributes</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>Click <guibutton>New Resource Attribute</guibutton>.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>A box will appear in which you can add the attributes of the resource. Attributes\r
+               are descriptive information that is provided to the staff member when the booking\r
+               request is made. For example, an attribute of the projector may be a cart that allows\r
+               for its transportation. Other attributes might be number of seats available in a\r
+               room, or MAC or PC attributes for a laptop. Click <guibutton>Save</guibutton> when\r
+               the necessary information has been entered.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>The box will disappear. Refresh the screen to see the added attribute.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>Next, add the values for the resource attributes. A value can be a number, yes/no,\r
+               or any other meaningful information. Select <menuchoice>\r
+                  <guimenu>Server Administration</guimenu>\r
+                  <guisubmenu>Booking</guisubmenu>\r
+                  <guimenuitem>Resource Attribute Values</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>Select <guibutton>New Resource Attribute Value</guibutton>.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>A pop up box will appear. Select the <guilabel>Resource Attribute</guilabel> from\r
+               the drop down box. Add the value. You can add multiple values for this field. Click\r
+                  <guibutton>Save</guibutton> when the required information has been added.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>If you refresh the screen, the attribute value may not appear, but it has been\r
+               saved.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>Next, identify the specific objects that are associated with this resource type.\r
+               Click <menuchoice>\r
+                  <guimenu>Admin</guimenu>\r
+                  <guisubmenu>Server Administration</guisubmenu>\r
+                  <guisubmenu>Booking</guisubmenu>\r
+                  <guimenuitem>Resources</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>Click <guibutton>New Resource</guibutton>.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>A pop-up box will appear. Add information for the resource and click\r
+                  <guibutton>Save</guibutton>. Repeat this process for each resource.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>Refresh the screen, and the resource(s) that you added will appear.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>Finally, use <guilabel>Resource Attribute Maps</guilabel> to bring together the\r
+               resource and its attributes. Select <menuchoice>\r
+                  <guimenu>Admin</guimenu>\r
+                  <guisubmenu>Server Administration</guisubmenu>\r
+                  <guisubmenu>Booking</guisubmenu>\r
+                  <guimenuitem>Resource Attribute Maps</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>Select <guibutton>New Resource Attribute Map</guibutton></para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>Select the resource that you want to match with its attributes, then click\r
+                  <guibutton>Save</guibutton>. Repeat for all applicable resources.</para>\r
+         </step>\r
+\r
+         <step>\r
+            <para>You have now created bookable, non-bibliographic resource(s) with\r
+               attributes.</para>\r
+         </step>\r
+\r
+      </procedure>\r
+   </section>\r
+   <section xml:id="SettingBookingPermissions">\r
+      <title>Setting Booking Permissions</title>\r
+       <indexterm><primary>booking reservation</primary><secondary>setting booking permissions</secondary></indexterm>\r
+      <para>Administrators can set permissions so that staff members can view reservations, make\r
+         reservations, and make bibliographic or non-bibliographic items bookable.</para>\r
+\r
+      <para>If a staff member attempts to book an item for which they do not have the appropriate\r
+         permissions, they will receive an error message.</para>\r
+\r
+      <para>To set permissions, select <menuchoice>\r
+            <guimenu>Admin</guimenu>\r
+            <guisubmenu>Server Administration</guisubmenu>\r
+            <guimenuitem>Permissions</guimenuitem>\r
+         </menuchoice>.</para>\r
+\r
+      <para>Staff members should be assigned the following permissions to do common tasks in the\r
+         booking module. These permissions could be assigned to front line staff members, such as\r
+         circulation staff. Permissions with an asterisk (<emphasis role="bold">*</emphasis>) are\r
+         already included in the <emphasis role="bold">Staff</emphasis> permission group. All other\r
+         booking permissions must be applied individually.</para>\r
+\r
+      <itemizedlist>\r
+         <listitem>\r
+            <para><emphasis role="bold">View Reservations:</emphasis> VIEW_TRANSACTION*</para>\r
+         </listitem>\r
+         <listitem>\r
+            <para><emphasis role="bold">Use the pull list:</emphasis>\r
+               RETRIEVE_RESERVATION_PULL_LIST</para>\r
+         </listitem>\r
+         <listitem>\r
+            <para><emphasis role="bold">Capture reservations:</emphasis> CAPTURE_RESERVATION</para>\r
+         </listitem>\r
+         <listitem>\r
+            <para><emphasis role="bold">Assist patrons with pickup and return:</emphasis>\r
+               VIEW_USER*</para>\r
+         </listitem>\r
+         <listitem>\r
+            <para><emphasis role="bold">Create/update/delete reservations:</emphasis>\r
+               ADMIN_BOOKING_RESERVATION</para>\r
+         </listitem>\r
+      </itemizedlist>\r
+\r
+      <para>The following permissions allow users to do more advanced tasks, such as making items\r
+         bookable, booking items on the fly, and creating non-bibliographic resources for\r
+         booking.</para>\r
+\r
+      <itemizedlist>\r
+         <listitem>\r
+            <para><emphasis role="bold">Create/update/delete booking resource type:</emphasis>\r
+               ADMIN_BOOKING_RESOURCE_TYPE</para>\r
+         </listitem>\r
+         <listitem>\r
+            <para><emphasis role="bold">Create/update/delete booking resource attributes:</emphasis>\r
+               ADMIN_BOOKING_RESOURCE_ATTR</para>\r
+         </listitem>\r
+         <listitem>\r
+            <para><emphasis role="bold">Create/update/delete booking resource attribute\r
+                  values:</emphasis> ADMIN_BOOKING_RESOURCE_ATTR_VALUE</para>\r
+         </listitem>\r
+         <listitem>\r
+            <para><emphasis role="bold">Create/update/delete booking resource:</emphasis>\r
+               ADMIN_BOOKING_RESOURCE</para>\r
+         </listitem>\r
+         <listitem>\r
+            <para><emphasis role="bold">Create/update/delete booking resource attribute\r
+                  maps:</emphasis> ADMIN_BOOKING_RESOURCE_ATTR_MAP</para>\r
+         </listitem>\r
+      </itemizedlist>\r
+\r
+      <para>In addition to having the permissions listed above, staff members will need a valid\r
+         working location in their profiles. This should be done when registering new staff members.</para>\r
+\r
+      <!-- Pages 14-16 of source document from http://evergreen-ils.org/dokuwiki/doku.php?id=booking ommitted at conversion (Jeremy Buhler, Oct 6 2010).  Rationale: subject is covered elsewhere in the Book of Evergreen and it confuses 'working location' with 'home library', both of which should already be set for all staff accounts. -->\r
+\r
+   </section>\r
+</chapter>\r
diff --git a/admin/admin-intro.xml b/admin/admin-intro.xml
new file mode 100644 (file)
index 0000000..813ed6c
--- /dev/null
@@ -0,0 +1,15 @@
+<partintro xmlns:xl="http://www.w3.org/1999/xlink" xml:id="admin_intro">\r
+       <para>This part of the documentation is intended for Evergreen administrators and requires root access to your <application>Evergreen</application> server(s) and administrator access to \r
+       the <application>Evergreen</application> \r
+       staff client. It deals with maintaining servers, installation, upgrading, and configuring both system wide and local library settings. \r
+       Some sections require understanding of <systemitem class="osname">Linux</systemitem> system administration while others require an understanding of your system hierarchy of locations \r
+       and users. Many procedures explained in the following \r
+       chapters are accomplished with <systemitem class="osname">Linux</systemitem> commands<indexterm><primary>Linux</primary><secondary>commands</secondary></indexterm> run from the \r
+       terminal without a Graphical User Interface (GUI).</para>\r
+       <para>In order to accomplish some of the tasks, prerequisite knowledge or experience will be required and you may need to consult system administration documentation for your \r
+       specific <systemitem class="osname">Linux</systemitem> distribution if you have limited <systemitem class="osname">Linux</systemitem> system experience. A vast ammount of free \r
+       resources can be found on the on the web for various experinece levels. You might also consider consulting <link xl:href="http://www.postgresql.org/docs/">\r
+       <application>PostgreSQL</application></link><indexterm><primary>databases</primary><secondary>PostgreSQL</secondary></indexterm> and \r
+       <link xl:href="http://httpd.apache.org/docs/"><application>Apache</application></link><indexterm><primary>Apache</primary></indexterm> documentation for a greater understanding \r
+       of the software stack on which <application>Evergreen</application> is built.</para>\r
+</partintro>\r
diff --git a/admin/admin-lsa.xml b/admin/admin-lsa.xml
new file mode 100644 (file)
index 0000000..30f33d6
--- /dev/null
@@ -0,0 +1,1417 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<chapter xml:id="lsa" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="EN"\r
+   xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink">\r
+   <info>\r
+      <title>Local Administration Menu</title>\r
+   </info>\r
+   <section>\r
+      <info>\r
+         <title>Overview</title>\r
+      </info>\r
+      <informalfigure>\r
+         <para>Many Evergreen configuration options are available under the <menuchoice>\r
+               <guimenu>Admin (-)</guimenu>\r
+               <guimenuitem>Local Administration</guimenuitem>\r
+            </menuchoice> rollover menu.</para>\r
+         <para>\r
+            <mediaobject>\r
+               <alt>screenshot of staff client</alt>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/lsa-1.png"/>\r
+               </imageobject>\r
+            </mediaobject>\r
+         </para>\r
+      </informalfigure>\r
+         <para>This menu is new in Evergreen 1.6 and provides shortcuts to settings also available\r
+            from the <guilabel>Local Administration</guilabel> page.</para>\r
+      <para>Either access point can be used, but examples in this manual use the more comprehensive\r
+            <guilabel>Local Administration</guilabel> rollover menu.</para>\r
+      <para>Items on this menu are visible to anyone logged into the staff client but usually\r
+         require special permissions to edit. The following table describes each of the menu options. </para>\r
+      <informaltable>\r
+         <tgroup cols="2" align="left" colsep="1" rowsep="1">\r
+               <colspec colnum="1" colname="menu" colwidth="1.0*"/>\r
+               <colspec colnum="2" colname="description" colwidth="3.0*"/>\r
+            <thead>\r
+               <row>\r
+                  <entry>Menu option</entry>\r
+                  <entry>Description</entry>\r
+               </row>\r
+            </thead>\r
+            <tbody>\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-receipt">Receipt Template Editor</link>\r
+                  </entry>\r
+                  <entry>Customize printed receipts (checkout receipts, hold slips, etc) for a\r
+                     single workstation</entry>     \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-font">Global Font and Sound Settings</link>\r
+                  </entry>\r
+                  <entry>Change font size and sound settings for a single workstation</entry>              \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-printer">Printer Settings Editor</link>\r
+                  </entry>\r
+                  <entry>Configure printer settings for a single workstation</entry>                \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-closed">Closed Dates Editor</link>\r
+                  </entry>\r
+                  <entry>Set library closure dates (affects due dates and fines)</entry>                \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-copy-locations">Copy Locations Editor</link>\r
+                  </entry>\r
+                  <entry>Create and edit copy locations, also known as shelving locations</entry>                \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-library-settings">Library Settings Editor</link>\r
+                  </entry>\r
+                  <entry>Detailed library configuration settings</entry>                 \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-noncat">Non-Catalogued Type Editor</link>\r
+                  </entry>\r
+                  <entry>Create and edit optional <guilabel>non-catalogued</guilabel> item\r
+                     types</entry>                 \r
+               </row>\r
+\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-statcat">Statistical Categories Editor</link>\r
+                  </entry>\r
+                  <entry>Create and manage optional categories for detailed patron/item\r
+                     information</entry>                  \r
+               </row>\r
+               <row>\r
+                  <entry>Standing Penalties</entry>\r
+                  <entry>\r
+                     <emphasis>admin settings</emphasis>\r
+                  </entry>                \r
+               </row>\r
+               <row xml:id="lsa-group-penalty-table-entry">\r
+                  <entry>\r
+                     <link linkend="lsa-group-penalty">Group Penalty Thresholds</link>\r
+                  </entry>\r
+                  <entry> Set library-specific thresholds for maximum items out, maximum overdues,\r
+                     and maximum fines </entry>                 \r
+               </row>\r
+               <row>\r
+                  <entry>Field Documentation</entry>\r
+                  <entry>\r
+                     <emphasis>admin settings</emphasis>\r
+                  </entry>                  \r
+               </row>\r
+               <row>\r
+                  <entry>Notifications / Action Triggers</entry>\r
+                  <entry>\r
+                     <emphasis>admin settings</emphasis>\r
+                  </entry>                 \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-survey">Surveys</link>\r
+                  </entry>\r
+                  <entry>Create patron surveys to be completed at patron registration</entry>                 \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                     Reports\r
+                  </entry>\r
+                  <entry>Generate reports on any field in the Evergreen database</entry>                  \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                     <link linkend="lsa-cash-reports">Cash Reports</link>\r
+                  </entry>\r
+                  <entry>View summary report of cash transactions for selected date range</entry>                  \r
+               </row>\r
+               <row>\r
+                  <entry>\r
+                       Transit List\r
+                  </entry>\r
+                  <entry>View items in transit to or from your library during selected date\r
+                     range</entry>              \r
+               </row>\r
+               <row>\r
+                  <entry>Circulation Policies</entry>\r
+                  <entry>\r
+                     <emphasis>admin settings</emphasis>\r
+                  </entry>  \r
+               </row>\r
+               <row>\r
+                  <entry>Hold Policies</entry>\r
+                  <entry>\r
+                     <emphasis>admin settings</emphasis>\r
+                  </entry>\r
+               </row>\r
+            </tbody>\r
+         </tgroup>\r
+      </informaltable>\r
+   </section>\r
+   <xi:include href="admin-receipt.xml"/>\r
+   <section xml:id="lsa-font">\r
+      <info>\r
+         <title>Global Font and Sound Settings</title>\r
+       <indexterm><primary>staff client</primary><secondary>fonts</secondary></indexterm>\r
+       \r
+      </info>\r
+      <para><guilabel>Global Font and Sound Settings</guilabel> apply to the current workstation\r
+         only. Use to turn staff client sounds on/off or to adjust the font size in the staff client\r
+         interface. These settings do not affect OPAC font sizes.</para>\r
+      <procedure>\r
+         <step>\r
+            <para>Select <menuchoice>\r
+                  <guimenu>Admin (-)</guimenu>\r
+                  <guisubmenu>Local Administration</guisubmenu>\r
+                  <guimenuitem>Global Font and Sound Settings</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+         <step>\r
+            <informalfigure>\r
+               <indexterm><primary>staff client</primary><secondary>sounds</secondary></indexterm>\r
+               <para>To turn off the system sounds, like the noise that happens when a patron with a\r
+                  block is retrieved check the <guilabel>disable sound</guilabel> box and click\r
+                     <guibutton>Save to Disk</guibutton>.  </para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata scalefit="0" fileref="../media/lsa-4.jpg"/>\r
+                     </imageobject>\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+         </step>\r
+         <step>\r
+            <informalfigure>\r
+               <para>To change the size of the font, pick the desired option and click\r
+                     <guibutton>Save to Disk</guibutton>.  </para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata scalefit="0" fileref="../media/lsa-5.jpg"/>\r
+                     </imageobject>\r
+\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+         </step>\r
+      </procedure>\r
+   </section>\r
+   <section xml:id="lsa-printer">\r
+      <info>\r
+         <title>Printer Settings Editor</title>\r
+       <indexterm><primary>staff client</primary><secondary>printer settings</secondary></indexterm>\r
+      </info>\r
+      <para>Use the <guilabel>Printer Settings Editor</guilabel> to configure printer output for\r
+         each workstation.</para>\r
+      <procedure>\r
+         <step>\r
+            <para>Select <menuchoice>\r
+                  <guimenu>Admin (-)</guimenu>\r
+                  <guisubmenu>Local Administration</guisubmenu>\r
+                  <guimenuitem>Printer Settings Editor</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+         <step>\r
+            <informalfigure>\r
+               <para>From this screen you can print a test page, or alter the page settings for your\r
+                  receipt printer.  </para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata width="100%" scalefit="1" fileref="../media/lsa-7.jpg"/>\r
+                     </imageobject>\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+         </step>\r
+         <step>\r
+            <informalfigure>\r
+               <para>Click on <guibutton>Page Settings</guibutton> to change printing format and\r
+                  option settings.  Click on the <guilabel>Margins &amp;\r
+                     Header/Footer</guilabel> tab to adjust </para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata scalefit="0" fileref="../media/lsa-8.jpg"/>\r
+                     </imageobject>\r
+\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+         </step>\r
+      </procedure>\r
+   </section>\r
+   <section xml:id="lsa-closed">\r
+      <info>\r
+         <title>Closed Dates Editor</title>\r
+       <indexterm><primary>closed dates editor</primary></indexterm>\r
+      </info>\r
+      <para>These dates are in addition to your regular weekly closed days (see <xref\r
+            linkend="server-hours"/>).    Both regular closed days and those entered in the\r
+            <guilabel>Closed Dates Editor</guilabel> affect due dates and fines:</para>\r
+      <itemizedlist>\r
+         <listitem>\r
+            <formalpara>\r
+               <title>Due dates</title>\r
+               <indexterm><primary>closed dates editor</primary><secondary>due dates</secondary></indexterm>\r
+               <para>Due dates that would fall on closed days are automatically pushed forward to\r
+                  the next open day. Likewise, if an item is checked out at 8pm, for example, and\r
+                  would normally be due on a day when the library closes before 8pm, Evergreen\r
+                  pushes the due date forward to the next open day.</para>\r
+            </formalpara>\r
+         </listitem>\r
+         <listitem>\r
+            <formalpara>\r
+               <title>Overdue fines</title>\r
+               <indexterm><primary>closed dates editor</primary><secondary>fines</secondary></indexterm>\r
+               <para>Overdue fines are not charged on days when the library is closed.</para>\r
+            </formalpara>\r
+         </listitem>\r
+      </itemizedlist>     \r
+      <simplesect>\r
+         <title>Multi-Day Closing</title>\r
+         <procedure>\r
+            <step>\r
+               <para>Select <menuchoice>\r
+                     <guimenu>Admin (-)</guimenu>\r
+                     <guisubmenu>Local Administration</guisubmenu>\r
+                     <guimenuitem>Closed Dates Editor</guimenuitem>\r
+                  </menuchoice>.</para>\r
+            </step>\r
+            <step xml:id="lsa-multi-day-select">\r
+               <informalfigure>\r
+                  <para>Select <guibutton>Add Multi-Date Closing</guibutton> if your closed dates\r
+                     are entire business days.</para>\r
+                  <para>\r
+                     <mediaobject>\r
+                        <alt>screenshot of staff client</alt>\r
+                        <imageobject>\r
+                           <imagedata scalefit="0" fileref="../media/lsa-10.jpg"/>\r
+                        </imageobject>\r
+                     </mediaobject>\r
+                  </para>\r
+               </informalfigure>\r
+            </step>\r
+            <step>\r
+               <informalfigure>\r
+                  <para>Enter applicable dates and a descriptive reason for the closing and click\r
+                        <guibutton>Save</guibutton>.  Check the <guilabel>Apply to all of my\r
+                        libraries</guilabel> box if your library is a multi-branch system and the\r
+                     closing applies to all of your branches.  </para>\r
+                  <para>\r
+                     <mediaobject>\r
+                        <alt>screenshot of staff client</alt>\r
+                        <imageobject>\r
+                           <imagedata scalefit="0" fileref="../media/lsa-11.jpg"/>\r
+                        </imageobject>\r
+\r
+                     </mediaobject>\r
+                  </para>\r
+               </informalfigure>\r
+            </step>\r
+         </procedure>\r
+         <tip>\r
+            <para>You can type dates into fields using YYYY-MM-DD format or use calendar widgets to\r
+               choose dates.</para>\r
+         </tip>\r
+      </simplesect>\r
+      <simplesect>\r
+         <title>Detailed Closing</title>\r
+         <informalfigure>\r
+            <para>If your closed dates include a portion of a business day, select Add Detailed\r
+               Closing at <xref linkend="lsa-multi-day-select"/>, then enter detailed hours and\r
+               dates and click <guibutton>Save</guibutton>. Time format must be HH:MM.</para>\r
+            <para>\r
+               <mediaobject>\r
+                  <alt>screenshot of staff client</alt>\r
+                  <imageobject>\r
+                     <imagedata scalefit="0" fileref="../media/lsa-12.jpg"/>\r
+                  </imageobject>\r
+\r
+               </mediaobject>\r
+            </para>\r
+         </informalfigure>\r
+      </simplesect>  \r
+   </section>\r
+   <section xml:id="lsa-copy-locations">\r
+      <info>\r
+         <title>Copy Locations Editor</title>\r
+       <indexterm><primary>copy locations editor</primary></indexterm>\r
+      </info>\r
+      <procedure>\r
+         <step>\r
+            <para>Select <menuchoice>\r
+                  <guimenu>Admin (-)</guimenu>\r
+                  <guisubmenu>Local Administration</guisubmenu>\r
+                  <guimenuitem>Copy Locations Editor</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+         <step>\r
+            <informalfigure>\r
+               <para>You can create new copy locations, or edit existing copy locations. To create a\r
+                  new shelving location type in the name, and select <guilabel>Yes</guilabel> or\r
+                     <guilabel>No</guilabel> for the various attributes: <guilabel>OPAC Visible,\r
+                     Holdable, Circulate,</guilabel> and <guilabel>Hold Verify</guilabel>.\r
+                     <guilabel>Holdable</guilabel> means a patron is able to place a hold on an item\r
+                  in this location; <guilabel>Hold Verify</guilabel> means staff will be prompted\r
+                  before an item is captured for a hold.  Finally click\r
+                     <guibutton>Create</guibutton>.</para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata scalefit="0" fileref="../media/lsa-14.jpg"/>\r
+                     </imageobject>\r
+\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+         </step>\r
+         <step>\r
+            <informalfigure>\r
+               <para>In the bottom part of the <guilabel>Copy Locations Editor</guilabel> you can\r
+                  edit or delete existing copy locations. You cannot delete a location that contains\r
+                  items. In this example the copy location <guilabel>Adult Videos</guilabel> is\r
+                  being edited.</para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata width="100%" scalefit="1" fileref="../media/lsa-16.jpg"/>\r
+                     </imageobject>\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+         </step>\r
+      </procedure>\r
+      <tip>\r
+         <para>There are also options in the <guilabel>Copy Editor</guilabel> for a copy to be\r
+               <guilabel>OPAC Visible</guilabel>-yes or no, <guilabel>Holdable</guilabel>-yes or no,\r
+            or <guilabel>Circulate</guilabel>-yes or no.  If either the copy record or the shelving\r
+            location is set to Circulate-no, then the item will not be able to circulate.</para>\r
+      </tip>\r
+      <informalfigure>\r
+         <para>This is where you see the shelving locations in the <guilabel>Copy\r
+            Editor</guilabel>:</para>\r
+\r
+         <para>\r
+            <mediaobject>\r
+               <alt>screenshot of staff client</alt>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/lsa-17.jpg"/>\r
+               </imageobject>\r
+            </mediaobject>\r
+         </para>\r
+      </informalfigure>\r
+      <para>This is where the shelving location appears in the OPAC.</para>\r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject>\r
+               <imagedata scalefit="0" fileref="../media/lsa-18.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para>\r
+   </section>\r
+   <section xml:id="lsa-library-settings">\r
+      <info>\r
+         <title>Library Settings Editor</title>\r
+       <indexterm><primary>library settings editor</primary></indexterm>\r
+      </info>\r
+      <para>With the <guilabel>Library Settings Editor</guilabel> Local System Admnistrators (LSAs)\r
+         can optionally customize Evergreen's behaviour for a particular library or library system.\r
+         For descriptions of available settings see the <link\r
+            linkend="lsa-library-settings-overview">Settings Overview</link> table below. \r
+       </para>\r
+      <para>To open the <guilabel>Library Settings Editor</guilabel> select <menuchoice>\r
+            <guimenu>Admin (-)</guimenu>\r
+            <guisubmenu>Local Adminstration</guisubmenu>\r
+            <guimenuitem>Library Settings Editor</guimenuitem>\r
+         </menuchoice>. </para>\r
+      <simplesect>\r
+         <title>Settings Overview</title>\r
+         <para>This table describes available settings and shows which LSAs can change on a\r
+            per-library basis. Below the table is a list of <link\r
+               linkend="lsa-library-settings-data">data types</link> with details about acceptable\r
+            settings values.</para>\r
+         <informaltable xml:id="lsa-library-settings-overview">\r
+            <tgroup cols="4" align="left" colsep="1" rowsep="1">\r
+               <colspec colnum="1" colname="setting" colwidth="2.0*"/>\r
+               <colspec colnum="2" colname="description" colwidth="3.0*"/>\r
+               <colspec colnum="3" colname="type" colwidth="1.0*"/>\r
+               <colspec colnum="4" colname="notes" colwidth="2.0*"/>\r
+               <thead>\r
+                  <row>\r
+                     <entry>Setting</entry>\r
+                     <entry>Description</entry>\r
+                     <entry>Data type</entry>\r
+                     <entry>Notes</entry>\r
+                  </row>\r
+               </thead>\r
+               <tbody>\r
+                  <row>\r
+                     <entry>Alert on empty bib records</entry>\r
+                     <entry>Alert staff before the last copy for a record is deleted</entry>\r
+                     <entry><link linkend="lsa-data-types">True/false</link></entry>\r
+                    <entry></entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Allow Credit Card Payments</entry>\r
+                     <entry>Not available</entry>\r
+                     <entry><link linkend="lsa-data-types">True/false</link></entry>  \r
+                     <entry></entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Change reshelving status interval</entry>\r
+                     <entry>Amount of time to wait before changing an item from “reshelving” status\r
+                        to “available”</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Duration</link>\r
+                     </entry>\r
+                     <entry></entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Charge item price when marked damaged </entry>\r
+                     <entry>If true Evergreen bills item price to the last patron who checked out\r
+                        the damaged item. Staff receive an alert with patron information and must\r
+                        confirm the billing.</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    <entry>\r
+                     </entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Charge processing fee for damaged items</entry>\r
+                     <entry>Optional processing fee billed to last patron who checked out the\r
+                        damaged item. Staff receive an alert with patron information and must\r
+                        confirm the billing.</entry>\r
+                     <entry><link linkend="lsa-data-types">Number</link> (dollars)</entry>\r
+                     <entry>Disabled when set to 0</entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Circ: Lost items usable on checkin</entry>\r
+                     <entry>Lost items are usable on checkin instead of going 'home' first</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                     <entry/>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Circ: Restore overdues on lost item return</entry>\r
+                     <entry>If true when a lost item is checked in overdue fines are charged (up to\r
+                        the maximum fines amount)</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Circ: Void lost item billing when returned</entry>\r
+                     <entry>If true,when a lost item is checked in the item replacement bill (item\r
+                        price) is voided. If the patron has already paid the bill a credit is\r
+                        applied.</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Circ: Void lost max interval</entry>\r
+                     <entry>Items that have been lost this long will not result in voided billings\r
+                        when returned. Only applies if <guilabel>Circ: Void lost item\r
+                           billing</guilabel> or <guilabel>Circ: Void processing fee on lost\r
+                           item</guilabel> are true.</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Duration</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Circ: Void processing fee on lost item return</entry>\r
+                     <entry>If true the processing fee is voided when a lost item is\r
+                        returned</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Default Item Price</entry>\r
+                     <entry>Replacement charge for lost items if price is unset in the <guilabel>\r
+                           <link linkend="add-editor">Copy Editor</link>\r
+                        </guilabel>. Does not apply if item price is set to $0</entry>\r
+                     <entry><link linkend="lsa-data-types">Number</link> (dollars)</entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Default locale</entry>\r
+                     <entry>Sets language used in staff client</entry>\r
+                     <entry><link linkend="lsa-data-types">Text</link> (dollars)</entry>\r
+                     \r
+                     <entry>Can be set for each workstation at login</entry>\r
+                  </row>\r
+\r
+                  <row xml:id="lsa-do-not-automatically-delete">\r
+                     <entry>Do not automatically delete empty bib records</entry>\r
+                     <entry>If false bib records (aka MARC records) will automatically be deleted\r
+                        when the last attached volume is deleted </entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                     \r
+                     <entry>Set to <emphasis>false</emphasis> to avoid orphaned bib records</entry>\r
+                  </row>\r
+\r
+                  <row xml:id="lsa-library-settings-button">\r
+                     <entry>GUI: Above-Tab Button Bar </entry>\r
+                     <entry>If true the staff client <link linkend="button-bar">button bar</link>\r
+                        appears by default on all workstations registered to your library; staff can\r
+                        override this setting at each login.</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row xml:id="lsa-library-settings-horizontal">\r
+                     <entry>GUI: Alternative Horizontal Patron Summary Panel</entry>\r
+                     <entry>If true replaces the vertical patron summary panel with a horizontal one\r
+                        on all workstations registered to your library</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>GUI: Network Activity Meter</entry>\r
+                     <entry>If true displays a progress bar when the staff client is sending or\r
+                        receiving information from the Evergreen server</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+                  <row>\r
+                     <entry>GUI: Patron display timeout interval</entry>\r
+                     <entry>Patron accounts opened in the staff client will close if inactive for\r
+                        this period of time</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Duration</link>\r
+                     </entry>\r
+                    \r
+                     <entry>Not functional in this version of Evergreen</entry>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Holds: Estimated Wait (Days) </entry>\r
+                     <entry>Average number of days between check out and check in, multiplied by a\r
+                        patron's position in the hold queue to estimate wait for holds</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Number</link>\r
+                     </entry>\r
+                     \r
+                     <entry>Not yet implemented</entry>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Holds: Expire Alert Interval</entry>\r
+                     <entry>Time before a hold expires at which to send an email notifying the\r
+                        patron</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Duration</link>\r
+                     </entry>\r
+                    \r
+                     <entry>Only applies if your library notifies patrons of expired holds. </entry>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Holds: Expire Interval</entry>\r
+                     <entry>Amount of time until an unfulfilled hold expires</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Duration</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Holds: Hard boundary</entry>\r
+                     <entry>Administrative setting</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Number</link>\r
+                     </entry>\r
+                     \r
+                     <entry/>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Holds: Soft boundary</entry>\r
+                     <entry>Administrative setting</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Number</link>\r
+                     </entry>\r
+                     \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Holds: Soft stalling interval</entry>\r
+                     <entry>Administrative setting</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Duration</link>\r
+                     </entry>\r
+                     \r
+                     <entry/>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Juvenile Age Threshold</entry>\r
+                     <entry>Upper cut-off age for patrons to be considered juvenile, calculated from\r
+                        date of birth in patron accounts</entry>\r
+                     <entry><link linkend="lsa-data-types">Duration</link> (years)</entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Lost Materials Processing Fee</entry>\r
+                     <entry>The amount charged in addition to item price when an item is marked los.\r
+                         </entry>\r
+                     <entry><link linkend="lsa-data-types">Number</link> (dollars)</entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Maximum previous checkouts displayed</entry>\r
+                     <entry>Number of previous circulations displayed in staff client</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Number</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+                  <row>\r
+                     <entry>OPAC Inactivity Timeout (in seconds)</entry>\r
+                     <entry>Number of seconds of inactivity before OPAC accounts are automatically\r
+                        logged out.</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Number</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>OPAC: Allow pending addresses</entry>\r
+                     <entry>If true patrons can edit their addresses in the OPAC. Changes must be\r
+                        approved by staff</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Password format</entry>\r
+                     <entry>Defines acceptable format for OPAC account passwords</entry>\r
+                     <entry> Regular expression </entry>\r
+                     \r
+                     <entry>Default requires that passwords "be at least 7 characters in length,\r
+                        contain at least one letter (a-z/A-Z), and contain at least one number.\r
+                        </entry>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Patron barcode format </entry>\r
+                     <entry>Defines acceptable format for patron barcodes</entry>\r
+                     <entry> Regular expression </entry>\r
+                     \r
+                     <entry></entry>\r
+                  </row>\r
+\r
+                  <row xml:id="library-settings-phone-password">\r
+                     <entry>Patron: password from phone #</entry>\r
+                     <entry>If true the last 4 digits of the patron's phone number is the password\r
+                        for new accounts (password must still be changed at first OPAC\r
+                        login)</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Selfcheck: Patron Login Timeout (in seconds)</entry>\r
+                     <entry>Administrative setting</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Number</link>\r
+                     </entry>\r
+                     \r
+                     <entry>Not for SIP connections</entry>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Selfcheck: Pop-up alert for errors</entry>\r
+                     <entry>Administrative setting</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                     \r
+                     <entry>Not for SIP connections</entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Selfcheck: Require patron password</entry>\r
+                     <entry>Administrative setting</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                     \r
+                     <entry>Not for SIP connections</entry>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Sending email address for patron notices</entry>\r
+                     <entry>This email address is for automatically generated patron notices (e.g.\r
+                        email overdues, email holds notification).  It is good practice to set up a\r
+                        generic account, like info@nameofyourlibrary.ca, so that one person’s\r
+                        individual email inbox doesn’t get cluttered with emails that were not\r
+                        delivered.</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Text</link>\r
+                     </entry>\r
+                    \r
+                     <entry/>\r
+                  </row>\r
+\r
+                  <row xml:id="lsa-show-billing-tab-first">\r
+                     <entry>Show billing tab first when bills are present</entry>\r
+                     <entry>If true, accounts for patrons with bills will open to the billing tab\r
+                        instead of check out</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                     <entry></entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Staff Login Inactivity Timeout (in seconds)</entry>\r
+                     <entry>Number of seconds of inactivity before staff client prompts for login\r
+                        and password.</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">Number</link>\r
+                     </entry>\r
+                    <entry>\r
+                     </entry>\r
+                  </row>\r
+\r
+                  <row>\r
+                     <entry>Void overdue fines when items are marked lost</entry>\r
+                     <entry>If true overdue fines are voided when an item is marked lost</entry>\r
+                     <entry>\r
+                        <link linkend="lsa-data-types">True/false</link>\r
+                     </entry>\r
+                    <entry>\r
+                     </entry>\r
+                  </row>\r
+\r
+               </tbody>\r
+            </tgroup>\r
+         </informaltable>\r
+\r
+\r
+         <para xml:id="lsa-library-settings-data">Acceptable formats for each setting type are\r
+            listed below. Quotation marks are never required when updating settings in the staff\r
+            client.</para>\r
+\r
+\r
+         <informaltable xml:id="lsa-data-types">\r
+\r
+            <tgroup cols="2" align="left" colsep="1" rowsep="1">\r
+               <colspec colnum="1" colname="type" colwidth="1.0*"/>\r
+               <colspec colnum="2" colname="formatting" colwidth="5.0*"/>\r
+             \r
+\r
+               <thead>\r
+                  <row>\r
+                     <entry>Data type</entry>\r
+                     <entry>Formatting</entry>\r
+                  </row>\r
+               </thead>\r
+\r
+\r
+\r
+               <tbody>\r
+                  <row>\r
+                     <entry>True/false</entry>\r
+                     <entry>Select value from drop-down menu</entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Number</entry>\r
+                     <entry>Enter a numerical value (decimals allowed in price settings)</entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Duration</entry>\r
+                     <entry>Enter a number followed by a space and any of the following units:\r
+                        minutes, hours, days, months (30 minutes, 2 days, etc)</entry>\r
+                  </row>\r
+                  <row>\r
+                     <entry>Text</entry>\r
+                     <entry>Free text</entry>\r
+                  </row>\r
+\r
+\r
+               </tbody>\r
+            </tgroup>\r
+         </informaltable>\r
+\r
+\r
+      </simplesect>\r
+\r
+\r
+\r
+   </section>\r
+   <section xml:id="lsa-noncat">\r
+      <info>\r
+         <title>Non-Catalogued Type Editor </title>\r
+       <indexterm><primary>non-catalogued type editor</primary></indexterm>\r
+      </info>\r
+\r
+      <para>This is where you configure your non-catalogued types that appear in the dropdown menu\r
+         for non-catalogued circulations. </para>\r
+\r
+      <procedure>\r
+         <step>\r
+\r
+            <para>Select <menuchoice>\r
+                  <guimenu>Admin (-)</guimenu>\r
+                  <guisubmenu>Local Administration</guisubmenu>\r
+                  <guimenuitem>Non Catalogued Type Editor</guimenuitem>\r
+               </menuchoice>.</para>\r
+\r
+\r
+         </step>\r
+\r
+         <step>\r
+            <informalfigure>\r
+               <para>To set up a new non-catalogued type, type the name in the left hand box, and\r
+                  choose how many days the item will circulate for.  Click\r
+                     <guibutton>Create</guibutton>.</para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata scalefit="0" fileref="../media/lsa-22.png"/>\r
+                     </imageobject>\r
+\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+            <para>Select the <guilabel>Circulate In-House</guilabel> box for non-catalogued items\r
+               that will circulate in house.  This can be used to manually track computer use, or\r
+               meeting room rentals.  </para>\r
+         </step>\r
+      </procedure>\r
+\r
+\r
+\r
+\r
+      <informalfigure>\r
+         <para>This is what the dropdown menu for non-catalogued circulations in the patron checkout\r
+            screen looks like:</para>\r
+\r
+         <para>\r
+            <mediaobject>\r
+               <alt>screenshot of staff client</alt>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/lsa-23.jpg"/>\r
+               </imageobject>\r
+\r
+            </mediaobject>\r
+         </para>\r
+      </informalfigure>\r
+   </section>\r
+   <section xml:id="lsa-group-penalty">\r
+      <info>\r
+         <title>Group Penalty Thresholds</title>\r
+       <indexterm><primary>group penalty thresholds</primary></indexterm>\r
+      </info>\r
+         <para>Group Penalty Thresholds block circulation transactions for users who exceed maximum\r
+            check out limits, number of overdue items, or fines. Settings for your library are\r
+            visible under <menuchoice>\r
+               <guimenu>Admin (-)</guimenu>\r
+               <guisubmenu>Local Administration</guisubmenu>\r
+               <guimenuitem>Group Penalty Thresholds</guimenuitem>\r
+            </menuchoice>. </para>\r
+\r
+\r
+      <informaltable>\r
+\r
+         <tgroup cols="2" align="left" colsep="1" rowsep="1">\r
+               <colspec colnum="1" colname="penalty" colwidth="1.0*"/>\r
+               <colspec colnum="2" colname="effect" colwidth="1.0*"/>\r
+\r
+            <thead>\r
+               <row>\r
+                  <entry>Penalty</entry>\r
+                  <entry>Effect</entry>\r
+\r
+               </row>\r
+            </thead>\r
+\r
+            <tbody>\r
+\r
+               <row>\r
+                  <entry>PATRON_EXCEEDS_FINES</entry>\r
+\r
+                  <entry>Blocks new circulations and renewals if patron exceeds X in fines </entry>\r
+\r
+               </row>\r
+               <row>\r
+                  <entry>PATRON_EXCEEDS_OVERDUE_COUNT</entry>\r
+\r
+                  <entry>Blocks new circulations and renewals if patron exceeds X overdue items </entry>\r
+\r
+               </row>\r
+\r
+               <row>\r
+                  <entry>PATRON_EXCEEDS_CHECKOUT_COUNT</entry>\r
+\r
+                  <entry>Blocks new circulations if patron exceeds X items out </entry>\r
+\r
+               </row>\r
+            </tbody>\r
+         </tgroup>\r
+\r
+      </informaltable>\r
+\r
+\r
+\r
+\r
+      <informalfigure>\r
+         <para>Accounts that exceed penalty thresholds display an alert message when opened and\r
+            require staff overrides for blocked transactions.</para>\r
+         <para>\r
+            <mediaobject>\r
+               <alt>patron account with circulation blocks</alt>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/lsa-group-1.png"/>\r
+               </imageobject>\r
+\r
+\r
+            </mediaobject>\r
+         </para>\r
+\r
+      </informalfigure>\r
+\r
+\r
+      <simplesect xml:id="lsa-group-inheritance">\r
+         <title>Penalty threshold inheritance rules</title>\r
+\r
+         <informalfigure>\r
+            <para>Local penalty thresholds are identified by <guilabel>Org Unit</guilabel> and\r
+               appear in the same table as the system wide defaults.</para>\r
+\r
+            <para>\r
+               <mediaobject>\r
+                  <alt>group penalty threshold table</alt>\r
+                  <imageobject>\r
+                     <imagedata scalefit="0" fileref="../media/lsa-group-1a.png"/>\r
+                  </imageobject>\r
+\r
+               </mediaobject>\r
+            </para>\r
+         </informalfigure>\r
+\r
+         <para>Where there is more than one threshold for the same penalty Evergreen gives\r
+            precedence to local settings. In this example Salt Spring Island Public Library (BGSI)\r
+            patrons are blocked when owing $5.00 in fines (<inlinemediaobject>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/2.png"/>\r
+               </imageobject>\r
+            </inlinemediaobject>) instead of the system default(<inlinemediaobject>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/1.png"/>\r
+               </imageobject>\r
+            </inlinemediaobject>). </para>\r
+\r
+         <para>Thresholds <inlinemediaobject>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/3.png"/>\r
+               </imageobject>\r
+            </inlinemediaobject> and <inlinemediaobject>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/4.png"/>\r
+               </imageobject>\r
+            </inlinemediaobject> are both for BGSI but apply to different user profile groups.\r
+            Threshold <inlinemediaobject>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/3.png"/>\r
+               </imageobject>\r
+            </inlinemediaobject> limits all patrons to a maximum of 12 items out, but <inlinemediaobject>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/4.png"/>\r
+               </imageobject>\r
+            </inlinemediaobject> provides an exception for the <guilabel>Board</guilabel>\r
+            profile.</para>\r
+\r
+\r
+         <tip>\r
+            <para>Multi-branch libraries may create rules for the entire library system or for\r
+               individual branches. Evergreen will use the most specific applicable rule.</para>\r
+         </tip>\r
+\r
+\r
+\r
+      </simplesect>\r
+\r
+      <simplesect xml:id="lsa-group-create">\r
+         <title>Creating local penalty thresholds</title>\r
+       <indexterm><primary>group penalty thresholds</primary><secondary>creating local penalty thresholds</secondary></indexterm>\r
+         <para>Local System Administrators can override the system defaults by creating local penalty\r
+            thresholds for selected patron groups.</para>\r
+\r
+         <procedure>\r
+            <step>\r
+               <para>Select <menuchoice>\r
+                     <guimenu>Admin (-)</guimenu>\r
+                     <guisubmenu>Local Administration</guisubmenu>\r
+                     <guimenuitem>Group Penalty Thresholds</guimenuitem>\r
+                  </menuchoice>.</para>\r
+\r
+\r
+            </step>\r
+\r
+            <step>\r
+               <informalfigure>\r
+                  <para>Click <guibutton>New Penalty Threshold</guibutton>. </para>\r
+                  <para>\r
+                     <mediaobject>\r
+                        <alt>group penalty threshold interface</alt>\r
+                        <imageobject>\r
+                           <imagedata scalefit="0" fileref="../media/lsa-group-2.png"/>\r
+                        </imageobject>\r
+\r
+\r
+                     </mediaobject>\r
+                  </para>\r
+               </informalfigure>\r
+            </step>\r
+\r
+            <step>\r
+               <informalfigure>\r
+                  <para>The new penalty pop-up appears. Complete all fields and click\r
+                        <guibutton>Save</guibutton>. </para>\r
+                  <para>\r
+                     <mediaobject>\r
+                        <alt>new penalty threshold form</alt>\r
+                        <imageobject>\r
+                           <imagedata scalefit="0" fileref="../media/lsa-group-3.png"/>\r
+                        </imageobject>\r
+\r
+\r
+                     </mediaobject>\r
+                  </para>\r
+                  <para>\r
+                     <inlinemediaobject>\r
+                        <imageobject>\r
+                           <imagedata scalefit="0" fileref="../media/1.png"/>\r
+                        </imageobject>\r
+                     </inlinemediaobject>\r
+                     <guilabel> Group</guilabel> - the profile group to which the rule applies.\r
+                     Selecting <guilabel>Patrons</guilabel> includes all profiles below it in the\r
+                     user hierarchy.</para>\r
+\r
+\r
+                  <para>\r
+                     <inlinemediaobject>\r
+                        <imageobject>\r
+                           <imagedata scalefit="0" fileref="../media/2.png"/>\r
+                        </imageobject>\r
+                     </inlinemediaobject>\r
+                     <guilabel> Org Unit</guilabel> - multi-branch libraries may create rules for\r
+                     individual branches or the entire library system.</para>\r
+\r
+\r
+                  <para>\r
+                     <inlinemediaobject>\r
+                        <imageobject>\r
+                           <imagedata scalefit="0" fileref="../media/3.png"/>\r
+                        </imageobject>\r
+                     </inlinemediaobject>\r
+                     <guilabel> Penalty</guilabel> - select\r
+                        <guilabel>PATRON_EXCEEDS_CHECKOUT_COUNT</guilabel>,\r
+                        <guilabel>PATRON_EXCEEDS_OVERDUE_COUNT</guilabel>, or\r
+                        <guilabel>PATRON_EXCEEDS_FINES</guilabel></para>\r
+               </informalfigure>\r
+            </step>\r
+\r
+            <step>\r
+               <informalfigure>\r
+                  <para>After clicking <guibutton>Save</guibutton> the new threshold appears with\r
+                     the defaults. Evergreen always gives precedence to local settings (in\r
+                     this example, BSP). </para>\r
+                  <para>\r
+                     <mediaobject>\r
+                        <alt>group penalty threshold interface</alt>\r
+                        <imageobject>\r
+                           <imagedata scalefit="0" fileref="../media/lsa-group-4.png"/>\r
+                        </imageobject>\r
+                     </mediaobject>\r
+                  </para>\r
+               </informalfigure>\r
+            </step>\r
+         </procedure>\r
+      </simplesect>\r
+      <simplesect>\r
+         <title>Deleting or editing local penalty thresholds</title>\r
+       <informalfigure>\r
+            <para>To delete a local threshold select the row to remove and click <guibutton>Delete\r
+                  Selected</guibutton>. The threshold is removed immediately without further\r
+               confirmation.</para>\r
+            <para>\r
+               <mediaobject>\r
+                  <alt>screenshot of staff client</alt>\r
+                  <imageobject>\r
+                     <imagedata scalefit="0" fileref="../media/lsa-group-5.png"/>\r
+                  </imageobject>\r
+               </mediaobject>\r
+            </para>\r
+         </informalfigure>\r
+         <informalfigure>\r
+            <para>To edit a local threshold, double-click the desired row to open the pop-up form.\r
+               Edit the form and click <guibutton>Save</guibutton>. New settings take effect\r
+               immediately.</para>\r
+            <para>\r
+               <mediaobject>\r
+                  <alt>screenshot of staff client</alt>\r
+                  <imageobject>\r
+                     <imagedata scalefit="0" fileref="../media/lsa-group-6.png"/>\r
+                  </imageobject>\r
+               </mediaobject>\r
+            </para>\r
+         </informalfigure>\r
+     </simplesect>\r
+   </section>\r
+   <section xml:id="lsa-statcat">\r
+      <info>\r
+         <title>Statistical Categories Editor</title>\r
+       <indexterm><primary>statistical categories editor</primary></indexterm>\r
+      </info>\r
+      <para>This is where you configure your statistical categories (stat cats).  Stat cats are a\r
+         way to save and report on additional information that doesn’t fit elsewhere in Evergreen's\r
+         default records.  It is possible to have stat cats for copies or patrons.  </para>\r
+\r
+      <procedure>\r
+         <step>\r
+            <para>Select <menuchoice>\r
+                  <guimenu>Admin (-)</guimenu>\r
+                  <guisubmenu>Local Administration</guisubmenu>\r
+                  <guimenuitem>Statistical Categories Editor</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+         <step>\r
+            <informalfigure>\r
+               <para>To create a new stat cat, enter the name of the stat cat, select if you want\r
+                     <guilabel>OPAC Visiblity</guilabel>, and select either\r
+                     <guimenuitem>patron</guimenuitem> or <guimenuitem>copy</guimenuitem> from the\r
+                     <guimenu>Type</guimenu> dropdown menu.  </para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata width="100%" scalefit="1" fileref="../media/lsa-25.jpg"/>\r
+                     </imageobject>\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+         </step>\r
+      </procedure>\r
+      <formalpara>\r
+         <title>Copy Stat Cats</title>\r
+       <indexterm><primary>copy stat cats</primary></indexterm>\r
+         <para>The image above shows some examples of copy stat cats. You would see these when\r
+            editing items in the <guilabel>Copy Editor</guilabel>, also known as the <guilabel>Edit\r
+               Item Attributes</guilabel> screen. You might use copy stat cats to track books you\r
+            have bought from a specific vendor, or donations. </para>\r
+      </formalpara>\r
+\r
+      <informalfigure>\r
+         <para>This is what the copy stat cat looks like in the <guilabel>Copy\r
+            Editor</guilabel>.</para>\r
+         <para>\r
+            <mediaobject>\r
+               <alt>screenshot of staff client</alt>\r
+               <imageobject>\r
+                  <imagedata width="100%" scalefit="1" fileref="../media/lsa-26.jpg"/>\r
+               </imageobject>\r
+\r
+            </mediaobject>\r
+         </para>\r
+      </informalfigure>\r
+      <informalfigure>\r
+         <formalpara>\r
+            <title>Patron stat cats</title>\r
+               <indexterm><primary>patron stat cats</primary></indexterm>\r
+            <para>Below are some examples of patron stat cats.  Patron stat cats can be used to keep\r
+               track of information like the high school a patron attends, or the home library for a\r
+               consortium patron, e.g. Interlink. You would see these in the fifth screen of patron\r
+               registration/edit patron.  </para>\r
+         </formalpara>\r
+         <para>\r
+            <mediaobject>\r
+               <alt>screenshot of staff client</alt>\r
+               <imageobject>\r
+                  <imagedata width="100%" scalefit="1" fileref="../media/lsa-27.jpg"/>\r
+               </imageobject>\r
+            </mediaobject>\r
+         </para>\r
+      </informalfigure>\r
+      <informalfigure>\r
+         <para>This is what the patron stat cat looks like in the patron registration screen.  It\r
+            looks very similar in the patron edit screen.</para>\r
+         <para>\r
+            <mediaobject>\r
+               <alt>screenshot of staff client</alt>\r
+               <imageobject>\r
+                  <imagedata scalefit="0" fileref="../media/lsa-28.jpg"/>\r
+               </imageobject>\r
+            </mediaobject>\r
+         </para>\r
+      </informalfigure>\r
+   </section>\r
+  <section xml:id="fielddocumentation">\r
+       <title>Field Documentation</title>\r
+       <para>Field Documentation is custom field-level documentation that explains individual fields for\r
+       library staff.  As of 2.0, the field documentation only is used in the Patron Registration screen.</para>\r
+       <simplesect>\r
+               <title>Administering Field Documentation</title>\r
+               <indexterm><primary>field documentation</primary><secondary>administering field documentation</secondary></indexterm>\r
+             <para>If their permission settings allow, staff members can create local field documentation.  This\r
+             requires the ADMIN_FIELD_DOC permission.  The 'depth' at which that permission is applied, is the maximum\r
+             level of the org tree at which the staff member will be able to create field documentation.</para>\r
+             <procedure>\r
+                <step>\r
+                   <para>In the staff client, select <menuchoice>\r
+                         <guimenu>Admin</guimenu>\r
+                         <guimenuitem>Local Administration</guimenuitem>\r
+                         <guimenuitem>Field Documentation</guimenuitem>\r
+                      </menuchoice></para>\r
+                </step>\r
+                 <step>\r
+                     <para>Click the <guibutton>New</guibutton> button.</para>\r
+                 </step>\r
+                 <step>\r
+                   <para>Using the <guilabel>fm_class</guilabel> selector, select the database table for which you wish to create Field Documentation.  This will show all of the \r
+               existing Field Documentation for that table.</para>\r
+                   <note><para>As of Evergreen 2.0, only the ILS User table is used anywhere in the Evergreen UI</para></note>\r
+                </step>\r
+                 <step>\r
+                     <para>Using the <guilabel>owner</guilabel> selector, select the topmost org unit at which you would like the field documentation to be available.</para>\r
+                 </step>\r
+                 <step>\r
+                     <para>Using the <guilabel>field</guilabel> selector, select the field you wish to document.</para>\r
+                 </step>          \r
+                 <step>\r
+                     <para>Enter your actual documentation in the <guilabel>string</guilabel> text box.</para>\r
+                 </step>          \r
+                 <step>\r
+                     <para>Click <guibutton>Save</guibutton> to save your Field Documentation entry</para>\r
+                 </step>\r
+             </procedure>\r
+             <note>\r
+                <para>To view field documentation for different tables, use the <guilabel>Class</guilabel> selector to filter the Field Documentation list</para>\r
+             </note>\r
+       </simplesect>\r
+       <simplesect>\r
+           <title>Patron Field Documentation</title>\r
+           <indexterm><primary>field documentation</primary><secondary>patron field documentation</secondary></indexterm>\r
+           <para>On the patron registration screen there are small boxes along the left hand side.  If a magnifying glass appears, you may click that magnifying \r
+               glass to retrieve the Field Documentation for that patron field.</para>\r
+       </simplesect>\r
+</section>\r
+<xi:include href="admin-survey.xml"/>\r
+   <section xml:id="lsa-cash-reports">\r
+      <info>\r
+         <title>Cash Reports</title>\r
+       <indexterm><primary>cash reports</primary></indexterm>\r
+      </info>\r
+      <procedure>\r
+         <step>\r
+\r
+            <para>Select <menuchoice>\r
+                  <guimenu>Admin (-)</guimenu>\r
+                  <guisubmenu>Local Administration</guisubmenu>\r
+                  <guimenuitem>Cash Reports</guimenuitem>\r
+               </menuchoice>.</para>\r
+         </step>\r
+         <step>\r
+            <informalfigure>\r
+               <para>Select the start date and the end date that you wish to run a cash report for.\r
+                   You can either enter the date in the YYYY-MM-DD format, or click on the calendar\r
+                  icon to use the calendar widget.  </para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata scalefit="0" fileref="../media/lsa-32.jpg"/>\r
+                     </imageobject>\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+         </step>\r
+         <step>\r
+            <para>Select your library from the drop down menu.  Click <guibutton>Go</guibutton>.\r
+                </para>\r
+         </step>\r
+         <step>\r
+            <informalfigure>\r
+               <para>The output will show cash, check, and credit card payments.  It will also show\r
+                  amounts for credits, forgiven payments, work payments and goods payments (i.e.\r
+                  food for fines initiatives).  The output will look something like this:</para>\r
+               <para>\r
+                  <mediaobject>\r
+                     <alt>screenshot of staff client</alt>\r
+                     <imageobject>\r
+                        <imagedata width="100%" scalefit="1" fileref="../media/lsa-33.jpg"/>\r
+                     </imageobject>\r
+\r
+                  </mediaobject>\r
+               </para>\r
+            </informalfigure>\r
+         </step>\r
+      </procedure>\r
+      <tip>\r
+         <para>By clicking on the hyperlinked column headers (i.e. <guilabel>workstation</guilabel>,\r
+               <guilabel>cash_payment</guilabel>, <guilabel>check_payment</guilabel>, etc.) it is\r
+            possible to sort the columns to order the payments from smallest to largest, or largest\r
+            to smallest, or to group the workstation names.  </para>\r
+      </tip>\r
+   </section>\r
+</chapter>\r
diff --git a/admin/admin-receipt.xml b/admin/admin-receipt.xml
new file mode 100644 (file)
index 0000000..4c4b843
--- /dev/null
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<section xml:id="lsa-receipt" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="EN"\r
+   xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink">\r
+\r
+   <info>\r
+      <title>Receipt Template Editor</title>\r
+       <indexterm><primary>receipt template editor</primary></indexterm>\r
+   </info>\r
+\r
+   <para>This tip sheet will show you how to customize your receipts.  This example will walk you\r
+      through how to customize the receipt that is printed on checkout.  </para>\r
+\r
+   <para>Receipt templates are saved on the workstation, but it is possible to export the templates\r
+      to import to other workstations.  </para>\r
+\r
+<procedure>\r
+\r
+   <step>\r
+               <para>Select <menuchoice><guimenu>Admin (-)</guimenu><guisubmenu>Local Administration</guisubmenu><guimenuitem>Receipt Template Editor</guimenuitem></menuchoice>.  </para>\r
+   </step>\r
+\r
+\r
+   <step>\r
+     \r
+         <para>Select the <guimenuitem>checkout</guimenuitem> template from the dropdown menu.\r
+             </para>\r
+   </step>\r
+\r
+\r
+   <step>\r
+         <para>You can edit the <guilabel>Header</guilabel>, <guilabel>Line\r
+               Item</guilabel> or <guilabel>Footer</guilabel> on the right hand side.  </para>  \r
+   </step>\r
+\r
+  \r
+        <step><para>In the upper right hand corner you can see the available macros by clicking on the\r
+               <guibutton>Macros</guibutton> button.  A macro prints a real value from the database.\r
+            The macros that are available\r
+            vary slightly between types of receipt templates (i.e. bills, holds, items). </para>\r
+    </step>\r
+\r
+   \r
+       <step><informalfigure>  <para>Here are the available macros for an item receipt, like a checkout receipt.  </para>\r
+       <para>\r
+      <mediaobject>\r
+         <alt>screenshot of staff client</alt>\r
+         <imageobject role="html">\r
+            <imagedata scalefit="0" fileref="../media/receipt-5.jpg"/>\r
+         </imageobject>\r
+         <imageobject role="fo">\r
+            <imagedata scale="80" fileref="../media/receipt-5.jpg"/>\r
+         </imageobject>\r
+      </mediaobject>\r
+   </para></informalfigure></step>\r
+   \r
+  </procedure>\r
+   \r
+   <simplesect>\r
+      <info>\r
+         <title>Adding an image</title>\r
+      </info>\r
+\r
+<procedure>    \r
+           <step><para>You can edit the <guilabel>Header</guilabel> to have an image.  This is the default checkout <guilabel>Header</guilabel>.\r
+                </para>\r
+     </step>\r
+\r
+     \r
+            <step><para>Using HTML tags you can insert a link to an image that exists on the web.  The\r
+               link will end in <emphasis>.jpg</emphasis> or possibly <emphasis>.gif</emphasis>.  To\r
+               get this link you can right click on the image and choose <guimenuitem>Copy Image\r
+                  Location</guimenuitem> (<application>Firefox</application>).  </para>\r
+        \r
+<para>If you are using <application>Internet Explorer</application> right click and select <guimenuitem>Save Picture\r
+            As…</guimenuitem>\r
+      </para>\r
+\r
+  </step>\r
+\r
+           <step> <para>Enter the URL of the\r
+               link for the image that you just copied off a website. </para>\r
+         \r
+<para>By clicking outside the <guilabel>Header</guilabel> box the <guilabel>Preview</guilabel> will update to reflect the edit you just\r
+         made.  </para>\r
+\r
+      </step>\r
+  \r
+           <step><para>If the image runs into the text, add a &lt;br/&gt; after the\r
+               image to add a line break.</para>\r
+     </step></procedure>   \r
+      <tip><para>You may use most HTML tags.  See <link xlink:title="http://www.w3schools.com/html/" xlink:href="http://www.w3schools.com/html/">http://www.w3schools.com/html/</link> for more information on HTML tags.  </para></tip>\r
+   </simplesect>\r
+   <simplesect>\r
+      <info>\r
+         <title>Line Item</title>\r
+      </info>\r
+\r
+          <informalfigure>  <para>This is what the default <guilabel>Line Item</guilabel> looks like:</para>\r
+        \r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="1" fileref="../media/receipt-11.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scalefit="1" width="100%" contentdepth="100%"\r
+                  fileref="../media/receipt-11.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure>\r
+\r
+      <para>In this example, the macro %barcode% prints the item barcodes of the books that were\r
+         checked out.  The macro %due_date% prints the due date for each item that was checked out.\r
+          </para>\r
+\r
+      <para>In this example, we will not make any changes to the <guilabel>Line Item</guilabel></para>\r
+\r
+      \r
+     <note> <para>The due date can only be printed in the YYYY-MM-DD format. </para></note>\r
+\r
+   </simplesect>\r
+   <simplesect>\r
+      <info>\r
+         <title>Editing the footer</title>\r
+      </info>\r
+\r
+     \r
+<procedure>          <step><informalfigure>  <para>This is what the default <guilabel>Footer</guilabel> looks like:</para>\r
+        \r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="1" fileref="../media/receipt-12.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scalefit="1" width="100%" contentdepth="100%"\r
+                  fileref="../media/receipt-12.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure></step>\r
+\r
+     \r
+            <step><informalfigure><para>Remove the “You were helped by %STAFF_FIRSTNAME% &lt;br/&gt;”.  As many\r
+               libraries use a generic circulation login on the circulation desk, the “You were\r
+               helped by…” note isn’t meaningful.  </para>\r
+        \r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="1" fileref="../media/receipt-13.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scalefit="1" width="100%" contentdepth="100%"\r
+                  fileref="../media/receipt-13.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure></step>\r
+\r
+          <step><informalfigure>  <para>Once you have the checkout template how you want it, click <guibutton>Save Locally</guibutton> to save\r
+               the template to your computer.  </para>\r
+       \r
+\r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject>\r
+               <imagedata scalefit="0" fileref="../media/receipt-15.jpg"/>\r
+            </imageobject>\r
+            \r
+         </mediaobject>\r
+      </para></informalfigure></step>\r
+\r
+     \r
+            <step><informalfigure><para>Click OK.</para>\r
+       \r
+\r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="0" fileref="../media/receipt-16.png"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scale="80" fileref="../media/receipt-16.png"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure></step></procedure>\r
+      \r
+     <tip> <para>The footer is a good place to advertise upcoming library programs or events.  </para></tip>\r
+      \r
+   </simplesect>\r
+   <simplesect>\r
+      <info>\r
+         <title>Exporting templates</title>\r
+      </info>\r
+\r
+      <para>As you can only save a template on to the computer you are working on you will need to\r
+         export the template if you have more than one computer that prints out receipts (i.e., more\r
+         than one computer on the circulation desk, or another computer in the workroom that you use\r
+         to checkin items or capture holds with).</para>\r
+\r
+      \r
+<procedure>           <step><informalfigure> <para>Click on <guilabel>Export</guilabel>.  </para>\r
+        \r
+\r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="0" fileref="../media/receipt-17.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scale="80" fileref="../media/receipt-17.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para>\r
+</informalfigure></step>\r
+     \r
+     \r
+     \r
+            <step><informalfigure><para>Select the location to save the template to, name the template, and click <guibutton>Save</guibutton>.\r
+                </para>\r
+              <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="0" fileref="../media/receipt-18.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scale="80" fileref="../media/receipt-18.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para>\r
+</informalfigure></step>\r
+      \r
+      \r
+      \r
+            <step><informalfigure><para>Click <guibutton>OK</guibutton>.  </para>\r
+               <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="0" fileref="../media/receipt-19.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scale="80" fileref="../media/receipt-19.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure></step></procedure>\r
+\r
+   </simplesect>\r
+   <simplesect>\r
+      <info>\r
+         <title>Importing Templates</title>\r
+      </info>\r
+<procedure>\r
+     \r
+           <step><informalfigure> <para>Click <guibutton>Import</guibutton>.</para>\r
+        \r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="0" fileref="../media/receipt-20.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scale="80" fileref="../media/receipt-20.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure></step>\r
+\r
+      \r
+            <step><informalfigure><para>Navigate to and select the template that you want to import.  Click <guibutton>Open</guibutton>. </para>\r
+        \r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="0" fileref="../media/receipt-21.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scale="80" fileref="../media/receipt-21.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure></step>\r
+\r
+      \r
+         <step><informalfigure>   <para>Click <guibutton>OK</guibutton>.</para>\r
+        \r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="0" fileref="../media/receipt-22.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scale="80" fileref="../media/receipt-22.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure></step>\r
+\r
+    \r
+    \r
+            <step><informalfigure><para>Click <guibutton>Save Locally</guibutton>.</para>\r
+             <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="0" fileref="../media/receipt-23.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scale="80" fileref="../media/receipt-23.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure></step>\r
+\r
+    \r
+            <step><informalfigure><para>Click <guibutton>OK</guibutton>.</para>\r
+        \r
+\r
+      <para>\r
+         <mediaobject>\r
+            <alt>screenshot of staff client</alt>\r
+            <imageobject role="html">\r
+               <imagedata scalefit="0" fileref="../media/receipt-24.jpg"/>\r
+            </imageobject>\r
+            <imageobject role="fo">\r
+               <imagedata scale="80" fileref="../media/receipt-24.jpg"/>\r
+            </imageobject>\r
+         </mediaobject>\r
+      </para></informalfigure></step></procedure>\r
+   </simplesect>\r
+</section>\r
diff --git a/admin/admin-survey.xml b/admin/admin-survey.xml
new file mode 100644 (file)
index 0000000..b84e95c
--- /dev/null
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<section xml:id="lsa-survey" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="EN"\r
+    xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink">\r
+    <info>\r
+        <title>Surveys</title>\r
+       <indexterm><primary>surveys</primary></indexterm>\r
+    </info>\r
+    <para>This section illustrates how to create a survey, shows where the survey responses are saved\r
+        in the patron record, and explains how to report on surveys.</para>\r
+\r
+    <para>Survey questions show up on the 6th patron registration screen, or on the 6th patron edit\r
+        screen. Surveys questions can be optional or required. Some examples of survey questions\r
+        might include: <emphasis>Would you use the library if it were open on a Sunday?</emphasis> \r
+            <emphasis>Would you like to be contacted by the library to learn about new\r
+            services?</emphasis>  <emphasis>Do you attend library programs?</emphasis></para>\r
+\r
+    <para>Surveys come up when a patron is first registered. If you would like staff to ask the\r
+        survey questions when the patron’s library card is renewed, you’ll need to make that part of\r
+        local procedure.</para>\r
+\r
+    <para>It is possible to run reports on survey questions. For example, you could find out how\r
+        many people say they would use the library if it were open on a Sunday, or you could get a\r
+        list of patrons who say they would like to receive marketing material from the library.\r
+       </para>\r
+    <procedure>\r
+        <step>\r
+            <informalfigure>\r
+                <para>From the <guimenu>Admin (-)</guimenu> menu, select <menuchoice>\r
+                        <guimenu>Local Administration</guimenu>\r
+                        <guimenuitem>Surveys</guimenuitem>\r
+                    </menuchoice>.</para>\r
+                <para>\r
+                    <mediaobject>\r
+                        <alt>surveys interface</alt>\r
+                        <imageobject>\r
+                            <imagedata scalefit="0" fileref="../media/survey-1.png"/>\r
+                        </imageobject>\r
+\r
+                    </mediaobject>\r
+                </para>\r
+            </informalfigure>\r
+\r
+        </step>\r
+\r
+        <step>\r
+            <informalfigure>\r
+                <para>The <guilabel>Survey List</guilabel> will open. In this example the table is\r
+                    empty because no surveys have been created. Click <guibutton>Add New\r
+                        Survey</guibutton>. </para>\r
+                <para>\r
+                    <mediaobject>\r
+                        <alt>surveys interface</alt>\r
+                        <imageobject>\r
+                            <imagedata width="100%" scalefit="1" fileref="../media/survey-2.png"/>\r
+                        </imageobject>\r
+\r
+                    </mediaobject>\r
+                </para>\r
+            </informalfigure>\r
+\r
+        </step>\r
+\r
+        <step>\r
+            <informalfigure>\r
+                <para>Fill out the <guilabel>New Survey</guilabel> form, then click <guibutton>Save\r
+                        Changes</guibutton>. </para>\r
+                <para>\r
+                    <mediaobject>\r
+                        <alt>surveys interface</alt>\r
+                        <imageobject>\r
+                            <imagedata scalefit="0" fileref="../media/survey-3.png"/>\r
+                        </imageobject>\r
+\r
+                    </mediaobject>\r
+                </para>\r
+            </informalfigure>\r
+            <para>A few tips when creating a new survey:</para>\r
+            <itemizedlist>\r