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
Version 3 Customization
Limited by:
activates Access Online tab
activates Locations tab
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
Tiles
Tiles are jsps or a layout made of multiple jsps
tabs
search user area
summary
results
facets
Bringing Maps into Primo
Back Office - Custom Layout
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); %>
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
Implementation in version 3
ELCommons – Primo Tabs API
pnxId and other variables hidden in HTML
http://www.exlibrisgroup.org/display/Primo/EXL+Tab+API
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
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
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
Top Related