57
Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada [email protected] @roldham

Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada [email protected] @roldham

Embed Size (px)

Citation preview

Page 1: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Semi-Advanced Primo Customisations

Fri May 8, 10-10:45am – Minnesota Room

Randy Oldham

University of Guelph

Ontario, Canada

[email protected]

@roldham

Page 2: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

All About TUG

TUG: TriUniversity Group Consortia University of Waterloo (Waterloo, Ontario,

Canada) – 22,400

Wilfrid Laurier University (Waterloo, Ontario, Canada) – 14,800

University of Guelph (Guelph, Ontario, Canada) – 22,000

Page 3: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Why Customise?

34km

Page 4: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Note

Lots of Ex Libris products

Hosted Locally: Voyager Primo

Hosted Provincially: SFX

Page 5: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Generally Speaking…

Locally-hosted More access to files More potential for hacking

Vendor-hosted Less access to files Less potential for hacking

YOUR MILEAGE MAY VARY… Terms & Licenses

Page 6: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Full Disclosure

This is Matt. Matt is a developer at UG

This is Randy. He’s the web guy at UG Also Primo guy at UG

Then we had a team of folks from the consortia… Alison, Charles, Dillon, Matt

And EX LIBRIS support…

Page 7: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

First Steps…

Determine your access to files: Is there backend administration? Can you modify/include CSS?

Simple colour changes & hide content

Can you modify/include HTML files? Customise headers and footers Include new JS files

Can you modify/include Javascript files? More advanced customisations Programmatically changing things

Can you modify core files? Carte Blanche!

Page 8: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

General customisation notes

We had a general approach to customisations:

Avoid customisations to core files when possible (no touching jsp files)

Keep it simple…as close to stock as possible

Backup…backup…backup Document all changes Share

Page 9: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Determine What to Customise

Just because you CAN doesn’t mean you SHOULD

Remember: Each hack has to be maintained through upgrades

Driven by usability testing: What would help users? What would increase their success? What would stop them from asking for

help?

Page 10: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Tools You’ll Need

1. Vendor customisation documentation

2. Access to customise or include files

3. Users

4. Knowledge of either: CSS HTML JAVASCRIPT

5. Firebug addon for Firefox

6. 1 bottle beer*

Page 11: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Quick Note on Firebug

Extension for Firefox Find div/class names:

To hide To change

Page 12: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Method One

RTFM Read The Functional Manual Vendors provide limited customisation This is your best bet Vendors support these customisations

through upgrades Reduces your upgrade time

Page 13: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: LOWBACKEND ADMINISTRATION

Change Facet Order

Page 14: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Facet Order

Changed Facet Order:

WHY Change? Usability testing, Consortia, Analytics

Before: After:

Page 15: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Facet Order How to modify FACET ORDER in PRIMO:

Login to the Primo back office Click ONGOING CONFIGURATION WIZARDS Click VIEWS WIZARD Click on EDIT to the right of the view Click SAVE & CONTINUE, CONTINUE,

CONTINUE Select BRIEF DISPLAY from dropdown Click EDIT TILE to the right of REFINE MY

RESULTS Change the order & enable/disable facets here Click Save & Continue, continue, DEPLOY

Page 16: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: LOWBACKEND ADMINISTRATION

Add custom tabs

Page 17: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Tabs

Add tabs (Blended, Primo, Primo Central)

AFTER:

Why change? Usability testing/staff feedback

Page 18: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

tabs

All through back office

Modify your view

Go to the TABS section

Select your search scopes for the tabs

Save & deploy

Page 19: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Method 2:

CSS Override You must have access to edit CSS files Create your own CSS file and include it Use Firebug Determine div/class name

Visibility:hidden; to HIDE things Change colours Re-position things Replace some images

Page 20: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: LOWCSS OVERRIDE

Change versions tab colour

Page 21: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Versions Tab Colour

Versions tab too pale:

If there are multiple copies of the same item, the records are de-duped and all records are displayed behind a VERSIONS tab

Usability testing/comments - users consistently missed this tab… too pale

Page 22: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Make the VERSIONS tab stand out more

Colour change = CSS override

The Goal

Page 23: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Versions Tab Colour

Instructions are on Ex Libris Developers Network

Essentially, we do the following: create a new triangle bit change the text colour change the background colour All done with CSS

Page 24: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Method 3:

Inject JS You must have access to an HTML file

loaded on each page (footer/header) Create a js file and include it in this Possibilities are nearly endless Be prepared to troubleshoot post

upgrades

Page 25: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: LOWJAVASCRIPT ADDITION

Remove EXPAND MY RESULTS

Page 26: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Remove EXPAND…

Remove the EXPAND BEYOND facet

Why change? Usability testing/staff feedback

Page 27: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Remove EXPAND…

It’s a pretty simple one line javascript bit

