Extending Primo with Custom Services

16

description

Extending Primo with Custom Services. Mark Dehmlow University of Notre Dame Ex Libris Developer Meets Developer Meeting 2010 Jerusalem, Israel ~ November 4, 2010. Overview. Our Customization Strategy and Tools Back Office, CSS, and jQuery - PowerPoint PPT Presentation

Transcript of Extending Primo with Custom Services

Page 1: Extending Primo with Custom Services
Page 2: Extending Primo with Custom Services

Overview

• Our Customization Strategy and Tools– Back Office, CSS, and jQuery

• Thinking “Inside” the Box– Using J2EE to Extend Primo

• Putting it all Together – back office / css / jquery / jsp

Page 3: Extending Primo with Custom Services

Version 3 Customization

Limited by:

activates Access Online tab

activates Locations tab

Page 4: Extending Primo with Custom Services

J2EE

• Java 2 Platform Enterprise Edition “is a platform-independent, Java-centric environment from Sun for developing, building and deploying Web-based enterprise applications online. The J2EE platform consists of a set of services, APIs, and protocols that provide the functionality for developing multitiered, Web-based applications.” (Webopedia)(http://www.webopedia.com/TERM/J/J2EE.html)

• Java API, JSP, JavaBeans, Servlets, Applets, JDBC, and much, much more

Page 5: Extending Primo with Custom Services

Tiles

Tiles are jsps or a layout made of multiple jsps

tabs

search user area

summary

results

facets

Page 6: Extending Primo with Custom Services

Bringing Maps into Primo

Page 7: Extending Primo with Custom Services

Back Office - Custom Layout

Page 8: Extending Primo with Custom Services

JSP Embedded Servlet<%@ page import="java.util.*" import="java.util.regex.*" import="java.io.*" import="java.net.*" import="javax.servlet.http.HttpServletRequest" %><% String pnxId = request.getParameter("pnxId"); String pgurl = "http://www.library.nd.edu/eresources/test/primo_gateway/primo_location.cgi?pnxId=" + pnxId; String dat = ""; try{ URL url = new URL(pgurl); BufferedReader bin = new BufferedReader( new InputStreamReader (url.openStream() )); String line = ""; while( (line = bin.readLine()) != null) dat = dat + line + "\n"; }catch(Exception e){ dat = "there was a problem retrieving the desired page"; } %> <% out.print(dat); %>

Page 9: Extending Primo with Custom Services

Pulling it all Together

• JSP – custom tile, web service• CSS hides html returned from web

service• jQuery and jQuery UI create

notification box and place div inside for version 2

• AJAX for version 3

Page 10: Extending Primo with Custom Services

Implementation in version 3

Page 11: Extending Primo with Custom Services

ELCommons – Primo Tabs API

pnxId and other variables hidden in HTML

http://www.exlibrisgroup.org/display/Primo/EXL+Tab+API

Page 12: Extending Primo with Custom Services

map img url floor building call number

primo

Locations Web Service

location.jsp primo_gateway.cgi

pnxId

aleph

xserver

xserver

pnxId

alephSysNo(s)

alep

hSys

No(

s)

title collection sublibrary call numberholdings

maps

api

collection sublibrary call number

<html>

holdings + title

js

Page 13: Extending Primo with Custom Services

DocDel (Deliver)1. Grabs pnxId for each, 2. AJAX sends request for each item to determine eligibility3. Link delivered and placed as a tab for each eligible record

Page 14: Extending Primo with Custom Services

primo

DocDel Web Service

docdel.jsp primo_gateway.cgi

pnxId

aleph

xserver

xserver

pnxId

alephSysNo(s)

alep

hSys

No(

s)

reviews holdings metadata to determine docdel eligibility

<html>js

Page 15: Extending Primo with Custom Services
Page 16: Extending Primo with Custom Services

Thank You

Mark DehmlowDigital Initiatives [email protected]

Aaron BalesSystems [email protected]