470 likes | 589 Views
Hacking Your Discovery Layer. 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
E N D
Hacking Your Discovery Layer 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
Fan of GOT? 300km (186 miles) Ambassador Bridge
More about TUG • Snapshot of the TUG Software Ecosystem: • Shared ExLibris Voyager ILS • Shared ExLibris Primo (each have our own view) • Ex Libris bX Recommender • Ex Libris Primo Central • Ex Libris SFX
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
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 • 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 • Vendor customisation documentation • Access to customise or include files • Users • Knowledge of either: • CSS • HTML • JAVASCRIPT • Firebug addon for Firefox • 1 bottle beer* • 1 bottle opener*
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
Change Facet Order Complexity level: LOWbackend administration
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
Add custom tabs Complexity level: Lowbackend administration
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
Change versions tab colour Complexity level: LowCSS override
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
The Goal • Make the VERSIONS tab stand out more • Colour change = CSS override
Versions Tab Colour • Instructions are on EL COMMONS CODESHARE • 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
Remove EXPAND MY RESULTS Complexity level: LowJavaScript Addition
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 core files! • EXLibris Support = • Survives upgrades!*** • Code in El Commons
Customise MORE tab Complexity level: Mediumbackend & JS
Add TUGdoc Tab • TUGDoc Request Tab • Consortial interlibrary article lending
TUGdoc Tab • We co-opted the “GetIT! Link 2”… MORE tab • Mapping tables: Delivery: GetIT! Link 2: changed the “link field in PNX” to tugdoc for everything except Remote Search Resource • Mapping tables: delivery: templates – mapped tugdoc to the URL template: • tugdochttps://insite.lib.uoguelph.ca/primo/tugdoc/index.cfm?bib={{control/sourcerecordid}}&view=GUELPH link to TUGDoc request • to open the tab in new window: Mapping tables: Delivery - URLs Attributes • https://insite.lib.uoguelph.ca/primo/tugdocOpenInNewWindow • For the label of the tab: Code tables: Delivery: GetIT! Tab2 – changed name to TUGDoc Request
TUGdoc tab • TUGdoc tab shows up on every item • We only want folks to use TUGdoc for ARTICLES…not other resource types • So we programmatically HIDE the tab for NON-JOURNAL resources using JAVASCRIPT
TUGdoc Tab • The code is in EL Commons • 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 core files! • Vendor Support = • Survives upgrades!***
Boolean Search Example Complexity level: MediumJavaScript Addition
Boolean Search Example • Add a boolean search example • AFTER: • Why change? • Staff request • Enhance usability
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
Where is it? integration Complexity level: HIGHJavaScript Addition
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 doth we marry these things!?
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…
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
Customised Help Complexity level: MEDIUMHTML Modification
Help Doc Updates • Customised discovery layer = customised help • Updated screen caps • Updated instructions • /exlibris/primo/p4_1/ng/primo/home/system/thirdparty/jbossas/server/search/deploy/primo_library-app.ear/primo_library-libweb.war/static_htmls/ • SEARCH TIPS: /help/search.html
In Summary • We explored 4 different ways to hack your discovery layer: • RTFM • CSS • JS • HTML • THESE WORK FOR OTHER VENDOR APPLICATIONS TOO! • Can be simple, or more complex, depending on the app and your comfort level
Thank You! • Thank you so much • Twitter me @roldham • Email me at roldham@uoguelph.ca • Questions, requests for me to pronounce Canadian things? • Eh? • About • Out and about • hoser