updating the branch dev-search_relevance(r2947) with changes from the trunk(r2837).

This commit is contained in:
deepakkoni 2011-05-18 18:28:01 +00:00
commit 1d0b7f4fbb
116 changed files with 1640 additions and 1093 deletions

View file

@ -11,37 +11,40 @@
<bean id="person_pub_count"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.personpubcount.PersonPublicationCountRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.personpubcount.PersonPublicationCountRequestHandler" />
<bean id="utilities"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.utilities.UtilitiesRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.utilities.UtilitiesRequestHandler" />
<bean id="coauthorship"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.coauthorship.CoAuthorshipRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.coauthorship.CoAuthorshipRequestHandler" />
<bean id="person_grant_count"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.persongrantcount.PersonGrantCountRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.persongrantcount.PersonGrantCountRequestHandler" />
<bean id="person_level"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.personlevel.PersonLevelRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.personlevel.PersonLevelRequestHandler" />
<bean id="coprincipalinvestigator"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.coprincipalinvestigator.CoPIGrantCountRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.coprincipalinvestigator.CoPIGrantCountRequestHandler" />
<bean id="entity_comparison"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.EntityPublicationCountRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.entitycomparison.EntityPublicationCountRequestHandler" />
<bean id="pub_temporal"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.cached.TemporalPublicationVisualizationRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.entitycomparison.cached.TemporalPublicationVisualizationRequestHandler" />
<bean id="entity_grant_count"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitygrantcount.EntityGrantCountRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.entitygrantcount.EntityGrantCountRequestHandler" />
<bean id="grant_temporal"
class="edu.cornell.mannlib.vitro.webapp.visualization.freemarker.entitycomparison.cached.TemporalGrantVisualizationRequestHandler" />
class="edu.cornell.mannlib.vitro.webapp.visualization.entitycomparison.cached.TemporalGrantVisualizationRequestHandler" />
<bean id="map_of_science"
class="edu.cornell.mannlib.vitro.webapp.visualization.mapofscience.MapOfScienceVisualizationRequestHandler" />
<bean id="visualizationInjector"
class="edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationInjector">
class="edu.cornell.mannlib.vitro.webapp.controller.visualization.VisualizationInjector">
<property name="visualizations">
<map>
<entry key="person_pub_count">
@ -106,6 +109,10 @@
<ref bean="grant_temporal"></ref>
</entry>
<entry key="map-of-science">
<ref bean="map_of_science"></ref>
</entry>
</map>
</property>

View file

@ -141,17 +141,17 @@
</listener-class>
</listener>
<!-- The Lucene index uses a "public" filter, so the PropertyRestrictionPolicyHelper must already be set up. -->
<!-- The Lucene index uses a "public" filter, so the PropertyRestrictionPolicyHelper must already be set up.
<listener>
<listener-class> edu.cornell.mannlib.vitro.webapp.search.lucene.LuceneSetup </listener-class>
</listener>
<!--
</listener> -->
<!-- -->
<listener>
<listener-class>
edu.cornell.mannlib.vitro.webapp.search.solr.SolrSetup
</listener-class>
</listener>
-->
<!-- vivo specific, must appear before other policies -->
<listener>
@ -162,12 +162,6 @@
<listener-class> edu.cornell.mannlib.vitro.webapp.auth.policy.setup.SelfEditingPolicySetup</listener-class>
</listener>
<listener>
<listener-class>
edu.cornell.mannlib.vitro.webapp.auth.identifier.UserToIndIdentifierFactorySetup
</listener-class>
</listener>
<listener>
<listener-class> edu.cornell.mannlib.vitro.webapp.auth.policy.setup.EditorEditingPolicySetup
</listener-class>
@ -954,6 +948,12 @@
<servlet-name>AutocompleteController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.search.controller.AutocompleteController</servlet-class>
</servlet>
<!--
<servlet>
<servlet-name>AutocompleteController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.search.controller.SolrAutocompleteController</servlet-class>
</servlet>
-->
<servlet-mapping>
<servlet-name>AutocompleteController</servlet-name>
<url-pattern>/autocomplete</url-pattern>
@ -1003,6 +1003,12 @@
<servlet-name>JSON Service</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.JSONServlet</servlet-class>
</servlet>
<!--
<servlet>
<servlet-name>JSON Service</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.SolrJsonServlet</servlet-class>
</servlet>
-->
<servlet-mapping>
<servlet-name>JSON Service</servlet-name>
<url-pattern>/dataservice</url-pattern>
@ -1137,7 +1143,7 @@
<url-pattern>/unrecognizedUser</url-pattern>
</servlet-mapping>
<!-- THIS SHOULD BE COMMENTED OUT FOR PRODUCTION
<!-- THIS SHOULD BE COMMENTED OUT FOR PRODUCTION -->
<servlet>
<servlet-name>FakeExternalAuthController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.authenticate.FakeExternalAuthController</servlet-class>
@ -1147,7 +1153,7 @@
<servlet-name>FakeExternalAuthController</servlet-name>
<url-pattern>/admin/fakeExternalAuth</url-pattern>
</servlet-mapping>
-->
<servlet>
<servlet-name>browsecontroller</servlet-name>
@ -1235,12 +1241,12 @@
<servlet>
<servlet-name>StandardVisualizationController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.StandardVisualizationController</servlet-class>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.StandardVisualizationController</servlet-class>
</servlet>
<servlet>
<servlet-name>ShortURLVisualizationController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.ShortURLVisualizationController</servlet-class>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.ShortURLVisualizationController</servlet-class>
</servlet>
<servlet-mapping>
@ -1263,7 +1269,7 @@
<servlet>
<servlet-name>AjaxVisualizationController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.AjaxVisualizationController</servlet-class>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.AjaxVisualizationController</servlet-class>
</servlet>
<servlet-mapping>
@ -1273,7 +1279,7 @@
<servlet>
<servlet-name>DataVisualizationController</servlet-name>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.DataVisualizationController</servlet-class>
<servlet-class>edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController</servlet-class>
</servlet>
<servlet-mapping>

View file

@ -0,0 +1,23 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
.qrCode {
float: left;
}
img.qrCode {
margin-bottom: 2em;
}
.vcard {
clear: left;
}
h2 em {
font-style: normal;
font-size: .7em;
}
section h4 {
margin-top: 2em;
padding-bottom: 0;
}
section textarea {
width: 600px;
height: 120px;
}

View file

@ -32,7 +32,7 @@ core:authorInAuthorship (Person : Authorship) - inverse of linkedAuthor
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.DataPropertyComparator" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.PublicationHasAuthorValidator" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest" %>

View file

@ -19,7 +19,7 @@ This is intended to create a set of statements like:
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils" %>
@ -48,9 +48,9 @@ This is intended to create a set of statements like:
ObjectProperty op = wdf.getObjectPropertyDao().getObjectPropertyByURI( predicateUri );
if( op != null && op.getURIInverse() != null ){
%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.Field"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.elements.DateTimeWithPrecision"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.DateTimeIntervalValidation"%><c:set var="inversePredicate"><%=op.getURIInverse()%></c:set> <%
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.DateTimeIntervalValidation"%><c:set var="inversePredicate"><%=op.getURIInverse()%></c:set> <%
}else{
%> <c:set var="inversePredicate"></c:set> <%
}

View file

@ -26,7 +26,7 @@ core:informationResourceInAuthorship (InformationResource : Authorship) - invers
<%@page import="edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.PersonHasPublicationValidator" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest" %>

View file

@ -38,7 +38,7 @@
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils" %>
@ -56,9 +56,9 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@ taglib prefix="v" uri="http://vitro.mannlib.cornell.edu/vitro/tags" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.Field"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.elements.DateTimeWithPrecision"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.DateTimeIntervalValidation"%><c:set var="vivoOnt" value="http://vivoweb.org/ontology" />
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.DateTimeIntervalValidation"%><c:set var="vivoOnt" value="http://vivoweb.org/ontology" />
<%!
public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.edit.forms.addRoleToPersonTwoStage.jsp");

View file

@ -23,11 +23,11 @@ parameter set up by editRequestDispatch.
<%@page import="edu.cornell.mannlib.vitro.webapp.beans.VClass"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.FoafNameToRdfsLabelPreprocessor"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.FoafNameToRdfsLabelPreprocessor"%>
<%@ page import="org.apache.commons.logging.Log" %>
<%@ page import="org.apache.commons.logging.LogFactory" %>

View file

@ -10,15 +10,15 @@
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Css" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.Field"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.elements.DateTimeWithPrecision"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.DateTimeIntervalValidation"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.DateTimeIntervalValidation"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@ taglib prefix="v" uri="http://vitro.mannlib.cornell.edu/vitro/tags" %>

View file

@ -44,7 +44,7 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision)
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary.Precision"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils"%>
@ -52,9 +52,9 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision)
<%@ page import="org.apache.commons.logging.LogFactory" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.JavaScript" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Css" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.Field"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.elements.DateTimeWithPrecision"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.DateTimeIntervalValidation"%>
<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.DateTimeIntervalValidation"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode"%>

View file

@ -10,20 +10,20 @@
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.JavaScript" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Css" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.elements.DateTimeWithPrecision"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.Field"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode"%>
<%@ page import="org.apache.commons.logging.Log" %>
<%@ page import="org.apache.commons.logging.LogFactory" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.DateTimeIntervalValidation"%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.DateTimeIntervalValidation"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@ taglib prefix="v" uri="http://vitro.mannlib.cornell.edu/vitro/tags" %>

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

View file

@ -1,43 +0,0 @@
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<%@ page import="edu.cornell.mannlib.vitro.webapp.web.*" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest" %>
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ page errorPage="/error.jsp"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<c:set var="portal" value="${requestScope.portalBean}"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<link rel="stylesheet" type="text/css" href="<c:url value="${themeDir}css/screen.css"/>" media="screen"/>
<c:out value="${requestScope.css}" escapeXml="false"/>
<title>Edit Your Profile</title>
</head>
<body>
<div id="wrap">
<jsp:include page="/templates/page/freemarkerTransition/identity.jsp" flush="true"/>
<div id="contentwrap">
<jsp:include page="/templates/page/freemarkerTransition/menu.jsp" flush="true"/>
<div id="content" class="full">
<div align="center">
If you are a member of the Cornell community and would like to edit you profile
in the Vivo system please login using your netId.
</div>
<div align="center">
<c:url value="/edit/login.jsp" var="loginUrl"/>
<button type="button" onclick="javascript:document.location.href='${loginUrl}'">Login</button>
</div>
</div>
<!-- END div 'content' -->
</div><!-- END div 'contentwrap' -->
<jsp:include page="/templates/page/freemarkerTransition/footer.jsp" flush="true"/>
</div><!-- END div 'wrap' -->
</body>
</html>

View file

@ -2,37 +2,31 @@
<#-- Page providing options for disseminating QR codes -->
<#include "individual-qrCodeFoafPerson.ftl">
<#include "individual-qrCodeGenerator.ftl">
<#assign qrCodeWidth = "150">
<h2>Export QR Code</h2>
<div>
<div style="float:left">
<#assign thumbUrl = individual.thumbUrl! "${urls.images}/placeholders/person.thumbnail.jpg" >
<img src="${thumbUrl}" />
</div>
<div style="float:left">
<h3>${individual.nameStatement.value}</h3>
</div>
<div style="clear:both" />
</div>
<h2>Export QR Code <em>(<a href="${individual.qrData.aboutQrCodesUrl}" title="More info on QR codes">What is this?</a>)</em></h2>
<div style="border:1px solid #cccccc">
<h4 style="padding-left:5px">VCard</h4>
<#assign thumbUrl = individual.thumbUrl! "${urls.images}/placeholders/person.thumbnail.jpg" >
<img class="qrCode" src="${thumbUrl}" />
<h3 class="qrCode"><a href="${individual.profileUrl}" title="View this person's profile">${individual.nameStatement.value}</a></h3>
<section class="vcard">
<h4>VCard</h4>
<@qrCodeVCard qrCodeWidth="150" />
<textarea readonly="readonly" style="width:600px;height:120px">
<textarea name="qrCodeVCard" readonly>
&lt;img src="${getQrCodeUrlForVCard(qrCodeWidth)}" /&gt;<#t>
</textarea><#t>
</div>
</section>
<div style="border:1px solid #cccccc">
<h4 style="padding-left:5px">Hyperlink</h4>
<section>
<h4>Hyperlink</h4>
<@qrCodeLink qrCodeWidth="150" />
<textarea readonly="readonly" style="width:600px;height:120px">
<textarea name="qrCodeLink" readonly>
&lt;img src="${getQrCodeUrlForLink(qrCodeWidth)}" /&gt;<#t>
</textarea><#t>
</div>
</section>
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/css/individual/individual-qr.css" />')}

View file

