Upload
quentin-andrews
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
Semi-Advanced Primo Customisations
Fri May 8, 10-10:45am – Minnesota Room
Randy Oldham
University of Guelph
Ontario, Canada
@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
Why Customise?
34km
Note
Lots of Ex Libris products
Hosted Locally: Voyager Primo
Hosted Provincially: SFX
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
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…
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!
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
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?
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*
Quick Note on Firebug
Extension for Firefox Find div/class names:
To hide To change
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
COMPLEXITY LEVEL: LOWBACKEND ADMINISTRATION
Change Facet Order
Facet Order
Changed Facet Order:
WHY Change? Usability testing, Consortia, Analytics
Before: After:
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
COMPLEXITY LEVEL: LOWBACKEND ADMINISTRATION
Add custom tabs
Tabs
Add tabs (Blended, Primo, Primo Central)
AFTER:
Why change? Usability testing/staff feedback
tabs
All through back office
Modify your view
Go to the TABS section
Select your search scopes for the tabs
Save & deploy
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
COMPLEXITY LEVEL: LOWCSS OVERRIDE
Change versions tab colour
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
Make the VERSIONS tab stand out more
Colour change = CSS override
The Goal
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
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
COMPLEXITY LEVEL: LOWJAVASCRIPT ADDITION
Remove EXPAND MY RESULTS
Remove EXPAND…
Remove the EXPAND BEYOND facet
Why change? Usability testing/staff feedback
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
COMPLEXITY LEVEL: MEDIUMBACKEND & JS
Customise MORE tab
Add Request an Article Tab
Request an Article Tab
Interlibrary lending
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
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
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!***
COMPLEXITY LEVEL: MEDIUMJAVASCRIPT ADDITION
Boolean Search Example
Boolean Search Example
Add a boolean search example
AFTER:
Why change? Staff request
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
COMPLEXITY LEVEL: MEDIUMJAVASCRIPT ADDITION
New Search Tab
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…
COMPLEXITY LEVEL: HIGHJAVASCRIPT ADDITION
Where is it? integration
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
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?!?
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.
Where is it?
Try the Guelph view
Where is it?
And one with a note…
COMPLEXITY LEVEL: HIGHJAVASCRIPT ADDITION
ARES integration
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
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
ARES Integration - Book
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
COMPLEXITY LEVEL: MEDIUMJAVASCRIPT ADDITION
Customised Help
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
PRIMO INTEGRATION
Search box
Add a simple DLSEARCH.DO Primo search box to Library website
AODA…avoid iFRAMES
New Books
New Books cont..
RSS feed integrated
Pulls covers in from Google Books
Can limit to LC classification range
Can limit to library
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?
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