-Evergreen Server Installation
------------------------------
+README for Evergreen 2.2
+========================
+:toc:
+:numbered:
Preamble: referenced user accounts
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+----------------------------------
In subsequent sections, we will refer to a number of different accounts, as
follows:
Evergreen that you will use to test connectivity and configure your
Evergreen instance.
-Preamble: Getting an Evergreen official release tarball
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To download and extract the source for the current release of Evergreen, issue
-the following commands as the *user* Linux account:
-
-[source, bash]
-------------------------------------------------------------------------------
-wget -c http://evergreen-ils.org/downloads/Evergreen-ILS-2.2-beta2.tar.gz
-tar xzf Evergreen-ILS-2.2-beta2.tar.gz
-------------------------------------------------------------------------------
-
Preamble: Developer instructions
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------
[NOTE]
Skip this section if you are using an official release tarball downloaded
[source, bash]
------------------------------------------------------------------------------
-./autogen.sh
+autoreconf -i
------------------------------------------------------------------------------
After running `make install`, developers also need to install the Dojo Toolkit
------------------------------------------------------------------------------
Installing prerequisites
-~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------
Evergreen has a number of prerequisite packages that must be installed
before you can successfully configure, compile, and install Evergreen.
------------------------------------------------------------------------------
+
* Ubuntu Precise comes with PostgreSQL 9, so no additional steps are required.
++
* Fedora 16 comes with PostgreSQL 9, so no additional steps are required.
+
3. On Debian and Ubuntu, run `aptitude update` as the *root* Linux account to
retrieve the new packages from the backports repository.
4. Issue the following commands as the *root* Linux account to install
prerequisites using the `Makefile.install` prerequisite installer,
- substituting `debian-squeeze`, `fedora16`, `ubuntu-lucid` or `ubuntu-precise` for <osname> below:
+ substituting `debian-squeeze`, `fedora16`, `ubuntu-lucid`, or
+ `ubuntu-precise` for <osname> below:
+
[source, bash]
------------------------------------------------------------------------------
issuing the following commands as the *root* Linux account:
+
[NOTE]
-You should skip this step if installing on Ubuntu Precise. The `ubuntu-precise` target uses libdbd-pgsql from packages.
-
+You should skip this step if installing on Ubuntu Precise. The ubuntu-precise
+target uses libdbd-pgsql from packages.
++
.Debian / Ubuntu Lucid
[source, bash]
------------------------------------------------------------------------------
------------------------------------------------------------------------------
Configuration and compilation instructions
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------------------
For the time being, we are still installing everything in the `/openils/`
directory. From the Evergreen source directory, issue the following commands as
------------------------------------------------------------------------------
Installation instructions
-~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------
1. Once you have configured and compiled Evergreen, issue the following
command as the *root* Linux account to install Evergreen, build the server
+
[source, bash]
------------------------------------------------------------------------------
-make STAFF_CLIENT_STAMP_ID=rel_2_2_beta2 install
+make STAFF_CLIENT_STAMP_ID=rel_2_2 install
------------------------------------------------------------------------------
+
2. The server portion of the staff client expects `http://hostname/xul/server`
------------------------------------------------------------------------------
Change ownership of the Evergreen files
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+---------------------------------------
All files in the `/openils/` directory and subdirectories must be owned by the
`opensrf` user. Issue the following command as the *root* Linux account to
------------------------------------------------------------------------------
Configure the Apache Web server
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------
1. Use the example configuration files in `Open-ILS/examples/apache/` to
configure your Web server for the Evergreen catalog, staff client, Web
a. Replace `Allow from 10.0.0.0/8` with `Allow from all` (to enable
access to the offline upload / execute interface from any workstation on
any network - note that you must secure this for a production instance)
- b.(Ferdora): Change references from the non-existent /etc/apache2/ directory to /etc/httpd/.
+ b. (Fedora): Change references from the non-existent `/etc/apache2/` directory
+ to `/etc/httpd/`.
4. Change the user for the Apache server.
* (Debian and Ubuntu): As the *root* Linux account, edit
`/etc/apache2/envvars`. Change `export APACHE_RUN_USER=www-data` to
</IfModule>
------------------------------------------------------------------------------
+
-6.(Fedora): As the root Linux account, edit the /etc/httpd/eg_vhost.conf file to change references from the non-existent /etc/apache2/ directory to /etc/httpd/.
+6. (Fedora): As the *root* Linux account, edit the `/etc/httpd/eg_vhost.conf`
+ file to change references from the non-existent `/etc/apache2/` directory
+ to `/etc/httpd/`.
7. (Debian and Ubuntu): As the *root* Linux account, enable the Evergreen site:
+
[source,bash]
------------------------------------------------------------------------------
Configure OpenSRF for the Evergreen application
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------------------
There are a number of example OpenSRF configuration files in `/openils/conf/`
that you can use as a template for your Evergreen installation. Issue the
following commands as the *opensrf* Linux account:
connection information in `opensrf.xml` for you.
Creating the Evergreen database
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------
By default, the `Makefile.install` prerequisite installer does not install
the PostgreSQL 9 database server required by every Evergreen system;
for production use, most libraries install the PostgreSQL database server on a
-dedicated machine. You can install the packages required by Debian or Ubuntu
+dedicated machine. You can install the packages required by Debian or Ubuntu Lucid
on the machine of your choice using the following commands as the *root*
Linux account:
-.(Debian / Ubuntu Lucid) Installing PostgreSQL 9.1 server packages
+.(Debian and Ubuntu Lucid) Installing PostgreSQL 9.1 server packages
[source, bash]
------------------------------------------------------------------------------
-make -f Open-ILS/src/extras/Makefile.install install_pgsql_server_debs_91
+make -f Open-ILS/src/extras/Makefile.install install_pgsql_server_backport_debs_91
------------------------------------------------------------------------------
.(Ubuntu Precise) Installing PostgreSQL 9.1 server packages
Evergreen administrator account to your requested values.
Creating the database on a remote server
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-In a production instance of Evergreen, your PostgreSQL server should be installed on a dedicated server.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In a production instance of Evergreen, your PostgreSQL server should be
+installed on a dedicated server.
PostgreSQL 9.1 and later
-++++++++++++++++++++++++
-
-To create the database instance on a remote database server running PostgreSQL 9.1 or later, simply use the --create-database flag on eg_db_config.pl.
+^^^^^^^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.1 or later, simply use the `--create-database` flag on `eg_db_config.pl`.
For PostgreSQL 9.0
-++++++++++++++++++
-
-To create the database instance on a remote database server running PostgreSQL 9.0, you can either:
+^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.0, you can either:
-* Install the PostgreSQL contrib modules on the machine on which you are installing the Evergreen code, and use the --create-database option from that machine, or
-* Copy the Open-ILS/src/sql/Pg/create_database.sql script to your PostgreSQL server and invoke it as the postgres Linux account:
+ * Install the PostgreSQL contrib modules on the machine on which you
+ are installing the Evergreen code, and use the `--create-database`
+ option from that machine, or
+ * Copy the `Open-ILS/src/sql/Pg/create_database.sql` script to your
+ PostgreSQL server and invoke it as the *postgres* Linux account:
+
[source, bash]
------------------------------------------------------------------------------
psql -vdb_name=<dbname> -vcontrib_dir=`pg_config --sharedir`/contrib -f create_database.sql
------------------------------------------------------------------------------
-Then you can issue the eg_db_config.pl command as above without the --create-database argument to create your schema and configure your configuration files.
+Then you can issue the `eg_db_config.pl` command as above _without_ the
+`--create-database` argument to create your schema and configure your
+configuration files.
Starting Evergreen
-~~~~~~~~~~~~~~~~~~
+------------------
1. As the *root* Linux account, start the `memcached` and `ejabberd` services
(if they aren't already running):
+
Apache Web server is restarted.
Testing connections to Evergreen
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------
Once you have installed and started Evergreen, test your connection to
Evergreen via `srfsh`. As the *opensrf* Linux account, issue the following
configuration.
Getting help
-~~~~~~~~~~~~
+------------
Need help installing or using Evergreen? Join the mailing lists at
http://evergreen-ils.org/listserv.php or contact us on the Freenode
IRC network on the #evergreen channel.
+License
+-------
+This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
+Unported License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
+Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
-Release notes\r
--------------\r
-\r
-Upgrade notes\r
-~~~~~~~~~~~~~\r
-\r
-Z39.50 server definitions\r
-^^^^^^^^^^^^^^^^^^^^^^^^^\r
-\r
-Z39.50 server target definitions have been removed from the sample\r
-`opensrf.xml.example` file. To migrate existing settings from your\r
-`opensrf.xml` configuration file to the database, peform the\r
-following steps:\r
-\r
-. First, set up your custom Z39.50 sources in the database. For\r
- each entry in `z3950/services`, map the following XML paths to the\r
- corresponding `config.z3950_source` table column as follows:\r
-+\r
- ** `z3950/services/<entry>` = name\r
- ** `//<entry>/name` = label\r
- ** `//<entry>/host` = host\r
- ** `//<entry>/port` = port\r
- ** `//<entry>/db` = db\r
- ** `//<entry>/record_format` = record_format\r
- ** `//<entry>/transmission_format` = transmission_format\r
-+\r
-. Then, for each attribute defined in the `<attrs>` element for\r
- a given service, map the following XML paths to the corresponding\r
- `config.z3950_attr` table column as follows:\r
-+\r
- ** `z3950/services/<entry>` = source\r
- ** `//<entry>/attrs/<attr>` = name\r
- ** `//<entry>/attrs/<attr>/code` = code\r
- ** `//<entry>/attrs/<attr>/format` = format\r
-+\r
-. After adding the new Z39.50 sources and corresponding attributes, you will need to log out of the staff client and log back into the\r
-staff client to retrieve the new entry values. If a given Z39.50 server does not work for a given attribute, pay attention to the\r
-`truncation` column for the attribute.\r
-\r
-New features\r
-~~~~~~~~~~~~\r
-\r
-*OPAC*\r
-\r
-Copy Location Groups\r
-^^^^^^^^^^^^^^^^^^^^\r
-This feature allows staff to create and name sets of copy locations to use as\r
-a search filter in the catalog. OPAC-visible groups will display within the\r
-library selector in the template toolkit OPAC. When a user selects a group\r
-and performs a search, the set of results will be limited to records that have\r
-copies in one of the copy locations within the group. Groups can live at any\r
-level of the library hierarchy and may include copy locations from any parent \r
-org unit or child org unit.\r
-\r
-For advanced users, this change includes a new Query Parser filter called\r
-location_groups().\r
-\r
-*Cataloging*\r
-\r
-Prevent bibliographic records from having attached copies\r
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
-\r
-To enable libraries to designate specific sets of records as only for use\r
-as electronic resources, it is possible to configure a bibliographic source\r
-such that physical copies or MFHD records may not be attached to records\r
-from that source. The `config.bib_source` table now includes a new Boolean\r
-column, `can_have_copies`, that controls this behavior. If `can_have_copies`\r
-for a given bibliographic source is `TRUE`, then the staff client will prevent\r
-a cataloger from adding volumes or MFHD records to records belonging to that\r
-source.\r
-\r
-Switch copy location name and library short name in copy editor\r
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
-\r
-By default, the copy editor shows the library shortname ('BR1' or 'CONS')\r
-followed by the copy location name ('Stacks', 'Reference'). A new workstation\r
-setting, under *Admin -> Workstation Administration -> Copy Editor: Copy\r
-Location Name First*, enables staff to change the display so that the copy\r
-location name is displayed first, followed by the library shortname. This\r
-may be particularly useful for libraries that have defined one set of copy\r
-locations at the consortial level and want to enable quick keyboard navigation\r
-to copy locations by typing just the first letters of the copy location.\r
-\r
-Authentication proxy\r
-~~~~~~~~~~~~~~~~~~~\r
-To support integration of Evergreen with organizational authentication systems,\r
-and to reduce the proliferation of user names and passwords, Evergreen offers \r
-a new service called `open-ils.auth_proxy`. If you enable the service,\r
-`open-ils.auth_proxy` supports different authentication mechanisms\r
-that implement the `authenticate` method. You can define a chain of these\r
-authentication mechanisms to be tried in order within the `<authenticators>`\r
-element of the `opensrf.xml` configuration file, with the option of falling\r
-back to the `native` mode that uses Evergreen's internal method of password\r
-authentication.\r
-\r
-This service only provides authentication; there is no support for automatic\r
-provisioning of accounts. To authenticate against any authentication system,\r
-the user account must first be defined within the Evergreen system, and\r
-authentication will be based on the user name as it exists in Evergreen.\r
-\r
-A sample authentication mechanism for LDAP is provided in\r
-`Open-ILS::Application::AuthProxy::LDAP_AUTH`, and corresponding sample\r
-attributes can be found in `opensrf.xml.example`.\r
-\r
-\r
-*Reports*\r
-\r
-\r
-New views for reporting sources\r
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
-\r
-To support the creation of collection development reports, the following\r
-reporting sources have been added:\r
-\r
- * 'Last Circulation or Creation Date' is a source that offers the copy ID,\r
- the last circulation date or creation date, and the last circulation date\r
- * 'Hold/Copy Ratio per Bib and Pickup Library' is a source that calculates\r
- the number of holds per copy per bibliographic record, with granularity\r
- by pickup library.\r
+Release notes
+=============
+:toc:
+:numbered:
+
+Upgrade notes
+-------------
+
+Z39.50 Server Definitions
+~~~~~~~~~~~~~~~~~~~~~~~
+Z39.50 server target definitions have been removed from the sample
+`opensrf.xml.example` file. To migrate existing settings from your
+`opensrf.xml` configuration file to the database, peform the
+following steps:
+
+ 1. First, set up your custom Z39.50 sources in the database. For
+ each entry in `z3950/services`, map the following XML paths to the
+ corresponding `config.z3950_source` table column as follows:
++
+ ** `z3950/services/<entry>` = name
+ ** `//<entry>/name` = label
+ ** `//<entry>/host` = host
+ ** `//<entry>/port` = port
+ ** `//<entry>/db` = db
+ ** `//<entry>/record_format` = record_format
+ ** `//<entry>/transmission_format` = transmission_format
++
+ 2. Then, for each attribute defined in the `<attrs>` element for
+ a given service, map the following XML paths to the corresponding
+ `config.z3950_attr` table column as follows:
++
+ ** `z3950/services/<entry>` = source
+ ** `//<entry>/attrs/<attr>` = name
+ ** `//<entry>/attrs/<attr>/code` = code
+ ** `//<entry>/attrs/<attr>/format` = format
++
+ 3. After adding the new Z39.50 sources and corresponding attributes,
+ you will need to log out of the staff client and log back into the
+ staff client to retrieve the new entry values. If a given Z39.50
+ server does not work for a given attribute, pay attention to the
+ `truncation` column for the attribute.
+
+
+New features
+------------
+
+Administration
+~~~~~~~~~~~~
+
+Custom Org Unit Trees
+^^^^^^^^^^^^^^^^^^^^^
+Evergreen enables you to create an organizational tree that describes the
+systems, branches, or other units that comprise your organization. By default,
+the org unit tree that appears to patrons in the OPAC is identical to the one
+that appears to users of the staff client. Using this feature, you can condense
+or re-order the organizational tree into a simpler structure for patrons using
+the OPAC while maintaining the complex organizational tree that is available to
+users of the staff client.
+
+As a further enhancement, you can hide a parental org unit yet still make its
+child org units visible in the OPAC. In previous versions of Evergreen, child
+org units inherited the visibility setting of their parents.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Fine Accrual on Closed Dates
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+By default, fines accrue only on dates that the library is open. This feature
+enables you to charge patrons fines on dates the library is closed. Fines
+accrue during scheduled closings as well as during normal weekly closed dates.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Target Copies for Holds at Closed Libraries
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+By default, when a patron places a hold on a title, the hold targeter will
+search for copies to fill the hold only at circulating libraries that are open.
+Copies at closed libraries are not targeted to fill holds. When turned on, this
+feature enables Evergreen to target copies that have closed circulating
+libraries to fill holds. Two new org unit settings control this feature.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+OPAC
+~~~~
+
+Template Toolkit OPAC (_TPAC_)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The basic catalog has been replaced by the Template Toolkit OPAC (_TPAC_).
+Compared to the traditional catalog (_JSPAC_), TPAC uses far fewer network
+calls for each page, resulting in faster loading pages. TPAC is built on the
+http://template-toolkit.org[Template Toolkit] language to enable simple but
+powerful customization, and supports integrated `gettext`-based translation
+for strings--including placeholders and quantities--for better
+internationalization support.
+
+The next feature release of Evergreen will make TPAC the primary catalog
+and deprecate the use of the JSPAC.
+
+Auto Suggest in Catalog Search
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The auto suggest feature suggests the completion of search terms as the user
+enters his query. By default, the user will see ten suggestions although this
+number is configurable at the database level. Scroll through suggestions with
+your mouse, or use the arrow keys to scroll through the suggestions. Select a
+suggestion to view records that are linked to this suggestion.
+
+This feature is not turned on by default. You must turn it on in the Admin
+module.
+
+Documentation for this feature is available in the Book of Evergreen
+at http://docs.evergreen-ils.org/2.2/
+
+Copy Location Groups
+^^^^^^^^^^^^^^^^^^^^
+This feature allows staff to create and name sets of copy locations to use as
+a search filter in the catalog. OPAC-visible groups will display within the
+library selector in the template toolkit OPAC. When a user selects a group
+and performs a search, the set of results will be limited to records that have
+copies in one of the copy locations within the group. Groups can live at any
+level of the library hierarchy and may include copy locations from any parent
+org unit or child org unit.
+
+For advanced users, this change includes a new Query Parser filter called
+location_groups().
+
+My Lists
+^^^^^^^^
+The My Lists feature replaces the bookbag feature that was available in
+versions proior to 2.2. This feature enables you to create temporary and
+permanent lists; create and edit notes for items in lists; place holds on items
+in lists; and share lists via RSS feeds and CSV files.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+SMS Text Messaging
+^^^^^^^^^^^^^^^^^^
+The SMS Text Messaging feature enables users to receive hold notices via text
+message. Users can opt-in to this hold notification as their default setting
+for all holds, or they can receive specific hold notifications via text
+message. Users can also send call numbers and copy locations via text message.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+New Patron Preferences
+^^^^^^^^^^^^^^^^^^^^^^^
+Users will now have the ability to designate the following preferences in the
+Template Toolkit catalog (_TPAC_):
+
+* A preferred search location. Unlike the default search library in JSPAC, this
+ setting will also control which copies display first in search results and
+ record detail screens.
+* A preferred pickup location.
+* The ability to keep a history of checked out items.
+* The ability to keep a history of holds.
+
+Credit Card Payment via Public Catalog
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Patrons can now use credit cards to pay fines and bills in *My Account* of the
+TPAC.
+
+Record Detail Print and E-mail Actions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Implements Print and Email actions as links below the *Add to List* link
+in the TPAC record detail page.
+
+Identify Previously-Checked-Out Items in Search Results
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+When a user is logged into the TPAC and performs a search, this feature
+indicates in the results set when any of the result items were ever checked
+out by the logged-in user. Items will only be tagged when the related org
+setting is enabled and the user has opted in to circ history tracking.
+
+Patron Management
+~~~~~~~~~~~~~~~~~
+
+Patron Statistical Category Enhancements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The following enhancements have been added to patron statistical categories:
+
+ * categories can be marked as 'required' (must be filled out when a patron is
+ registered)
+ * categories can be marked to allow or disallow user-created entries
+ * an entry for a given category and org unit can be marked as the default
+ entry. It will be automatically selected in the new patron registration
+ screen.
+
+User Settings Available from Patron Editor
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Staff can now access and update user settings, like notification prefererences
+and default pickup library, in the patron editor.
+
+Mark Patron E-mail or Phone as Invalid
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Staff can mark a patron's email address or phone number as invalid in the
+patron editor. The system will clear the email (or phone) field from
+`actor.usr`, and [both optionally, per OU setting]:
+
+ . create a corresponding standing penalty against the user, for staff to
+ notice next time they bring up said patron in the staff client;
+ . create a patron note. Related penalties (but not notes) will be cleared
+ whenever that patron's email address or phone number is updated again.
+
+Address Alert in Patron Registration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Support for comparing user addresses to alert addresses. When an address is
+found, the address in question is styled (the header row turns red) and the
+configured alert message is shown along the top-right, where other warnings
+appear.
+
+Circulation
+~~~~~~~~~~~
+
+Telephony Improvements
+^^^^^^^^^^^^^^^^^^^^^^
+Enhancements to notifications by telephony, including:
+
+* A feature that allows an Evergreen system to roll over failed notifcations
+ into new ones with a different notification method.
+* Holiday awareness. System administrators can, via `cron`, schedule the
+ `set_pbx_holidays` script on an Evergreen system to periodically update
+ the PBX's table of holidays, based on a given org unit's closed date ranges.
+* Smart retry. In certain situations, if you put too many callfiles into
+ Asterisk's spool at once, Asterisk will try to make too many calls at
+ once, and all such calls just fail. That is what the allocator is meant to
+ prevent. Smart retry is about moving calls that have been tried once, and will
+ be retried again later due to resulting in a busy signal or other problem, out
+ of the spool to make room for other calls that could be made in the meantime.
+
+Circulation Limit Groups & Limit Sets
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The new *Circulation Limit Groups* interface found in the *Server
+administration* menu can be thought of as _tags_ the system places on
+circulations so that it can find them later. The *Limit Sets* interface found
+in the *Local administration* menu defines rules for limiting the number of
+active circulations a patron may have based on Circulation Modifiers and Limit
+Groups. These new features support the following options:
+
+* Setting circ limits for circulations that have no circ modifiers. This is
+ useful for systems with circulation rules based on something other than
+ circulation modifiers (for example, *MARC type*) or for grouping items
+ that may have different circulation modifiers so that, for example, you
+ can count every video, regardless of circulation modifiers.
+* The ability to set limits for a single library's items, regardless of
+ the checkout library.
+
+New Checkin Modifiers
+^^^^^^^^^^^^^^^^^^^^^
+The following modifiers have been added to the check-in interface:
+
+* *Clear Shelf-Expired Holds*. When checking in something on the hold shelf,
+ run a 'Clear Shelf Process' for the specific copy ID at that library to
+ auto-clear any Shelf-Expired holds.
+* *Retarget Local Holds*. When checking in 'in process' items that are owned by
+ the library, attempt to find a local hold to retarget. This is intended to
+ help with proper targeting of newly-cataloged items.
+* *Retarget All Statuses*. Similar to 'Retarget Local Holds', this modifier will
+ attempt to find a local hold to retarget, regardless of the status of the
+ item being checked in. This modifier must be used in conjunction with the
+ 'Retarget Local Holds' modifier.
+* *Capture Local Holds as Transits*. With this checkin modifier, any local holds
+ will be given an 'in transit' status instead of 'holds shelf'. The intent is
+ to stop the system from sending holds notifications before the item is ready
+ to be placed on the holds shelf. Possible use cases include Automated
+ Materials Handling(AMH) checkins, in which items may be sitting in a bin for a
+ while before landing on the holds shelf, and checkins done on closed days.
+
+Copy Location Alerts
+^^^^^^^^^^^^^^^^^^^^
+This enhancement adds a new 'checkin_alert' column to copy locations. If true
+(defaults to false), then a routing alert is generated at reshelving time for
+the location. This is intended for special locations, such as 'Display', that
+may require special handling, or that temporarily contain items that are not
+normally in that location.
+
+Age Hold Protection Based on a Copy's Active Date
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+* Adds a 'Sets copy active' column to the 'Copy Statuses' interface to identify
+ statuses that indicate a copy is active and ready for checkout. The first
+ time a copy is set to one of these statuses, the system adds an 'active date'
+ for the copy, which can be used for reporting.
+* Provides a new library setting for age hold protection to be based on the
+ copy's active date instead of its create date.
+
+Option to Place Holds on Age Protected Items
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Allow choice of placing hold despite age protection. This alters the backend to
+watch when so much as one copy failed only due to age protection. In JSPAC, an
+alternate confirm message is shown. In TPAC, the failure message is changed
+and override is always allowed for the hold in question.
+
+Force and Cataloging Recall Holds
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Creates two new types of copy-level holds, *Force* and *Cataloging Recall*,
+that cut in front of all other holds and ignore hold rules. For cataloging
+recall holds, the copy's status changes to 'cataloging' when it reaches its
+destination.
+
+Archiving Statistical Categories and Circulation-Time Copy Locations
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Circulation-time copy locations are now archived with circulations (aged or active).
+
+Using the *Statistical Categories Editor*, staff can also designate statistical
+categories (patron and copy) to archive with circulations.
+
+Browse Holds Shelf Interface Displays Canceled Holds
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Holds that are canceled after they are placed on the holds shelf will continue
+to display in this interface and will also display in the 'shelf-expired holds'
+view.
+
+Acquisitions
+~~~~~~~~~~~~
+
+Vandelay Integration into Acquisitions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The Acquisitions Load MARC Order Record interface enables you to add MARC
+records to selection lists and purchase orders and upload the records into the
+catalog. The Vandelay interface enables you to create specific match points
+between incoming MARC records and exisiting catalog records. Combining these
+two features enables you to track on order MARC records through the
+Acquisitions interface and to utilize the record matching mechanisms available
+in Vandelay when importing acquisitions records.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Receive Items from an Invoice
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+This feature enables users to receive items from an invoice. Staff can receive
+individual copies, or they can receive items in batch.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Lineitem and Copy Actions Accessible from More Interfaces
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Users can now access lineitem actions (for example, receive, unreceive, update
+barcodes, new invoice) from the acquisitions lineitem search results and
+selection list interfaces. Also available on these interfaces is a link to copy
+details where users can take receive actions (receive, unreceive, cancel) on
+individual copies.
+
+Improved Displays for Provider and Fund Administration Pages
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+This enhancement provides improved support for viewing the provider and fund
+administation pages. It also allows staff to use filters to find providers and
+funds.
+
+Cataloging
+~~~~~~~~~~
+
+Authority Control Sets
+^^^^^^^^^^^^^^^^^^^^^^
+The tags and subfields that display in authority records in Evergreen are
+proscribed by control sets. The Library of Congress control set is the default
+control set in all versions of Evergreen. However, in Evergreen release 2.2,
+you can create customized control sets for authority records, and you can
+define thesauri and authority fields for these control sets.
+
+Patrons and staff can browse authorities in the JSPAC. The following fields are
+browsable by default: author, series, subject, title, and topic. You can add
+custom browse axes in addition to these default fields.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Batch Importing MARC Records
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The MARC Batch Import interface features improved matching of records and
+managing of your import queue. In version 2.2, you can specify match points
+between incoming and existing records to better detect matching records and
+prevent record duplication. You can also create quality controls to ensure that
+incoming matching records are superior in quality to existing catalog records.
+
+You also have new options for managing your queue. You can apply filters to
+your queue, and you can generate a list of import errors. You can also print
+your queue, email your queue, or export your queue as a CSV file.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Hide Fields in Copy Editor
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+You can customize the *Copy Editor* for staff by hiding fields in the *Copy
+Editor* that are not relevant for workflows at particular org units. Descendant
+org units inherit the settings of their parents.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Prevent Bibliographic Records from Having Attached Copies
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+To enable libraries to designate specific sets of records as only for use as
+electronic resources, it is possible to configure a bibliographic source such
+that physical copies or MFHD records may not be attached to records from that
+source. The `config.bib_source` table now includes a new Boolean column,
+`can_have_copies`, that controls this behavior. If `can_have_copies` for a
+given bibliographic source is `TRUE`, then the staff client will prevent a
+cataloger from adding volumes or MFHD records to records belonging to that
+source.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Overlay Existing Catalog Record via Z39.50 Import
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+You can replace an existing catalog record with a record obtained through a
+Z39.50 search. No new permissions or administrative settings are needed to use
+this feature.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Restrict Z39.50 Sources by Permission Group
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+You can use a permission to restrict users' access to Z39.50 servers. You can
+apply a permission to the Z39.50 servers to restrict access to that server, and
+then assign that permission to users or groups so that they can access the
+restricted servers.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Switch Copy Location Name and Library Short Name in Copy Editor
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+By default, the copy editor shows the library shortname ('BR1' or 'CONS')
+followed by the copy location name ('Stacks', 'Reference'). A new workstation
+setting, under *Admin -> Workstation Administration -> Copy Editor: Copy
+Location Name First*, enables staff to change the display so that the copy
+location name is displayed first, followed by the library shortname. This may
+be particularly useful for libraries that have defined one set of copy
+locations at the consortial level and want to enable quick keyboard navigation
+to copy locations by typing just the first letters of the copy location.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+User Activity Types
+~~~~~~~~~~~~~~~~~~~
+The User Activity Types feature enables you to specify the user activity that
+you want to record in the database. You can use this feature for reporting
+purposes. This function will also display a last activity date in a user's
+account. Currently, this feature only tracks user authentication.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Authentication Proxy
+~~~~~~~~~~~~~~~~~~
+To support integration of Evergreen with organizational authentication systems,
+and to reduce the proliferation of user names and passwords, Evergreen offers
+a new service called `open-ils.auth_proxy`. If you enable the service,
+`open-ils.auth_proxy` supports different authentication mechanisms
+that implement the `authenticate` method. You can define a chain of these
+authentication mechanisms to be tried in order within the `<authenticators>`
+element of the `opensrf.xml` configuration file, with the option of falling
+back to the `native` mode that uses Evergreen's internal method of password
+authentication.
+
+This service only provides authentication; there is no support for automatic
+provisioning of accounts. To authenticate against any authentication system,
+the user account must first be defined within the Evergreen system, and
+authentication will be based on the user name as it exists in Evergreen.
+
+A sample authentication mechanism for LDAP is provided in
+`Open-ILS::Application::AuthProxy::LDAP_AUTH`, and corresponding sample
+attributes can be found in `opensrf.xml.example`.
+
+Auditor Tables
+~~~~~~~~~~~~~~
+This enhancement adds user and workstation IDs to the auditor tables. It also
+adds/changes auditor functions to allow for setting, getting, and clearing
+auditor information, as well as adding a couple of utility functions for
+updating auditors after changes to their origin columns.
+
+Reports
+~~~~~~~
+
+New Views for Reporting Sources
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+To support the creation of collection development reports, the following
+reporting sources have been added:
+
+ * 'Last Circulation or Creation Date' is a source that offers the copy ID,
+ the last circulation date or creation date, and the last circulation date
+ * 'Hold/Copy Ratio per Bib and Pickup Library' is a source that calculates
+ the number of holds per copy per bibliographic record, with granularity
+ by pickup library.
+
+
+Staff Client Navigation
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Customizable Toolbar
+^^^^^^^^^^^^^^^^^^^^
+By default, two toolbars are available in the staff client: circulation and
+cataloging. This feature enables you to customize toolbars in the staff client.
+You can add buttons that will enable quick access to a variety of features.
+You can create toolbars for specific org unit(s), workstation(s), or login(s).
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Double Clicking in the Staff Client
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+You can search for a patron's record, and double click on a result to access
+that record. You can double click on an item in the *Holdings Maintenance*
+screen to access copy information. The item is linked to the *Volume/Copy
+Creator*, if you turned it on in the staff client's org unit settings. If you
+did not turn on the *Volume/Copy Creator*, then the item links to the *Item
+Attributes*.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Recent Staff Searches
+^^^^^^^^^^^^^^^^^^^^^
+You can view your recent searches as you perform them in the staff client. By
+default, staff can view their recent searches, although the number is
+configurable. This feature is only available through the staff client; it is
+not available to patrons in the OPAC.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Return to Search Results from MARC Record
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+This feature enables you to return to your title search results directly from
+any view of the MARC record, including the *OPAC View*, *MARC Record*, *MARC
+Edit*, and *Holdings Maintenance* views. You can use this feature to page
+through records in the *MARC Record View* or *Edit* interfaces. You do not have
+to return to the *OPAC View* to access title results.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Sorting Columns
+^^^^^^^^^^^^^^^
+This feature enables you to sort by multiple display columns so that you can
+find easily the information that you need on a screen. You can sort display
+columns on any screen that is built on a grid, such as the *Check In* screen or
+the *On Shelf Pull List*.
+
+You can also sort the columns on the following *Administration* screens:
+
+ * Circulation Policies
+ * Hold Policies
+ * Circulation Limit Sets
+ * Barcode Completion
+ * Acquisitions User Request List
+ * Vandelay Import Errors
+
+You can sort items in an ascending or descending order, and you can prioritize
+the order in which columns will sort.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Tab Button
+^^^^^^^^^^
+This feature enables you to add a new tab to the Evergreen staff client by
+clicking the *+* sign adjacent to the tab that you currently have opened. As in
+previous versions, you can also add new tabs by clicking *File -> New Tab*, or
+use the hotkey, *Ctrl+T*.
+
+Documentation for this feature is available in the Book of Evergreen at
+http://docs.evergreen-ils.org/2.2/
+
+Close All Tabs Shortcut
+^^^^^^^^^^^^^^^^^^^^^^^
+You can use *CTRL+Click* on the close tab (*X*) button to close all tabs.
+
+Independent Column Configurations and Receipt Templates for Different Hold List Interfaces
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Previously, all hold list interfaces shared the same column picker settings and
+receipt templates. This enhancement creates independent settings for the
+following interfaces:
+
+* Actions for this Record -> View Holds
+* Patron Display -> Holds
+* Circulation -> Browse Hold Shelf
+* Circulation -> Pull List for Hold Requests
+
+Line Number Columns
+^^^^^^^^^^^^^^^^^^^
+List displays in the staff client now have a non-sortable line number column
+which displays the ordinal position of each row in the list. The first row in
+such a list will always have a value of 1 in the ordinal column, no matter how
+the list is sorted. There is no special handling for paged interfaces; the
+first row on any given page still gets an ordinal value of 1.
+
+Auto-Login
+^^^^^^^^^^
+Supports auto-login in the staff client by adding three new command line
+parameters:
+
+* `-ILSuser`: user name to log in with
+* `-ILSpassword`: password to use
+* `-ILShost`: hostname to use
+
+License
+-------
+This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
+Unported License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
+Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.