@ -1,35 +1,64 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<script type="text/javascript">
var alreadyDone = false;
var harvestProgressResponse;
function doFunStuff()
{
if(!alreadyDone)
{
alreadyDone = true;
document.getElementById("progress").style.visibility = "visible"
document.getElementById("progressUploading").style.visibility = "visible"
window.setTimeout(uploadingSuccess, 2000);
doHarvest();
}
function doHarvest()
{
var request = createRequest();
request.onreadystatechange=function() {
if(request.readyState == 4 && request.status == 200) {
harvestProgressResponse = request.responseText;
window.setTimeout(continueHarvest, 1000);
}
}
request.open("POST", "/vivo/harvester/testfile", true);
request.setRequestHeader("content-type","application/x-www-form-urlencoded");
request.send("${paramIsHarvestClick}=true");
}
function continueHarvest()
{
var response = harvestProgressResponse;
var json = eval("(" + response + ")");
if(!json.finished) {
var logAppend = json.progressSinceLastCheck;
var progressTextArea = document.getElementById("progressTextArea");
progressTextArea.innerHTML = progressTextArea.innerHTML + logAppend;
progressTextArea.scrollTop = progressTextArea.scrollHeight;
var request = createRequest();
request.onreadystatechange=function() {
if(request.readyState == 4 && request.status == 200) {
harvestProgressResponse = request.responseText;
window.setTimeout(continueHarvest, 1000);
}
}
request.open("POST", "/vivo/harvester/testfile", true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send("${paramIsHarvestClick}=false");
}
}
function uploadingSuccess()
{
document.getElementById("progressUploadingSuccess").style.visibility = "visible"
document.getElementById("progressGenerating").style.visibility = "visible"
window.setTimeout(generatingSuccess, 2000);
}
function generatingSuccess()
{
document.getElementById("progressGeneratingSuccess").style.visibility = "visible"
document.getElementById("progressExecuting").style.visibility = "visible"
window.setTimeout(executingSuccess, 2000);
}
function executingSuccess()
{
document.getElementById("progressExecutingSuccess").style.visibility = "visible"
document.getElementById("results").style.visibility = "visible"
}
function createRequest() {
var request;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
return request;
}
function toggleCollapsibleDiv(divName)
{
@ -72,6 +101,7 @@
function init()
{
document.getElementById("${paramFirstUpload}").value = "true";
document.getElementById("fileUploadForm").onsubmit = function()
{
document.getElementById("fileUploadForm").target = "uploadTarget";
@ -168,270 +198,14 @@
</div>
<div class="clearBothDiv" />
</div>
<div id="step5" class="testfile-step">
<h3 class="testfile-step-header">Step 5</h3>
<div id="step5-inner" class="testfile-step-body">
<h4 class="testfile-step-subheader">View results</h4>
<div id="progress" style="visibility:hidden">
<ul>
<li id="progressUploading" style="visibility:hidden">Validating files... <span id="progressUploadingSuccess" style="visibility:hidden">success</span></li>
<li id="progressGenerating" style="visibility:hidden">Generating script... <span id="progressGeneratingSuccess" style="visibility:hidden">success</span></li>
<li id="progressExecuting" style="visibility:hidden">Executing script... <span id="progressExecutingSuccess" style="visibility:hidden">success</span></li>
</ul>
</div>
<div style="height:30px"></div>
<div id="results" style="visibility:hidden">
<h3>Results</h3>
<span style="color:green;font-weight:bold">Harvest successful.</span>
<h4>Script used for harvest</h4>
<div><input type="button" value="Save" style="margin-bottom:10px" /></div>
<textarea cols="100" rows="50" readonly="readonly"><#noparse>#!/bin/bash
# Copyright (c) 2010 Christopher Haines, Dale Scheppler, Nicholas Skaggs, Stephen V. Williams, Michael Barbieri.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the new BSD license
# which accompanies this distribution, and is available at
# http://www.opensource.org/licenses/bsd-license.html
#
# Contributors:
# Christopher Haines, Dale Scheppler, Nicholas Skaggs, Stephen V. Williams, Michael Barbieri - initial API and implementation
#KNOWN ISSUE: Seems to tie in matches that were originally in VIVO into the input model, so that if the input model is cleaned out of VIVO,
# then those matches will be removed. Actually they remain, hidden, but much of their data including their rdf:type is gone. An
# RDF export will show this.
# Exit on first error
set -e
# Set working directory
HARVESTERDIR=`dirname "$(cd "${0%/*}" 2>/dev/null; echo "$PWD"/"${0##*/}")"`
HARVESTERDIR=$(cd $HARVESTERDIR; cd ..; pwd)
HARVESTER_TASK=mods
if [ -f scripts/env ]; then
. scripts/env
else
exit 1
fi
echo "Full Logging in $HARVESTER_TASK_DATE.log"
BASEDIR=harvested-data/$HARVESTER_TASK
BIBINDIR=$BASEDIR/rh-bibutils-in
BIBOUTDIR=$BASEDIR/rh-bibutils-out
RAWRHDIR=$BASEDIR/rh-raw
RAWRHDBURL=jdbc:h2:$RAWRHDIR/store
RDFRHDIR=$BASEDIR/rh-rdf
RDFRHDBURL=jdbc:h2:$RDFRHDIR/store
MODELDIR=$BASEDIR/model
MODELDBURL=jdbc:h2:$MODELDIR/store
MODELNAME=modsTempTransfer
SCOREDATADIR=$BASEDIR/score-data
SCOREDATADBURL=jdbc:h2:$SCOREDATADIR/store
SCOREDATANAME=modsScoreData
TEMPCOPYDIR=$BASEDIR/temp-copy
MATCHEDDIR=$BASEDIR/matched
MATCHEDDBURL=jdbc:h2:$MATCHEDDIR/store
MATCHEDNAME=matchedData
#scoring algorithms
EQTEST="org.vivoweb.harvester.score.algorithm.EqualityTest"
LEVDIFF="org.vivoweb.harvester.score.algorithm.NormalizedLevenshteinDifference"
#matching properties
CWEMAIL="http://vivoweb.org/ontology/core#workEmail"
SWEMAIL="http://vivoweb.org/ontology/score#workEmail"
FFNAME="http://xmlns.com/foaf/0.1/firstName"
SFNAME="http://vivoweb.org/ontology/score#foreName"
FLNAME="http://xmlns.com/foaf/0.1/lastName"
CMNAME="http://vivoweb.org/ontology/core#middleName"
BPMID="http://purl.org/ontology/bibo/pmid"
CTITLE="http://vivoweb.org/ontology/core#title"
BISSN="http://purl.org/ontology/bibo/ISSN"
PVENUEFOR="http://vivoweb.org/ontology/core#publicationVenueFor"
LINKAUTH="http://vivoweb.org/ontology/core#linkedAuthor"
LINKINFORES="http://vivoweb.org/ontology/core#linkedInformationResource"
AUTHINAUTH="http://vivoweb.org/ontology/core#authorInAuthorship"
RDFTYPE="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
RDFSLABEL="http://www.w3.org/2000/01/rdf-schema#label"
BASEURI="http://vivoweb.org/harvest/mods/"
#BIBUTILSBASE="lib/bibutils/bibutils_4.12_x86_64"
BIBUTILSBASE="lib/bibutils/bibutils_4.12_i386"
BIBUTILSINPUTFORMAT="med"
#clear old fetches
rm -rf $BIBINDIR
# Execute Fetch for Pubmed
$PubmedFetch -X config/tasks/ufl.pubmedfetch.xml -o $TFRH -OfileDir=$BIBINDIR
# clear old bibutils runs
rm -rf $BIBOUTDIR
# run bibutils
$RunBibutils -b $BIBUTILSBASE -m $BIBUTILSINPUTFORMAT -i $TFRH -IfileDir=$BIBINDIR -o $TFRH -OfileDir=$BIBOUTDIR
# clear old sanitizes
rm -rf $RAWRHDIR
# Sanitize data
$SanitizeMODSXML -i $TFRH -IfileDir=$BIBOUTDIR -o $TFRH -OfileDir=$RAWRHDIR
# clear old translates
rm -rf $RDFRHDIR
# Execute Translate using the mods-to-vivo.xsl file
$XSLTranslator -i $TFRH -IfileDir=$RAWRHDIR -o $H2RH -OdbUrl=$RDFRHDBURL -x config/datamaps/mods-to-vivo.xsl -f
# backup translate
BACKRDF="rdf"
backup-path $RDFRHDIR $BACKRDF
# uncomment to restore previous translate
#restore-path $RDFRHDIR $BACKRDF
# Clear old H2 transfer model
rm -rf $MODELDIR
# Execute Transfer to import from record handler into local temp model
$Transfer -o $H2MODEL -OmodelName=$MODELNAME -OcheckEmpty=$CHECKEMPTY -OdbUrl=$MODELDBURL -h $H2RH -HdbUrl=$RDFRHDBURL
# backup H2 transfer Model
BACKMODEL="model"
backup-path $MODELDIR $BACKMODEL
# uncomment to restore previous H2 transfer Model
#restore-path $MODELDIR $BACKMODEL
# Clear old H2 score data
rm -rf $SCOREDATADIR
# Clear old H2 match data
rm -rf $MATCHEDDIR
# Clear old H2 temp copy
rm -rf $TEMPCOPYDIR
# Score variables for cleaner lines
SCOREINPUT="-i $H2MODEL -ImodelName=$MODELNAME -IdbUrl=$MODELDBURL -IcheckEmpty=$CHECKEMPTY"
SCOREDATA="-s $H2MODEL -SmodelName=$SCOREDATANAME -SdbUrl=$SCOREDATADBURL -ScheckEmpty=$CHECKEMPTY"
MATCHOUTPUT="-o $H2MODEL -OmodelName=$MATCHEDNAME -OdbUrl=$MATCHEDDBURL -OcheckEmpty=$CHECKEMPTY"
MATCHEDINPUT="-i $H2MODEL -ImodelName=$MATCHEDNAME -IdbUrl=$MATCHEDDBURL -IcheckEmpty=$CHECKEMPTY"
SCOREMODELS="$SCOREINPUT -v $VIVOCONFIG -VcheckEmpty=$CHECKEMPTY $SCOREDATA -t $TEMPCOPYDIR -b $SCOREBATCHSIZE"
# Execute Score to disambiguate data in "scoring" JENA model
TITLE="-Atitle=$EQTEST -Ftitle=$RDFSLABEL -Wtitle=1.0 -Ptitle=$RDFSLABEL"
$Score $SCOREMODELS $TITLE -n ${BASEURI}pub/
$Match $SCOREINPUT $SCOREDATA -t 0.7 -r
# clear H2 score data Model
rm -rf $SCOREDATADIR
#Author, Organization, Geographic Location, Journal match
LNAME="-AlName=$LEVDIFF -FlName=$FLNAME -WlName=0.5 -PlName=$FLNAME"
FNAME="-AfName=$LEVDIFF -FfName=$FFNAME -WfName=0.3 -PfName=$FFNAME"
RDFSLABELSCORE="-ArdfsLabel=$LEVDIFF -FrdfsLabel=$RDFSLABEL -WrdfsLabel=1.0 -PrdfsLabel=$RDFSLABEL"
$Score $SCOREMODELS $FNAME $LNAME -n ${BASEURI}author/
$Score $SCOREMODELS $RDFSLABELSCORE -n ${BASEURI}org/
$Score $SCOREMODELS $RDFSLABELSCORE -n ${BASEURI}geo/
$Score $SCOREMODELS $RDFSLABELSCORE -n ${BASEURI}journal/
$Match $SCOREINPUT $SCOREDATA -t 0.7 -r
# clear H2 score data Model
rm -rf $SCOREDATADIR
# Clear old H2 temp copy of input (URI here is hardcoded in Score)
$JenaConnect -Jtype=tdb -JdbDir=$TEMPCOPYDIR -JmodelName=http://vivoweb.org/harvester/model/scoring#inputClone -t
#Authorship match
AUTHPUB="-Aauthpub=$EQTEST -Fauthpub=$LINKINFORES -Wauthpub=0.5 -Pauthpub=$LINKINFORES"
AUTHAUTH="-Aauthauth=$EQTEST -Fauthauth=$LINKAUTH -Wauthauth=0.5 -Pauthauth=$LINKAUTH"
$Score $SCOREMODELS $AUTHPUB $AUTHAUTH -n ${BASEURI}authorship/
$Match $SCOREINPUT $SCOREDATA -t 0.7 -r
# backup H2 score data Model
BACKSCOREDATA="scoredata-auths"
backup-path $SCOREDATADIR $BACKSCOREDATA
# uncomment to restore previous H2 matched Model
#restore-path $SCOREDATADIR $BACKSCOREDATA
# clear H2 score data Model
rm -rf $SCOREDATADIR
# Clear old H2 temp copy
rm -rf $TEMPCOPYDIR
# Execute ChangeNamespace lines: the -o flag value is determined by the XSLT used to translate the data
CNFLAGS="$SCOREINPUT -v $VIVOCONFIG -VcheckEmpty=$CHECKEMPTY -n $NAMESPACE"
# Execute ChangeNamespace to get unmatched Publications into current namespace
$ChangeNamespace $CNFLAGS -u ${BASEURI}pub/
# Execute ChangeNamespace to get unmatched Authorships into current namespace
$ChangeNamespace $CNFLAGS -u ${BASEURI}authorship/
# Execute ChangeNamespace to get unmatched Authors into current namespace
$ChangeNamespace $CNFLAGS -u ${BASEURI}author/
# Execute ChangeNamespace to get unmatched Organizations into current namespace
$ChangeNamespace $CNFLAGS -u ${BASEURI}org/
# Execute ChangeNamespace to get unmatched Geographic Locations into current namespace
$ChangeNamespace $CNFLAGS -u ${BASEURI}geo/
# Execute ChangeNamespace to get unmatched Journals into current namespace
$ChangeNamespace $CNFLAGS -u ${BASEURI}journal/
# Backup pretransfer vivo database, symlink latest to latest.sql
BACKPREDB="pretransfer"
backup-mysqldb $BACKPREDB
# uncomment to restore pretransfer vivo database
#restore-mysqldb $BACKPREDB
PREVHARVESTMODEL="http://vivoweb.org/ingest/mods"
ADDFILE="$BASEDIR/additions.rdf.xml"
SUBFILE="$BASEDIR/subtractions.rdf.xml"
# Find Subtractions
$Diff -m $VIVOCONFIG -MmodelName=$PREVHARVESTMODEL -McheckEmpty=$CHECKEMPTY -s $H2MODEL -ScheckEmpty=$CHECKEMPTY -SdbUrl=$MODELDBURL -SmodelName=$MODELNAME -d $SUBFILE
# Find Additions
$Diff -m $H2MODEL -McheckEmpty=$CHECKEMPTY -MdbUrl=$MODELDBURL -MmodelName=$MODELNAME -s $VIVOCONFIG -ScheckEmpty=$CHECKEMPTY -SmodelName=$PREVHARVESTMODEL -d $ADDFILE
PREVHARVESTMODELINPUT="-i $VIVOCONFIG -ImodelName=$PREVHARVESTMODEL -IcheckEmpty=$CHECKEMPTY"
# Backup adds and subs
backup-file $ADDFILE adds.rdf.xml
backup-file $SUBFILE subs.rdf.xml
# Apply Subtractions to Previous model
$Transfer -o $H2MODEL -OdbUrl=${PREVHARVDBURLBASE}${HARVESTER_TASK}/store -OcheckEmpty=$CHECKEMPTY -OmodelName=$PREVHARVESTMODEL -r $SUBFILE -m
# Apply Additions to Previous model
$Transfer -o $H2MODEL -OdbUrl=${PREVHARVDBURLBASE}${HARVESTER_TASK}/store -OcheckEmpty=$CHECKEMPTY -OmodelName=$PREVHARVESTMODEL -r $ADDFILE
# Apply Subtractions to VIVO
$Transfer -o $VIVOCONFIG -OcheckEmpty=$CHECKEMPTY -r $SUBFILE -m
# Apply Additions to VIVO
$Transfer -o $VIVOCONFIG -OcheckEmpty=$CHECKEMPTY -r $ADDFILE
#Restart Tomcat
#Tomcat must be restarted in order for the harvested data to appear in VIVO
echo $HARVESTER_TASK ' completed successfully'
/etc/init.d/tomcat stop
/etc/init.d/apache2 reload
/etc/init.d/tomcat start</#noparse></textarea>
<div id="progress">
<textarea cols="100" rows="50" readonly="readonly" id="progressTextArea"></textarea>
</div>
</div>
<div class="clearBothDiv" />

View file

@ -4,8 +4,6 @@
<#include "individual-setup.ftl">
<#include "individual-qrCodeFoafPerson.ftl">
<section id="individual-intro" class="vcard person" role="region">
<section id="share-contact" role="region">
@ -34,6 +32,8 @@
<#if rdfUrl??>
<li role="listitem"><a title="View this individual in RDF format" class="icon-rdf" href="${rdfUrl}">RDF</a></li>
</#if>
<#include "individual-qrCodeFoafPerson.ftl">
</ul>
</nav>
@ -41,16 +41,6 @@
<#-- Links -->
<@p.vitroLinks propertyGroups namespaces editable "individual-urls-people" />
<#-- QR Codes -->
<#if hasValidVCard()>
<div style="border:1px solid #cccccc">
<span style="padding-left:5px">vCard QR <a style="font-size:smaller" href="${individual.qrData.aboutQrCodesUrl}">What is this?</a></span>
<a title="Export QR codes" href="${individual.qrData.exportQrCodeUrl}">
<@qrCodeVCard qrCodeWidth="150" />
</a>
</div>
</#if>
</section>
<section id="individual-info" ${infoClass!} role="region">

View file

@ -1,123 +1,7 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#-- QR code -->
<#macro qrCodeVCard qrCodeWidth>
<#local qrCodeUrl = getQrCodeUrlForVCard(qrCodeWidth)>
<#if qrCodeUrl != "">
<img src="${qrCodeUrl}" />
</#if>
</#macro>
<#macro qrCodeLink qrCodeWidth>
<#local qrCodeUrl = getQrCodeUrlForLink(qrCodeWidth)>
<#if qrCodeUrl != "">
<img src="${qrCodeUrl}" />
</#if>
</#macro>
<#function getQrCodeUrlForVCard qrCodeWidth>
<#local qrData = individual.qrData >
<#local core = "http://vivoweb.org/ontology/core#">
<#local foaf = "http://xmlns.com/foaf/0.1/">
<#local rdfs = "http://www.w3.org/2000/01/rdf-schema#">
<#local firstName = qrData.firstName! >
<#local lastName = qrData.lastName! >
<#local org = "" >
<#local title = qrData.preferredTitle! >
<#local phoneNumber = qrData.phoneNumber! >
<#local email = qrData.email! >
<#local url = qrData.externalUrl! >
<#local photo = individual.thumbUrl! >
<#local rev = "" >
<#local qrCodeUrl = "">
<#if firstName != "" && lastName != "">
<#local vCard><#t>
BEGIN:VCARD<#lt>
VERSION:3.0<#lt>
N:${lastName};${firstName}<#lt>
FN:${firstName} ${lastName}<#lt>
<#if org != ""> ORG:${org}</#if><#lt>
<#if title != "">TITLE:${title}</#if><#lt>
<#if phoneNumber != "">TEL;TYPE=WORK,VOICE:${phoneNumber}</#if><#lt>
<#if email != "">EMAIL;TYPE=PREF,INTERNET:${email}</#if><#lt>
<#if url != "">URL:${url}</#if><#lt>
<#if photo != "">PHOTO;VALUE=URL;TYPE=JPG:${photo}</#if><#lt>
<#if rev != "">REV:${rev}</#if><#lt>
END:VCARD<#t>
</#local><#t>
<#local vCard = (removeBlankLines(vCard))?url>
<#local qrCodeUrl = "https://chart.googleapis.com/chart?cht=qr&amp;chs=${qrCodeWidth}x${qrCodeWidth}&amp;chl=${vCard}&amp;choe=UTF-8" >
</#if>
<#return qrCodeUrl>
</#function>
<#function getQrCodeUrlForLink qrCodeWidth>
<#local qrData = individual.qrData >
<#local url = qrData.externalUrl! >
<#local qrCodeUrl = "">
<#if url != "">
<#local qrCodeContent = url?url>
<#local qrCodeUrl = "https://chart.googleapis.com/chart?cht=qr&amp;chs=${qrCodeWidth}x${qrCodeWidth}&amp;chl=${qrCodeContent}&amp;choe=UTF-8" >
</#if>
<#return qrCodeUrl>
</#function>
<#function removeBlankLines input>
<#local test = "\n\n">
<#local replacement = "\n">
<#local output = input>
<#local maxLoop = 50>
<#list 1..maxLoop as i>
<#if output?contains(test)>
<#local output = output?replace(test, replacement)>
<#else>
<#break>
</#if>
</#list>
<#return output>
</#function>
<#function hasValidVCard>
<#local qrData = individual.qrData >
<#local firstName = qrData.firstName! >
<#local lastName = qrData.lastName! >
<#local validVCard = false>
<#if firstName != "" && lastName != "">
<#local validVCard = true>
</#if>
<#return validVCard>
</#function>
<#include "individual-qrCodeGenerator.ftl">
<#if hasValidVCard()>
<li role="listitem"><a title="Export QR codes" href="${individual.qrData.exportQrCodeUrl}"><img class="middle" src="${urls.images}/individual/qr_icon.png" alt="qr icon" /></a></li>
</#if>

View file

@ -0,0 +1,119 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#-- QR code -->
<#macro qrCodeVCard qrCodeWidth>
<#local qrCodeUrl = getQrCodeUrlForVCard(qrCodeWidth)>
<#if qrCodeUrl != "">
<img src="${qrCodeUrl}" />
</#if>
</#macro>
<#macro qrCodeLink qrCodeWidth>
<#local qrCodeUrl = getQrCodeUrlForLink(qrCodeWidth)>
<#if qrCodeUrl != "">
<img src="${qrCodeUrl}" />
</#if>
</#macro>
<#function getQrCodeUrlForVCard qrCodeWidth>
<#local qrData = individual.qrData >
<#local core = "http://vivoweb.org/ontology/core#">
<#local foaf = "http://xmlns.com/foaf/0.1/">
<#local rdfs = "http://www.w3.org/2000/01/rdf-schema#">
<#local firstName = qrData.firstName! >
<#local lastName = qrData.lastName! >
<#local org = "" >
<#local title = qrData.preferredTitle! >
<#local phoneNumber = qrData.phoneNumber! >
<#local email = qrData.email! >
<#local url = qrData.externalUrl! >
<#local photo = individual.thumbUrl! >
<#local rev = "" >
<#local qrCodeUrl = "">
<#if firstName != "" && lastName != "">
<#local vCard><#t>
BEGIN:VCARD<#lt>
VERSION:3.0<#lt>
N:${lastName};${firstName}<#lt>
FN:${firstName} ${lastName}<#lt>
<#if org != ""> ORG:${org}</#if><#lt>
<#if title != "">TITLE:${title}</#if><#lt>
<#if phoneNumber != "">TEL;TYPE=WORK,VOICE:${phoneNumber}</#if><#lt>
<#if email != "">EMAIL;TYPE=PREF,INTERNET:${email}</#if><#lt>
<#if url != "">URL:${url}</#if><#lt>
<#if photo != "">PHOTO;VALUE=URL;TYPE=JPG:${photo}</#if><#lt>
<#if rev != "">REV:${rev}</#if><#lt>
END:VCARD<#t>
</#local><#t>
<#local vCard = (removeBlankLines(vCard))?url>
<#local qrCodeUrl = "https://chart.googleapis.com/chart?cht=qr&amp;chs=${qrCodeWidth}x${qrCodeWidth}&amp;chl=${vCard}&amp;choe=UTF-8" >
</#if>
<#return qrCodeUrl>
</#function>
<#function getQrCodeUrlForLink qrCodeWidth>
<#local qrData = individual.qrData >
<#local url = qrData.externalUrl! >
<#local qrCodeUrl = "">
<#if url != "">
<#local qrCodeContent = url?url>
<#local qrCodeUrl = "https://chart.googleapis.com/chart?cht=qr&amp;chs=${qrCodeWidth}x${qrCodeWidth}&amp;chl=${qrCodeContent}&amp;choe=UTF-8" >
</#if>
<#return qrCodeUrl>
</#function>
<#function removeBlankLines input>
<#local test = "\n\n">
<#local replacement = "\n">
<#local output = input>
<#local maxLoop = 50>
<#list 1..maxLoop as i>
<#if output?contains(test)>
<#local output = output?replace(test, replacement)>
<#else>
<#break>
</#if>
</#list>
<#return output>
</#function>
<#function hasValidVCard>
<#local qrData = individual.qrData >
<#local firstName = qrData.firstName! >
<#local lastName = qrData.lastName! >
<#local validVCard = false>
<#if firstName != "" && lastName != "">
<#local validVCard = true>
</#if>
<#return validVCard>
</#function>

View file

@ -0,0 +1,26 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#assign standardVisualizationURLRoot ="/visualization">
<#assign ajaxVisualizationURLRoot ="/visualizationAjax">
<#assign dataVisualizationURLRoot ="/visualizationData">
<#assign shortVisualizationURLRoot ="/vis">
<#assign organizationURI ="${organizationURI?url}">
<#assign organizationVivoProfileURL = "${urls.base}/individual?uri=${organizationURI}">
<#assign subOrganizationVivoProfileURL = "${urls.base}/individual?">
<#assign subOrganizationMapOfScienceCommonURL = "${urls.base}${shortVisualizationURLRoot}/map-of-science/">
<#if organizationLocalName?has_content >
<#assign organizationMapOfScienceURL = "${urls.base}${shortVisualizationURLRoot}/map-of-science/${organizationLocalName}">
<#else>
<#assign organizationMapOfScienceURL = '${urls.base}${shortVisualizationURLRoot}/map-of-science/?uri=${organizationURI}'>
</#if>
<#assign organizationMapOfScienceDataURL = "${urls.base}${dataVisualizationURLRoot}?vis=map-of-science&uri=${organizationURI}&vis_mode=json">

View file

@ -0,0 +1,38 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<#-- The Order of each element in this file is very important. Do not make any changes to it unless making
corresponding changes in the included Templates. -->
<#include "scienceMapSetup.ftl">
<script language="JavaScript" type="text/javascript">
$(document).ready(function() {
var scienceMapDataURL = "${organizationMapOfScienceDataURL}";
$.ajax({
url: scienceMapDataURL
dataType: "json",
timeout: 5 * 60 * 1000,
success: function (data) {
if (data.error) {
alert("error");
alert(data);
} else {
alert("success");
alert(data);
}
}
});
});
</script>