Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
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 platformindependent, 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
tabs
search
user area
summary
results
facets
Tiles are jsps or a layout made of multiple jsps
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
http://www.exlibrisgroup.org/display/Primo/EXL+Tab+API
pnxId and other variables hidden in HTML
Locations Web Service
pnxId
js
location.jsp
<html>
holdings + title
primo_gateway.cgi
collection
sublibrary
call number
title
collection
sublibrary
call number
holdings
primo
xserver
map img url
floor
building
call number
xserver
aleph
api
maps
DocDel (Deliver)
1. Grabs pnxId for each,
2. AJAX sends request for each item to determine eligibility
3. Link delivered and placed as a tab for each eligible record
DocDel Web Service
pnxId
js
docdel.jsp
<html>
primo_gateway.cgi
primo
reviews holdings metadata
to determine docdel eligibility
xserver
xserver
aleph
Thank You
Mark Dehmlow
Digital Initiatives Librarian
574-631-3092
mdehmlow@nd.edu
Aaron Bales
Systems Librarian
574-631-4035
abales@nd.edu