Hacking your discovery layer
This presentation is the property of its rightful owner.
Sponsored Links
1 / 52

Hacking Your Discovery Layer PowerPoint PPT Presentation


  • 106 Views
  • Uploaded on
  • Presentation posted in: General

Hacking Your Discovery Layer. Fri May 2, 10-10:45am - Joillet Randy Oldham University of Guelph Ontario, Canada [email protected] @ roldham. All About TUG. TUG: TriUniversity Group Consortia University of Waterloo (Waterloo, Ontario, Canada) – 22,400

Download Presentation

Hacking Your Discovery Layer

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Hacking your discovery layer

Hacking Your Discovery Layer

Fri May 2, 10-10:45am - Joillet

Randy Oldham

University of Guelph

Ontario, Canada

[email protected]

@roldham


All about tug

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


Hacking your discovery layer

Note

  • Lots of Ex Libris products

  • Hosted Locally:

    • Voyager

    • Primo

  • Hosted Provincially:

    • SFX


Generally speaking

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

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

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

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

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

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

Quick Note on Firebug

  • Extension for Firefox

  • Find div/class names:

    • To hide

    • To change


Method one

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 low backend administration

Change Facet Order

Complexity level: LOWbackend administration


Facet order

Facet Order

  • Changed Facet Order:

  • WHY Change?

    • Usability testing, Consortia, Analytics

Before:

After:


Facet order1

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 low backend administration1

Add custom tabs

Complexity level: Lowbackend administration


Hacking your discovery layer

Tabs

  • Add tabs (Blended, Primo, Primo Central)

  • AFTER:

  • Why change?

    • Usability testing/staff feedback


Hacking your discovery layer

tabs

  • All through back office

  • Modify your view

  • Go to the TABS section

  • Select your search scopes for the tabs

  • Save & deploy


Method 2

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 low css override

Change versions tab colour

Complexity level: LowCSS override


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


The goal

The Goal

  • Make the VERSIONS tab stand out more

  • Colour change = CSS override


Versions tab colour1

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

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 low javascript addition

Remove EXPAND MY RESULTS

Complexity level: LowJavaScript Addition


Remove expand

Remove EXPAND…

  • Remove the EXPAND BEYOND facet

  • Why change?

    • Usability testing/staff feedback


Remove expand1

Remove EXPAND…

  • It’s a pretty simple one line javascript bit

    $(document).ready(function() { $('.EXLFacetContainerh3').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 medium backend js

Customise MORE tab

Complexity level: Mediumbackend & JS


Add tugdoc tab

Add TUGdoc Tab

  • TUGDoc Request Tab

  • Consortial interlibrary article lending


Tugdoc tab

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 tab1

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 tab2

TUGdoc Tab

  • The 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 medium javascript addition

Boolean Search Example

Complexity level: MediumJavaScript Addition


Boolean search example

Boolean Search Example

  • Add a boolean search example

  • AFTER:

  • Why change?

    • Staff request


Boolean search example1

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 medium javascript addition1

New Search Tab

Complexity level: MediumJavaScript Addition


New search link

New Search Link

  • New Search Link Added

  • Why Change?

    • Staff request

    • Takes users back to search startpage

    • Requires JSP file modifications

    • Contact me for more information


Complexity level high javascript addition

Where is it? integration

Complexity level: HIGHJavaScript Addition


Where is it feature

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

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 it1

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 it2

Where is it?

  • Try the Guelph view


Where is it3

Where is it?

  • And one with a note…


Method 4

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 medium javascript addition2

Customised Help

Complexity level: MEDIUMJavaScript Addition


Help doc updates

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


Primo integration

Primo Integration


Search box

Search box

  • Add a simple primo search box to Library website

  • AODA…avoid iFRAMES


New books

New Books


New new books

NEW NEW Books


New books cont

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 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

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


  • Login