$(document).ready(function() { $('.EXLFacetContainer

h3').filter(function(index) { return $(this).text().trim() === "Expand My Results"; }).parent().hide();

}); No modifications to EXL files! EXLibris Support = Survives upgrades!*** Code in Ex Libris Developers Network

Page 28: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: MEDIUMBACKEND & JS

Customise MORE tab

Page 29: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Add Request an Article Tab

Request an Article Tab

Interlibrary lending

Page 30: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Request an Article Tab

We co-opted the “GetIT! Link 2”… MORE tab

Mapping tables: Delivery: GetIT! Link 2:  changed the “link field in PNX” to request an article for everything except Remote Search Resource

Mapping tables: delivery: templates – mapped Request an Article to the URL template:

  tugracer  http://racer.scholarsportal.info/ link to RACER request

   to open the tab in new window: Mapping tables: Delivery - URLs

Attributes http://racer.scholarsportal.info/   OpenInNewWindow

  For the label of the tab: Code tables: Delivery: GetIT! Tab2 – changed

name to Request an Article

Page 31: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Request an Article tab

Request an Article tab shows up on every item

We only want folks to use Request an Article for ARTICLES…not other resource types

So we programmatically HIDE the tab for NON-JOURNAL resources using JAVASCRIPT

Page 32: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Request an Article Tab

code is in Ex Libris Developers Network It’s a pretty simple one line javascript bit

$(document).ready(function() { $('.EXLMoreTab').not('tr.EXLResultMediaTYPEjournal > td > div > div > ul > li').hide();

}); No modifications to EXL files! Vendor Support = Survives upgrades!***

Page 33: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: MEDIUMJAVASCRIPT ADDITION

Boolean Search Example

Page 34: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Boolean Search Example

Add a boolean search example

AFTER:

Why change? Staff request

Page 35: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Boolean Search Example

Relatively simple one line of JS $('<div

class="TUGSearchFieldRibbonBooleanExample">e.g., king AND shakespeare NOT lear</div>').insertBefore(".EXLSearchFieldRibbonAdvancedSearchLink");

We find div on the screen and then insert a div just before it. We give our div a class so that we can style it. We specify the content of the div

Page 36: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: MEDIUMJAVASCRIPT ADDITION

New Search Tab

Page 37: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

New Search Link

New Search Link Added

Why Change? Staff request Takes users back to search startpage

Reads in VID Checks for BASIC or ADVANCED Contact me…

Page 38: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: HIGHJAVASCRIPT ADDITION

Where is it? integration

Page 39: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Where is it feature

Patrons/staff said… cool… I have a call number… but where is the thing!?

Guelph/Waterloo/Laurier were different

Guelph had a CF web app which supported URL var and form input

Waterloo had a different CF web app which supported form input

Laurier had static floor maps

Page 40: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Where is it?

Primo has the call number… Our consortia has apps (or static maps)

that can take call numbers and show building locations for materials…

How do we put these together?!?

Page 41: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Where is it?

Some JAVASCRIPT! Read in item type Read in location, and call number Do something based on some logic EG:If you find BOOK, then:

If UG/UW: create link which submits call number to CF apps via URL

If WLU: create static link to floor map of proper call number range

EG 2: If you find ANNEX, then always: Display NOTE text instead of LINK.

Page 43: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Where is it?

And one with a note…

Page 44: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: HIGHJAVASCRIPT ADDITION

ARES integration

Page 45: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

ARES Integration

We use Ares for Course Reserves at all three institutions

Integrate ARES into PRIMO to make instructor requests simple

Could use this same method to pre-populate any form for a course reserve request… or ILL request

Page 46: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

ARES Integration

How it works… We use JS to do the following: For items of type book, article,

audio/video Add the appropriate SEND TO ARES

option SCRAPE the details and then

prepopulate the appropriate ARES forms

Page 47: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

ARES Integration - Book

Page 48: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Method 4:

Edit HTML You must have access to HTML files Add logos, customise headers/footers These are least likely to survive

upgrades Be prepared to troubleshoot post

upgrades

Page 49: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

COMPLEXITY LEVEL: MEDIUMJAVASCRIPT ADDITION

Customised Help

Page 50: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Help Doc Updates

Customised discovery layer = customised help

Updated screen caps Updated instructions /exlibris/primo/p4_1/ng/primo/home/

system/tomcat/search/webapps/primo_library#libweb/static_htmls/

SEARCH TIPS: /help/search.html

Page 51: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

PRIMO INTEGRATION

Page 52: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

Search box

Add a simple DLSEARCH.DO Primo search box to Library website

AODA…avoid iFRAMES

Page 53: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

New Books

Page 55: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

New Books cont..

RSS feed integrated

Pulls covers in from Google Books

Can limit to LC classification range

Can limit to library

Page 56: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

What about you?

What are some customisations you folks have done?

What would you like to see?

Will you share on Ex Libris Developers Network?

Page 57: Semi-Advanced Primo Customisations Fri May 8, 10-10:45am – Minnesota Room Randy Oldham University of Guelph Ontario, Canada roldham@uoguelph.ca @roldham

THANK YOU!

Thanks for listening!

If anything piqued your interest and you’d like some more info, feel free to drop me an email:

[email protected] @roldham