Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Evergreen Self Check Docs Updates
1. Document how to auto logon, it is simple, adding username= and password= to URL, but it should be included. Done
2. Add some suggestions for kiosk browsers.
a. Openkiosk details -
2. NOBLE setup docs -
3. Evergreen General List Thread -
3. Add a note about the barcode pattern regex YAOUS needing to be set for barcodes to be recognized. Done
4. Add info about where to edit the self check receipts.
5. Add info about where the template and css files are for those that want to customize the self check interface.
6. Add some screenshots of the interface.
7. Add a description of all the functions that can be performed in the self check. <started>
8. Add info about 2.9 new feature - Warning about timeout -
9. document issues with setting the event overrides.
2015 presentation -
<Stompro> bmills, can you give me some hints on how you got printing working with openkiosk?
<Stompro> bmills, I'm working on that right now but I'm not sure where to start with paper sizes, margin settings, etc.
* bshum whistles to himself as he looks up the names of files
<Stompro> bmills, we are using Star TSP100 (143), which I think was mentioned in your presentation. But you also mentioned issues with getting printing working.
<Stompro> bmills, was it you or Mielissa that was using openkiosk?
<Stompro> *Melissa*
<bmills> Stompro: let me dig back through the old notes just for a second
<bshum> Stompro: bmills:
<bshum> You're looking for printer_* lines out of the prefs.js file
<Stompro> bshum, Thanks... gah, those are recent, sorry I didn't remember reading them.
<bshum> What we did was cheat and set up a printer using Firefox's GUI configs, and then copying over the relevant lines to the OpenKiosk file.
<bmills> Stompro: we had tried using openkiosk but i remember it not working out for some reason. i think mceraso also encountered that. but it looks like bshum got it figured out. hood river is using the BlockSite and PublicFox addons currently and receipt printing is working out well using the templates from the presentation
<mmorgan> Stompro: bmills: Here's the self check station doc I put together. See the printer config at the bottom. It was bshum that led me to the openkiosk printer stuff:
<mmorgan> bshum++
<Stompro> bmills++,bshum++,mmorgan++ thanks for all the assistance. I'll see if I can get some of these tips into the official docs.
<kmlussier> mmorgan++
<kmlussier> Stompro++ # Moving good tips into the official docs.
<Stompro> Good morning everyone, if I want to create a new "skin" for the self check, to customize the css files in their own dir "/openils/var/web/css/skin/default". In the tt2 template files the variable by default, where is set? Is that an apache directive?
* maryj has quit (Read error: Connection reset by peer)
* mmorgan ( has joined #evergreen
* maryj ( has joined #evergreen
<berick> Stompro: see appears to be modified via cookie only at the moment.
<bshum> I imagine it could be added as a defined variable though elsewhere in the templates.
<berick> bshum: yes, definitely
<jeff> $ctx->{skin} = $cgi->cookie(OILS_HTTP_COOKIE_SKIN) || 'default';
<jeff> use constant OILS_HTTP_COOKIE_SKIN => 'eg_skin';
<berick> you could set = whatever directly in the template
<jeff> (for the specific bits from
<csharp> @who has the best cookie skin?
<pinesol_green> dbwells has the best cookie skin.
<berick> more than 1 way to skin a cookie?
<csharp> Cookie Skin sounds like a band name from Parks and Recreation
<jeff> those are the only two lines that reference that cookie that i can see.
<bshum> berick++ # I was looking in the wrong place in WWW perl bits.
<jeff> so, nothing that currently sets/manipulates the cookie in Evergreen at present.
<Stompro> berick, jeff, bshum thanks guys.

Self checkout

Evergreen includes a self check interface designed for libraries that simply want to record item circulation without supporting security mechanisms like magnetic strips or RFID tags.


The following features are supported by the Evergreen Self Checkout interface.

  • Checking out materials.

  • Renewing materials.

  • View checked out materials.

  • Print list of checked out materials.

  • View list of holds.

  • Print list of holds. (Not currently working)

  • View list of fines and bills.

  • Print list of fines and bills.

  • Pay for fines and bills if credit card payments are enabled.

Access and Authentication

By default, the self check does not require that you have a workstation set. This is not the recommended method of utilizing the self check because the circulations that are done throught the self check would show up using the staff users home library for checkout lib, and the Workstation would be NULL. So your statistics would not clearly show which circulations happen at a specific self check station. For that reason you should always make sure you set the Workstation Required library setting described later. This document will assume you have enabled that feature.

The self check interface runs in a web browser. Before patrons can use the self check station, a staff member must initialize the interface by logging in.

  1. Open your self check interface page in a web browser. By default, the URL is https://[hostname]/eg/circ/selfcheck/main, where [hostname] represents the host name of your Evergreen web server.

  2. Log in with a staff account with circulation permissions.

  3. The first time you log in you will get a prompt to set a workstation. Once you create a new workstation entry, you will want to add the workstation information to the default URL for this stations browser, so it always gets used. Add ?WS=[workstation], where [workstation] represetns your workstation name, to your URL. It will look like; https://[hostname]/eg/circ/selfcheck/main?WS=[workstation]. You can also enter an existing workstaion to start with and skip the adding a workstation step.

Auto login

If you would like to skip the manual login step, you can also specify the staff account username and password in the URL. If you are setting up a kiosk type station that you want to log in without any staff intervention, you will want to use this method.

Add the following to the URL &username=[username]&password=[password], where [username] represents the staff account username and where [password] represents the staff acount password. The whole URL should look like https://[hostname]/eg/circ/selfcheck/main?WS=[workstation]&username=[username]&password=[password].

Checking out or renewing items in the self check

After a staff user has logged into the self check interface, the interface is ready for patrons to log in and check out or renew items.

  1. The patron logs in by entering either their patron barcode or their user name.

  2. The patron enters the barcode for each item. If the patron types the barcode, they need to press the <Enter> key to check out the item. The item details, including due date, appear below the barcode field.

  3. When the patron is finished, they can click Logout if they want a receipt for their items, or Logout (no receipt) if they prefer no receipt.

Customizing Self Check Receipts

The receipts for the Self Check are configured in the staff client under AdminLocal AdministrationNotifications/Action Triggers. Filter by Name is like "Self%" to just show the self check related event definitions.

By default there are four Event Definitions setup for Self Check Use.

  1. Self-Checkout Fines Receipt - List of current fines & report of fines paid.

  2. Self-Checkout Holds Receipt - List of current holds.

  3. Self-Checkout Items Out Receipt - List of items currently checked out.

  4. Self-Checkout Receipt - Checkout receipt.

By default the receipt templates are global, so changes made to them will effect all self check stations connected to the same Evergreen server. If you want to customize the receipts for only some locations, you can clone the Event Definitions and change the Owning Library for each one. Then make changes to the new group of Event Definitions. See the Notification / Action Trigger section for more information.

Setting library hours of operation

When the self check prints a receipt, the default template includes the library’s hours of operation in the receipt. If the library has no configured hours of operation, the attempt to print a receipt fails and the browser hangs. So you will need to edit the checkout receipt to remove the hours of operation if it isn’t defined for all locations that use the self check.

Configuring self check behavior

Several library settings control the behavior of the self check:

  • Audio Alerts: Plays sounds when events occur in the self check. These events are defined in the templates/circ/selfcheck/audio_config.tt2 template. To use the default sounds, you could run the following command from your Evergreen server as the root user (assuming that /openils/ is your install prefix):

    cp -r /openils/var/web/xul/server/skin/media/audio /openils/var/web/.
  • Block copy checkout status: Prevent the staff user’s permission override from enabling patrons to check out items that they would not normally be able to check out, such as the "On reservation shelf" status. The status IDs are found in the config.copy_status database table.

  • Patron Login Timeout: Automatically logs the patron out of the self check after a certain period of inactivity. NOT CURRENTLY SUPPORTED

  • Pop-up alert for errors: In addition to displaying an alert message on the screen, this setting raises patron awareness of possible problems by raising an alert box that the patron must dismiss before they can check out another item.

  • Require Patron Password: By default, users can enter either their user name or barcode, without having to enter their password, to access their account. This setting requires patrons to enter their password for additional security.

  • Workstation Required: If set, the URL must either include a ?ws=[workstation] parameter, where [workstation] is the name of a registered Evergreen workstation, or the staff member must register a new workstation when they login. The workstation parameter ensures that check outs are recorded as occurring at the correct library.

  • Barcode format regex: This setting needs to be set for barcode’s to be recognized for authentication. The self check runs the authentication input (barcode or username) through this regular expression, if it matches then it is treated like a barcode, if it does not then it is treated like a username.

  • Blah: This settings allows the self check to bypass some Events that normally will block a checkout. A few of the most commonly used events are "COPY_ALERT_MESSAGE" (checkout blocked because item has an alert message), "COPY_NEEDED_FOR_HOLD" (checkout blocked because item is targeted to fill a hold).

Kiosk Browser Suggestions

These browser have been used by various sites to use the Self Check feature in production.

Open Kiosk by MozDev Group Inc.

The Open Kiosk is an easy to use kiosk browser that has many nice features included out of the box. It works well with the Evergreen Self Check except that the receipt printer setup needs some manual adjustments.

Open Kiosk Setup

Here is the miniumum setup you need to use Open Kiosk.

  1. In Settings → Browser, set your Self Check URL as the Home Page

  2. In Sessions → Cache, Check Preserve Session Cookies

  3. In Admin, Check Allow web page printing

  4. In Customize → UI Widgets, check hide all.

  5. In Customize → Firefox preferences → Tabs Uncheck Opening new windows in a new tab instead.

  6. In Customize → Firefox preferences → Content Uncheck Block pop-up windows

Open Kiosk Printing

An issue with Open Kiosk is that the printing settings cannot be customized in the program to the level that you will need to setup your receipts. To get around this you can also install firefox on your self check machine, and use it to get your printing settings right. Then copy the printer related settings from the firefox prefs.js to the Open Kiosk prefs.js. All the printer settings start with the printer name.

The basics like print margins and headers/footers can be edited directly, here are some examples.

Find the Open Kiosk profile directory. * WINXP "" * WIN7/8/10 "c:\users\AppData\MDG\OpenKiosk\profiles\xxx.default\pref.js" * Linux "/home/username/.openkiosk/profile/"

Open the prefs.js file and modify the printer settings to look like the following.

user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_edge_bottom”, 0);
user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_edge_left”, 0);
user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_edge_right”, 0);
user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_edge_top”, 0);
user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_footercenter”, “”);
user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_footerleft”, “”);
user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_footerright”, “”);
user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_headercenter”, “”);
user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_headerleft”, “”);
user_pref(“printer_Star_TSP650_Tear_Bar_(TSP651)_(Copy_1).print_headerright”, “”);
Firefox with Addons

Some systems have reported good luck using Mozilla Firefox along with several addons.

  • Mozilla Firefox -

  • Blocksite Addon - Lock down which sites can be loaded.

  • Public Fox - Block downloads, lock down bookmarks/addons/downloads with a password.

  • Reset Kiosk - Reset homepage view after period of inactivity, aka kiosk mode. Options for forcing fullscreen mode and clearing recent browsing history, cookies and cache.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment