HomeAdministrationPrinter Friendly Version


1. LibAdmin Training Video

1.1. 2 Hour Training for LibAdmin

This training was delivered Live on June 19, 2019.

It outlines many tasks that a person with a LibAdmin login may need to complete to get full use of participation in the SPARK Community.

Here's a link to it on YouTube: 


2. Sounds in Evergreen: Listen.

2.1. Sounds at the Workstation

They can be annoying, but their purpose is to draw attention to the screen. Think twice before turning them off.

If you must--

  • Go to Administration → Workstation.

  • Click the checkbox labeled Disable Sounds?

There are also options in the community to discuss system changes to sounds:   http://docs.evergreen-ils.org/reorg/3.2/command_line_admin/_managing_audio_alerts.html

Sounds can be important for some of your workers to keep focus.  The sound for "Successful Patron Search" should remind your staff to think about the importance of the person and opportunity to serve standing there.  For some people, the sound could be annoying, for others it could allow their abilities to truly shine. 

If you could have any sound for the Successful Patron search, what would it be? 

Be the energy you want to see in the SPARK community.

3. Staff Accounts

3.1. Descriptions of Staff Accounts: Permissions

A person who works for your library will typically have two accounts in our software. 
  1. They will have usually choose to have an account in their own name that they applied for in order to use your library location borrowing privileges--this is their personal account as a patron/customer of your library.  This account does not change if they change employment status with your library.  
  2. They will also have an account that has STAFF Permissions that is used to login to Evergreen's web client to do their work. 

Here is a breakdown of the current types of Staff Accounts by Permission Type: 
Staff members can be assigned both a primary and a secondary Staff Functions.
  • CircClerk: Can perform basic circulation functions.
  • CircSupervisor: Can perform same tasks as a CircClerk plus they can override special circumstances such as allowing a patron to check out materials even though he has exceed the fine threshold, checking out a book with an available hold to another patron etc.  They can also upload Offline Circulation Transactions and run reports.
  • Copy Cataloger: Can add copies and call numbers to existing bib records and edit them.
  • Tech Services: Copy Cataloger functions plus they can create, import, and edit MARC records and perform all acquisitions and serials control functions.
  • LibAdmin: Can perform all above functions. In addition, they can create report templates, edit receipt templates, change library hours, customize thestaffclient, create workstations, etc. This is typically reserved for library directors and Tech Support people.
  • SYSADMIN:  There are additional higher levels of accounts that are used by PaILS Staff and contracted vendors.

PaILS Support Staff are currently working on a project to more clearly define these permissions and maybe to add additional levels to empower the community. 

It is important to understand the security of your login, especially with the Web Client.  **Permissions that allow a person to create/register a new workstation should be carefully monitored to prevent access to patron data from locations outside the library.

Additional Information for Download:

  • Download the report output (and excel sheet) showing current permission groups and settings.  This file was exported 2019.12.18.   It shows which levels have which perm_codes and the depth. 
  • Download a draft of a Staff Account Policy that may be considered by PaILS at an upcoming Board meeting.   It is modeled on a policy used by Evergreen Indiana.  A suggestion might be to add this policy to the migration steps.
  • Download a draft of some more detailed documentation about Staff Permissions.  This is a working draft.  PaILS is considering if new permission levels may be needed for additional levels.

3.2. Assigning Staff Accounts: Step 1

It is a best practice that workers at your location have one account for personal library use and one account for their login as staff to the web client of Evergreen.  This allows your worker to have separation and privacy for borrowing.

Assigning a Staff Account uses the same process as Register Patron with a few extra steps and instructions. 

  • Staff accounts are used when your staff member logins in to the Web Client to perform work.  They may also be used in the catalog. 
  • Staff accounts may be used to borrow items if the staff member is using materials for a program/event/or library work related reason.  Staff accounts should NOT be used for the staff member to borrow items for their personal use.

