+++ /dev/null
-=== Patron privacy and the SIP protocol ===
-
-SIP traffic includes a lot of patron information, and is not
-encrypted by default. It is strongly recommended that you
-encrypt any SIP traffic.
-
-==== SIP server configuration ====
-
-On the SIP server, use `iptables` or `etc/hosts` to allow SSH connections on port 22 from the SIP client machine. You will probably want to have very restrictive rules
-on which IP addresses can connect to this server.
-
-
-==== SSH tunnels on SIP clients ====
-
-SSH tunnels are a good fit for use cases like self-check machines, because it is relatively easy to automatically open the connection. Using a VPN is another option,
-but many VPN clients require manual steps to open the VPN connection.
-
-. If the SIP client will be on a Windows machine, install cygwin on the SIP client.
-. On the SIP client, use `ssh-keygen` to generate an SSH key.
-. Add the public key to /home/my_sip_user/.ssh/authorized_keys on your SIP server to enable logins without using the UNIX password.
-. Configure an SSH tunnel to open before every connection. You can do this in several ways:
-.. If the SIP client software allows you to run an arbitrary command before
- each SIP connection, use something like this:
-+
-[source,bash]
-----
-ssh -f -L 6001:localhost:6001 my_sip_user@my_sip_server.com sleep 10
-----
-+
-.. If you feel confident that the connection won't get interrupted, you can have something like this run at startup:
-+
-[source,bash]
-----
-ssh -f -N -L 6001:localhost:6001 my_sip_user@my_sip_server.com
-----
-+
-.. If you want to constantly poll to make sure that the connection is still running, you can do something like this as a cron job or scheduled task on the SIP client machine:
-[source,bash]
-----
-#!/bin/bash
-instances=`/bin/ps -ef | /bin/grep ssh | /bin/grep -v grep | /bin/wc -l`
-if [ $instances -eq 0 ]; then
- echo "Restarting ssh tunnel"
- /usr/bin/ssh -L 6001:localhost:6001 my_sip_user@my_sip_server.com -f -N
-fi
-----
-
parsing. Variable-length fields are by definition delimited, though there will not necessarily be an initial delimiter
between the last fixed-length field and the first variable-length one. It would be unnecessary, since you should know
the exact position where that field begins already.
+
+
+=== Patron privacy and the SIP protocol ===
+
+SIP traffic includes a lot of patron information, and is not
+encrypted by default. It is strongly recommended that you
+encrypt any SIP traffic.
+
+==== SIP server configuration ====
+
+On the SIP server, use `iptables` or `etc/hosts` to allow SSH connections on port 22 from the SIP client machine. You will probably want to have very restrictive rules
+on which IP addresses can connect to this server.
+
+
+==== SSH tunnels on SIP clients ====
+
+SSH tunnels are a good fit for use cases like self-check machines, because it is relatively easy to automatically open the connection. Using a VPN is another option,
+but many VPN clients require manual steps to open the VPN connection.
+
+. If the SIP client will be on a Windows machine, install cygwin on the SIP client.
+. On the SIP client, use `ssh-keygen` to generate an SSH key.
+. Add the public key to /home/my_sip_user/.ssh/authorized_keys on your SIP server to enable logins without using the UNIX password.
+. Configure an SSH tunnel to open before every connection. You can do this in several ways:
+.. If the SIP client software allows you to run an arbitrary command before
+ each SIP connection, use something like this:
++
+[source,bash]
+----
+ssh -f -L 6001:localhost:6001 my_sip_user@my_sip_server.com sleep 10
+----
++
+.. If you feel confident that the connection won't get interrupted, you can have something like this run at startup:
++
+[source,bash]
+----
+ssh -f -N -L 6001:localhost:6001 my_sip_user@my_sip_server.com
+----
++
+.. If you want to constantly poll to make sure that the connection is still running, you can do something like this as a cron job or scheduled task on the SIP client machine:
+[source,bash]
+----
+#!/bin/bash
+instances=`/bin/ps -ef | /bin/grep ssh | /bin/grep -v grep | /bin/wc -l`
+if [ $instances -eq 0 ]; then
+ echo "Restarting ssh tunnel"
+ /usr/bin/ssh -L 6001:localhost:6001 my_sip_user@my_sip_server.com -f -N
+fi
+----
+
* xref:admin_initial_setup:introduction.adoc[System Configuration and Customization]
-** xref:admin_initial_setup:describing_your_organization.adoc[]
-** xref:admin_initial_setup:describing_your_people.adoc[]
-** xref:admin_initial_setup:migrating_patron_data.adoc[]
-** xref:admin_initial_setup:migrating_your_data.adoc[]
-** xref:admin_initial_setup:importing_via_staff_client.adoc[]
-** xref:admin_initial_setup:ordering_materials.adoc[]
-** xref:admin_initial_setup:designing_your_catalog.adoc[]
-** xref:admin_initial_setup:different_styles_for_searchbar.adoc[]
-** xref:admin:search_interface.adoc[]
-** xref:admin_initial_setup:borrowing_items.adoc[]
-** xref:admin:autorenewals.adoc[]
-** xref:admin_initial_setup:hard_due_dates.adoc[]
-** xref:admin:template_toolkit.adoc[]
+** xref:admin_initial_setup:describing_your_organization.adoc[Describing your
+organization]
+** xref:admin_initial_setup:describing_your_people.adoc[Describing your people]
+** xref:admin_initial_setup:migrating_patron_data.adoc[Migrating Patron Data]
+** xref:admin_initial_setup:migrating_your_data.adoc[Migrating from a legacy
+system]
+** xref:admin_initial_setup:importing_via_staff_client.adoc[Importing materials
+in the staff client]
+** xref:admin_initial_setup:ordering_materials.adoc[Ordering materials]
+** xref:admin_initial_setup:designing_your_catalog.adoc[Designing your catalog]
+** xref:admin:search_interface.adoc[Designing the patron search experience]
+** xref:admin_initial_setup:borrowing_items.adoc[Borrowing items: who, what, for
+how long]
+** xref:admin:autorenewals.adoc[Autorenewals in Evergreen]
+** xref:admin_initial_setup:hard_due_dates.adoc[Hard due dates]
+** xref:admin:template_toolkit.adoc[TPac Configuration and Customization]
** xref:admin_initial_setup:carousels.adoc[Carousels]
-** xref:opac:new_skin_customizations.adoc[]
-** xref:admin:auto_suggest_search.adoc[]
-** xref:admin:authentication_proxy.adoc[]
-** xref:admin_initial_setup:KidsOPAC.adoc[]
-** xref:admin:patron_address_by_zip_code.adoc[]
-** xref:admin:phonelist.adoc[]
-** xref:admin:sip_server.adoc[]
-** xref:admin:sip_privacy.adoc[]
-** xref:admin:apache_rewrite_tricks.adoc[]
-** xref:admin:apache_access_handler.adoc[]
-** xref:admin:ebook_api_service.adoc[]
-** xref:admin:hold_targeter_service.adoc[]
-** xref:admin:backups.adoc[]
+** xref:opac:new_skin_customizations.adoc[Creating a New Skin: the Bare Minimum]
+** xref:admin:auto_suggest_search.adoc[Auto Suggest in Catalog Search]
+** xref:admin:authentication_proxy.adoc[Authentication Proxy]
+** xref:admin_initial_setup:KidsOPAC.adoc[Kid's OPAC Configuration]
+** xref:admin:patron_address_by_zip_code.adoc[Patron Address City/State/County
+Pre-Populate by ZIP Code]
+** xref:admin:phonelist.adoc[Phonelist.pm Module]
+** xref:admin:sip_server.adoc[SIP Server]
+** xref:admin:apache_rewrite_tricks.adoc[Apache Rewrite Tricks]
+** xref:admin:apache_access_handler.adoc[Apache Access Handler Perl Module]
+** xref:admin:ebook_api_service.adoc[ebook_api service]
+** xref:admin:hold_targeter_service.adoc[hold-targeter service]
+** xref:admin:backups.adoc[Backing up your Evergreen System]
-== Kid's OPAC Configuration ==
+= Kid's OPAC Configuration =
+:toc:
-=== Configuration ===
+== Configuration ==
-==== Apache ====
+=== Apache ===
The KPAC is already included and ready to be used with new Evergreen installs. So you only need to change the apache config
if you need to change template locations or if you want to use a different *kpac.xml* config file. The defaults for the KPAC are set
</Location>
------------------------------------------------------------------------------
-==== XML Configuration File ====
+=== XML Configuration File ===
* The XML configuration file defines the layout of the kid's OPAC.
* It is read with each restart/reload of the Apache web server.
------------------------------------------------------------------------------
-==== Skin Configuration ====
+=== Skin Configuration ===
The following example enables you to configure the alternate skin (Monster Skin, kpac2) for the Kids
Catalog.
</VirtualHost>
------------------------------------------------------------------------------
-=== Considerations for Community Adoption ===
+== Considerations for Community Adoption ==
The templates for the Kid's OPAC were developed long before the TPAC was
integrated into Evergreen and it has many of the same limitations that
palette. Creating an additional skin to act as the Evergreen default
my be necessary.
-=== Outstanding Development (Unsponsored) ===
+== Outstanding Development (Unsponsored) ==
** Port the XML configuration file to a DB structure, complete with UI for
managing the various components and upgrade path.
-== Borrowing items: who, what, for how long ==
+= Borrowing items: who, what, for how long =
+:toc:
Circulation policies pull together user, library, and item data to determine how
library materials circulate, such as: which patrons, from what libraries can
interfaces, and should be configured prior to setting up the circulation
policies.
-=== Data elements that affect your circulation policies ===
+== Data elements that affect your circulation policies ==
There are a few data elements which must be considered when setting up your
circulation policies.
-==== Copy data ====
+=== Copy data ===
Several fields set via the holdings editor are commonly used to affect the
circulation of an item.
* *Reference?* flag - The reference? flag in the holdings editor can also be used as
a data element in circulation policies.
-==== Shelving location data ====
+=== Shelving location data ===
* To get to the Shelving Locations Editor, navigate to *Administration ->
Local Administration -> Shelving Locations Editor*.
* Shelving locations can also be used as a data element in circulation policies.
-==== User data ====
+=== User data ===
Finally, several characteristics of specific patrons can affect circulation
policies. You can modify these characteristics in a patron's record (*Search ->
* Other user data that can be used for circulation policies include the
*juvenile* flag in the user record.
-=== Circulation Rules ===
+== Circulation Rules ==
*Loan duration* describes the length of time for a checkout. You can also
identify the maximum renewals that can be placed on an item.
does. This will make it easier to select the correct rule when creating your
circ policies.
-==== Circulation Limit Sets ====
+=== Circulation Limit Sets ===
Circulation Limit Sets allow you to limit the maximum number of items for
different types of materials that a patron can check out at one time. Evergreen
*Min Depth* field and select the *Global* flag. Add the DVD, BLURAY and VHS circ
modifiers to the limit set.
-=== Creating Circulation Policies ===
+== Creating Circulation Policies ==
Once you have identified your data elements that will drive circulation policies
and have created your circulation rules, you are ready to begin creating your
and circulation sets created in the above sets when creating the circulation
policy.
-==== Best practices for creating policies ====
+=== Best practices for creating policies ===
* Start by replacing the default consortium-level circ policy with one that
contains a majority of your libraries' duration, recurring fine, and max fine
is not circulated. However, now we have added new rules that state that "Adult"
patrons of "SYS1" can circulate "dvd" items.
-==== Settings Relevant to Circulation ====
+=== Settings Relevant to Circulation ===
The following circulation settings, available via *Administration
-> Local Administration -> Library Settings Editor*, can
-== Describing your organization ==
+= Describing your organization =
+:toc:
Your Evergreen system is almost ready to go. You'll need to add each of the
libraries that will be using your Evergreen system. If you're doing this for a
will appear in the hierarchy list below the parent unit. Click on the new unit
and edit the data, click *Save*
-==== Organizational Unit data ====
+=== Organizational Unit data ===
The *Addresses* tab allows you to enter library contact information. Library
Phone number, email address, and addresses are used in patron email
notifications, hold slips, and transit slips. The Library address tab is broken
and other closures are set in the *Closed Dates Editor*. Hours of operation and
closed dates impact due dates and fine accrual.
-==== After Changing Organization Unit Data ====
+=== After Changing Organization Unit Data ===
After you change Org Unit data, you must run the autogen.sh script.
This script updates the Evergreen organization tree and fieldmapper IDL.
-== Describing your people ==
+= Describing your people =
+:toc:
Many different members of your staff will use your Evergreen system to perform
the wide variety of tasks required of the library.
referred to as a working organizational unit or work OU) which affects where a
particular user can exercise the permissions they have been granted.
-=== Setting the staff user's working location ===
+== Setting the staff user's working location ==
To grant a working location to a staff user in the staff client:
. Search for the patron. Select *Search > Search for Patrons* from the top menu.
to this user. Depending on your own permissions, you may also have the ability
to grant individual permissions directly to this user.
-=== Comparing approaches for managing permissions ===
+== Comparing approaches for managing permissions ==
The Evergreen community uses two different approaches to deal with managing
permissions for users:
permission group in line with what your library, or possibly your consortium,
defines as the appropriate needs for each function in the library.
-=== Managing permissions in the staff client ===
+== Managing permissions in the staff client ==
In this section, we'll show you in the staff client:
* where to find the available permissions
some essential groups. You can compare the existing permissions with these
suggested permissions and, if any are missing, you will know how to add them.
-==== Where to find existing permissions and what they mean ====
+=== Where to find existing permissions and what they mean ===
In the staff client, in the upper right corner of the screen, click on
*Administration > Server Administration > Permissions*.
permission allows. All of the most common permissions have easily
understandable descriptions.
-==== Where to find existing Permission Groups ====
+=== Where to find existing Permission Groups ===
In the staff client, in the upper right corner of the screen, navigate to
*Administration > Server Administration > Permission Groups*.
Groups that were listed at the beginning of this chapter. If you do not and you
need them, you will have to create them.
-==== Adding or removing permissions from a Permission Group ====
+=== Adding or removing permissions from a Permission Group ===
First, we will remove a permission from the Staff group.
. From the list of Permission Groups, click on *Staff*.
If you have saved your changes and you don't see them, you may have to click
the Reload button in the upper left side of the staff client screen.
-=== Managing role-based permission groups in the staff client ===
+== Managing role-based permission groups in the staff client ==
Main permission groups are granted in the staff client through Edit in the patron record using the Main (Profile) Permission Group field. Additional permission
groups can be granted using secondary permission groups.
[[secondaryperms]]
-==== Secondary Group Permissions ====
+=== Secondary Group Permissions ===
The _Secondary Groups_ button functionality enables supplemental permission
groups to be added to staff accounts. The *CREATE_USER_GROUP_LINK* and
In general when creating a secondary permission group do not grant the
permission to login to Evergreen.
-===== Granting Secondary Permissions Groups =====
+==== Granting Secondary Permissions Groups ====
. Open the account of the user you wish to grant secondary permission group to.
. Click _Save_ in the top right hand corner of the _Edit Screen_ to save the user's account.
-===== Removing Secondary Group Permissions =====
+==== Removing Secondary Group Permissions ====
. Open the account of the user you wish to remove the secondary permission group from.
. Click _Edit_.
. Click _Secondary Groups_, located to the right of the _Main (Profile) Permission Group_.
+
. Click _Save_ in the top right hand corner of the _Edit Screen_ to save the user's account.
-=== Managing role-based permission groups in the database ===
+== Managing role-based permission groups in the database ==
While the ability to assign a user to multiple permission groups has existed in
Evergreen for years, a staff client interface is not currently available to
facilitate the work of the Evergreen administrator. However, if you or members
-== Designing your catalog ==
+= Designing your catalog =
+:toc:
When people want to find things in your Evergreen system, they will check the
catalog. In Evergreen, the catalog is made available through a web interface,
In this chapter, we'll show you how to customize the OPAC, change it from its
default configuration, and make it your own.
-=== Configuring and customizing the public interface ===
+== Configuring and customizing the public interface ==
The public interface is referred to as the TPAC or Template Toolkit (TT) within
the Evergreen community. The template toolkit system allows you to customize the
look and feel of your OPAC by editing the template pages (.tt2) files as well as
the associated style sheets.
-==== Locating the default template files ====
+=== Locating the default template files ===
The default URL for the TPAC on a default Evergreen system is
_http://localhost/eg/opac/home_ (adjust _localhost_ to match your hostname or IP
than touching the installed templates until you are ready to commit the changes
to a branch. See below for information on template overrides.
-==== Mapping templates to URLs ====
+=== Mapping templates to URLs ===
The mapping for templates to URLs is straightforward. Following are a few
examples, where _<templates>_ is a placeholder for one or more directories that
----
Note that file references are relative to the top of the template directory.
-==== How to override template files ====
+=== How to override template files ===
Overrides for template files or TPAC pages go in a directory that parallels the
structure of the default templates directory. The overrides then get pulled in
bash$ vim /openils/var/templates_custom/opac/advanced.tt2
----
-==== Configuring the custom templates directory in Apache's eg.conf ====
+=== Configuring the custom templates directory in Apache's eg.conf ===
You now need to teach Apache about the new custom template directory. Edit
_/etc/apache2/sites-available/eg.conf_ and add the following _<Location /eg>_
be able to see your change at _http://localhost/eg/opac/advanced_ where
_localhost_ is the hostname of your Evergreen server.
-==== Adjusting colors for your public interface ====
+=== Adjusting colors for your public interface ===
You may adjust the colors of your public interface by editing the _colors.tt2_
file. The location of this file is in
template folder and edit the custom file and not the file located in your default
template.
-==== Adjusting fonts in your public interface ====
+=== Adjusting fonts in your public interface ===
Font sizes can be changed in the _colors.tt2_ file located in
_/openils/var/templates/opac/parts/css/_. Again, create and edit a custom
Other aspects of fonts such as the default font family can be adjusted in
_/openils/var/templates/opac/css/style.css.tt2_.
-==== Media file locations in the public interface ====
+=== Media file locations in the public interface ===
The media files (mostly PNG images) used by the default TPAC templates are stored
in the repository in _Open-ILS/web/images/_ and installed in
_/openils/var/web/images/_.
-==== Changing some text in the public interface ====
+=== Changing some text in the public interface ===
Out of the box, TPAC includes a number of placeholder text and links. For
example, there is a set of links cleverly named Link 1, Link 2, and so on in the
Once the link and link text has been edited to your satisfaction, load the page
in a Web browser and see the live changes immediately.
-==== Adding translations to PO file ====
+=== Adding translations to PO file ===
After you have added custom text in translatable form to a TT2 template, you need to add the custom strings and its translations to the PO file containing the translations. Evergreen PO files are stored in _/openils/var/template/data/locale/_
service apache2 restart
----
-==== Adding and removing MARC fields from the record details display page ====
+=== Adding and removing MARC fields from the record details display page ===
It is possible to add and remove the MARC fields and subfields displayed in the
record details page. In order to add MARC fields to be displayed on the details
can also be used to display MARC fields in other pages, such as your results
page.
-===== Using bibliographic source variables =====
+==== Using bibliographic source variables ====
For bibliographic records, there is a "bib source" that can be associated with
every record. This source and its ID are available as record attributes called
****
-=== Setting the default physical location for your library environment ===
+== Setting the default physical location for your library environment ==
_physical_loc_ is an Apache environment variable that sets the default physical
location, used for setting search scopes and determining the order in which
----
[#setting_a_default_language_and_adding_optional_languages]
-=== Setting a default language and adding optional languages ===
+== Setting a default language and adding optional languages ==
_OILSWebLocale_ adds support for a specific language. Add this variable to the
Virtual Host section in _/etc/apache2/eg_vhost.conf_.
*American English is built into Evergreen so you do not need to set up this
language and there are no PO files.
-==== Updating translations in Evergreen using current translations from Launchpad ====
+=== Updating translations in Evergreen using current translations from Launchpad ===
Due to Evergreen release workflow/schedule, some language strings may already have been translated in Launchpad,
but are not yet packaged with Evergreen. In such cases, it is possible to manually replace the PO file in
service apache2 restart
----
-=== Change Date Format in Patron Account View ===
+== Change Date Format in Patron Account View ==
Libraries with same-day circulations may want their patrons to be able to view
the due *time* as well as due date when they log in to their OPAC account. To
accomplish this, go to _opac/myopac/circs.tt2_. Find the line that reads:
----
-=== Including External Content in Your Public Interface ===
+== Including External Content in Your Public Interface ==
The public interface allows you to include external services and content in your
public interface. These can include book cover images, user reviews, table of
The following are some of the external content services which you can configure
in Evergreen.
-==== OpenLibrary ====
+=== OpenLibrary ===
The default install of Evergreen includes OpenLibrary book covers. The settings
for this are controlled by the <added_content> section of
of the record.summary.jacket_size. The default value is "medium" and the
available options are "small", "medium" and "large."
-==== ChiliFresh ====
+=== ChiliFresh ===
ChiliFresh is a subscription-based service which allows book covers, reviews and
social interaction of patrons to appear in your catalog. To activate ChiliFresh,
in opensrf.xml. When the option is present, only the identifier(s) listed will
be sent.
-==== Obalkyknih.cz ====
+=== Obalkyknih.cz ===
-===== Setting up Obalkyknih.cz account =====
+==== Setting up Obalkyknih.cz account ====
If your library wishes to use added content provided by Obalkyknih.cz, a service based in the Czech Republic, you have to http://obalkyknih.cz/signup[create an Obalkyknih.cz account].
Please note that the interface is only available in Czech. After logging in your Obalkyknih.cz account, you have to add your IP address and Evergreen server address to your account settings.
(In case each library uses an address of its own, all of these addresses have to be added.)
-===== Enabling Obalkyknih.cz in Evergreen =====
+==== Enabling Obalkyknih.cz in Evergreen ====
Set obalkyknih_cz.enabled to true in '/openils/var/templates/opac/parts/config.tt2':
----
-==== Google Analytics ====
+=== Google Analytics ===
Google Analytics is a free service to collect statistics for your Evergreen
site. Statistic tracking is disabled by default through the Evergreen
the value of google_analytics.enabled to true and change the value of
_google_analytics.code_ to be the code in your Google Analytics account.
-==== NoveList ====
+=== NoveList ===
Novelist is a subscription-based service providing reviews and recommendation
for books in you catalog. To activate your Novelist service in Evergreen, open
You should use the URL provided by NoveList.
-==== RefWorks ====
+=== RefWorks ===
RefWorks is a subscription-based online bibliographic management tool. If you
have a RefWorks subscription, you can activate RefWorks in Evergreen by editing
the _ctx.refworks.enabled_ value to _true_. You may also set the RefWorks URL by
changing the _ctx.refworks.url_ setting on the same file.
-==== SFX OpenURL Resolver ====
+=== SFX OpenURL Resolver ===
An OpenURL resolver allows you to find electronic resources and pull them into
your catalog based on the ISBN or ISSN of the item. In order to use the SFX
change the _openurl.baseurl_ setting to point to the URL of your OpenURL
resolver.
-==== Syndetic Solutions ====
+=== Syndetic Solutions ===
Syndetic Solutions is a subscription service providing book covers and other
data for items in your catalog. In order to activate Syndetic, edit the
* ISSN
-==== Clear External/Added Content Cache ====
+=== Clear External/Added Content Cache ===
On the catalog's record summary page, there is a link for staff that will forcibly clear
the cache of the Added Content for that record. This is helpful for when the Added Content
Added Content Supplier.
-==== Configure a Custom Image for Missing Images ====
+=== Configure a Custom Image for Missing Images ===
You can configure a "no image" image other than the standard 1-pixel
blank image. The example eg_vhost.conf file provides examples in the
comments. Note: Evergreen does not provide default images for these.
-=== Including Locally Hosted Content in Your Public Interface ===
+== Including Locally Hosted Content in Your Public Interface ==
It is also possible to show added content that has been generated locally
by placing the content in a specific spot on the web server. It is
possible to have local book jackets, reviews, TOC, excerpts or annotations.
-==== File Location and Format ====
+=== File Location and Format ===
By default the files will need to be placed in directories under
*/openils/var/web/opac/extras/ac/* on the server(s) that run Apache.
- others, one of html, xml or json ... html is the default for non-image added content
* *recordid* is the bibliographic record id (bre.id).
-==== Example ====
+=== Example ===
If you have some equipment that you are circulating such as a
laptop or eBook reader and you want to add an image of the equipment
Reload the bib record summary in the web catalog and your new image will display.
+== Styling the searchbar on the homepage ==
+
+The `.searchbar-home` class is added to the div that
+contains the searchbar when on the homepage. This allows
+sites to customize the searchbar differently on the
+homepage than in search results pages, and other places the
+search bar appears. For example, adding the following CSS
+would create a large, Google-style search bar on the homepage only:
+
+[source,css]
+----
+.searchbar-home .search-box {
+ width: 80%;
+ height: 3em;
+}
+
+.searchbar-home #search_qtype_label,
+.searchbar-home #search_itype_label,
+.searchbar-home #search_locg_label {
+ display:none;
+}
+----
+
+++ /dev/null
-=== Styling the searchbar on the homepage ===
-
-The `.searchbar-home` class is added to the div that
-contains the searchbar when on the homepage. This allows
-sites to customize the searchbar differently on the
-homepage than in search results pages, and other places the
-search bar appears. For example, adding the following CSS
-would create a large, Google-style search bar on the homepage only:
-
-[source,css]
-----
-.searchbar-home .search-box {
- width: 80%;
- height: 3em;
-}
-
-.searchbar-home #search_qtype_label,
-.searchbar-home #search_itype_label,
-.searchbar-home #search_locg_label {
- display:none;
-}
-----
-
-== Hard due dates ==
+= Hard due dates =
+:toc:
This feature allows you to specify a specific due date within your circulation policies. This is particularly useful for academic and school libraries, who may wish to make certain items due at the end of a semester or term.
NOTE: To work with hard due dates, you will need the CREATE_CIRC_DURATION, UPDATE_CIRC_DURATION, and DELETE_CIRC_DURATION permissions at the _consortium_ level.
-=== Creating a hard due date ===
+== Creating a hard due date ==
Setting up hard due dates is a two-step process. You must first create a hard due date, and then populate it with specific values.
To create a hard due date:
-== Importing materials in the staff client ==
+= Importing materials in the staff client =
+:toc:
Evergreen exists to connect users to the materials represented by bibliographic
records, call numbers, and copies -- so getting these materials into your
for large batches of records such as the initial migration from your legacy
library system.
-=== Staff client batch record imports ===
+== Staff client batch record imports ==
The staff client has a utility for importing batches of bibliographic and item
records available through *Cataloging > MARC Batch Import/Export*. In addition
to importing new records, this interface can be used to match incoming records
For instance, when you click on the *Record Match Sets*, the title on the screen
will be *Vandelay Match Sets*.
-==== When to use the MARC Batch Importer ====
+=== When to use the MARC Batch Importer ===
* When importing in batches of up to 500 to 1,000 records.
* When you need the system to match those incoming records to existing records
must enable the _Vandelay Generate Default Barcodes_ and _Vandelay Default
Barcode Prefix (vandelay.item.barcode.prefix)_ settings.
-==== Record Match Sets ====
+=== Record Match Sets ===
Click the *Record Match Sets* button to identify how Evergreen should match
incoming records to existing records in the system.
* MARC tag 024a (UPC)
* MARC tag 028a (Publisher number)
-==== Create Match Sets ====
+=== Create Match Sets ===
. On the *Record Match Sets* screen, click *New Match Set* to create a set of
record match points. Give the set a *Name*. Assign the *Owning Library* from
the dropdown list. The *Match Set Type* should remain as *biblio*. Click
image::media/create_match_sets.png[Creating a Match Point]
. Click *Save Changes to Expression*.
-==== Quality Metrics ====
+=== Quality Metrics ===
* Quality metrics provide a mechanism for Evergreen to measure the quality of
records and to make importing decisions based on quality.
* Metrics are configured in the match set editor.
image::media/record_quality_metrics.png[Quality Metric Grid]
-==== Import Item Attributes ====
+=== Import Item Attributes ===
If you are importing items with your records, you will need to map the data in
your holdings tag to fields in the item record. Click the *Holdings Import
Profile* button to map this information.
image::media/batch_import_profile.png[Partial Screenshot of a Holdings Import Profile]
-==== Overlay/Merge Profiles ====
+=== Overlay/Merge Profiles ===
If Evergreen finds a match for an incoming record in the database, you need to
identify which fields should be replaced, which should be preserved, and which
should be added to the record. Click the *Merge/Overlay Profiles* button to
You can add multiple tags to these specifications, separating each tag with a
comma.
-==== Importing the records ====
+=== Importing the records ===
After making the above configurations, you are now ready to import your
records.
-== Introduction ==
+= Introduction =
+:toc:
The Evergreen system allows a free range of customizations to every aspect of
the system. Use this part of the documentation to become familiar with the tools
for configuring the system as well as customizing the catalog and staff client.
-== Migrating Patron Data ==
+= Migrating Patron Data =
+:toc:
-=== Introduction ===
+== Introduction ==
This section will explain the task of migrating your patron data from comma
delimited files into Evergreen. It does not deal with the process of exporting
This assumes 1 address per patron. More complex scenarios may require more sophisticated SQL.
-=== Creating an sql Script for Importing Patrons ===
+== Creating an sql Script for Importing Patrons ==
The procedure for importing patron can be automated with the help of an sql script. Follow these
steps to create an import script:
database is rolled back to its original state. Lines beginning with -- are
comments to let you you what each sql statement is doing and are not processed.
-=== Batch Updating Patron Data ===
+== Batch Updating Patron Data ==
For academic libraries, doing batch updates to add new patrons to the Evergreen
database is a critical task. The above procedures and import script can be
-== Migrating from a legacy system ==
+= Migrating from a legacy system =
+:toc:
-=== Introduction ===
+== Introduction ==
When you migrate to Evergreen, you generally want to migrate the bibliographic
records and item information that existed in your previous library system. For
then the following section will guide you towards a method of generating common
data formats so that you can then load the data into the database in bulk.
-=== Making electronic resources visible in the catalog ===
+== Making electronic resources visible in the catalog ==
Electronic resources generally do not have any call number or item information
associated with them, and Evergreen enables you to easily make bibliographic
records visible in the public catalog within sections of the organizational
load the records using either the command-line bulk import method or the MARC
Batch Importer in the staff client.
-=== Migrating your bibliographic records ===
+== Migrating your bibliographic records ==
Convert your MARC21 binary records into the MARCXML format, with one record per
line. You can use the following Python script to achieve this goal; just
install the _pymarc_ library first, and adjust the values of the _input_ and
-== Ordering materials ==
+= Ordering materials =
+:toc:
-=== Introduction ===
+== Introduction ==
Acquisitions allows you to order materials, track the expenditure of your
collections funds, track invoices and set up policies for manual claiming. In
this chapter, we're going to be describing how to use the most essential
functions of acquisitions in the Evergreen system.
-=== When should libraries use acquisitions? ===
+== When should libraries use acquisitions? ==
* When you want to track spending of your collections budget.
* When you want to use Evergreen to place orders electronically with your
vendors.
with acquisitions. At a minimum, a library must configure *Funding Sources*,
*Funds*, and *Providers* to use acquisitions.
-=== Managing Funds ===
+== Managing Funds ==
-==== Funding Sources (Required) ====
+=== Funding Sources (Required) ===
Funding sources allow you to specify the sources that contribute monies to your
fund(s). You can create as few or as many funding sources as you need. These
can be used to track exact amounts for accounts in your general ledger.
hyperlinked name of the funding source and then click the *Apply Credit*
button. Add the amount of funds you need to add. The *Note* field is optional.
-==== Funds (Required) ====
+=== Funds (Required) ===
Funds allow you to allocate credits toward specific purchases. They typically
are used to track spending and purchases for specific collections. Some
libraries may choose to define very broad funds for their collections (e.g.
*Funding Source* from which the allocation will be drawn and then enter an
amount for the allocation. The *Note* field is optional.
-==== Fund Tags (Optional) ====
+=== Fund Tags (Optional) ===
You can apply tags to funds so that you can group funds for easy reporting. For
example, you have three funds for children’s materials: Children's Board Books,
Children's DVDs, and Children's CDs. Assign a fund tag of children's to each
For convenience when propagating or rolling over a fund for a new fiscal year,
fund tags will be copied from the current fund to the new year's fund.
-=== Ordering ===
+== Ordering ==
-==== Providers (Required) ====
+=== Providers (Required) ===
Providers are the vendors from whom you order titles.
. To add a provider record, select *Administration -> Acquisitions Administration ->
*Provider Name*, *Code*, *Owner*, and *Currency*. You also need to select the
*Active* checkbox to use the provider.
-==== Distribution Formulas (Optional) ====
+=== Distribution Formulas (Optional) ===
If you are ordering for a multi-branch library system, distribution formulas
are a useful way to specify the number of items that should be distributed to
specific branches and item locations.
the right side of the field.
. Keep adding entries until the distribution formula is complete.
-==== Helpful acquisitions Library Settings ====
+=== Helpful acquisitions Library Settings ===
There are several acquisitions Library Settings available that will help with
acquisitions workflow. These settings can be found at *Administration -> Local
Administration -> Library Settings Editor*.
* Temporary call number prefix - Applies a unique prefix to the start of the
call number that is automatically generated during the acquisitions process.
-==== Preparing for order record loading ====
+=== Preparing for order record loading ===
If your library is planning to upload order records in a batch, you need to add
some information to your provider records so that Evergreen knows how to map
the item data contained in the order record.
+
where 962 is the holdings tag and p is the subfield that contains the PO Name.
-==== Preparing to send electronic orders from Evergreen ====
+=== Preparing to send electronic orders from Evergreen ===
If your library wants to transmit electronic order information to a vendor, you
will need to configure your server to use EDI. You need to install the EDI
translator and EDI scripts on your server by following the instructions in the
-== Troubleshooting TPAC errors ==
+= Troubleshooting TPAC errors =
+:toc:
If there is a problem such as a TT syntax error, it generally shows up as an
ugly server failure page. If you check the Apache error logs, you will probably
* xref:api:introduction.adoc[Getting Data from Evergreen]
-** xref:development:data_supercat.adoc[]
-** xref:development:data_unapi.adoc[]
-** xref:development:data_opensearch.adoc[]
+** xref:development:data_supercat.adoc[Using Supercat]
+** xref:development:data_unapi.adoc[Using UnAPI]
+** xref:development:data_opensearch.adoc[Using Opensearch as a developer]
* xref:development:introduction.adoc[Developer Resources]
-** xref:development:support_scripts.adoc[]
-** xref:development:pgtap.adoc[]
-** xref:development:intro_opensrf.adoc[]
-** xref:development:updating_translations_launchpad.adoc[]
+** xref:development:support_scripts.adoc[Support Scripts]
+** xref:development:pgtap.adoc[Developing with pgTAP tests]
+** xref:development:intro_opensrf.adoc[Easing gently into OpenSRF]
+** xref:development:updating_translations_launchpad.adoc[Updating translations
+using Launchpad]
-== Using Opensearch as a developer ==
+= Using Opensearch as a developer =
+:toc:
-=== Introduction ===
+== Introduction ==
Evergreen responds to OpenSearch requests. This can be a good way to get
search results delivered in a format that you prefer.
-== Using Supercat ==
+= Using Supercat =
+:toc:
-=== Introduction ===
+== Introduction ==
You can use SuperCat to get data about ISBNs, metarecords, bibliographic
records, and authority records.
Throughout this section, replace `<hostname>` with the domain or subdomain
of your Evergreen installation to try these examples on your own system.
-=== ISBNs ===
+== ISBNs ==
Given one ISBN, Evergreen can return a list of related records and ISBNs,
including alternate editions and translations. To use the Supercat
</idlist>
----------------------------------------------------------------------------
-=== Records ===
+== Records ==
-==== Record formats ====
+=== Record formats ===
First, determine which format you'd like to receive data in. To see the
available formats for bibliographic records, visit
============================================================================
-==== Retrieve records ====
+=== Retrieve records ===
You can retrieve records using URLs in the following format:
----
</modsCollection>
----------------------------------------------------------------------------
-==== Recent records ====
+=== Recent records ===
SuperCat can return feeds of recently edited or created authority and bibliographic records:
Example: http://gapines.org/opac/extras/feed/freshmeat/atom/biblio/import/10/2008-01-01
-===== Filtering by Org Unit =====
+==== Filtering by Org Unit ====
You can generate a similar list, with the added ability to limit by Org Unit, using the item-age browse axis.
Example: http://gapines.org/opac/extras/browse/html-full/item-age/ARL-BOG/1/10
-===== Additional Filters =====
+==== Additional Filters ====
If you'd like to limit to a particular status, you can append `?status=0`
where `0` is the ID number of the status you'd like to limit to. If a
-== Using UnAPI ==
+= Using UnAPI =
+:toc:
-=== URL format ===
+== URL format ==
Evergreen's unAPI support includes access to many
record types. For example, the following URL would fetch
-== Easing gently into OpenSRF ==
+= Easing gently into OpenSRF =
+:toc:
-=== Abstract ===
+== Abstract ==
The Evergreen open-source library system serves library consortia composed of
hundreds of branches with millions of patrons - for example,
http://www.georgialibraries.org/statelibrarian/bythenumbers.pdf[the Georgia
simple code examples, and explains the technical foundations on which OpenSRF
is built.
-=== Introducing OpenSRF ===
+== Introducing OpenSRF ==
OpenSRF is a message routing network that offers scalability and failover
support for individual services and entire servers with minimal development and
deployment overhead. You can use OpenSRF to build loosely-coupled applications
could add an inexpensive server to your cluster and dedicate it to running that
resource-hungry service.
-==== Programming language support ====
+=== Programming language support ===
If you need to develop an entirely new OpenSRF service, you can choose from a
number of different languages in which to implement that service. OpenSRF
to use the Python implementation as the cleanest basis for a port to another
language.
-==== OpenSRF communication flows over XMPP ====
+=== OpenSRF communication flows over XMPP ===
The XMPP messaging service underpins OpenSRF, requiring an XMPP server such
as http://www.ejabberd.im/[ejabberd]. When you start OpenSRF, the first XMPP
`opensrf@private.localhost/opensrf.simple-text_drone_at_localhost_6285`.
[#OpenSRFOverHTTP]
-==== OpenSRF communication flows over HTTP ====
+=== OpenSRF communication flows over HTTP ===
Any OpenSRF service registered with the public router is accessible via the
OpenSRF HTTP Translator. The OpenSRF HTTP Translator implements the
http://www.open-ils.org/dokuwiki/doku.php?id=opensrf_over_http[OpenSRF-over-HTTP
additional authentication and authorization layer in `open-ils.pcrud` prevents
unchecked access to Evergreen's data.
-==== Stateless and stateful connections ====
+=== Stateless and stateful connections ===
OpenSRF supports both _stateless_ and _stateful_ connections. When an OpenSRF
client issues a `REQUEST` message in a _stateless_ connection, the router
.CONNECT, REQUEST, and DISCONNECT flow in a stateful connection
image:media/CONNECT.png[CONNECT, REQUEST, and DISCONNECT flow in a stateful connection]
-=== Enough jibber-jabber: writing an OpenSRF service ===
+== Enough jibber-jabber: writing an OpenSRF service ==
Imagine an application architecture in which 10 lines of Perl or Python, using
the data types native to each language, are enough to implement a method that
can then be deployed and invoked seamlessly across hundreds of servers. You
procedure is how we introduce a method to the rest of the OpenSRF world.
[#serviceRegistration]
-==== Registering a service with the OpenSRF configuration files ====
+=== Registering a service with the OpenSRF configuration files ===
Two files control most of the configuration for OpenSRF:
Once you have defined the new service, you must restart the OpenSRF Router
to retrieve the new configuration and start or restart the service itself.
-==== Calling an OpenSRF method ====
+=== Calling an OpenSRF method ===
OpenSRF clients in any supported language can invoke OpenSRF services in any
supported language. So let's see a few examples of how we can call our fancy
new `opensrf.simple-text.reverse()` method:
-===== Calling OpenSRF methods from the srfsh client =====
+==== Calling OpenSRF methods from the srfsh client ====
`srfsh` is a command-line tool installed with OpenSRF that you can use to call
OpenSRF methods. To call an OpenSRF method, issue the `request` command and pass
the OpenSRF service and method name as the first two arguments; then pass a list
--------------------------------------------------------------------------------
[#opensrfIntrospection]
-===== Getting documentation for OpenSRF methods from the srfsh client =====
+==== Getting documentation for OpenSRF methods from the srfsh client ====
The `srfsh` client also gives you command-line access to retrieving metadata
about OpenSRF services and methods. For a given OpenSRF method, for example,
<9> `argc` is an integer describing the minimum number of arguments that
must be passed to this method.
-===== Calling OpenSRF methods from Perl applications =====
+==== Calling OpenSRF methods from Perl applications ====
To call an OpenSRF method from Perl, you must connect to the OpenSRF service,
issue the request to the method, and then retrieve the results.
<10> The `OpenSRF::AppSession->disconnect()` method closes the XMPP client
connection and cleans up resources associated with the session.
-==== Accepting and returning more interesting data types ====
+=== Accepting and returning more interesting data types ===
Of course, the example of accepting a single string and returning a single
string is not very interesting. In real life, our applications tend to pass
documentation used to register to determine the data structures - if the developer has
added the appropriate documentation.
-==== Accepting and returning Evergreen objects ====
+=== Accepting and returning Evergreen objects ===
OpenSRF is agnostic about objects; its role is to pass JSON back and forth
between OpenSRF clients and services, and it allows the specific clients and
Evergreen can then act in batch mode over the collection to perform the
requested actions on any of the instances that have been flagged for action.
-==== Returning streaming results ====
+=== Returning streaming results ===
In the previous implementation of the `opensrf.simple-text.split` method, we
returned a reference to the complete array of results. For small values being
<2> Registering the method as a streaming method instructs OpenSRF to also
register an atomic variant (`opensrf.simple-text.split.atomic`).
-==== Error! Warning! Info! Debug! ====
+=== Error! Warning! Info! Debug! ===
As hard as it may be to believe, it is true: applications sometimes do not
behave in the expected manner, particularly when they are still under
development. The server language bindings for OpenSRF include integrated
set to INTERNAL for a few minutes - just ensure that you have a lot of free disk
space available if you have a moderately busy system!
-==== Caching results: one secret of scalability ====
+=== Caching results: one secret of scalability ===
If you have ever used an application that depends on a remote Web service
outside of your control-say, if you need to retrieve results from a
microblogging service-you know the pain of latency and dependability (or the
value in seconds to ensure that we do not return stale data on subsequent
calls
-==== Initializing the service and its children: child labour ====
+=== Initializing the service and its children: child labour ===
When an OpenSRF service is started, it looks for a procedure called
`initialize()` to set up any global variables shared by all of the children of
the service. The `initialize()` procedure is typically used to retrieve
Similarly, when the OpenSRF service is stopped, it calls the `DESTROY()`
procedure to clean up any remaining resources.
-==== Retrieving configuration settings ====
+=== Retrieving configuration settings ===
The settings for OpenSRF services are maintained in the `opensrf.xml` XML
configuration file. The structure of the XML document consists of a root
element `<opensrf>` containing two child elements:
every request and enable the developer to request specific values without
having to manually construct XPath expressions.
-=== Getting under the covers with OpenSRF ===
+== Getting under the covers with OpenSRF ==
Now that you have seen that it truly is easy to create an OpenSRF service, we
can take a look at what is going on under the covers to make all of this work
for you.
-==== Get on the messaging bus - safely ====
+=== Get on the messaging bus - safely ===
One of the core innovations of OpenSRF was to use the Extensible Messaging and
Presence Protocol (XMPP, more colloquially known as Jabber) as the messaging
bus that ties OpenSRF services together across servers. XMPP is an "XML
list of services that should be public, are contained in the `opensrf_core.xml`
configuration file.
-==== Message body format ====
+=== Message body format ===
OpenSRF was an early adopter of JavaScript Object Notation (JSON). While XMPP
is an XML protocol, the Evergreen developers recognized that the compactness of
the JSON format offered a significant reduction in bandwidth for the volume of
look familiar; they match the structure of the <<OpenSRFOverHTTP,OpenSRF over
HTTP examples>> that we previously dissected.
-==== Registering OpenSRF methods in depth ====
+=== Registering OpenSRF methods in depth ===
Let's explore the call to `__PACKAGE__->register_method()`; most of the elements
of the hash are optional, and for the sake of brevity we omitted them in the
previous example. As we have seen in the results of the <<opensrfIntrospection,introspection call>>, a
*** `desc`: a description of the return value
*** `type`: the data type of the return value: for example, string, integer, boolean, number, array, or hash
-=== Evergreen-specific OpenSRF services ===
+== Evergreen-specific OpenSRF services ==
Evergreen is currently the primary showcase for the use of OpenSRF as an
application architecture. Evergreen 2.6.0 includes the following
integrated into the same configuration and control infrastructure as the
OpenSRF services.
-=== Evergreen after one year: reflections on OpenSRF ===
+== Evergreen after one year: reflections on OpenSRF ==
http://projectconifer.ca[Project Conifer] has been live on Evergreen for just
over a year now, and as one of the primary technologists I have had to work
a position to identify some of the strengths and weaknesses of OpenSRF based
on our experiences.
-==== Strengths of OpenSRF ====
+=== Strengths of OpenSRF ===
As a service infrastructure, OpenSRF has been remarkably reliable. We initially
deployed Evergreen on an unreleased version of both OpenSRF and Evergreen due
entire cluster in context, rather than trying to piece them together across
servers.
-==== Weaknesses ====
+=== Weaknesses ===
The primary weakness of OpenSRF is the lack of either formal or informal
documentation for OpenSRF. There are many frequently asked questions on the
contribute patches as they could sanity check their own code without an intense
effort before exposing it to their peers.
-=== Summary ===
+== Summary ==
In this article, I attempted to provide both a high-level and detailed overview
of how OpenSRF works, how to build and deploy new OpenSRF services, how to make
requests to OpenSRF method from OpenSRF clients or over HTTP, and why you
right application of skills could make a significant difference to the Evergreen
and OpenSRF projects.
-=== Appendix: Python client ===
+== Appendix: Python client ==
Following is a Python client that makes the same OpenSRF calls as the Perl
client:
-== Introduction ==
+= Introduction =
+:toc:
Developers can use this part to learn more about the programming languages,
communication protocols and standards used in Evergreen.
-== Developing with pgTAP tests ==
+= Developing with pgTAP tests =
+:toc:
-=== Setting up pgTAP on your development server ===
+== Setting up pgTAP on your development server ==
Currently, Evergreen pgTAP tests expect a version of pgTAP (0.93)
that is not yet available in the packages for most Linux distributions.
CREATE EXTENSION pgtap;
------------------------------------------------------------------------------
-=== Running pgTAP tests ===
+== Running pgTAP tests ==
The pgTAP tests can be found in subdirectories of `Open-ILS/src/sql/Pg/`
as follows:
-== Support Scripts ==
+= Support Scripts =
+:toc:
Various scripts are included with Evergreen in the `/openils/bin/` directory
(and in the source code in `Open-ILS/src/support-scripts` and
[#authority_control_fields]
-=== authority_control_fields: Connecting Bibliographic and Authority records ===
+== authority_control_fields: Connecting Bibliographic and Authority records ==
indexterm:[authority control]
[#marc_export]
-=== marc_export: Exporting Bibliographic Records into MARC files ===
+== marc_export: Exporting Bibliographic Records into MARC files ==
indexterm:[marc_export]
indexterm:[MARC records,exporting,using the command line]
`marc_export` does not output progress as it executes.
====================
-==== Options ====
+=== Options ===
The *marc_export* support script includes several options. You can find a complete list
by running `./marc_export -h`. A few key options are also listed below:
-===== --descendants and --library =====
+==== --descendants and --library ====
The `marc_export` script has two related options, `--descendants` and
`--library`. Both options take one argument of an organizational unit
in the output. You can also combine `--library` and `--descendants`
options when necessary.
-===== --items =====
+==== --items ====
The `--items` option will add an 852 field for every relevant item to the MARC
record. This 852 field includes the following information:
|===================================
-===== --since =====
+==== --since ====
You can use the `--since` option to export records modified after a certain date and time.
-===== --store =====
+==== --store ====
By default, marc_export will use the reporter storage service, which should
work in most cases. But if you have a separate reporter database and you
know you want to talk directly to your main production database, then you
can set the `--store` option to `cstore` or `storage`.
-===== --uris =====
+==== --uris ====
The `--uris` option (short form: `-u`) allows you to export records with
located URIs (i.e. electronic resources). When used by itself, it will export
only records that have located URIs. When used in conjunction with `--items`,
[#pingest_pl]
-=== Parallel Ingest with pingest.pl ===
+== Parallel Ingest with pingest.pl ==
indexterm:[pgingest.pl]
indexterm:[MARC records,importing,using the command line]
of the input records as it cannot run in parallel with itself. It
does, however, run in parallel with the other ingests.
-==== Command Line Options ====
+=== Command Line Options ===
pingest.pl accepts the following command line options:
[#importing_authority_records_from_command_line]
-=== Importing Authority Records from Command Line ===
+== Importing Authority Records from Command Line ==
indexterm:[marc2are.pl]
indexterm:[pg_loader.pl]
psql -U evergreen -h localhost -d evergreen -f pg_loader-output.sql
----
-=== Juvenile-to-adult batch script ===
+== Juvenile-to-adult batch script ==
The batch `juv_to_adult.srfsh` script is responsible for toggling a patron
from juvenile to adult. It should be set up as a cron job.
When no library setting value is present at a given patron's home library, the
value passed in to the script will be used as a default.
-=== MARC Stream Importer ===
+== MARC Stream Importer ==
indexterm:[MARC records,importing,using the command line]
-== Updating translations using Launchpad ==
+= Updating translations using Launchpad =
+:toc:
This document describes how to update the translations in an Evergreen branch
by pulling them from Launchpad, as well as update the files to be translated
in Launchpad by updating the POT files in the Evergreen master branch.
-=== Prerequisites ===
+== Prerequisites ==
You must install all of the Python prerequisites required for building
translations, per
http://evergreen-ils.org/dokuwiki/doku.php?id=evergreen-admin:customizations:i18n
* http://pypi.python.org/pypi/simplejson/[simplejson]
* http://lxml.de/[lxml]
-=== Updating the translations ===
+== Updating the translations ==
. Check out the latest translations from Launchpad by branching the Bazaar
repository:
* xref:opac:introduction.adoc[Using the Public Access Catalog]
-** xref:opac:using_the_public_access_catalog.adoc[]
-** xref:opac:my_lists.adoc[]
-** xref:opac:batch_actions_from_search.adoc[]
-** xref:opac:kids_opac.adoc[]
-** xref:opac:catalog_browse.adoc[]
-** xref:opac:advanced_features.adoc[]
-** xref:opac:tpac_meta_record_holds.adoc[]
-** xref:opac:linked_libraries.adoc[]
-** xref:opac:opensearch.adoc[]
-** xref:opac:search_form.adoc[]
+** xref:opac:using_the_public_access_catalog.adoc[Using the Public Access
+Catalog]
+** xref:opac:my_lists.adoc[My Lists]
+** xref:opac:batch_actions_from_search.adoc[Batch Actions from Search]
+** xref:opac:kids_opac.adoc[Kids OPAC]
+** xref:opac:catalog_browse.adoc[Catalog Browse]
+** xref:opac:advanced_features.adoc[Bibliographic Search Enhancements]
+** xref:opac:tpac_meta_record_holds.adoc[TPAC Metarecord Search and Metarecord
+Level Holds]
+** xref:opac:linked_libraries.adoc[Library Information Pages]
+** xref:opac:opensearch.adoc[Adding Evergreen Search to Web Browsers]
+** xref:opac:search_form.adoc[Adding an Evergreen search form to a web page]
-== Bibliographic Search Enhancements ==
+= Bibliographic Search Enhancements =
+:toc:
Enhancements to the bibliographic search function enable you to search for records that were created, edited, or deleted within a date range. You can use the catalog interface or the record feed to search for records with specific date ranges.
Note that all dates should be formatted as YYYY-MM-DD and should be included in parentheses.
-=== Use the Catalog to Retrieve Records with Specified Date Ranges: ===
+== Use the Catalog to Retrieve Records with Specified Date Ranges: ==
-==== Search by Create Date or Range ====
+=== Search by Create Date or Range ===
To find records that were created on or after a specific date, enter the term, create_date, and the date in the catalog search field. For example, to find records that were created on or after April 1, 2013, enter the following into the catalog search field:
-==== Search by Edit Date or Range ====
+=== Search by Edit Date or Range ===
To find records that were edited on or before a specific date, enter the term, edit-date, and the date in the catalog search field. The date should be preceded by a comma. For example, to find records that were edited on or before April 1, 2013, enter the following into the catalog search field:
-==== Search by Deleted Status ====
+=== Search by Deleted Status ===
To search for deleted records, enter in your catalog search field the term, edit_date, the date that you want to search, and the term, #deleted. For example, to find records that were deleted on or after April 1, 2013, enter the following into the catalog search field:
-=== Use a Feed to Retrieve Records with Specified Date Ranges: ===
+== Use a Feed to Retrieve Records with Specified Date Ranges: ==
You can use a feed to retrieve records that were created, edited, or deleted within specific date ranges by adding the dates to the catalog's URL. You can do this manually, or you can write a script that would automatically retrieve this information.
[#batch_actions_from_search]
-== Batch Actions from Search ==
+= Batch Actions from Search =
+:toc:
-=== Introduction ===
+== Introduction ==
The public catalog and staff interface display checkboxes on the search results pages, both for bibliographic records and metarecord constituents. Selecting one or more titles with these checkboxes adds the titles to a basket, which is viewable on the search bar as an icon. Users can then take a variety of actions on titles within the basket: place holds, print or email title details, add the items to a permanent list (from the public catalog) or add the titles to a bucket (from the staff interface).
-=== Using Batch Actions from Search in the Public Catalog ===
+== Using Batch Actions from Search in the Public Catalog ==
. Perform a search in the public catalog and retrieve a list of results.
+
image::media/BatchActionsSearch-03.png[Details of Basket Actions Drop-down]
-==== Actions Initiated with the Basket Actions Drop-down ====
+=== Actions Initiated with the Basket Actions Drop-down ===
* *View Basket* - This opens the basket in a new screen. Checkboxes allow for the selection of one or more titles within the basket. A drop-down menu appears above the list of titles that can be used to place holds, print title details, email title details, or remove titles from the basket. This menu reads _Actions for these items_. (See the next section for more information about this menu.)
* *Place Hold* - This allows for placement of holds in batch for all of the items in the basket. If not already authenticated, users will be asked to login. Once authenticated, the holds process begins for all titles within the basket. Users can set _Advanced Hold Options_ for each title, as well as set the pickup location, hold notification and suspend options.
* *Clear Basket* - This removes removes all titles from the basket
-==== View Basket -> _Actions for These Items_ Drop-down Menu ====
+=== View Basket -> _Actions for These Items_ Drop-down Menu ===
Most actions described above can be taken on titles from within the basket with the _Actions for these items_ drop-down menu. This menu offers additional flexibility, as users can select some or all of the individual titles in the basket on which to place holds, print or email details, or remove from the basket. Users cannot add titles to permanent lists with this menu.
image::media/BatchActionsSearch-04.png[Actions for These Items Drop-down Menu]
-=== Using Batch Actions from Search in the Staff Interface ===
+== Using Batch Actions from Search in the Staff Interface ==
. Perform a search in the staff interface and retrieve a list of results.
+
image::media/BatchActionsSearch-03.png[Details of Basket Actions Drop-down]
-==== Actions Initiated with the Basket Actions Drop-down ====
+=== Actions Initiated with the Basket Actions Drop-down ===
* *View Basket* - This opens the basket in a new screen. Checkboxes allow for the selection of one or more titles within the basket. A drop-down menu appears above the list of titles that can be used to place holds, print title details, email title details, or remove titles from the basket. This menu reads _Actions for these items_. (See the next section for more information about this menu.)
* *Clear Basket* - removes all items from the basket
-==== View Basket -> Actions for These Items Drop-down Menu ====
+=== View Basket -> Actions for These Items Drop-down Menu ===
Most of the basket actions can be taken on titles from within the basket with the _Actions for these items_ drop-down menu. This menu offers additional flexibility, as staff can select some or all of the individual titles within the basket on which to place holds, print or email details, or remove from the basket. Staff cannot place titles in Records Buckets from this menu.
-=== Additional Information ===
+== Additional Information ==
The basket used to be called a *Temporary List* in previous versions of Evergreen.
-== Catalog Browse ==
+= Catalog Browse =
+:toc:
*Abstract*
-== Introduction ==
+= Introduction =
+:toc:
Evergreen has a public OPAC that meets WCAG guidelines
(http://www.w3.org/WAI/intro/wcag), which helps make the OPAC accessible to
-== Kids OPAC ==
+= Kids OPAC =
+:toc:
-=== Introduction ===
+== Introduction ==
The Kids OPAC (KPAC) is a public catalog search that was designed for children
and teens. Colorful menu items,large buttons, and simple navigation make this
extend the KPAC using the code that already exists in the TPAC. Finally, third
party content, such as reader reviews, can be integrated into the KPAC.
-=== Choose a Skin ===
+== Choose a Skin ==
Two skins, or design interfaces, have been created for the KPAC. The KPAC was
designed to run multiple skins on a single web server. A consortium, then, could
image::media/Kids_OPAC2.jpg[Kids_OPAC2]
-=== Search the Catalog ===
+== Search the Catalog ==
You can search the catalog using only the search bar, the search grid, or the search
bar and the collection drop down menu.
-=== Place a Hold ===
+== Place a Hold ==
From the search results, click the *Get it!* link to place a hold.
-=== Save Items to a List ===
+== Save Items to a List ==
You can save items to a temporary list, or, if you are logged in, you can save to
a list of your own creation. To save items to a list, click the *Get it* button
-=== Third Party Content ===
+== Third Party Content ==
Third party content, such as reader reviews, can be viewed in the Kids OPAC. The
reviews link appears adjacent to the brief information.
image::media/Kids_OPAC10.jpg[Kids_OPAC10]
-=== Configuration Files ===
+== Configuration Files ==
Configuration files allow you to define labels for canned searches in the icon
grid, determine how icons lead users to new pages, and define whether those icons
-== Library Information Pages ==
+= Library Information Pages =
+:toc:
The branch name displayed in the copy details section of the search results
page, the record summary page, and the kids catalog record summary page will
[#my_account]
-=== My Account ===
+== My Account ==
// ``First Login Password Update'' the following documentation comes from JSPAC
// as of 2013-03-12 this feature did not exist in EG 2.4 TPAC,
[#password_reset]
-==== Password Reset ====
+=== Password Reset ===
indexterm:[my account, password reset]
. Login to your account with your new password.
-==== Account Summary ====
+=== Account Summary ===
indexterm:[my account, account summary]
After changing any of these settings, you must click _Save_ to store your
preferences.
-===== Authorize other people to use your account =====
+==== Authorize other people to use your account ====
indexterm:[Allow others to use my account]
indexterm:[checking out,materials on another patron's account]
indexterm:[holds, preferred pickup location]
-==== Patron Messages ====
+=== Patron Messages ===
The Patron Message Center provides a way for libraries to communicate with
patrons through messages that can be accessed through the patron's OPAC account.
NOTE: Patron deleted messages will still appear in the patron's account in the
staff client under Other -> Message Center.
-==== Reservations ====
+=== Reservations ===
When patrons place a reservation for a particular item at a particular time,
they can check on its status using the *Reservations* tab.
-== My Lists ==
+= My Lists =
+:toc:
The *My Lists* feature replaces the bookbag feature that was available in versions prior to 2.2. The *My Lists* feature is a part of the Template Toolkit OPAC that is available in version 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.
image::media/My_Lists.png[My Lists]
-=== Create New Lists ===
+== Create New Lists ==
1) Log in to your account in the OPAC.
16) When you no longer need a list, click *Delete List*.
-=== Local Call Number in My Lists ===
+== Local Call Number in My Lists ==
When a title is added to a list in the TPAC, a local call number will be displayed in the list to assist patrons in locating the physical item. Evergreen will look at the following locations to identify the most relevant call number to display in the list:
image::media/my_list_call_numbers.png[Local Call Number in List]
-=== My Lists Preferences ===
+== My Lists Preferences ==
Patrons can adjust the number of lists or list items displayed in a page. This setting can be found under the *Account Preferences* tab, in the *My Lists Preferences* section.
-== Creating a New Skin: the Bare Minimum ==
+= Creating a New Skin: the Bare Minimum =
+:toc:
-=== Introduction ===
+== Introduction ==
When you adopt the TPAC as your catalog, you must create a new skin. This
involves a combination of overriding template files and setting Apache
directives to control the look and feel of your customized TPAC.
-=== Apache directives ===
+== Apache directives ==
There are a few Apache directives and environment variables of note for
customizing TPAC behavior. These directives should generally live within a
`<vhost>` section of your Apache configuration.
SetEnv physical_loc 104
------------------------------------------------------------------------------
-=== Customizing templates ===
+== Customizing templates ==
When you install Evergreen, the TPAC templates include many placeholder images,
text, and links. You should override most of these to provide your users with a
custom experience that matches your library. Following is a list of templates
-== Adding Evergreen Search to Web Browsers ==
+= Adding Evergreen Search to Web Browsers =
+:toc:
-=== Adding OpenSearch to Firefox browser ===
+== Adding OpenSearch to Firefox browser ==
OpenSearch is a collection of simple formats for the sharing of search results.
More information about OpenSearch can be found on their
-== Adding an Evergreen search form to a web page ==
+= Adding an Evergreen search form to a web page =
+:toc:
-=== Introduction ===
+== Introduction ==
To enable users to quickly search your Evergreen catalog, you can add a
simple search form to any HTML page. The following code demonstrates
how to create a quick search box suitable for the header of your web
site:
-=== Simple search form ===
+== Simple search form ==
[source,html]
------------------------------------------------------------------------------
wish to anchor your search. This is the value of the ''locg'' parameter in
your normal search.
-=== Advanced search form ===
+== Advanced search form ==
[source,html]
--------------------------------------------------------------------------------
</form>
--------------------------------------------------------------------------------
-=== Encoding ===
+== Encoding ==
For non English characters it is vital to set the attribute `accept-charset="UTF-8"` in the form tag (as in the examples above). If the parameter is not set, records with non English characters will not be retrieved.
-=== Setting the document type ===
+== Setting the document type ==
You can set the document types to be searched using the attribute `option value=` in the form. For the value use MARC 21 code defining the type of record (i.e. https://www.loc.gov/marc/bibliographic/bdleader.html[Leader, position 06]).
For example, for musical recordings you could use `<option value='j'>Musical Sound Recording</option>`
-=== Setting the library ===
+== Setting the library ==
Instead of searching the entire consortium, you can set the Library to be searched in using the attribute `option value=` in the form. For the value use Evergreen database.organization unit ID.
-=== Search URL ===
+== Search URL ==
indexterm:[search, URL]
+++[hostname]+++/eg/opac/results?query=[search term]&**qtype**=keyword&fi%3Aitem_type=&**locg**=[location id]
-==== locg Parameter ====
+=== locg Parameter ===
This is the id of the search location. It is an integer and matches the id of the
location the user selected in the location drop down menu.
-==== qtype Parameter ====
+=== qtype Parameter ===
The _qtype_ parameter in the URL represents the search type values and represent
one of the following search or request types:
These match the options in the search type drop-down box.
-==== Sorting ====
+=== Sorting ===
The _sort_ parameter sorts the results on one of these criteria.
-== Sitemap generator ==
+= Sitemap generator =
+:toc:
A http://www.sitemaps.org[sitemap] directs search engines to the pages of
interest in a web site so that the search engines can intelligently crawl
-== TPAC Metarecord Search and Metarecord Level Holds ==
+= TPAC Metarecord Search and Metarecord Level Holds =
+:toc:
Metarecords are compilations of individual bibliographic records that represent
the same work. This compilation allows for several records to be represented on
-== Using the Public Access Catalog ==
+= Using the Public Access Catalog =
+:toc:
-=== Basic Search ===
+== Basic Search ==
indexterm:[OPAC]
Numeric_>>
=============
-==== Formats ====
+=== Formats ===
You can limit your search by formats based on MARC fixed field type:
* *VHS*
-===== Libraries =====
+==== Libraries ====
If you are using a catalogue in a library or accessing a library’s online
catalogue from its homepage, the search will return items for your local
available at your branch and all branches of your library system separately.
-=== Advanced Search ===
+== Advanced Search ==
Advanced searches allow users to perform more complex searches by providing more
options. Many kinds of searches can be performed from the _Advanced Search_
Clicking the _X_ button will close the search input row.
-==== Sort Results ====
+=== Sort Results ===
indexterm:[advanced search, sort results]
to order the search results by relevance, title, author, or publication date.
-==== Search Library ====
+=== Search Library ===
indexterm:[advanced search, search library]
to select different branches or the whole library system.
-==== Limit to Available ====
+=== Limit to Available ===
indexterm:[advanced search, limit to available]
Available_ to limit results to those titles that have items with a circulation
status of "available" (by default, either _Available_ or _Reshelving_).
-==== Exclude Electronic Resources ====
+=== Exclude Electronic Resources ===
indexterm:[advanced search, exclude electronic resources]
===============
-==== Search Filter ====
+=== Search Filter ===
indexterm:[advanced search, search filters]
_CTRL_ key as you click on the options. If nothing is selected for a filter,
the search will return results as though all options are selected.
-===== Search Filter Enhancements =====
+==== Search Filter Enhancements ====
Enhancements to the Search Filters now makes it easier to view, remove, and modify search filters while viewing search results in the Evergreen OPAC. Filters that are selected while conducting an advanced search in the Evergreen OPAC now appear below the search box in the search results interface.
[#numeric_search]
indexterm:[advanced search, numeric search]
-==== Numeric Search ====
+=== Numeric Search ===
If you have details on the exact item you wish to search for, use the _Numeric
Search_ tab on the advanced search page. Use the drop-down menu to select your
_LCCN_, _TCN_, or _Item Barcode_. Enter the information and then click the
_Search_ button.
-==== Expert Search ====
+=== Expert Search ===
indexterm:[advanced search, expert search]
search for "Gone with the wind".
=============
-=== Boolean operators ===
+== Boolean operators ==
indexterm:[search, AND operator]
indexterm:[search, OR operator]
| NOT | `-`_term_ | `a -b`
|=================================
-=== Search Tips ===
+== Search Tips ==
indexterm:[search, stop words]
indexterm:[search, truncation]
(example: _environment* agency_)
-=== Search Methodology ===
+== Search Methodology ==
[#stemming]
[#order_of_results]
-==== Order of Results ====
+=== Order of Results ===
indexterm:[search, order of results]
the search result screen.
-=== Search Results ===
+== Search Results ==
indexterm:[search results]
search results accordingly.
-==== Facets: Subjects, Authors, and Series ====
+=== Facets: Subjects, Authors, and Series ===
indexterm:[search results, facets: subjects, authors, and series]
image::media/catalogue-5.png[catalogue-5]
-==== Availability ====
+=== Availability ===
indexterm:[search results, availability]
copies' individual call number, status, and shelving location.
-==== Viewing a record ====
+=== Viewing a record ===
indexterm:[search results, viewing a record]
image::media/catalogue-8.png[catalogue-8]
image::media/catalogue-8a.png[catalogue-8a]
-=== Details ===
+== Details ==
indexterm:[search results, details]
image::media/using-opac-view-permalink.png[Permalink]
-==== SMS Call Number ====
+=== SMS Call Number ===
If configured by the library system administrator, you may send yourself the
call number via SMS message by clicking on the *Text* link, which appears beside
-== Library visibility on the Web ==
+= Library visibility on the Web =
+:toc:
-=== Introduction ===
+== Introduction ==
Evergreen follows a number of best practices to
make Library data integrate with the rest of the
eventual shift toward linked open bibliographic
data.
-=== Catalog data in search engines ===
+== Catalog data in search engines ==
Each record in the catalog is displayed to search
engines using http://schema.org[schema.org] microdata.
point of not allowing search engines to index your
site at all.
-==== Details of the schema.org mapping ====
+=== Details of the schema.org mapping ===
* Each item is listed as a
http://schema.org/Offer[schema:Offer], which is
http://schema.org/exampleOfWork[schema:exampleOfWork].
-==== Viewing microdata ====
+=== Viewing microdata ===
You can learn more about how Evergreen publicizes
these data by viewing them directly. The
http://linter.structured-data.org[structured data linter]
into the text box.
. Click _Submit_
-==== Other helpful features for search engines ====
+=== Other helpful features for search engines ===
* Titles of catalog pages follow a
"Page title - Library name" pattern to provide
specific titles in search engine results pages,
that provides machine-readable hours and contact
information.
-=== SKOS support ===
+== SKOS support ==
Some vocabularies used (or which could be used) for
stock record attributes and coded value maps in Evergreen