<%@ page import="java.io.*" %> <%@ page import="java.util.*" %> <%@ page import="org.mdcog.config.MdcConfig" %> <%@ page import="org.mdcog.jafer.JaferClient" %> <%@ page import="org.mdcog.databeans.ResultDisplayRow" %> <%@ page import="org.mdcog.util.*" %> <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/displaytag-12.tld" prefix="display" %> <% String serverURL = (request.getParameter("serverURL") == null) ? "" : request.getParameter("serverURL"); String serverType = (request.getParameter("serverType") == null) ? "" : request.getParameter("serverType"); String keyword = (request.getParameter("keyword") == null) ? "" : request.getParameter("keyword"); String author = (request.getParameter("searchAuthor") == null) ? "" : request.getParameter("searchAuthor"); String title = (request.getParameter("searchTitle") == null) ? "" : request.getParameter("searchTitle"); String searchTerm = ""; if (keyword.length() > 0) searchTerm = keyword + "(Keyword) "; if (author.length() > 0) searchTerm += author + "(Author) "; if (title.length() > 0) searchTerm += title + "(Title) "; boolean canSearch = false; boolean testBtClicked = false; boolean registerBtClicked = false; boolean sendErrorBtClicked = false; boolean regSubBtClicked = false; String errorMessage = ""; if (request.getParameter("testBtn") != null) testBtClicked = true; if (request.getParameter("registerBtn") != null) registerBtClicked = true; if (request.getParameter("sendErrorBtn") != null) sendErrorBtClicked = true; if (request.getParameter("regSubmit") != null) regSubBtClicked = true; if (!serverType.equals("") && !serverURL.equals("") && testBtClicked && !registerBtClicked) { if (serverType.equals("z3950s Server")) { if (serverURL.startsWith("z3950s://")) { canSearch = true; } else { errorMessage += "'" + serverURL + "' is not a valid z3950 server. The z3950 server URL should begin with z3950s://."; canSearch = false; } } else { if (serverURL.startsWith("http://") || serverURL.startsWith("https://")) { canSearch = true; } else { errorMessage += "'" + serverURL + "' is not a valid SRW/SRU server. The SRW/SRU server URL should begin with http:// or https://."; canSearch = false; } } if (keyword.equals("") && author.equals("") && title.equals("")) { canSearch = false; errorMessage += "The search criteria is empty. Please fill in atleast one of the search field."; } } if(testBtClicked && serverType.equals("")) { errorMessage += "Please select a server type."; } if(testBtClicked && serverURL.equals("")) { errorMessage += "Please enter the url of the repository to search."; } java.util.List testResults = null; MdcConfig mdcConfig = new MdcConfig(); JaferClient jafer = new JaferClient(mdcConfig); boolean allowRegister = false; String cql = ""; if (canSearch) { testResults = jafer.testServer(serverURL,keyword,author,title); if (jafer.getHasCorrectRecords()) { allowRegister = true; } cql = jafer.getCQLUsed(); } if(regSubBtClicked) { String dbName = request.getParameter("dBName"); String serverPort = request.getParameter("serverPort"); String availability = request.getParameter("availability"); String notes = request.getParameter("imp_notes"); String mailerName = request.getParameter("name"); String mailerEmail = request.getParameter("email"); String organisation = request.getParameter("orgName"); if(searchTerm.equals("")) { searchTerm = request.getParameter("searchTerm"); } Vector serverTypes = new Vector(); if(request.getParameter("bookType") != null) { serverTypes.add("Books"); } if(request.getParameter("journalType") != null) { serverTypes.add("Journals"); } if(request.getParameter("imageType") != null) { serverTypes.add("Images"); } if(request.getParameter("videoType") != null) { serverTypes.add("Videos"); } if(request.getParameter("assessType") != null) { serverTypes.add("Assessments"); } if(request.getParameter("otherType") != null) { if(request.getParameter("otherTypeText") != null) { serverTypes.add(request.getParameter("otherTypeText") + " (other types)"); } } SendServerTestEmail sendEmail = new SendServerTestEmail(serverURL); sendEmail.setMailerDetails(mailerName,mailerEmail); sendEmail.setDBName(dbName); sendEmail.setServerType(serverType); sendEmail.setServerPort(serverPort); sendEmail.setServerAvailability(availability); sendEmail.setSearchTerm(searchTerm); sendEmail.setResourceTypes(serverTypes); sendEmail.setNotes(notes); sendEmail.setOrganisation(organisation); sendEmail.send(); } else if (sendErrorBtClicked) { String dbName = request.getParameter("dBName"); String serverPort = request.getParameter("serverPort"); String manySearchTerms = request.getParameter("moreSearchTerms"); String notes = request.getParameter("errorNotes"); String mailerName = request.getParameter("name"); String mailerEmail = request.getParameter("email"); String organisation = request.getParameter("orgName"); Vector recordTypes = new Vector(); if(request.getParameter("modsType") != null) { recordTypes.add("MODSv3"); } if(request.getParameter("oaiType") != null) { recordTypes.add("OAI MARC"); } if(request.getParameter("marcType") != null) { recordTypes.add("MARC21 Slim"); } if(request.getParameter("dcType") != null) { recordTypes.add("DC"); } if(request.getParameter("otherType") != null) { if(request.getParameter("otherTypeText") != null) { recordTypes.add(request.getParameter("otherTypeText") + " (other types)"); } } SendServerTestEmail sendEmail = new SendServerTestEmail(serverURL); sendEmail.setMailerDetails(mailerName,mailerEmail); sendEmail.setDBName(dbName); sendEmail.setServerType(serverType); sendEmail.setServerPort(serverPort); sendEmail.setSearchTerm(searchTerm); sendEmail.setHasMoreSearchTerms(manySearchTerms); sendEmail.setRecordTypes(recordTypes); sendEmail.setNotes(notes); sendEmail.setOrganisation(organisation); sendEmail.sendErrorMail(); } %> Test your server
About this software  <% if(!registerBtClicked && !regSubBtClicked && !sendErrorBtClicked) { %>

Server Testing:


Server URL e.g. http://z3950.loc.gov:7090/voyager
Server type checked="checked" <% } %>>Z39.50s checked="checked" <% } %>>SRW checked="checked" <% } %>>SRU

Search by

Keyword: e.g. gandhi
Author: e.g. hunter
Title: e.g. amazon
<%= errorMessage %>
<% if (testResults != null && testResults.size() > 0 ) { %>

Search Results:


Author Title Publisher/Journal Date ISBN/ISSN
<% for (int i=0 ; i < testResults.size(); i++) { ResultDisplayRow rdl = (ResultDisplayRow)testResults.get(i); %> "> <%}%>
<%=rdl.getField("AUTHOR") %> <% String itemPath = rdl.getField("WEB_URL"); String itemTitle = rdl.getField("TITLE"); if (itemPath == null || itemPath.equals("")){%> <%=itemTitle%> <% } else { %> <%= itemTitle %> <% } %> <% if(rdl.getField("itemtype") == null || (rdl.getField("itemtype").equals("")) || (rdl.getField("itemtype").equals("book"))){%> <%=rdl.getField("PUBLISHER") %> <% } else if (rdl.getField("itemtype").equals("journal")) { %> <%= rdl.getField("journal") %> <% } %> <%=rdl.getField("DATE_ISSUED") %> <% if(rdl.getField("itemtype") == null || (rdl.getField("itemtype").equals("")) || (rdl.getField("itemtype").equals("book"))){%> <%=rdl.getField("ISBN") %> <% } else if (rdl.getField("itemtype").equals("journal")) { %> <%= rdl.getField("ISSN") %> <% } %>
<% } %> <% if (canSearch) { if(allowRegister) { %>

Test is successful. Please register your repository for allowing our users to perform federated search on your repository.



<% } else{ %>

Test failed. Please check If you still have problems, we might be able to support you. Please submit the error form below.
Database name e.g. voyager
Server URL *
Server Type *
Server port * e.g. 1212
Search term(s) used in test e.g. gandhi(author), garden(title)
Have you tested with different search terms?
Record format of the records in your repository MODSv3 MARC21Slim OAI MARC DC
Others
Notes
Your name *
Your email address *
Organisation

* Required fields.


<% } } } else if(registerBtClicked) { %>

Server registration:


Database name * e.g. voyager
Server URL *
Server Type *
Server port * e.g. 1212
Search term used in test *
Type of resources available in this repository Books Journals Images Videos Assessments
Others (please mention in the text field)
Server availability e.g. 24x7
Important notes
Your name *
Your email address *
Organisation

* Required fields.

<% } else if(regSubBtClicked) {%>

Thank you for registering your repository.

All the details submitted have been sent to our project team so we can do some more testing and try to add your repository to our federated search service.

We will contact you as soon as possible but if you'd like to contact us in the meantime, please send an email to our project mailing list: ASKASK@JISCMAIL.AC.UK

Regards, The ASK Project Team


<% }else if (sendErrorBtClicked) { %>

Thank you for submitting the error report form.

All the details submitted have been sent to our project team so we can do some more testing and try to identifiy the problem occured while performing the search on your repository.

We will contact you as soon as possible but if you'd like to contact us in the meantime, please send an email to our project mailing list: ASKASK@JISCMAIL.AC.UK

Regards, The ASK Project Team

<% }%>