People with LibAdmin permissions at your location should know how to assign, edit, and delete/make inactive staff accounts.

Here are the recommended protocols:

  • User Name should be made from the Shortcode of the the location in all capital letters with identifying characters of the staff member's last name. This is recommended because it prevents the staff member from searching for their personal library use account by last name.
  • First and Last name of the staff member with accountability for actions when signed in should be in those labeled fields.  It is also a cool idea to add the person's job title in the Prefix/Title field.
  • The Password should be non-obvious to restrict access to the account, a combination of letters and numbers is best.  It is not recommended to use a simple 4 number PIN for staff accounts.
  • Set the Home Library to the primary location where the staff member works.
  • Since this is a staff account, the address and phone number should contain the library location information.
  • If the staff member has a direct staff email address, please enter that here.  SPARK Support may use this address to contact the person with training opportunities.
  • The Main Profile Permission group should reflect the highest level of training and proficiency that the staff member has obtained. 
  • To add a Secondary Permission group, click on the Secondary Groups box and assign the appropriate secondary level and click "Apply Changes"
  • SAVE the account.
  • You will then have to assign a work org.  Don't forget this step as the account will not work properly until Work Orgs/Locations are assigned.


How to change a staff password:  Staff passwords can be changed by another staff member or by the staff member themselves if they log in to the OPAC, like a patron would change their password.

Staff passwords should be changed from the original that was shared with you when you first came on to SPARK.



3.3. Staff Accounts: Register and Assign a Work Org: Step 2

Staff Permissions in Evergreen are applied to a specific location and system depth based on the home library of the user. The user will only have that permission within the scope provided by the Depth field in relation to his/her working locations.

Evergreen provides group application permissions to control tasks that staff members have the ability to complete.  LibAdmins should create staff accounts.

New staff accounts are created the same way as patron accounts, using Circulation → Register Patron or Shift+F1.  Fill in all of the fields to define the staff member name/function and address, phone, email, stat cats, etc.  Select one of the staff profiles from the Profile Group drop-down menu. See the staff account descriptions to decide which permission group(s) should be assigned.  Each staff account must have one primary, but can also have a secondary.

Each staff account must also be assigned a Working Location which determines its access level in staff client interfaces.

To assign a working location, open the newly created staff account using F1 (retrieve patron) or F4 (patron search).

  1. Select Other → User Permission Editor

  2. Place a check in the box next to the desired working location(s), then scroll all the way to the bottom of the display and click Save.

Only select the working locations in this screen. Do NOT attempt to edit any of the permissions. Permissions are assigned by group and should not be altered individually.

3.4. When Staff Leave, Quit, or are Terminated

When a staff member leaves your library, it's important to disable their STAFF account to prevent unauthorized access.

It is a best practice that workers at your location have one account for personal library use and one account for their login to the web client of Evergreen.

When a staff member is no longer employed, you must disable their access to the staff module of Evergreen.

Consider these steps for the account the staff member used to login to Evergreen as follows:

  1. Change the password on the staff account so that the staff member does not have access to it as soon as staff member is no longer employed.  (This is currently #10 in your PaILS membership agreement.)
  2. If the staff account did work with cataloging and has Copy/Item templates that need to be transferred: Login with the staff account, choose Export on the Copy Editor screen, and save the file.   Then, log out of Evergreen and log back in with a different account, choose Import from the same Copy Editor screen and choose the file just saved to make the templates available to that login.
  3. If the staff account had Report templates/reports/output.  If the staff member has report information that need to be transferred, log into the old account and share the template folders to the location level that needs them.  (To share a report folder, go into that report folder, select Manage Folder, select Share this folder from the dropdown menu, and select your system.)  Using an account that needs the templates, find the old account name under Shared Folders, and open. Check the box beside the template you want and choose Clone selected template from the dropdown menu. Then, select the new folder to clone the template into.  To preserve report output, ensure that any output is saved in your local storage.  After you have retrieved what you need, then Manage Folders again and Un-Share the folders from the old staff account to keep your folders organized and current.
  4. Change the password on all shared workstations. If you used a shared account to login for your circulation desk computers, change the passwords for the accounts.  This is especially critical if the shared account had access to the reporter or the ability to set up workstations.
  5. After you have retrieved all of the data you need from the staff account, change the expiration date to the employee's last date of employment, mark the account inactive by unchecking the Active checkbox and Save the changes. 

After these steps, the no longer employed staff member will not be able to access their staff account in Evergreen.

Consider these steps for the staff member's personal/patron library use account based on local practices: 

  • If you don't give staff member accounts any special permissions (recommended), there are no steps you need to take with their personal account.
  • If your library uses Courtesy or Courtesy 3 yr accounts for staff member personal use of the library to give the benefit of no fines or other staff privleges, you will need to change the former staff member's personal account to Adult or Adult 3 Yr permissions.

4. Editing Receipt Templates

4.1. Receipt Template Package for Webby by Blair County

Attached are receipt template package samples for the Web Version of SPARK. They were started by Katie at Blair and have been changed and edited by other SPARK Community members.  If your library wants to contribute a sample of your templates because you spent time making them awesome, please do.  Ask to have them uploaded and shared here. 

Much of the info (library name, phone numbers, etc) that displays on receipts comes from database calls. 

Some spaces are left as "CUSTOM MESSAGE HERE" to give example places for how you can edit/add your own text.

The particular .json files below includes:

  • Checkout receipt with calculation of cost of items.

  • Reworking of the Holds Pull List to print as a List rather than a Table, to print on receipt printers.
  • Variations on how workstation name and login are displayed.


To use these templates, download the file (many locations use a flash drive to pass the "best" set of local templates among workstations) and then upload it to each workstation that prints.

Receipt templates follow the workstation login.  You can make customization on different workstations based on what you need to print at the time.

In the Spark Web Client, Upload it by going to Administration-->Workstation-->Print Templates.

Select the Import Button at the top right.

Importing Templates

  1. Click Import.
  2. Navigate to and select the template file that you want to import. Click Open.
  3. Click OK.
  4. Click Save Locally.
  5. Click OK.


Test to make sure the templates work well for your location and include the information you want. Some longer library names may wrap or break across lines, so small edits may be necessary.  Some libraries don't want the workstation login where the receipt was printed, some do. 

Receipt templates follow the workstation login.  You can make customization on different workstations based on what you need to print at the time.

Note: Find useful templates created by the Evergreen community here:  https://github.com/alynn26/Evergreen-Receipts/blob/master/checkout.html

4.2. Customizing Templates in Webby

Using the Receipt Template Editor in Webby

***Two Things to Keep in Mind for Receipts in Webby***

Clearing your browser's cache/temporary files will clear any print template customization that you make unless you are using Hatch to store your customization. Be sure to export a copy of your customization as a backup so that you can import it as needed. It's a good idea to keep a copy of your receipts on a Flash Drive or other external storage device for easy backup and transfer between workstations.

If you are modifying your templates and you do not see the updates appear on your printed receipt, you may need to go into Administration → Workstation → Stored Preferences and delete the stored preferences related to the print template that you modified (for example, eg.print.template_context.bills_current).


The print templates follow W3C HTML standards (see http://w3schools.com/html/default.asp) and can make use of CSS and Angular JS to a certain extent.

The Receipt Template Editor can be found at: Administration → Workstation → Print Templates

The Editor can also be found on the default home page of the staff client.

Receipts come in various types: Bills, checkout, items, holds, transits and Payments.

Receipt Templates

This is a complete list of the receipts currently in use in Evergreen.

Table 54.1. List of Receipts

Bills, Current

Listing of current bills on an account.

Bills, Historic

Listing of bills that have had payments made on them. This used on the Bill History Transaction screen.

Bills, Payment

Patron payment receipt


List of items that have been entered in to the check-in screen.


List of items currently checked out by a patron during the transaction.

Hold Transit Slip

This is printed when a hold goes in-transit to another library.

Hold Shelf Slip

This prints when a hold is fulfilled.

Holds for Bib Record

Prints a list of holds on a Title record.

Holds for Patron

Prints a list of holds on a patron record.

Hold Pull List

Prints the Holds Pull List.

Hold Shelf List

Prints a list of hold that are waiting to be picked up.

In-House Use List

Prints a list of items imputed into In-house use.

Item Status

Prints a list of items imputed into Item Status.

Items Out

Prints the list of items a patron has checked out.

Patron Address

Prints the current patrons address.

Patron Note

Prints a note on a patron's record.


List of items that have been renewed using the Renew Item Screen.

Transit List

Prints the list of items in-transit from the Transit List.

Transit Slip

This is printed when an items goes in-transit to another location.

Editing Receipts

To edit a Receipt:

  1. Select Administration → Workstation → Print Templates.
  2. Choose the Receipt in the drop down list.
  3. If you are using Hatch, you can choose different printers for different types of receipts with the Force Content field. If not, leave that field blank. Printer Settings can be set at Administration → Workstation → Printer Settings.

    select checkout
  4. Make edits to the Receipt on the right hand side.

    receipt screen
  5. Click out of the section you are editing to see what your changes will look right on the Left hand side.
  6. Click Save Locally in the Upper right hand corner.

Formatting Receipts

Print templates use variables for various pieces of information coming from the Evergreen database. These variables deal with everything from the library name to the due date of an item. Information from the database is entered in the templates with curly brackets {{term}}.

Example: {{checkout.title}}

Some print templates have sections that are repeated for each item in a list. For example, the portion of the Checkout print template below repeats every item that is checked out in HTML list format by means of the ng-repeat in the li tag.

<li ng-repeat="checkout in circulations">
Barcode: {{checkout.copy.barcode}}<br/>
Due: {{checkout.circ.due_date | date:"short"}}<br/>

Text Formatting

General text formatting





Bold (HTML)




Bold (CSS)


<span style="font-weight:bold;">hello</span>




<span style="text-transform:capitalize;">circulation</span>




{{1 | currency}}


Date Formatting

If you do not format dates, they will appear in a system format which isn't easily readable.





{{today | date:'short'}}

8/1/17 10:18 AM

{{today | date:'M/d/yyyy'}}


Currency Formatting

Add " | currency" after any dollar amount that you wish to display as currency.

Example: {{xact.summary.balance_owed | currency}} prints as $2.50

Conditional Formatting

You can use Angular JS to only print a line if the data matches. For example:

<div ng-if="hold.email_notify == 't'">Notify by email: {{patron.email}}</div>

This will only print the "Notify by email:" line if email notification is enabled for that hold.

Example for checkout print template that will only print the amount a patron owes if there is a balance:

<span ng-if="patron_money.balance_owed">You owe the library ${{patron_money.balance_owed}}</span>

See also: https://docs.angularjs.org/api/ng/directive/ngIf


To print just a sub-string of a variable, you can use a limitTo function. {{variable | limitTo:limit:begin}} where limit is the number of characters you are wanting, and begin (optional) is where you want to start printing those characters. To limit the variable to the first four characters, you can use {{variable | limitTo:4}} to get "vari". To limit to the last five characters you can use {{variable | limitTo:-5}} to get "iable". And {{variable | limitTo:3:3}} will produce "ria".




The Sisterhood of the Traveling Pants

{{checkout.title | limitTo:10}}

The Sisterhood of th


{{patron.card.barcode | limitTo:-5}}



{{patron.family_name | limitTo:3:3}}



You can use HTML and CSS to add an image to your print template if you have the image uploaded onto a publicly available web server. (It will currently only work with images on a secure (https) site.) For example:

<img src="https://evergreen-ils.org/wp-content/uploads/2013/09/copy-Evergreen_Logo_sm072.jpg" style="width:150px;padding:5px;">

Sort Order

You can sort the items in an ng-repeat block using orderBy. For example, the following will sort a list of holds by the shelving location first, then by the call number:

<tr ng-repeat="hold_data in holds | orderBy : ['copy.location.name','volume.label']">


You can use Angular JS to add information from each iteration of a loop together to create a subtotal. This involves setting an initial variable before the ng-repeat loop begins, adding an amount to that variable from within each loop, and then displaying the final amount at the end.

<div>You checked out the following items:</div>
<div ng-init="transactions.subtotal=0">                <!-- 1 -->
<div ng-repeat="checkout in circulations">
  <li ng-init="transactions.subtotal=transactions.subtotal -- checkout.copy.price"> <!-- 2 -->
     Barcode: {{checkout.copy.barcode}}<br/>
     Due: {{checkout.circ.due_date | date:"M/d/yyyy"}}
<div style="font-weight:bold;">Total Amount Owed: {{patron_money.balance_owed | currency}}</div>
<div style="font-weight:bold;border:1px dotted black; padding:5px;text-align:center;">
You Saved<br/>
{{transactions.subtotal | currency}}<br/>              <!-- 3 -->
by borrowing from the library!</div>


This line sets the variable.


This adds the list item's price to the variable.


This prints the total of the variable.

Exporting and importing Customized Receipts

Once you have your receipts set up on one machine you can export your receipts, and then load them on to another machine. Just remember to Save Locally once you import the receipts on the new machine.

Exporting templates

As you can only save a template on to the computer you are working on you will need to export the template if you have more than one computer that prints out receipts (i.e., more than one computer on the circulation desk, or another computer in the workroom that you use to checkin items or capture holds with)

  1. Export.
  2. Select the location to save the template to, name the template, and click Save.
  3. Click OK.

Importing Templates

  1. Click Import.
  2. Navigate to and select the template that you want to import. Click Open.
  3. Click OK.
  4. Click Save Locally.
  5. Click OK.


Clearing your browser's cache/temporary files will clear any print template customizations that you make unless you are using Hatch to store your customizations. Be sure to export a copy of your customizations as a backup so that you can import it as needed.

If you are modifying your templates and you do not see the updates appear on your printed receipt, you may need to go into Administration → Workstation → Stored Preferences and delete the stored preferences related to the print template that you modified (for example, eg.print.template_context.bills_current).


© 2008-2017 GPLS and others. The Evergreen Project is a member of the Software Freedom Conservancy.

Creative Commons License



Autocut feeder problem--If your receipt cutter cuts too close to the bottom add at the end




4.3. Snippets of useful code for your receipts

Sorting: You can sort lists or tables using orderBy  

sample code for sorting holds lists by copy location and call #: <li ng-repeat="hold_data in holds | orderBy: ['hold._copy_location_position', 'copy.location.name', 'volume.prefix_sortkey', 'volume.label_sortkey', 'volume.suffix_sortkey']">

"You saved": you can insert the total saved by patrons using the item's price.

First, you will need to add the item price code into the line item for each checkout (you should already have the text before the |, so insert the rest).

<li ng-repeat="checkout in circulations" | ng-init="transactions.subtotal=transactions.subtotal -- checkout.copy.price" >

Then, add the sum at the bottom: 

<hr/><div>Cost to buy these books: {{transactions.subtotal | currency}}</span><br/> The value of your public library -- Priceless! <BR> <Br>

4.4. If miles of paper print with a receipt (web client)

In Webby--

For Chrome

Make sure the paper roll is set to the correct size.

Click "more settings" and uncheck headers and footers.

Set margins to minimum


For Firefox

Select page settings from the "hamburger menu" at the top

select .1 for each margin and -blank- for each  header footer


This may help too: 

Autocut feeder problem--If your receipt cutter cuts too close to the bottom add at the end





4.5. Lackawanna Instructions for Setting up a Receipt Printer

Instructions from Lackawanna County Library System for setting up a receipt printer.

Keep in mind the instructions are specific for Lackawanna libraries.

4.6. Georgia Pines Documentation

Georgia Pines, the Evergreen Consortium in Georgia, has created these documents that explain how to modify and use the print templates in 3.x

Links are here:

Print Template Overview - https://pines.georgialibraries.org/dokuwiki/doku.php?id=circ:workstations:receipts
Print Template Fields - https://pines.georgialibraries.org/dokuwiki/doku.php?id=circ:workstations:receipt-content

5. Hardware Ideas

5.1. Recommended barcode scanners

The following barcode scanners have been recommended to work with SPARK-

  • Honeywell Mobility and Scanning 1250G-2USB -- Lackawanna
  • Zebra Scanners--Pocono Mountain Public Library


If anyone gets this scanner, just contact me and I'll explain what we did. It's not as bad as it seems.  anndirector_pmpl@yahoo.com

  • Honeywell Voyager--Altoona

 The only issues I have had with barcode scanners are :

 -old ones that run on the PS/2 port, some of which switch the capitalization of letters in barcodes if the Caps Lock on the keyboard is on

 -scanners that don't scan various types of barcodes by default. I have seen some that have Codabar turned off by default, which is quite vexing until you learn how to use the setup system that comes with the scanner. So, the library should check their barcode types against what the scanner has enabled.

  •  Datalogic Scanners--Juniata

will scan barcodes from phone screens


  •  Honeywell Xenon 1900--Lower Macungie

5.2. Monitors / Display

A wide-screen, landscape format monitor often works best with the staff client so that staff can have columns that are set to display useful information.

Any size display will work for the staff module, but some smaller, older screens cause odd wrapping to occur in the Evergreen software and limit what you can see.



5.3. Best Self-Check Hardware?

Please fill in this page with content.  Any SPARK Community member can write pages for our Knowledge Books.

Evergreen has a nice self-check interface

In many communities, the privacy of a self-check allows people better access to use the library.

Tell us how you use it.

6. Internet Browser Information

6.1. Firefox and Chrome

Firefox and Chrome are the recommended internet browsers for use with Evergreen's staff client. 

Some in SPARK have tested a bit using Brave.

Do not use Internet Explorer. Evergreen does not work well with Explorer.

For the patron side, Firefox, Chrome, Safari, and most browsers will work.

Another tip on web browsers:  You cannot use the same browser for both the staff client and the public catalog unless you are browsing in a private window/incognito/in another completely separate session.

6.2. Pop-ups

It's important to allow pop-ups in your browser, since some elements of Evergreen display in popups. Blocking those pop-ups might make it seem like Evergreen isn't working.

In Firefox

  • select Preferences from the Firefox menu and then select the Content panel. Click the Exceptions button and add your domain to the Allowed Sites list. 

In Chrome

  • At the top right, click More Settings.

  • At the bottom, click Advanced.

  • Under "Privacy and security," click Site settings.

  • Click Pop-ups and redirects.

  • At the top, set the setting to Allowed or Blocked.

6.3. OPAC and Staff Client Clash

To demonstrate patron features of My Account at your circulation workstation, use a Private or Incognito window of your browser to open the patron account in the OPAC. 
You cannot be logged into Evergreen on both the staff interface and an account on the OPAC in the same browser at the same time, even in separate windows.  If you try to do this, the My Account button at the top right of the catalog screen will NOT be visible.
Even if you close the staff interface window, you may not be completely logged out.
  • If you use Firefox, open the patron account through the OPAC in a Private Window, which should allow you to be logged into both at the same time, preserving the My Account button for logging out.  
  • If you use Chrome, use an Incognito window for the OPAC login.