Compare commits
40 commits
texts
...
rel-1.12.0
Author | SHA1 | Date | |
---|---|---|---|
![]() |
09e4ea732a | ||
![]() |
109b5a4fe1 | ||
e1dc5c9775 | |||
![]() |
3de9a03ab5 | ||
![]() |
f4f6dddb11 | ||
a9a095397e | |||
![]() |
603e7f6bc8 | ||
![]() |
e3027841aa | ||
![]() |
dc56107d4d | ||
![]() |
49eedfe0a0 | ||
![]() |
43289ba71e | ||
![]() |
9652127081 | ||
![]() |
631986a2d5 | ||
![]() |
5d257cae6b | ||
![]() |
8b161f948e | ||
![]() |
fe764ded51 | ||
![]() |
fe1498319a | ||
![]() |
f4d187a601 | ||
![]() |
29728b3b40 | ||
![]() |
250566446f | ||
![]() |
2be59bbe02 | ||
![]() |
d72472824a | ||
![]() |
2fa7cce5c7 | ||
![]() |
fe09808b1b | ||
![]() |
d00d7de585 | ||
![]() |
47fb4fdc05 | ||
![]() |
fdda5f0774 | ||
![]() |
0d5049f3b6 | ||
![]() |
880ac5b797 | ||
![]() |
5f6cabc42a | ||
![]() |
f15eec19e0 | ||
![]() |
2122254cdb | ||
![]() |
a9ce8c7de8 | ||
![]() |
268ffa1cd7 | ||
![]() |
f97972e5aa | ||
![]() |
6dbc31cc9d | ||
![]() |
01776ee692 | ||
![]() |
c54f8a105b | ||
![]() |
17dd020835 | ||
![]() |
f585d90c0e |
138 changed files with 2040 additions and 2716 deletions
4
.env
Normal file
4
.env
Normal file
|
@ -0,0 +1,4 @@
|
|||
LOCAL_VIVO_HOME=./vivo-home
|
||||
RESET_HOME=false
|
||||
RESET_CORE=false
|
||||
VERBOSE=no
|
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Convert to LF line endings on checkout.
|
||||
*.sh text eol=lf
|
31
.github/workflows/build.yml
vendored
Normal file
31
.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
name: Build
|
||||
|
||||
on: [ push, pull_request, workflow_dispatch ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
MAVEN_OPTS: -Xmx1024M
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Clone Vitro
|
||||
run: git clone https://github.com/vivo-project/Vitro.git ../Vitro
|
||||
|
||||
- name: Maven Cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.m2/repository
|
||||
key: ${{ runner.os }}-cache-m2-${{ hashFiles('**/pom.xml') }}
|
||||
restore-keys: ${{ runner.os }}-cache-m2-
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 11
|
||||
|
||||
- name: Maven Build
|
||||
run: mvn clean package -s installer/example-settings.xml
|
41
.github/workflows/deploy.yml
vendored
Normal file
41
.github/workflows/deploy.yml
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
name: Deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
MAVEN_OPTS: -Xmx1024M
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Clone Vitro
|
||||
run: git clone https://github.com/vivo-project/Vitro.git ../Vitro
|
||||
|
||||
- name: Maven Cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.m2/repository
|
||||
key: ${{ runner.os }}-cache-m2-${{ hashFiles('**/pom.xml') }}
|
||||
restore-keys: ${{ runner.os }}-cache-m2-
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 11
|
||||
server-id: ossrh
|
||||
server-username: MAVEN_USERNAME
|
||||
server-password: MAVEN_PASSWORD
|
||||
|
||||
- name: Maven Deploy
|
||||
run: mvn --batch-mode deploy -Pskip
|
||||
env:
|
||||
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
||||
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
|
59
.github/workflows/docker.yml
vendored
Normal file
59
.github/workflows/docker.yml
vendored
Normal file
|
@ -0,0 +1,59 @@
|
|||
name: Docker
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
MAVEN_OPTS: -Xmx1024M
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Clone Vitro
|
||||
run: git clone https://github.com/vivo-project/Vitro.git ../Vitro
|
||||
|
||||
- name: Maven Cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.m2/repository
|
||||
key: ${{ runner.os }}-cache-m2-${{ hashFiles('**/pom.xml') }}
|
||||
restore-keys: ${{ runner.os }}-cache-m2-
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 11
|
||||
|
||||
- name: Maven Build
|
||||
run: mvn clean package -s installer/example-settings.xml
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
push: true
|
||||
tags: vivoweb/vivo:latest
|
||||
|
||||
- name: Image digest
|
||||
run: echo ${{ steps.docker_build.outputs.digest }}
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -20,3 +20,5 @@ utilities/rdbmigration/.work
|
|||
**/.classpath
|
||||
**/.project
|
||||
**/bin/
|
||||
|
||||
vivo-home/
|
||||
|
|
22
.travis.yml
22
.travis.yml
|
@ -1,22 +0,0 @@
|
|||
language: java
|
||||
dist: trusty
|
||||
sudo: false
|
||||
|
||||
jdk:
|
||||
- openjdk8
|
||||
- oraclejdk8
|
||||
|
||||
env:
|
||||
# Give Maven 1GB of memory to work with
|
||||
- MAVEN_OPTS=-Xmx1024M
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- .autoconf
|
||||
- $HOME/.m2
|
||||
|
||||
install:
|
||||
- git clone https://github.com/vivo-project/Vitro.git ../Vitro
|
||||
|
||||
script:
|
||||
- "mvn clean package -Dmaven.test.skip=false"
|
20
Dockerfile
Normal file
20
Dockerfile
Normal file
|
@ -0,0 +1,20 @@
|
|||
FROM tomcat:9-jdk11-openjdk
|
||||
|
||||
ARG SOLR_URL=http://localhost:8983/solr/vivocore
|
||||
ARG VIVO_DIR=/usr/local/vivo/home
|
||||
ARG TDB_FILE_MODE=direct
|
||||
|
||||
ENV SOLR_URL=${SOLR_URL}
|
||||
ENV JAVA_OPTS="${JAVA_OPTS} -Dtdb:fileMode=$TDB_FILE_MODE"
|
||||
|
||||
RUN mkdir /usr/local/vivo
|
||||
RUN mkdir /usr/local/vivo/home
|
||||
|
||||
COPY ./installer/home/target/vivo /vivo-home
|
||||
COPY ./installer/webapp/target/vivo.war /usr/local/tomcat/webapps/ROOT.war
|
||||
|
||||
COPY start.sh /start.sh
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
CMD ["/bin/bash", "/start.sh"]
|
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2018, Cornell University
|
||||
Copyright (c) 2021, Cornell University
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
|
52
README.md
52
README.md
|
@ -1,6 +1,6 @@
|
|||
# VIVO: Connect, Share, Discover
|
||||
|
||||
[](https://travis-ci.org/vivo-project/VIVO) [](https://doi.org/10.5281/zenodo.2639713)
|
||||
[](https://github.com/vivo-project/VIVO/actions?query=workflow%3ABuild) [](https://github.com/vivo-project/VIVO/actions?query=workflow%3ADeploy) [](https://doi.org/10.5281/zenodo.2639713)
|
||||
|
||||
VIVO is an open source semantic web tool for research discovery -- finding people and the research they do.
|
||||
|
||||
|
@ -19,7 +19,55 @@ https://wiki.duraspace.org/display/VIVO/
|
|||
### Installation Instructions
|
||||
|
||||
Installation instructions for the latest release can be found at this location on the wiki:
|
||||
https://wiki.duraspace.org/display/VIVODOC110x/Installing+VIVO
|
||||
https://wiki.duraspace.org/display/VIVODOC112x/Installing+VIVO
|
||||
|
||||
### Docker
|
||||
|
||||
VIVO docker container is available at [vivoweb/vivo](https://hub.docker.com/repository/docker/vivoweb/vivo) with accompanying [vivoweb/vivo-solr](https://hub.docker.com/repository/docker/vivoweb/vivo-solr). These can be used independently or with docker-compose.
|
||||
|
||||
### Docker Compose
|
||||
|
||||
Docker Compose environment variables:
|
||||
|
||||
.env defaults
|
||||
```
|
||||
LOCAL_VIVO_HOME=./vivo-home
|
||||
RESET_HOME=false
|
||||
RESET_CORE=false
|
||||
```
|
||||
|
||||
- `LOCAL_VIVO_HOME`: VIVO home directory on your host machine which will mount to volume in docker container. Set this environment variable to persist your VIVO data on your host machine.
|
||||
- `RESET_HOME`: Convenience to reset VIVO home when starting container. **Caution**, will delete local configuration, content, and configuration model.
|
||||
- `RESET_CORE`: Convenience to reset VIVO Solr core when starting container. **Caution**, will require complete reindex.
|
||||
|
||||
Before building VIVO, you will also need to clone (and switch to the same branch, if other than main) of [Vitro](https://github.com/vivo-project/Vitro). The Vitro project must be cloned to a sibling directory next to VIVO so that it can be found during the build. You will also need to clone (and switch to the appropriate branch) of [Vitro-languages](https://github.com/vivo-project/Vitro-languages) and [VIVO-languages](https://github.com/vivo-project/VIVO-languages).
|
||||
|
||||
Build and start VIVO.
|
||||
|
||||
1. In Vitro-languages, run:
|
||||
```
|
||||
mvn install
|
||||
```
|
||||
|
||||
2. In VIVO-languages, run:
|
||||
```
|
||||
mvn install
|
||||
```
|
||||
|
||||
3. In VIVO (with Vitro cloned alongside it), run:
|
||||
```
|
||||
mvn clean package -s installer/example-settings.xml
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
### Docker Image
|
||||
|
||||
To build and run local Docker image.
|
||||
|
||||
```
|
||||
docker build -t vivoweb/vivo:development .
|
||||
docker run -p 8080:8080 vivoweb/vivo:development
|
||||
```
|
||||
|
||||
## Contact us
|
||||
There are several ways to contact the VIVO community.
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-api</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-project</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
|
@ -83,7 +83,7 @@
|
|||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.11</version>
|
||||
<version>4.13.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
@ -58,7 +58,7 @@ public class AgrovocService implements ExternalConceptService {
|
|||
protected final String dbpedia_endpoint = " http://dbpedia.org/sparql";
|
||||
// URL to get all the information for a concept
|
||||
|
||||
protected final String conceptSkosMosBase = "http://agrovoc.uniroma2.it/agrovoc/rest/v1/";
|
||||
protected final String conceptSkosMosBase = "https://agrovoc.uniroma2.it/agrovoc/rest/v1/";
|
||||
protected final String conceptsSkosMosSearch = conceptSkosMosBase + "search?";
|
||||
protected final String conceptSkosMosURL = conceptSkosMosBase + "data?";
|
||||
@Override
|
||||
|
|
|
@ -35,7 +35,7 @@ public class LCSHService implements ExternalConceptService {
|
|||
|
||||
protected final Log log = LogFactory.getLog(getClass());
|
||||
private final String skosSuffix = ".skos.rdf";
|
||||
private final String hostUri = "http://id.loc.gov";
|
||||
private final String hostUri = "https://id.loc.gov";
|
||||
private final String schemeUri = hostUri + "/authorities/subjects";
|
||||
private final String baseUri = hostUri + "/search/";
|
||||
|
||||
|
@ -94,7 +94,7 @@ public class LCSHService implements ExternalConceptService {
|
|||
bestMatch = "false";
|
||||
}
|
||||
log.debug("-" + uri + "-");
|
||||
//This is the URL for retrieving the concept - the pattern is http://id.loc.gov/authorities/subjects/sh85014203.skos.rdf
|
||||
//This is the URL for retrieving the concept - the pattern is https://id.loc.gov/authorities/subjects/sh85014203.skos.rdf
|
||||
//This is not the URI itself which would be http://id.loc.gov/authorities/subjects/sh85014203
|
||||
String conceptURLString = getSKOSURL(uri);
|
||||
String baseConceptURI = uri;
|
||||
|
@ -152,7 +152,7 @@ public class LCSHService implements ExternalConceptService {
|
|||
|
||||
|
||||
private String getSKOSURL(String uri) {
|
||||
String skosURI = uri + skosSuffix;
|
||||
String skosURI = uri.replaceFirst("http://", "https://") + skosSuffix;
|
||||
|
||||
return skosURI;
|
||||
}
|
||||
|
|
|
@ -4,12 +4,18 @@ package edu.cornell.mannlib.semservices.service.impl;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.http.HttpVersion;
|
||||
import org.apache.http.client.fluent.Form;
|
||||
import org.apache.http.client.fluent.Request;
|
||||
import org.apache.http.client.utils.URIBuilder;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
|
@ -18,11 +24,6 @@ import edu.cornell.mannlib.semservices.bo.Concept;
|
|||
import edu.cornell.mannlib.semservices.exceptions.ConceptsNotFoundException;
|
||||
import edu.cornell.mannlib.semservices.service.ExternalConceptService;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.json.JacksonUtils;
|
||||
import org.apache.http.HttpVersion;
|
||||
import org.apache.http.client.fluent.Form;
|
||||
import org.apache.http.client.fluent.Request;
|
||||
import org.apache.http.client.utils.URIBuilder;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* @author jaf30
|
||||
|
@ -54,11 +55,13 @@ public class UMLSService implements ExternalConceptService {
|
|||
private static String UMLS_AUTH_USER_URL = "https://utslogin.nlm.nih.gov/cas/v1/tickets";
|
||||
private static String UMLS_AUTH_KEY_URL = "https://utslogin.nlm.nih.gov/cas/v1/api-key";
|
||||
private static String UTS_SERVICE_URL = "http://umlsks.nlm.nih.gov";
|
||||
private static final String UMLS_PROPERTIES = "/umls.properties";
|
||||
private static final Log log = LogFactory.getLog(UMLSService.class);
|
||||
|
||||
{
|
||||
if (username == null || apikey == null) {
|
||||
final Properties properties = new Properties();
|
||||
try (InputStream stream = getClass().getResourceAsStream("/umls.properties")) {
|
||||
try (InputStream stream = getClass().getResourceAsStream(UMLS_PROPERTIES)) {
|
||||
properties.load(stream);
|
||||
username = properties.getProperty("username");
|
||||
password = properties.getProperty("password");
|
||||
|
@ -73,12 +76,19 @@ public class UMLSService implements ExternalConceptService {
|
|||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e, e);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.error(e, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean configurationFileExists() {
|
||||
URL config = UMLSService.class.getResource(UMLS_PROPERTIES);
|
||||
return (config != null);
|
||||
}
|
||||
|
||||
public boolean isConfigured() {
|
||||
return !(StringUtils.isEmpty(username) && StringUtils.isEmpty(apikey));
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ public class ManagePublicationsForIndividualController extends FreemarkerHttpSer
|
|||
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
|
||||
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
|
||||
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
|
||||
+ "SELECT DISTINCT ?subclass ?authorship (str(?label) as ?title) ?pub ?hideThis WHERE { \n"
|
||||
+ "SELECT DISTINCT ?subclass ?authorship (?label as ?title) ?pub ?hideThis WHERE { \n"
|
||||
+ " ?subject core:relatedBy ?authorship . \n"
|
||||
+ " ?authorship a core:Authorship . \n"
|
||||
+ " OPTIONAL { \n "
|
||||
|
|
|
@ -11,15 +11,18 @@ import org.apache.jena.rdf.model.Literal;
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.N3ValidatorVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.MultiValueEditSubmission;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
|
||||
|
||||
public class FirstAndLastNameValidator implements N3ValidatorVTwo {
|
||||
|
||||
private static String MISSING_FIRST_NAME_ERROR = "You must enter a value in the First Name field.";
|
||||
private static String MISSING_LAST_NAME_ERROR = "You must enter a value in the Last Name field.";
|
||||
private static String MALFORMED_LAST_NAME_ERROR = "The last name field may not contain a comma. Please enter first name in First Name field.";
|
||||
private static String MISSING_FIRST_NAME_ERROR = "first_name_empty_msg";
|
||||
private static String MISSING_LAST_NAME_ERROR = "last_name_empty_msg";
|
||||
private static String MALFORMED_LAST_NAME_ERROR = "malformed_last_name_msg";
|
||||
private I18nBundle i18n;
|
||||
private String uriReceiver;
|
||||
|
||||
public FirstAndLastNameValidator(String uriReceiver) {
|
||||
public FirstAndLastNameValidator(String uriReceiver, I18nBundle i18n) {
|
||||
this.i18n = i18n;
|
||||
this.uriReceiver = uriReceiver;
|
||||
}
|
||||
|
||||
|
@ -68,14 +71,14 @@ public class FirstAndLastNameValidator implements N3ValidatorVTwo {
|
|||
}
|
||||
|
||||
if (lastName == null) {
|
||||
errors.put("lastName", MISSING_LAST_NAME_ERROR);
|
||||
errors.put("lastName", i18n.text(MISSING_LAST_NAME_ERROR));
|
||||
// Don't reject space in the last name: de Vries, etc.
|
||||
} else if (lastNameValue.contains(",")) {
|
||||
errors.put("lastName", MALFORMED_LAST_NAME_ERROR);
|
||||
errors.put("lastName", i18n.text(MALFORMED_LAST_NAME_ERROR));
|
||||
}
|
||||
|
||||
if (firstName == null) {
|
||||
errors.put("firstName", MISSING_FIRST_NAME_ERROR);
|
||||
errors.put("firstName", i18n.text(MISSING_FIRST_NAME_ERROR));
|
||||
}
|
||||
|
||||
return errors.size() != 0 ? errors : null;
|
||||
|
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||
|
||||
|
@ -21,28 +22,28 @@ public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
|
|||
/** Editor role involves hard-coded options for the "right side" of the role or activity. */
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return new ConstantFieldOptions(
|
||||
"", "Select type",
|
||||
"http://purl.org/NET/c4dm/event.owl#Event", "Event",
|
||||
"http://vivoweb.org/ontology/core#Competition", "Competition",
|
||||
"http://purl.org/ontology/bibo/Conference", "Conference",
|
||||
"http://vivoweb.org/ontology/core#Course", "Course",
|
||||
"http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
|
||||
"http://purl.org/ontology/bibo/Hearing", "Hearing",
|
||||
"http://purl.org/ontology/bibo/Interview", "Interview",
|
||||
"http://vivoweb.org/ontology/core#Meeting", "Meeting",
|
||||
"http://purl.org/ontology/bibo/Performance", "Performance",
|
||||
"http://vivoweb.org/ontology/core#Presentation", "Presentation",
|
||||
"http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
|
||||
"http://purl.org/ontology/bibo/Workshop", "Workshop",
|
||||
"http://vivoweb.org/ontology/core#EventSeries", "Event Series",
|
||||
"http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
|
||||
"http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
|
||||
"http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series"
|
||||
);
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||
I18n.bundle(vreq).text("select_type"),
|
||||
"http://purl.org/NET/c4dm/event.owl#Event",
|
||||
"http://vivoweb.org/ontology/core#Competition",
|
||||
"http://purl.org/ontology/bibo/Conference",
|
||||
"http://vivoweb.org/ontology/core#Course",
|
||||
"http://vivoweb.org/ontology/core#Exhibit",
|
||||
"http://purl.org/ontology/bibo/Hearing",
|
||||
"http://purl.org/ontology/bibo/Interview",
|
||||
"http://vivoweb.org/ontology/core#Meeting",
|
||||
"http://purl.org/ontology/bibo/Performance",
|
||||
"http://vivoweb.org/ontology/core#Presentation",
|
||||
"http://vivoweb.org/ontology/core#InvitedTalk",
|
||||
"http://purl.org/ontology/bibo/Workshop",
|
||||
"http://vivoweb.org/ontology/core#EventSeries",
|
||||
"http://vivoweb.org/ontology/core#ConferenceSeries",
|
||||
"http://vivoweb.org/ontology/core#SeminarSeries",
|
||||
"http://vivoweb.org/ontology/core#WorkshopSeries"
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean isShowRoleLabelField() {
|
||||
return false;
|
||||
}
|
||||
|
@ -65,3 +66,4 @@ public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
|
|||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class AddClinicalRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||
|
||||
|
@ -22,22 +23,21 @@ public class AddClinicalRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
|
|||
}
|
||||
|
||||
/** Clinical role involves hard-coded options for the "right side" of the role or activity. */
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return new ConstantFieldOptions(
|
||||
"", "Select one",
|
||||
"http://vivoweb.org/ontology/core#Project", "Project",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000005", "Service"
|
||||
);
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||
I18n.bundle(vreq).text("select_type"),
|
||||
"http://vivoweb.org/ontology/core#Project",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000005" /* Service */
|
||||
);
|
||||
}
|
||||
|
||||
//isShowRoleLabelField remains true for this so doesn't need to be overwritten
|
||||
@Override
|
||||
boolean isShowRoleLabelField(){
|
||||
boolean isShowRoleLabelField(){
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Use the methods below to change the date/time precision in the
|
||||
* custom form associated with this generator. When not used, the
|
||||
|
|
|
@ -5,6 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
|
||||
/**
|
||||
* Generates the edit configuration for adding a Role to a Person.
|
||||
|
||||
|
@ -46,8 +48,13 @@ public class AddEditorRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
|
|||
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
// UQAM-Linguistic-Management Managing linguistic context
|
||||
I18nBundle i18n = I18n.bundle(vreq);
|
||||
String i18nSelectType = i18n.text("select_type");
|
||||
String selectType = (i18nSelectType == null || i18nSelectType.isEmpty()) ? "Select type" : i18nSelectType ;
|
||||
|
||||
return new ChildVClassesOptions(OPTION_CLASS_URI)
|
||||
.setDefaultOptionLabel("Select type");
|
||||
.setDefaultOptionLabel(selectType);
|
||||
}
|
||||
|
||||
/** Do not show the role label field for the AddEditorRoleToPerson form */
|
||||
|
|
|
@ -32,6 +32,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUti
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
/**
|
||||
* This is a slightly unusual generator that is used by Manage Editors on
|
||||
|
@ -83,7 +84,7 @@ public class AddEditorsToInformationResourceGenerator extends VivoBaseGenerator
|
|||
//template file
|
||||
editConfiguration.setTemplate("addEditorsToInformationResource.ftl");
|
||||
//add validators
|
||||
editConfiguration.addValidator(new FirstAndLastNameValidator("personUri"));
|
||||
editConfiguration.addValidator(new FirstAndLastNameValidator("personUri", I18n.bundle(vreq)));
|
||||
|
||||
//Adding additional data, specifically edit mode
|
||||
addFormSpecificData(editConfiguration, vreq);
|
||||
|
|
|
@ -23,9 +23,10 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
|
|||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||
|
@ -108,8 +109,8 @@ public class AddEditorshipToPersonGenerator extends VivoBaseGenerator implements
|
|||
conf.addField( new FieldVTwo().
|
||||
setName("documentType").
|
||||
setValidators( list("nonempty") ).
|
||||
setOptions( new ConstantFieldOptions("documentType", getDocumentTypeLiteralOptions() ))
|
||||
);
|
||||
// UQAM-Linguistic-Management vreq for linguistic context
|
||||
setOptions( getDocumentTypeLiteralOptions(vreq) ) );
|
||||
|
||||
conf.addField( new FieldVTwo().
|
||||
setName("documentLabel").
|
||||
|
@ -203,21 +204,22 @@ public class AddEditorshipToPersonGenerator extends VivoBaseGenerator implements
|
|||
return null;
|
||||
}
|
||||
|
||||
private List<List<String>> getDocumentTypeLiteralOptions() {
|
||||
List<List<String>> literalOptions = new ArrayList<List<String>>();
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Book", "Book"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Chapter", "Chapter"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/EditedBook", "Edited Book"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Film", "Film"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Magazine", "Magazine"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Newsletter", "Newsletter"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Newspaper", "Newspaper"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#NewsRelease", "News Release"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Report", "Report"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Video", "Video"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Webpage", "Webpage"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Website", "Website"));
|
||||
return literalOptions;
|
||||
private FieldOptions getDocumentTypeLiteralOptions(VitroRequest vreq) throws Exception {
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||
I18n.bundle(vreq).text("select_type"),
|
||||
"http://purl.org/ontology/bibo/Book",
|
||||
"http://purl.org/ontology/bibo/Chapter",
|
||||
"http://purl.org/ontology/bibo/EditedBook",
|
||||
"http://purl.org/ontology/bibo/Film",
|
||||
"http://purl.org/ontology/bibo/Magazine",
|
||||
"http://vivoweb.org/ontology/core#Newsletter",
|
||||
"http://purl.org/ontology/bibo/Newspaper",
|
||||
"http://vivoweb.org/ontology/core#NewsRelease",
|
||||
"http://purl.org/ontology/bibo/Report",
|
||||
"http://vivoweb.org/ontology/core#Video",
|
||||
"http://purl.org/ontology/bibo/Webpage",
|
||||
"http://purl.org/ontology/bibo/Website");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
|
||||
|
||||
public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||
|
||||
|
@ -25,10 +27,14 @@ public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
|
|||
/** Head Of role involves hard-coded options for the "right side" of the role or activity */
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
// UQAM-Linguistic-Management Taking into account the linguistic context
|
||||
I18nBundle i18n = I18n.bundle(vreq);
|
||||
String i18nSelectType = i18n.text("select_type");
|
||||
String selectType = (i18nSelectType == null || i18nSelectType.isEmpty()) ? "Select type" : i18nSelectType ;
|
||||
|
||||
return new
|
||||
ChildVClassesOptions(OPTION_CLASS_URI)
|
||||
.setDefaultOptionLabel("Select type");
|
||||
.setDefaultOptionLabel(selectType);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,9 +2,28 @@
|
|||
|
||||
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.apache.jena.query.Query;
|
||||
import org.apache.jena.query.QueryExecution;
|
||||
import org.apache.jena.query.QueryExecutionFactory;
|
||||
import org.apache.jena.query.QueryFactory;
|
||||
import org.apache.jena.query.QuerySolution;
|
||||
import org.apache.jena.query.ResultSet;
|
||||
import org.apache.jena.rdf.model.AnonId;
|
||||
import org.apache.jena.rdf.model.Model;
|
||||
import org.apache.jena.rdf.model.ModelFactory;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
|
||||
public class AddMemberRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||
|
||||
|
@ -20,44 +39,45 @@ public class AddMemberRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
|
|||
return "http://vivoweb.org/ontology/core#MemberRole";
|
||||
}
|
||||
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return new ConstantFieldOptions(
|
||||
"","Select type",
|
||||
"http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
|
||||
"http://vivoweb.org/ontology/core#Association","Association",
|
||||
"http://vivoweb.org/ontology/core#Center","Center",
|
||||
"http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
|
||||
"http://vivoweb.org/ontology/core#College","College",
|
||||
"http://vivoweb.org/ontology/core#Committee","Committee",
|
||||
"http://vivoweb.org/ontology/core#Company","Company",
|
||||
"http://vivoweb.org/ontology/core#Consortium","Consortium",
|
||||
"http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
|
||||
"http://vivoweb.org/ontology/core#Department","Department",
|
||||
"http://vivoweb.org/ontology/core#Division","Division",
|
||||
"http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
|
||||
"http://vivoweb.org/ontology/core#Foundation","Foundation",
|
||||
"http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
|
||||
"http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
|
||||
"http://xmlns.com/foaf/0.1/Group","Group",
|
||||
"http://vivoweb.org/ontology/core#Hospital","Hospital",
|
||||
"http://vivoweb.org/ontology/core#Institute","Institute",
|
||||
"http://vivoweb.org/ontology/core#Laboratory","Laboratory",
|
||||
"http://vivoweb.org/ontology/core#Library","Library",
|
||||
"http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
|
||||
"http://vivoweb.org/ontology/core#Museum","Museum",
|
||||
"http://xmlns.com/foaf/0.1/Organization","Organization",
|
||||
"http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
|
||||
"http://vivoweb.org/ontology/core#Program","Program",
|
||||
"http://vivoweb.org/ontology/core#Publisher","Publisher",
|
||||
"http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
|
||||
"http://vivoweb.org/ontology/core#School","School",
|
||||
"http://vivoweb.org/ontology/core#Team","Team",
|
||||
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
|
||||
"http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
|
||||
"http://vivoweb.org/ontology/core#University","University");
|
||||
}
|
||||
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||
I18n.bundle(vreq).text("select_type"),
|
||||
"http://vivoweb.org/ontology/core#AcademicDepartment",
|
||||
"http://vivoweb.org/ontology/core#Association",
|
||||
"http://vivoweb.org/ontology/core#Center",
|
||||
"http://vivoweb.org/ontology/core#ClinicalOrganization",
|
||||
"http://vivoweb.org/ontology/core#College",
|
||||
"http://vivoweb.org/ontology/core#Committee",
|
||||
"http://vivoweb.org/ontology/core#Company",
|
||||
"http://vivoweb.org/ontology/core#Consortium",
|
||||
"http://vivoweb.org/ontology/core#CoreLaboratory",
|
||||
"http://vivoweb.org/ontology/core#Department",
|
||||
"http://vivoweb.org/ontology/core#Division",
|
||||
"http://vivoweb.org/ontology/core#ExtensionUnit",
|
||||
"http://vivoweb.org/ontology/core#Foundation",
|
||||
"http://vivoweb.org/ontology/core#FundingOrganization",
|
||||
"http://vivoweb.org/ontology/core#GovernmentAgency",
|
||||
"http://xmlns.com/foaf/0.1/Group",
|
||||
"http://vivoweb.org/ontology/core#Hospital",
|
||||
"http://vivoweb.org/ontology/core#Institute",
|
||||
"http://vivoweb.org/ontology/core#Laboratory",
|
||||
"http://vivoweb.org/ontology/core#Library",
|
||||
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */,
|
||||
"http://vivoweb.org/ontology/core#Museum",
|
||||
"http://xmlns.com/foaf/0.1/Organization",
|
||||
"http://vivoweb.org/ontology/core#PrivateCompany",
|
||||
"http://vivoweb.org/ontology/core#Program",
|
||||
"http://vivoweb.org/ontology/core#Publisher",
|
||||
"http://vivoweb.org/ontology/core#ResearchOrganization",
|
||||
"http://vivoweb.org/ontology/core#School",
|
||||
"http://vivoweb.org/ontology/core#Team",
|
||||
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory",
|
||||
"http://vivoweb.org/ontology/core#StudentOrganization",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000565" /* Technology Transfer Office */,
|
||||
"http://vivoweb.org/ontology/core#University");
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean isShowRoleLabelField(){return true;}
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class AddOrganizerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||
|
||||
|
@ -22,26 +22,27 @@ public class AddOrganizerRoleToPersonGenerator extends AddRoleToPersonTwoStageGe
|
|||
}
|
||||
|
||||
//Organizer role involves hard-coded options for the "right side" of the role or activity
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return new ConstantFieldOptions(
|
||||
"","Select type",
|
||||
"http://vivoweb.org/ontology/core#Competition", "Competition",
|
||||
"http://purl.org/ontology/bibo/Conference", "Conference",
|
||||
"http://vivoweb.org/ontology/core#Course", "Course",
|
||||
"http://purl.org/NET/c4dm/event.owl#Event", "Event",
|
||||
"http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
|
||||
"http://purl.org/ontology/bibo/Hearing", "Hearing",
|
||||
"http://purl.org/ontology/bibo/Interview", "Interview",
|
||||
"http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
|
||||
"http://vivoweb.org/ontology/core#Meeting", "Meeting",
|
||||
"http://purl.org/ontology/bibo/Performance", "Performance",
|
||||
"http://vivoweb.org/ontology/core#Presentation", "Presentation",
|
||||
"http://purl.org/ontology/bibo/Workshop", "Workshop",
|
||||
"http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
|
||||
"http://vivoweb.org/ontology/core#EventSeries", "Event Series",
|
||||
"http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
|
||||
"http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series");
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(),
|
||||
"", I18n.bundle(vreq).text("select_type"),
|
||||
"http://vivoweb.org/ontology/core#Competition",
|
||||
"http://purl.org/ontology/bibo/Conference",
|
||||
"http://vivoweb.org/ontology/core#Course",
|
||||
"http://purl.org/NET/c4dm/event.owl#Event",
|
||||
"http://vivoweb.org/ontology/core#Exhibit",
|
||||
"http://purl.org/ontology/bibo/Hearing",
|
||||
"http://purl.org/ontology/bibo/Interview",
|
||||
"http://vivoweb.org/ontology/core#InvitedTalk",
|
||||
"http://vivoweb.org/ontology/core#Meeting",
|
||||
"http://purl.org/ontology/bibo/Performance",
|
||||
"http://vivoweb.org/ontology/core#Presentation",
|
||||
"http://purl.org/ontology/bibo/Workshop",
|
||||
"http://vivoweb.org/ontology/core#ConferenceSeries",
|
||||
"http://vivoweb.org/ontology/core#EventSeries",
|
||||
"http://vivoweb.org/ontology/core#SeminarSeries",
|
||||
"http://vivoweb.org/ontology/core#WorkshopSeries");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||
|
||||
|
@ -22,59 +22,60 @@ public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwo
|
|||
}
|
||||
|
||||
//Outreach Provider role involves hard-coded options for the "right side" of the role or activity
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return new ConstantFieldOptions(
|
||||
"","Select type",
|
||||
"http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
|
||||
"http://vivoweb.org/ontology/core#Association","Association",
|
||||
"http://vivoweb.org/ontology/core#Center","Center",
|
||||
"http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
|
||||
"http://vivoweb.org/ontology/core#College","College",
|
||||
"http://vivoweb.org/ontology/core#Committee","Committee",
|
||||
"http://vivoweb.org/ontology/core#Company","Company",
|
||||
"http://vivoweb.org/ontology/core#Competition", "Competition",
|
||||
"http://purl.org/ontology/bibo/Conference", "Conference",
|
||||
"http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
|
||||
"http://vivoweb.org/ontology/core#Consortium","Consortium",
|
||||
"http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
|
||||
"http://vivoweb.org/ontology/core#Course", "Course",
|
||||
"http://vivoweb.org/ontology/core#Department","Department",
|
||||
"http://vivoweb.org/ontology/core#Division","Division",
|
||||
"http://purl.org/NET/c4dm/event.owl#Event","Event",
|
||||
"http://vivoweb.org/ontology/core#EventSeries", "Event Series",
|
||||
"http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
|
||||
"http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
|
||||
"http://vivoweb.org/ontology/core#Foundation","Foundation",
|
||||
"http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
|
||||
"http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
|
||||
"http://xmlns.com/foaf/0.1/Group","Group",
|
||||
"http://purl.org/ontology/bibo/Hearing", "Hearing",
|
||||
"http://vivoweb.org/ontology/core#Hospital","Hospital",
|
||||
"http://vivoweb.org/ontology/core#Institute","Institute",
|
||||
"http://purl.org/ontology/bibo/Interview", "Interview",
|
||||
"http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
|
||||
"http://vivoweb.org/ontology/core#Laboratory","Laboratory",
|
||||
"http://vivoweb.org/ontology/core#Library","Library",
|
||||
"http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
|
||||
"http://vivoweb.org/ontology/core#Meeting", "Meeting",
|
||||
"http://vivoweb.org/ontology/core#Museum","Museum",
|
||||
"http://xmlns.com/foaf/0.1/Organization","Organization",
|
||||
"http://purl.org/ontology/bibo/Performance", "Performance",
|
||||
"http://vivoweb.org/ontology/core#Presentation", "Presentation",
|
||||
"http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
|
||||
"http://vivoweb.org/ontology/core#Program","Program",
|
||||
"http://vivoweb.org/ontology/core#Publisher","Publisher",
|
||||
"http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
|
||||
"http://vivoweb.org/ontology/core#School","School",
|
||||
"http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
|
||||
"http://vivoweb.org/ontology/core#Team","Team",
|
||||
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
|
||||
"http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
|
||||
"http://vivoweb.org/ontology/core#University","University",
|
||||
"http://purl.org/ontology/bibo/Workshop", "Workshop",
|
||||
"http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series");
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||
I18n.bundle(vreq).text("select_type"),
|
||||
"http://vivoweb.org/ontology/core#AcademicDepartment",
|
||||
"http://vivoweb.org/ontology/core#Association",
|
||||
"http://vivoweb.org/ontology/core#Center",
|
||||
"http://vivoweb.org/ontology/core#ClinicalOrganization",
|
||||
"http://vivoweb.org/ontology/core#College",
|
||||
"http://vivoweb.org/ontology/core#Committee",
|
||||
"http://vivoweb.org/ontology/core#Company",
|
||||
"http://vivoweb.org/ontology/core#Competition",
|
||||
"http://purl.org/ontology/bibo/Conference",
|
||||
"http://vivoweb.org/ontology/core#ConferenceSeries",
|
||||
"http://vivoweb.org/ontology/core#Consortium",
|
||||
"http://vivoweb.org/ontology/core#CoreLaboratory",
|
||||
"http://vivoweb.org/ontology/core#Course",
|
||||
"http://vivoweb.org/ontology/core#Department",
|
||||
"http://vivoweb.org/ontology/core#Division",
|
||||
"http://purl.org/NET/c4dm/event.owl#Event",
|
||||
"http://vivoweb.org/ontology/core#EventSeries",
|
||||
"http://vivoweb.org/ontology/core#Exhibit",
|
||||
"http://vivoweb.org/ontology/core#ExtensionUnit",
|
||||
"http://vivoweb.org/ontology/core#Foundation",
|
||||
"http://vivoweb.org/ontology/core#FundingOrganization",
|
||||
"http://vivoweb.org/ontology/core#GovernmentAgency",
|
||||
"http://xmlns.com/foaf/0.1/Group",
|
||||
"http://purl.org/ontology/bibo/Hearing",
|
||||
"http://vivoweb.org/ontology/core#Hospital",
|
||||
"http://vivoweb.org/ontology/core#Institute",
|
||||
"http://purl.org/ontology/bibo/Interview",
|
||||
"http://vivoweb.org/ontology/core#InvitedTalk",
|
||||
"http://vivoweb.org/ontology/core#Laboratory",
|
||||
"http://vivoweb.org/ontology/core#Library",
|
||||
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */,
|
||||
"http://vivoweb.org/ontology/core#Meeting",
|
||||
"http://vivoweb.org/ontology/core#Museum",
|
||||
"http://xmlns.com/foaf/0.1/Organization",
|
||||
"http://purl.org/ontology/bibo/Performance",
|
||||
"http://vivoweb.org/ontology/core#Presentation",
|
||||
"http://vivoweb.org/ontology/core#PrivateCompany",
|
||||
"http://vivoweb.org/ontology/core#Program",
|
||||
"http://vivoweb.org/ontology/core#Publisher",
|
||||
"http://vivoweb.org/ontology/core#ResearchOrganization",
|
||||
"http://vivoweb.org/ontology/core#School",
|
||||
"http://vivoweb.org/ontology/core#SeminarSeries",
|
||||
"http://vivoweb.org/ontology/core#Team",
|
||||
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory",
|
||||
"http://vivoweb.org/ontology/core#StudentOrganization",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000565" /*Technology Transfer Office*/,
|
||||
"http://vivoweb.org/ontology/core#University",
|
||||
"http://purl.org/ontology/bibo/Workshop",
|
||||
"http://vivoweb.org/ontology/core#WorkshopSeries");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -29,8 +29,10 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisio
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||
|
@ -624,7 +626,8 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
|
|||
|
||||
private void setFields(EditConfigurationVTwo editConfiguration, VitroRequest vreq) throws Exception {
|
||||
setTitleField(editConfiguration);
|
||||
setPubTypeField(editConfiguration);
|
||||
//UQAM-Linguistic-Management needs for getting appropriated value in the linguistic context
|
||||
setPubTypeField(editConfiguration, vreq);
|
||||
setPubUriField(editConfiguration);
|
||||
setCollectionLabelField(editConfiguration);
|
||||
setCollectionDisplayField(editConfiguration);
|
||||
|
@ -664,13 +667,14 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
|
|||
setRangeDatatypeUri(stringDatatypeUri));
|
||||
}
|
||||
|
||||
private void setPubTypeField(EditConfigurationVTwo editConfiguration) throws Exception {
|
||||
editConfiguration.addField(new FieldVTwo().
|
||||
setName("pubType").
|
||||
setValidators( list("nonempty") ).
|
||||
setOptions( new ConstantFieldOptions("pubType", getPublicationTypeLiteralOptions() ))
|
||||
);
|
||||
}
|
||||
//UQAM-Linguistic-Management add vreq to get linguistic context
|
||||
private void setPubTypeField(EditConfigurationVTwo editConfiguration, VitroRequest vreq) throws Exception {
|
||||
editConfiguration.addField(new FieldVTwo().
|
||||
setName("pubType").
|
||||
setValidators( list("nonempty") ).
|
||||
setOptions( getPublicationTypeLiteralOptions(vreq) )
|
||||
);
|
||||
}
|
||||
|
||||
private void setPubUriField(EditConfigurationVTwo editConfiguration) {
|
||||
editConfiguration.addField(new FieldVTwo().
|
||||
|
@ -886,39 +890,40 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
|
|||
);
|
||||
}
|
||||
|
||||
private List<List<String>> getPublicationTypeLiteralOptions() {
|
||||
List<List<String>> literalOptions = new ArrayList<List<String>>();
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Abstract", "Abstract"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/AcademicArticle", "Academic Article"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Article", "Article"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/AudioDocument", "Audio Document"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#BlogPosting", "Blog Posting"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Book", "Book"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#CaseStudy", "Case Study"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Catalog", "Catalog"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Chapter", "Chapter"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#ConferencePaper", "Conference Paper"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#ConferencePoster", "Conference Poster"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Database", "Database"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Dataset", "Dataset"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/EditedBook", "Edited Book"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#EditorialArticle", "Editorial Article"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Film", "Film"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Newsletter", "Newsletter"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#NewsRelease", "News Release"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Patent", "Patent"));
|
||||
literalOptions.add(list("http://purl.obolibrary.org/obo/OBI_0000272", "Protocol"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Report", "Report"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#ResearchProposal", "Research Proposal"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Review", "Review"));
|
||||
literalOptions.add(list("http://purl.obolibrary.org/obo/ERO_0000071 ", "Software"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Speech", "Speech"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Thesis", "Thesis"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Video", "Video"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Webpage", "Webpage"));
|
||||
literalOptions.add(list("http://purl.org/ontology/bibo/Website", "Website"));
|
||||
literalOptions.add(list("http://vivoweb.org/ontology/core#WorkingPaper", "Working Paper"));
|
||||
return literalOptions;
|
||||
private FieldOptions getPublicationTypeLiteralOptions(VitroRequest vreq) throws Exception {
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||
I18n.bundle(vreq).text("select_type"),
|
||||
"http://vivoweb.org/ontology/core#Abstract",
|
||||
"http://purl.org/ontology/bibo/AcademicArticle",
|
||||
"http://purl.org/ontology/bibo/Article",
|
||||
"http://purl.org/ontology/bibo/AudioDocument",
|
||||
"http://vivoweb.org/ontology/core#BlogPosting",
|
||||
"http://purl.org/ontology/bibo/Book",
|
||||
"http://vivoweb.org/ontology/core#CaseStudy",
|
||||
"http://vivoweb.org/ontology/core#Catalog",
|
||||
"http://purl.org/ontology/bibo/Chapter",
|
||||
"http://vivoweb.org/ontology/core#ConferencePaper",
|
||||
"http://vivoweb.org/ontology/core#ConferencePoster",
|
||||
"http://vivoweb.org/ontology/core#Database",
|
||||
"http://vivoweb.org/ontology/core#Dataset",
|
||||
"http://purl.org/ontology/bibo/EditedBook",
|
||||
"http://vivoweb.org/ontology/core#EditorialArticle",
|
||||
"http://purl.org/ontology/bibo/Film",
|
||||
"http://vivoweb.org/ontology/core#Newsletter",
|
||||
"http://vivoweb.org/ontology/core#NewsRelease",
|
||||
"http://purl.org/ontology/bibo/Patent",
|
||||
"http://purl.obolibrary.org/obo/OBI_0000272",
|
||||
"http://purl.org/ontology/bibo/Report",
|
||||
"http://vivoweb.org/ontology/core#ResearchProposal",
|
||||
"http://vivoweb.org/ontology/core#Review",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000071 ",
|
||||
"http://vivoweb.org/ontology/core#Speech",
|
||||
"http://purl.org/ontology/bibo/Thesis",
|
||||
"http://vivoweb.org/ontology/core#Video",
|
||||
"http://purl.org/ontology/bibo/Webpage",
|
||||
"http://purl.org/ontology/bibo/Website",
|
||||
"http://vivoweb.org/ontology/core#WorkingPaper");
|
||||
}
|
||||
|
||||
//Form specific data
|
||||
|
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||
|
||||
|
@ -23,12 +24,13 @@ public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageG
|
|||
/** Researcher role involves hard-coded options for the "right side" of the role or activity. */
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return new ConstantFieldOptions(
|
||||
"", "Select one",
|
||||
"http://vivoweb.org/ontology/core#Grant", "Grant",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000015", "Human Study",
|
||||
"http://vivoweb.org/ontology/core#Project", "Project",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000014", "Research Project");
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||
I18n.bundle(vreq).text("select_type"),
|
||||
"http://vivoweb.org/ontology/core#Grant",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000015" /* Human Study" */,
|
||||
"http://vivoweb.org/ontology/core#Project",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000014" /* Research Project */);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class AddReviewerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||
|
||||
|
@ -32,80 +33,80 @@ public class AddReviewerRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
|
|||
* Each subclass generator will return its own type of option here:
|
||||
* whether literal hardcoded, based on class group, or subclasses of a specific class
|
||||
*/
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return new ConstantFieldOptions(
|
||||
"", "Select type",
|
||||
"http://purl.org/ontology/bibo/AcademicArticle", "Academic Article",
|
||||
"http://purl.org/ontology/bibo/Article", "Article",
|
||||
"http://purl.org/ontology/bibo/AudioDocument", "Audio Document",
|
||||
"http://purl.org/ontology/bibo/AudioVisualDocument", "Audio-Visual Document",
|
||||
"http://purl.org/ontology/bibo/Bill", "Bill",
|
||||
"http://vivoweb.org/ontology/core#Blog", "Blog",
|
||||
"http://vivoweb.org/ontology/core#BlogPosting", "Blog Posting",
|
||||
"http://purl.org/ontology/bibo/Book", "Book",
|
||||
"http://purl.org/ontology/bibo/BookSection", "Book Section",
|
||||
"http://purl.org/ontology/bibo/Brief", "Brief",
|
||||
"http://vivoweb.org/ontology/core#CaseStudy", "Case Study",
|
||||
"http://vivoweb.org/ontology/core#Catalog", "Catalog",
|
||||
"http://purl.org/ontology/bibo/Chapter", "Chapter",
|
||||
"http://purl.org/spar/fabio/ClinicalGuideline", "Clinical Guideline",
|
||||
"http://purl.org/ontology/bibo/Code", "Code",
|
||||
"http://purl.org/ontology/bibo/CollectedDocument", "Collected Document",
|
||||
"http://purl.org/spar/fabio/Comment", "Comment",
|
||||
"http://vivoweb.org/ontology/core#ConferencePaper", "Conference Paper",
|
||||
"http://vivoweb.org/ontology/core#ConferencePoster", "Conference Poster",
|
||||
"http://purl.org/ontology/bibo/CourtReporter", "Court Reporter",
|
||||
"http://vivoweb.org/ontology/core#Database", "Database",
|
||||
"http://purl.org/ontology/bibo/LegalDecision", "Decision",
|
||||
"http://purl.org/ontology/bibo/DocumentPart", "Document Part",
|
||||
"http://purl.org/ontology/bibo/EditedBook", "Edited Book",
|
||||
"http://vivoweb.org/ontology/core#EditorialArticle", "Editorial Article",
|
||||
"http://purl.org/spar/fabio/Erratum", "Erratum",
|
||||
"http://purl.org/ontology/bibo/Excerpt", "Excerpt",
|
||||
"http://purl.org/ontology/bibo/Film", "Film",
|
||||
"http://purl.org/ontology/bibo/Image", "Image",
|
||||
"http://purl.org/ontology/bibo/Issue", "Issue",
|
||||
"http://purl.org/ontology/bibo/Journal", "Journal",
|
||||
"http://purl.obolibrary.org/obo/IAO_0000013", "Journal Article",
|
||||
"http://purl.org/ontology/bibo/LegalCaseDocument", "Legal Case Document",
|
||||
"http://purl.org/ontology/bibo/LegalDocument", "Legal Document",
|
||||
"http://purl.org/ontology/bibo/Legislation", "Legislation",
|
||||
"http://purl.org/ontology/bibo/Letter", "Letter",
|
||||
"http://purl.org/ontology/bibo/Magazine", "Magazine",
|
||||
"http://purl.org/ontology/bibo/Manual", "Manual",
|
||||
"http://purl.org/ontology/bibo/Manuscript", "Manuscript",
|
||||
"http://purl.org/ontology/bibo/Map", "Map",
|
||||
"http://vivoweb.org/ontology/core#Newsletter", "Newsletter",
|
||||
"http://purl.org/ontology/bibo/Newspaper", "Newspaper",
|
||||
"http://vivoweb.org/ontology/core#NewsRelease", "News Release",
|
||||
"http://purl.org/ontology/bibo/Note", "Note",
|
||||
"http://purl.org/ontology/bibo/Patent", "Patent",
|
||||
"http://purl.org/ontology/bibo/Periodical", "Periodical",
|
||||
"http://purl.org/ontology/bibo/PersonalCommunicationDocument", "Personal Communication Document",
|
||||
"http://purl.org/ontology/bibo/Proceedings", "Proceedings",
|
||||
"http://purl.obolibrary.org/obo/OBI_0000272", "protocol",
|
||||
"http://purl.org/ontology/bibo/Quote", "Quote",
|
||||
"http://purl.org/ontology/bibo/ReferenceSource", "Reference Source",
|
||||
"http://purl.org/ontology/bibo/Report", "Report",
|
||||
"http://vivoweb.org/ontology/core#ResearchProposal", "Research Proposal",
|
||||
"http://vivoweb.org/ontology/core#Review", "Review",
|
||||
"http://vivoweb.org/ontology/core#Score", "Score",
|
||||
"http://vivoweb.org/ontology/core#Screenplay", "Screenplay",
|
||||
"http://purl.org/ontology/bibo/Series", "Series",
|
||||
"http://purl.org/ontology/bibo/Slide", "Slide",
|
||||
"http://purl.org/ontology/bibo/Slideshow", "Slideshow",
|
||||
"http://vivoweb.org/ontology/core#Speech", "Speech",
|
||||
"http://purl.org/ontology/bibo/Standard", "Standard",
|
||||
"http://purl.org/ontology/bibo/Statute", "Statute",
|
||||
"http://purl.org/ontology/bibo/Thesis", "Thesis",
|
||||
"http://vivoweb.org/ontology/core#Translation", "Translation",
|
||||
"http://vivoweb.org/ontology/core#Video", "Video",
|
||||
"http://purl.org/ontology/bibo/Webpage", "Webpage",
|
||||
"http://purl.org/ontology/bibo/Website", "Website",
|
||||
"http://vivoweb.org/ontology/core#WorkingPaper", "Working Paper"
|
||||
);
|
||||
}
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||
I18n.bundle(vreq).text("select_type"),
|
||||
"http://purl.org/ontology/bibo/AcademicArticle",
|
||||
"http://purl.org/ontology/bibo/Article",
|
||||
"http://purl.org/ontology/bibo/AudioDocument",
|
||||
"http://purl.org/ontology/bibo/AudioVisualDocument",
|
||||
"http://purl.org/ontology/bibo/Bill",
|
||||
"http://vivoweb.org/ontology/core#Blog",
|
||||
"http://vivoweb.org/ontology/core#BlogPosting",
|
||||
"http://purl.org/ontology/bibo/Book",
|
||||
"http://purl.org/ontology/bibo/BookSection",
|
||||
"http://purl.org/ontology/bibo/Brief",
|
||||
"http://vivoweb.org/ontology/core#CaseStudy",
|
||||
"http://vivoweb.org/ontology/core#Catalog",
|
||||
"http://purl.org/ontology/bibo/Chapter",
|
||||
"http://purl.org/spar/fabio/ClinicalGuideline",
|
||||
"http://purl.org/ontology/bibo/Code",
|
||||
"http://purl.org/ontology/bibo/CollectedDocument",
|
||||
"http://purl.org/spar/fabio/Comment",
|
||||
"http://vivoweb.org/ontology/core#ConferencePaper",
|
||||
"http://vivoweb.org/ontology/core#ConferencePoster",
|
||||
"http://purl.org/ontology/bibo/CourtReporter",
|
||||
"http://vivoweb.org/ontology/core#Database",
|
||||
"http://purl.org/ontology/bibo/LegalDecision",
|
||||
"http://purl.org/ontology/bibo/DocumentPart",
|
||||
"http://purl.org/ontology/bibo/EditedBook",
|
||||
"http://vivoweb.org/ontology/core#EditorialArticle",
|
||||
"http://purl.org/spar/fabio/Erratum",
|
||||
"http://purl.org/ontology/bibo/Excerpt",
|
||||
"http://purl.org/ontology/bibo/Film",
|
||||
"http://purl.org/ontology/bibo/Image",
|
||||
"http://purl.org/ontology/bibo/Issue",
|
||||
"http://purl.org/ontology/bibo/Journal",
|
||||
"http://purl.obolibrary.org/obo/IAO_0000013" /* "Journal Article" */,
|
||||
"http://purl.org/ontology/bibo/LegalCaseDocument",
|
||||
"http://purl.org/ontology/bibo/LegalDocument",
|
||||
"http://purl.org/ontology/bibo/Legislation",
|
||||
"http://purl.org/ontology/bibo/Letter",
|
||||
"http://purl.org/ontology/bibo/Magazine",
|
||||
"http://purl.org/ontology/bibo/Manual",
|
||||
"http://purl.org/ontology/bibo/Manuscript",
|
||||
"http://purl.org/ontology/bibo/Map",
|
||||
"http://vivoweb.org/ontology/core#Newsletter",
|
||||
"http://purl.org/ontology/bibo/Newspaper",
|
||||
"http://vivoweb.org/ontology/core#NewsRelease",
|
||||
"http://purl.org/ontology/bibo/Note",
|
||||
"http://purl.org/ontology/bibo/Patent",
|
||||
"http://purl.org/ontology/bibo/Periodical",
|
||||
"http://purl.org/ontology/bibo/PersonalCommunicationDocument",
|
||||
"http://purl.org/ontology/bibo/Proceedings",
|
||||
"http://purl.obolibrary.org/obo/OBI_0000272" /* Protocol" */,
|
||||
"http://purl.org/ontology/bibo/Quote",
|
||||
"http://purl.org/ontology/bibo/ReferenceSource",
|
||||
"http://purl.org/ontology/bibo/Report",
|
||||
"http://vivoweb.org/ontology/core#ResearchProposal",
|
||||
"http://vivoweb.org/ontology/core#Review",
|
||||
"http://vivoweb.org/ontology/core#Score",
|
||||
"http://vivoweb.org/ontology/core#Screenplay",
|
||||
"http://purl.org/ontology/bibo/Series",
|
||||
"http://purl.org/ontology/bibo/Slide",
|
||||
"http://purl.org/ontology/bibo/Slideshow",
|
||||
"http://vivoweb.org/ontology/core#Speech",
|
||||
"http://purl.org/ontology/bibo/Standard",
|
||||
"http://purl.org/ontology/bibo/Statute",
|
||||
"http://purl.org/ontology/bibo/Thesis",
|
||||
"http://vivoweb.org/ontology/core#Translation",
|
||||
"http://vivoweb.org/ontology/core#Video",
|
||||
"http://purl.org/ontology/bibo/Webpage",
|
||||
"http://purl.org/ontology/bibo/Website",
|
||||
"http://vivoweb.org/ontology/core#WorkingPaper");
|
||||
}
|
||||
|
||||
//isShowRoleLabelField remains true for this so doesn't need to be overwritten
|
||||
public boolean isShowRoleLabelField() {
|
||||
|
|
|
@ -415,7 +415,7 @@ public abstract class AddRoleToPersonTwoStageGenerator extends BaseEditConfigura
|
|||
|
||||
//make list of type URIs from options, this can be called with null since
|
||||
//ConstantFieldOptions doesn't use any of the arguments.
|
||||
Map<String,String> options = fieldOptions.getOptions(null, null, null) ;
|
||||
Map<String,String> options = fieldOptions.getOptions(null, null, null, null) ;
|
||||
|
||||
if (options != null && options.size() > 0) {
|
||||
List<String> typeUris = new ArrayList<String>();
|
||||
|
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class AddServiceProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||
|
||||
|
@ -18,62 +19,62 @@ public class AddServiceProviderRoleToPersonGenerator extends AddRoleToPersonTwoS
|
|||
return "http://purl.obolibrary.org/obo/ERO_0000012";
|
||||
}
|
||||
|
||||
/** Service Provider role involves hard-coded options for the
|
||||
* "right side" of the role or activity. */
|
||||
@Override
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return new ConstantFieldOptions(
|
||||
"","Select type",
|
||||
"http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
|
||||
"http://vivoweb.org/ontology/core#Association","Association",
|
||||
"http://vivoweb.org/ontology/core#Center","Center",
|
||||
"http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
|
||||
"http://vivoweb.org/ontology/core#College","College",
|
||||
"http://vivoweb.org/ontology/core#Committee","Committee",
|
||||
"http://vivoweb.org/ontology/core#Company","Company",
|
||||
"http://vivoweb.org/ontology/core#Competition", "Competition",
|
||||
"http://purl.org/ontology/bibo/Conference", "Conference",
|
||||
"http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
|
||||
"http://vivoweb.org/ontology/core#Consortium","Consortium",
|
||||
"http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
|
||||
"http://vivoweb.org/ontology/core#Course", "Course",
|
||||
"http://vivoweb.org/ontology/core#Department","Department",
|
||||
"http://vivoweb.org/ontology/core#Division","Division",
|
||||
"http://purl.org/NET/c4dm/event.owl#Event","Event",
|
||||
"http://vivoweb.org/ontology/core#EventSeries", "Event Series",
|
||||
"http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
|
||||
"http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
|
||||
"http://vivoweb.org/ontology/core#Foundation","Foundation",
|
||||
"http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
|
||||
"http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
|
||||
"http://xmlns.com/foaf/0.1/Group","Group",
|
||||
"http://purl.org/ontology/bibo/Hearing", "Hearing",
|
||||
"http://vivoweb.org/ontology/core#Hospital","Hospital",
|
||||
"http://vivoweb.org/ontology/core#Institute","Institute",
|
||||
"http://purl.org/ontology/bibo/Interview", "Interview",
|
||||
"http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
|
||||
"http://vivoweb.org/ontology/core#Laboratory","Laboratory",
|
||||
"http://vivoweb.org/ontology/core#Library","Library",
|
||||
"http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
|
||||
"http://vivoweb.org/ontology/core#Meeting", "Meeting",
|
||||
"http://vivoweb.org/ontology/core#Museum","Museum",
|
||||
"http://xmlns.com/foaf/0.1/Organization","Organization",
|
||||
"http://purl.org/ontology/bibo/Performance", "Performance",
|
||||
"http://vivoweb.org/ontology/core#Presentation", "Presentation",
|
||||
"http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
|
||||
"http://vivoweb.org/ontology/core#Program","Program",
|
||||
"http://vivoweb.org/ontology/core#Publisher","Publisher",
|
||||
"http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
|
||||
"http://vivoweb.org/ontology/core#School","School",
|
||||
"http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
|
||||
"http://vivoweb.org/ontology/core#Team","Team",
|
||||
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
|
||||
"http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
|
||||
"http://vivoweb.org/ontology/core#University","University",
|
||||
"http://purl.org/ontology/bibo/Workshop", "Workshop",
|
||||
"http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series");
|
||||
}
|
||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||
I18n.bundle(vreq).text("select_type"),
|
||||
"","Select type",
|
||||
"http://vivoweb.org/ontology/core#AcademicDepartment",
|
||||
"http://vivoweb.org/ontology/core#Association",
|
||||
"http://vivoweb.org/ontology/core#Center",
|
||||
"http://vivoweb.org/ontology/core#ClinicalOrganization",
|
||||
"http://vivoweb.org/ontology/core#College",
|
||||
"http://vivoweb.org/ontology/core#Committee",
|
||||
"http://vivoweb.org/ontology/core#Company",
|
||||
"http://vivoweb.org/ontology/core#Competition",
|
||||
"http://purl.org/ontology/bibo/Conference",
|
||||
"http://vivoweb.org/ontology/core#ConferenceSeries",
|
||||
"http://vivoweb.org/ontology/core#Consortium",
|
||||
"http://vivoweb.org/ontology/core#CoreLaboratory",
|
||||
"http://vivoweb.org/ontology/core#Course",
|
||||
"http://vivoweb.org/ontology/core#Department",
|
||||
"http://vivoweb.org/ontology/core#Division",
|
||||
"http://purl.org/NET/c4dm/event.owl#Event",
|
||||
"http://vivoweb.org/ontology/core#EventSeries",
|
||||
"http://vivoweb.org/ontology/core#Exhibit",
|
||||
"http://vivoweb.org/ontology/core#ExtensionUnit",
|
||||
"http://vivoweb.org/ontology/core#Foundation",
|
||||
"http://vivoweb.org/ontology/core#FundingOrganization",
|
||||
"http://vivoweb.org/ontology/core#GovernmentAgency",
|
||||
"http://xmlns.com/foaf/0.1/Group",
|
||||
"http://purl.org/ontology/bibo/Hearing",
|
||||
"http://vivoweb.org/ontology/core#Hospital",
|
||||
"http://vivoweb.org/ontology/core#Institute",
|
||||
"http://purl.org/ontology/bibo/Interview",
|
||||
"http://vivoweb.org/ontology/core#InvitedTalk",
|
||||
"http://vivoweb.org/ontology/core#Laboratory",
|
||||
"http://vivoweb.org/ontology/core#Library",
|
||||
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */,
|
||||
"http://vivoweb.org/ontology/core#Meeting",
|
||||
"http://vivoweb.org/ontology/core#Museum",
|
||||
"http://xmlns.com/foaf/0.1/Organization",
|
||||
"http://purl.org/ontology/bibo/Performance",
|
||||
"http://vivoweb.org/ontology/core#Presentation",
|
||||
"http://vivoweb.org/ontology/core#PrivateCompany",
|
||||
"http://vivoweb.org/ontology/core#Program",
|
||||
"http://vivoweb.org/ontology/core#Publisher",
|
||||
"http://vivoweb.org/ontology/core#ResearchOrganization",
|
||||
"http://vivoweb.org/ontology/core#School",
|
||||
"http://vivoweb.org/ontology/core#SeminarSeries",
|
||||
"http://vivoweb.org/ontology/core#Team",
|
||||
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory",
|
||||
"http://vivoweb.org/ontology/core#StudentOrganization",
|
||||
"http://purl.obolibrary.org/obo/ERO_0000565" /* Technology Transfer Office" */,
|
||||
"http://vivoweb.org/ontology/core#University",
|
||||
"http://purl.org/ontology/bibo/Workshop",
|
||||
"http://vivoweb.org/ontology/core#WorkshopSeries");
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean isShowRoleLabelField(){return true;}
|
||||
|
|
|
@ -0,0 +1,127 @@
|
|||
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.jena.iri.IRI;
|
||||
import org.apache.jena.iri.IRIFactory;
|
||||
import org.apache.jena.query.QuerySolution;
|
||||
import org.apache.jena.vocabulary.RDFS;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
|
||||
|
||||
public class GeneratorUtil {
|
||||
|
||||
private static final Log log = LogFactory.getLog(GeneratorUtil.class);
|
||||
|
||||
/**
|
||||
* Build a field options list of resource URIs paired with their labels as
|
||||
* retrieved from the supplied RDFService.
|
||||
*
|
||||
* @param rdfService from which to retrieve labels: this should typically
|
||||
* be a LanguageFilteringRDFService.
|
||||
*
|
||||
* @param webappDaoFactory may be null. If non-null, labels for classes will be
|
||||
* returned from here first before consulting
|
||||
* rdfService.
|
||||
*
|
||||
* @param headerValue optional value for first value/label pair in the
|
||||
* options list before appending the URIs with their
|
||||
* labels. May be null. Example: empty string
|
||||
*
|
||||
* @param headerLabel optional label for first value/label pair in the
|
||||
* options list before appending the URIs with their
|
||||
* labels. May be null. Example: "Select type"
|
||||
*
|
||||
* @param resourceURIs variable list of resource URI strings
|
||||
*
|
||||
* @return empty ConstantFieldOptions list if resourceURIs is null or empty or
|
||||
* if rdfService is null
|
||||
* @throws RDFServiceException from the supplied rdfService
|
||||
* @throws Exception from ConstantFieldOptions constructor
|
||||
*/
|
||||
public static ConstantFieldOptions buildResourceAndLabelFieldOptions(
|
||||
RDFService rdfService, WebappDaoFactory webappDaoFactory, String headerValue,
|
||||
String headerLabel, String ... resourceURIs) throws Exception {
|
||||
if(resourceURIs == null || resourceURIs.length == 0 || rdfService == null) {
|
||||
return new ConstantFieldOptions();
|
||||
}
|
||||
List<String> options = new ArrayList<String>();
|
||||
if(headerValue != null && headerLabel != null) {
|
||||
options.add(headerValue);
|
||||
options.add(headerLabel);
|
||||
}
|
||||
IRIFactory iriFactory = IRIFactory.iriImplementation();
|
||||
for(String resourceURI : resourceURIs) {
|
||||
IRI iri = iriFactory.create(resourceURI);
|
||||
if(iri.hasViolation(false)) {
|
||||
log.warn("Not adding invalid URI " + resourceURI
|
||||
+ " to field options list");
|
||||
} else {
|
||||
String label = getLabel(iri, rdfService, webappDaoFactory);
|
||||
if(!StringUtils.isEmpty(label)) {
|
||||
options.add(iri.toString());
|
||||
options.add(label);
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ConstantFieldOptions(options.toArray(
|
||||
new String[options.size()]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve label for iri from webappDaoFactory if available and iri is
|
||||
* for a VClass, otherwise retrieve lowest-sorting rdfs:label for iri from
|
||||
* rdfService
|
||||
* @param iri may not be null
|
||||
* @param rdfService may not be null
|
||||
*/
|
||||
private static String getLabel(IRI iri, RDFService rdfService,
|
||||
WebappDaoFactory webappDaoFactory) throws RDFServiceException {
|
||||
// Try the WebappDaoFactory for class labels that exist only in
|
||||
// "everytime" and do not show up in the RDFService.
|
||||
if(webappDaoFactory != null) {
|
||||
VClass vclass = webappDaoFactory.getVClassDao().getVClassByURI(
|
||||
iri.toString());
|
||||
if(vclass != null) {
|
||||
return vclass.getLabel();
|
||||
}
|
||||
}
|
||||
StringBuilder select = new StringBuilder("SELECT ?label WHERE { \n");
|
||||
select.append(" <" + iri + "> <" + RDFS.label.getURI() + "> ?label \n");
|
||||
select.append("} ORDER BY ?label");
|
||||
LabelConsumer labelConsumer = new LabelConsumer();
|
||||
rdfService.sparqlSelectQuery(select.toString(), labelConsumer);
|
||||
return labelConsumer.getLabel();
|
||||
}
|
||||
|
||||
private static class LabelConsumer extends ResultSetConsumer {
|
||||
|
||||
private String label;
|
||||
|
||||
@Override
|
||||
protected void processQuerySolution(QuerySolution qsoln) {
|
||||
if(label != null) {
|
||||
return;
|
||||
// keep only the first value returned in the result set
|
||||
}
|
||||
if(qsoln.contains("label") && qsoln.get("label").isLiteral()) {
|
||||
label = qsoln.getLiteral("label").getLexicalForm();
|
||||
}
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -19,6 +19,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class GrantHasContributorGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
|
||||
|
||||
|
@ -92,7 +93,7 @@ public class GrantHasContributorGenerator extends VivoBaseGenerator implements
|
|||
|
||||
//Add validator
|
||||
conf.addValidator(new AntiXssValidation());
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq)));
|
||||
|
||||
//Adding additional data, specifically edit mode
|
||||
addFormSpecificData(conf, vreq);
|
||||
|
|
|
@ -15,6 +15,7 @@ import java.util.HashSet;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
|
@ -41,6 +42,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.FoafNameToRdfsLabelPreprocessor;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.ManageLabelsForPersonPreprocessor;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.filter.LanguageFilteringUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.DataPropertyStatementTemplateModel;
|
||||
|
||||
/**
|
||||
|
@ -246,12 +248,12 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
|
|||
|
||||
private void addFormSpecificData(EditConfigurationVTwo config,
|
||||
VitroRequest vreq) {
|
||||
//Get all language codes/labels in the system, and this list is sorted by language name
|
||||
List<HashMap<String, String>> locales = this.getLocales(vreq);
|
||||
ArrayList<Literal> existingLabels = this.getExistingLabels(config.getSubjectUri(), vreq);
|
||||
//Get language codes/labels for existing labels, and this list is sorted by language name
|
||||
List<HashMap<String, String>> locales = this.getLocales(vreq, existingLabels);
|
||||
//Get code to label hashmap - we use this to get the language name for the language code returned in the rdf literal
|
||||
HashMap<String, String> localeCodeToNameMap = this.getFullCodeToLanguageNameMap(locales);
|
||||
//the labels already added by the user
|
||||
ArrayList<Literal> existingLabels = this.getExistingLabels(config.getSubjectUri(), vreq);
|
||||
int numberExistingLabels = existingLabels.size();
|
||||
//existing labels keyed by language name and each of the list of labels is sorted by language name
|
||||
HashMap<String, List<LabelInformation>> existingLabelsByLanguageName = this.getLabelsSortedByLanguageName(existingLabels, localeCodeToNameMap, config, vreq);
|
||||
|
@ -267,6 +269,19 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
|
|||
config.addFormSpecificData("selectLocale",availableLocalesForAdd);
|
||||
config.addFormSpecificData("displayRemoveLink", (numberExistingLabels > 1));
|
||||
|
||||
// get current selected locale
|
||||
String rangeLang = vreq.getLocale().getLanguage();
|
||||
if (!vreq.getLocale().getCountry().isEmpty()) {
|
||||
rangeLang += "-" + vreq.getLocale().getCountry();
|
||||
}
|
||||
|
||||
// check if locale already has an entry (label)
|
||||
boolean localeEntryExisting = true;
|
||||
for (HashMap<String, String> tmp : availableLocalesForAdd) {
|
||||
if (tmp.get("code").equals(rangeLang)) localeEntryExisting = false;
|
||||
}
|
||||
config.addFormSpecificData("localeEntryExisting", localeEntryExisting);
|
||||
config.addFormSpecificData("currentSelectedLocale", rangeLang);
|
||||
|
||||
//How do we edit? Will need to see
|
||||
config.addFormSpecificData("deleteWebpageUrl", "/edit/primitiveDelete");
|
||||
|
@ -426,21 +441,20 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
|
|||
|
||||
ArrayList<Literal> labels = new ArrayList<Literal>();
|
||||
try {
|
||||
//We want to get the labels for all the languages, not just the display language
|
||||
ResultSet results = QueryUtils.getLanguageNeutralQueryResults(queryStr, vreq);
|
||||
// No longer retrieving language-neutral results here, so that
|
||||
// language editing is consistent with other editing forms.
|
||||
// Editable values depend on the interface's locale selector.
|
||||
ResultSet results = QueryUtils.getQueryResults(queryStr, vreq);
|
||||
while (results.hasNext()) {
|
||||
QuerySolution soln = results.nextSolution();
|
||||
Literal nodeLiteral = soln.get("label").asLiteral();
|
||||
labels.add(nodeLiteral);
|
||||
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e, e);
|
||||
}
|
||||
return labels;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//Putting this into a method allows overriding it in subclasses
|
||||
|
@ -454,30 +468,32 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
|
|||
return template;
|
||||
}
|
||||
|
||||
//get locales present in list of literals
|
||||
public List<HashMap<String, String>> getLocales(VitroRequest vreq,
|
||||
List<Literal> existingLiterals) {
|
||||
Set<Locale> locales = new HashSet<Locale>();
|
||||
for(Literal literal : existingLiterals) {
|
||||
String language = literal.getLanguage();
|
||||
if(!StringUtils.isEmpty(language)) {
|
||||
locales.add(LanguageFilteringUtils.languageToLocale(language));
|
||||
}
|
||||
}
|
||||
if (locales.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
|
||||
Locale currentLocale = SelectedLocale.getCurrentLocale(vreq);
|
||||
for (Locale locale : locales) {
|
||||
try {
|
||||
list.add(buildLocaleMap(locale, currentLocale));
|
||||
} catch (FileNotFoundException e) {
|
||||
log.warn("Can't show locale '" + locale + "': " + e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//get locales
|
||||
public List<HashMap<String, String>> getLocales(VitroRequest vreq) {
|
||||
List<Locale> selectables = SelectedLocale.getSelectableLocales(vreq);
|
||||
if (selectables.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
|
||||
Locale currentLocale = SelectedLocale.getCurrentLocale(vreq);
|
||||
for (Locale locale : selectables) {
|
||||
try {
|
||||
list.add(buildLocaleMap(locale, currentLocale));
|
||||
} catch (FileNotFoundException e) {
|
||||
log.warn("Can't show the Locale selector for '" + locale
|
||||
+ "': " + e);
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public HashMap<String, String> getFullCodeToLanguageNameMap(List<HashMap<String, String>> localesList) {
|
||||
HashMap<String, String> codeToLanguageMap = new HashMap<String, String>();
|
||||
for(Map<String, String> locale: localesList) {
|
||||
|
|
|
@ -3,20 +3,20 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.jena.query.QueryExecution;
|
||||
import org.apache.jena.query.QueryExecutionFactory;
|
||||
import org.apache.jena.rdf.model.Model;
|
||||
import org.apache.jena.rdf.model.ModelFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.apache.jena.query.ParameterizedSparqlString;
|
||||
import org.apache.jena.query.QueryExecution;
|
||||
import org.apache.jena.query.QueryExecutionFactory;
|
||||
import org.apache.jena.query.QuerySolution;
|
||||
import org.apache.jena.query.ResultSet;
|
||||
import org.apache.jena.rdf.model.Model;
|
||||
import org.apache.jena.rdf.model.ModelFactory;
|
||||
import org.apache.jena.rdf.model.RDFNode;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
||||
|
@ -26,6 +26,8 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMa
|
|||
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||
|
||||
/**
|
||||
* This is an odd controller that is just drawing a page with links on it.
|
||||
|
@ -153,16 +155,36 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
|
|||
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
|
||||
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
|
||||
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
|
||||
+ "SELECT DISTINCT ?vcard ?link ?url ?rank ?typeLabel (group_concat(distinct ?linkLabel;separator=\"/\") as ?label) WHERE { \n"
|
||||
+ "SELECT DISTINCT ?vcard ?link ?url (MIN(?rank_) AS ?rank) \n"
|
||||
+ "(MIN(?typeLabel_) AS ?typeLabel) \n"
|
||||
+ "(group_concat(distinct ?linkLabel;separator=\"/\") as ?label) WHERE { \n"
|
||||
+ " ?subject <http://purl.obolibrary.org/obo/ARG_2000028> ?vcard . \n"
|
||||
+ " ?vcard vcard:hasURL ?link . \n"
|
||||
+ " ?link a vcard:URL \n"
|
||||
+ " OPTIONAL { ?link vcard:url ?url } \n"
|
||||
+ " OPTIONAL { ?link rdfs:label ?linkLabel } \n"
|
||||
+ " OPTIONAL { ?link core:rank ?rank } \n"
|
||||
+ " OPTIONAL { ?link core:rank ?rank_ } \n"
|
||||
+ " OPTIONAL { ?link vitro:mostSpecificType ?type } \n"
|
||||
+ " OPTIONAL { ?type rdfs:label ?typeLabel } \n"
|
||||
+ "} GROUP BY ?rank ?vcard ?link ?url ?typeLabel \n"
|
||||
// UQAM-Linguistic-Management Add linguistic control on label
|
||||
// Try full locale
|
||||
+ " OPTIONAL { ?type rdfs:label ?typeLabelPrimary . \n"
|
||||
+ " FILTER (LANG(?typeLabelPrimary) = ?locale) \n"
|
||||
+ " } \n"
|
||||
// Try language only
|
||||
+ " OPTIONAL { ?type rdfs:label ?typeLabelSecondary . \n"
|
||||
+ " FILTER (LANG(?typeLabelSecondary) = ?language) \n"
|
||||
+ " } \n"
|
||||
// Try the same language in another other locale
|
||||
+ " OPTIONAL { ?type rdfs:label ?typeLabelTertiary . \n"
|
||||
+ " FILTER (STRBEFORE(STR(LANG(?typeLabelTertiary)), \"-\") = ?language) \n"
|
||||
+ " } \n"
|
||||
// Try any other available label
|
||||
+ " OPTIONAL { ?type rdfs:label ?typeLabelFallback . \n"
|
||||
+ " FILTER (LANG(?typeLabelFallback) != ?locale \n"
|
||||
+ " && LANG(?typeLabelFallback) != ?language) \n"
|
||||
+ " } \n"
|
||||
+ " BIND(COALESCE(?typeLabelPrimary, ?typeLabelSecondary, ?typeLabelTertiary, ?typeLabelFallback) AS ?typeLabel_) \n"
|
||||
+ "} GROUP BY ?vcard ?link ?url \n"
|
||||
+ " ORDER BY ?rank";
|
||||
|
||||
|
||||
|
@ -175,8 +197,10 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
|
|||
|
||||
Model constructedModel = ModelFactory.createDefaultModel();
|
||||
rdfService.sparqlConstructQuery(constructStr, constructedModel);
|
||||
|
||||
String queryStr = QueryUtils.subUriForQueryVar(this.getQuery(), "subject", subjectUri);
|
||||
/*
|
||||
* UQAM-Linguistic-Management Adjust the getQuery signature for managing the linguistic context
|
||||
*/
|
||||
String queryStr = QueryUtils.subUriForQueryVar(this.getQuery(vreq), "subject", subjectUri);
|
||||
log.debug("Query string is: " + queryStr);
|
||||
|
||||
QueryExecution qe = QueryExecutionFactory.create(queryStr, constructedModel);
|
||||
|
@ -205,8 +229,16 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
|
|||
return AddEditWebpageFormGenerator.class.getName();
|
||||
}
|
||||
|
||||
protected String getQuery() {
|
||||
return WEBPAGE_QUERY;
|
||||
protected String getQuery(VitroRequest vreq) {
|
||||
/*
|
||||
* UQAM-Linguistic-Management Adjust the query to the linguistic context
|
||||
*/
|
||||
Locale locale = SelectedLocale.getCurrentLocale(vreq);
|
||||
ParameterizedSparqlString queryPstr = new ParameterizedSparqlString(
|
||||
WEBPAGE_QUERY);
|
||||
queryPstr.setLiteral("locale", locale.toString().replace("_", "-"));
|
||||
queryPstr.setLiteral("language", locale.getLanguage());
|
||||
return queryPstr.toString();
|
||||
}
|
||||
|
||||
protected String getTemplate() {
|
||||
|
|
|
@ -22,6 +22,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsVi
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class OrganizationForTrainingGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
|
||||
|
||||
|
@ -166,7 +167,7 @@ public class OrganizationForTrainingGenerator extends VivoBaseGenerator impleme
|
|||
//Add validator
|
||||
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
|
||||
conf.addValidator(new AntiXssValidation());
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq)));
|
||||
|
||||
//Adding additional data, specifically edit mode
|
||||
addFormSpecificData(conf, vreq);
|
||||
|
|
|
@ -17,6 +17,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisio
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesWithParent;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator
|
||||
implements EditConfigurationGenerator {
|
||||
|
@ -256,7 +257,7 @@ public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator
|
|||
conf.addField(endField.setEditElement(new DateTimeWithPrecisionVTwo(
|
||||
endField, URI_PRECISION_YEAR, URI_PRECISION_NONE)));
|
||||
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq)));
|
||||
conf.addValidator(new AntiXssValidation());
|
||||
conf.addValidator(new DateTimeIntervalValidationVTwo("startField",
|
||||
"endField"));
|
||||
|
|
|
@ -20,6 +20,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClasses
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator implements
|
||||
EditConfigurationGenerator {
|
||||
|
@ -184,7 +185,7 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
|
|||
|
||||
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
|
||||
conf.addValidator(new AntiXssValidation());
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingAdvisor"));
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingAdvisor", I18n.bundle(vreq)));
|
||||
addFormSpecificData(conf, vreq);
|
||||
|
||||
prepare(vreq, conf);
|
||||
|
|
|
@ -20,6 +20,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClasses
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator implements
|
||||
EditConfigurationGenerator {
|
||||
|
@ -184,7 +185,7 @@ public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator imp
|
|||
|
||||
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
|
||||
conf.addValidator(new AntiXssValidation());
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingAdvisee"));
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingAdvisee", I18n.bundle(vreq)));
|
||||
addFormSpecificData(conf, vreq);
|
||||
|
||||
prepare(vreq, conf);
|
||||
|
|
|
@ -17,6 +17,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
|||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||
|
||||
public class ProjectHasParticipantGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
|
||||
|
||||
|
@ -92,7 +93,7 @@ public class ProjectHasParticipantGenerator extends VivoBaseGenerator implement
|
|||
|
||||
//Add validator
|
||||
conf.addValidator(new AntiXssValidation());
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
|
||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq)));
|
||||
|
||||
//Adding additional data, specifically edit mode
|
||||
addFormSpecificData(conf, vreq);
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
package edu.cornell.mannlib.vitro.webapp.utilities;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.jena.ontology.OntModel;
|
||||
import org.apache.jena.rdf.model.ModelFactory;
|
||||
import org.apache.jena.rdf.model.RDFNode;
|
||||
import org.apache.jena.rdf.model.ResourceFactory;
|
||||
import org.apache.jena.rdf.model.Statement;
|
||||
import org.apache.jena.rdf.model.StmtIterator;
|
||||
import org.apache.jena.vocabulary.RDFS;
|
||||
|
||||
|
||||
public class Describe {
|
||||
private static final Log log = LogFactory.getLog(Describe.class.getName());
|
||||
|
||||
public static void main(String[] args) {
|
||||
OntModel model = ModelFactory.createOntologyModel();
|
||||
model.read("C:\\VIVO-Trad-ecosysteme\\vivo\\home\\rdf\\applicationMetadata\\firsttime\\classgroups_fr_CA.rdf") ;
|
||||
model.read("C:\\VIVO-Trad-ecosysteme\\vivo\\home\\rdf\\applicationMetadata\\firsttime\\classgroups.rdf") ;
|
||||
Describe.showVitroClassGroupequipmentLabels(model,"test");
|
||||
System.out.println("Done!");
|
||||
}
|
||||
|
||||
private static void showVitroClassGroupequipmentLabels(OntModel model, String message) {
|
||||
String uri = "http://vivoweb.org/ontology#vitroClassGroupequipment";
|
||||
List<Statement> stmts = model.listStatements(ResourceFactory.createResource(uri), RDFS.label, (RDFNode)null).toList();
|
||||
for (Iterator iterator = stmts.iterator(); iterator.hasNext();) {
|
||||
Statement statement = (Statement) iterator.next();
|
||||
log.debug("\t\t"+message + " " +statement);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,6 +12,7 @@ import org.apache.commons.logging.LogFactory;
|
|||
|
||||
import edu.cornell.mannlib.semservices.bo.Concept;
|
||||
import edu.cornell.mannlib.semservices.service.ExternalConceptService;
|
||||
import edu.cornell.mannlib.semservices.service.impl.UMLSService;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
/**
|
||||
* Utilities for search
|
||||
|
@ -38,7 +39,9 @@ public class ConceptSearchServiceUtils {
|
|||
//URL to label
|
||||
public static HashMap<String, VocabSourceDescription> getVocabSources() {
|
||||
HashMap<String, VocabSourceDescription> map = new HashMap<String, VocabSourceDescription>();
|
||||
map.put(UMLSVocabSource, new VocabSourceDescription("UMLS", UMLSVocabSource, "http://www.nlm.nih.gov/research/umls/", "Unified Medical Language System"));
|
||||
if(UMLSService.configurationFileExists()) {
|
||||
map.put(UMLSVocabSource, new VocabSourceDescription("UMLS", UMLSVocabSource, "http://www.nlm.nih.gov/research/umls/", "Unified Medical Language System"));
|
||||
}
|
||||
//Commenting out agrovoc for now until implementation is updated
|
||||
map.put(AgrovocVocabSource, new VocabSourceDescription("AGROVOC", AgrovocVocabSource, "http://www.fao.org/agrovoc/", "Agricultural Vocabulary"));
|
||||
map.put(GemetVocabSource, new VocabSourceDescription("GEMET", GemetVocabSource, "http://www.eionet.europa.eu/gemet", "GEneral Multilingual Environmental Thesaurus"));
|
||||
|
@ -53,6 +56,7 @@ public class ConceptSearchServiceUtils {
|
|||
//Get the hashmap mapping service name to Service class
|
||||
private static HashMap<String, String> getMapping() {
|
||||
HashMap<String, String> map = new HashMap<String, String>();
|
||||
|
||||
map.put(UMLSVocabSource, "edu.cornell.mannlib.semservices.service.impl.UMLSService");
|
||||
map.put(AgrovocVocabSource, "edu.cornell.mannlib.semservices.service.impl.AgrovocService");
|
||||
map.put(GemetVocabSource, "edu.cornell.mannlib.semservices.service.impl.GemetService");
|
||||
|
|
|
@ -54,10 +54,16 @@ public class CapabilityMapRequestHandler implements VisualizationRequestHandler
|
|||
|
||||
@Override
|
||||
public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log, Dataset dataSource) throws MalformedQueryParametersException, JsonProcessingException {
|
||||
ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.getNoWait(vitroRequest.getRDFService());
|
||||
ConceptPeopleMap conceptPeopleMap = VisualizationCaches.conceptToPeopleMap.getNoWait(vitroRequest.getRDFService());
|
||||
OrganizationPeopleMap organizationPeopleMap = VisualizationCaches.organisationToPeopleMap.getNoWait(vitroRequest.getRDFService());
|
||||
Map<String, String> organizationLabels = VisualizationCaches.organizationLabels.getNoWait(vitroRequest.getRDFService());
|
||||
RDFService rdfService = vitroRequest.getRDFService();
|
||||
rdfService.setVitroRequest(vitroRequest);
|
||||
// VisualizationCaches.rebuildAll(rdfService);
|
||||
// VisualizationCaches.conceptToLabel.build(rdfService);
|
||||
// ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.getNoWait(rdfService);
|
||||
// UQAM-Bug-Correction Refresh all memory models with appropriate liguistic labels
|
||||
ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.get(rdfService, true, true);
|
||||
ConceptPeopleMap conceptPeopleMap = VisualizationCaches.conceptToPeopleMap.getNoWait(rdfService);
|
||||
OrganizationPeopleMap organizationPeopleMap = VisualizationCaches.organisationToPeopleMap.getNoWait(rdfService);
|
||||
Map<String, String> organizationLabels = VisualizationCaches.organizationLabels.getNoWait(rdfService);
|
||||
|
||||
String data = vitroRequest.getParameter("data");
|
||||
if (!StringUtils.isEmpty(data)) {
|
||||
|
|
|
@ -2,8 +2,10 @@
|
|||
|
||||
package edu.cornell.mannlib.vitro.webapp.visualization.utilities;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread;
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.model.ConceptLabelMap;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
@ -85,7 +87,69 @@ public class CachingRDFServiceExecutor<T> {
|
|||
if (backgroundTask != null && backgroundTask.isDone()) {
|
||||
completeBackgroundTask();
|
||||
}
|
||||
// If we have cached results
|
||||
if (cachedResults != null) {
|
||||
// If the background service exists, and the cache is considered invalid
|
||||
|
||||
if (backgroundRDFService != null && resultBuilder.invalidateCache(System.currentTimeMillis() - lastCacheTime)) {
|
||||
// In most cases, only wait for half a second
|
||||
long waitFor = 500;
|
||||
|
||||
if (backgroundTask == null) {
|
||||
// Start the background task to refresh the cache
|
||||
startBackgroundTask(backgroundRDFService);
|
||||
|
||||
// As we've just started the background task, allow a wait time of 1 second
|
||||
waitFor = 1000;
|
||||
}
|
||||
|
||||
// See if we expect it to complete in time, and if so, wait for it
|
||||
if (allowWaits && isExpectedToCompleteIn(waitFor)) {
|
||||
completeBackgroundTask(waitFor);
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
// No cached results, so fetch the results using any available RDF service
|
||||
if (rdfService != null) {
|
||||
startBackgroundTask(rdfService);
|
||||
} else if (backgroundRDFService != null) {
|
||||
startBackgroundTask(backgroundRDFService);
|
||||
} else {
|
||||
throw new RuntimeException("Can't execute without an RDF Service");
|
||||
}
|
||||
|
||||
// As there are no cached results, wait for an answer regardless of the RDF service used
|
||||
completeBackgroundTask();
|
||||
}
|
||||
return cachedResults;
|
||||
}
|
||||
|
||||
public synchronized T get(RDFService rdfService, boolean allowWaits, boolean force) {
|
||||
/*
|
||||
* UQAM-Bug-Correction
|
||||
* Forces the regeneration of the result
|
||||
*/
|
||||
if (force) {
|
||||
try {
|
||||
String backLang = backgroundRDFService.getVitroRequest().getLocale().getLanguage();
|
||||
String srvLang = rdfService.getVitroRequest().getLocale().getLanguage();
|
||||
if (!backLang.equals(srvLang)) {
|
||||
backgroundRDFService.setVitroRequest(rdfService.getVitroRequest());
|
||||
startBackgroundTask(rdfService);
|
||||
completeBackgroundTask();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
backgroundRDFService.setVitroRequest(rdfService.getVitroRequest());
|
||||
startBackgroundTask(rdfService);
|
||||
completeBackgroundTask();
|
||||
}
|
||||
return cachedResults;
|
||||
}
|
||||
// First, check if there are results from the previous background task, and update the cache
|
||||
if (backgroundTask != null && backgroundTask.isDone()) {
|
||||
completeBackgroundTask();
|
||||
}
|
||||
// If we have cached results
|
||||
if (cachedResults != null) {
|
||||
// If the background service exists, and the cache is considered invalid
|
||||
|
|
|
@ -9,6 +9,8 @@ import org.apache.jena.rdf.model.Literal;
|
|||
import org.apache.jena.rdf.model.Model;
|
||||
import org.apache.jena.rdf.model.ModelFactory;
|
||||
import org.apache.jena.rdf.model.Resource;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
||||
|
@ -232,13 +234,37 @@ final public class VisualizationCaches {
|
|||
new CachingRDFServiceExecutor.RDFServiceCallable<Map<String, String>>(visualizationAffinity) {
|
||||
@Override
|
||||
protected Map<String, String> callWithService(RDFService rdfService) throws Exception {
|
||||
// get current selected language tag
|
||||
VitroRequest vreq = rdfService.getVitroRequest();
|
||||
String langCtx = "en-US"; // set default
|
||||
String language = "en"; // set fallback language
|
||||
try {
|
||||
langCtx = language = vreq.getLocale().getLanguage();
|
||||
if (!vreq.getLocale().getCountry().isEmpty()) {
|
||||
langCtx += "-" + vreq.getLocale().getCountry();
|
||||
}
|
||||
} catch (Exception e) { }
|
||||
|
||||
String query = QueryConstants.getSparqlPrefixQuery() +
|
||||
"SELECT ?org ?orgLabel\n" +
|
||||
"SELECT ?org (Min(?orgLabel_) AS ?orgLabel) \n" +
|
||||
"WHERE\n" +
|
||||
"{\n" +
|
||||
" ?org a foaf:Organization .\n" +
|
||||
" ?org rdfs:label ?orgLabel .\n" +
|
||||
"}\n";
|
||||
" ?org a foaf:Organization \n" +
|
||||
" OPTIONAL { ?org rdfs:label ?orgLabelPrimary . \n" +
|
||||
" FILTER (LANG(?orgLabelPrimary) = '" + langCtx + "') \n" +
|
||||
"} \n" +
|
||||
" OPTIONAL { ?org rdfs:label ?orgLabelSecondary . \n" +
|
||||
" FILTER (LANG(?orgLabelSecondary) = '" + language + "') \n" +
|
||||
"} \n" +
|
||||
" OPTIONAL { ?org rdfs:label ?orgLabelTertiary .\n" +
|
||||
" FILTER (STRBEFORE(STR(LANG(?orgLabelTertiary)), '-') = '" + language + "') \n" +
|
||||
"} \n" +
|
||||
" OPTIONAL { ?org rdfs:label ?orgLabelFallback .\n" +
|
||||
" FILTER (LANG(?orgLabelFallback) != '" + langCtx + "' \n" +
|
||||
" && LANG(?orgLabelFallback) != '" + language + "' ) \n" +
|
||||
"} \n" +
|
||||
"BIND(COALESCE(?orgLabelPrimary, ?orgLabelSecondary, ?orgLabelTertiary, ?orgLabelFallback) AS ?orgLabel_) \n" +
|
||||
"} GROUP BY ?org \n";
|
||||
|
||||
final Map<String, String> map = new HashMap<>();
|
||||
|
||||
|
@ -390,6 +416,16 @@ final public class VisualizationCaches {
|
|||
new CachingRDFServiceExecutor.RDFServiceCallable<ConceptLabelMap>() {
|
||||
@Override
|
||||
protected ConceptLabelMap callWithService(RDFService rdfService) throws Exception {
|
||||
VitroRequest vreq = rdfService.getVitroRequest();
|
||||
String langCtx = "en-US";
|
||||
// UQAM-Optimization Adjust to linguistic context
|
||||
try {
|
||||
langCtx = vreq.getLocale().getLanguage();
|
||||
if (!vreq.getLocale().getCountry().isEmpty()) {
|
||||
langCtx += "-" + vreq.getLocale().getCountry();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
String query = QueryConstants.getSparqlPrefixQuery() +
|
||||
"SELECT ?concept ?label\n" +
|
||||
"WHERE\n" +
|
||||
|
@ -398,13 +434,13 @@ final public class VisualizationCaches {
|
|||
" ?person core:hasResearchArea ?concept .\n" +
|
||||
" ?concept a skos:Concept .\n" +
|
||||
" ?concept rdfs:label ?label .\n" +
|
||||
" FILTER (lang(?label) = '" + langCtx+"' ) \n" +
|
||||
"}\n";
|
||||
|
||||
// final Map<String, String> map = new HashMap<>();
|
||||
final ConceptLabelMap map = new ConceptLabelMap();
|
||||
|
||||
rdfService.sparqlSelectQuery(query, new ResultSetConsumer() {
|
||||
@Override
|
||||
protected void processQuerySolution(QuerySolution qs) {
|
||||
String conceptURI = qs.getResource("concept").getURI().intern();
|
||||
String label = qs.getLiteral("label").getString().intern();
|
||||
|
|
|
@ -2,29 +2,40 @@
|
|||
|
||||
package org.vivoweb.webapp.sitemap;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.jena.query.QuerySolution;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.jena.query.QuerySolution;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
||||
|
||||
@WebServlet(name = "SiteMapServlet", urlPatterns = {"/robots.txt","/sitemap.xml"})
|
||||
public class SiteMapServlet extends VitroHttpServlet {
|
||||
|
||||
private static final int MAX_URLS = 50000; // max URLs per sitemap
|
||||
private static final Log log = LogFactory.getLog(SiteMapServlet.class);
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
String requestURI = request.getRequestURI();
|
||||
|
||||
if (requestURI != null) {
|
||||
|
@ -60,7 +71,7 @@ public class SiteMapServlet extends VitroHttpServlet {
|
|||
"WHERE\n" +
|
||||
"{\n" +
|
||||
" ?person a foaf:Person .\n" +
|
||||
"}\n";
|
||||
"} LIMIT " + MAX_URLS + "\n";
|
||||
|
||||
final VitroRequest vreq = new VitroRequest(request);
|
||||
final ServletOutputStream out = response.getOutputStream();
|
||||
|
@ -68,26 +79,31 @@ public class SiteMapServlet extends VitroHttpServlet {
|
|||
out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
||||
out.println("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">");
|
||||
|
||||
List<String> personURIs = new ArrayList<String>();
|
||||
|
||||
try {
|
||||
vreq.getRDFService().sparqlSelectQuery(query, new ResultSetConsumer() {
|
||||
@Override
|
||||
protected void processQuerySolution(QuerySolution qs) {
|
||||
String person = qs.getResource("person").getURI();
|
||||
|
||||
String profileUrl = UrlBuilder.getIndividualProfileUrl(person, vreq);
|
||||
|
||||
if (!StringUtils.isEmpty(profileUrl)) {
|
||||
try {
|
||||
out.println(" <url>");
|
||||
out.println(" <loc>" + schemeAndServer + profileUrl + "</loc>");
|
||||
out.println(" <changefreq>weekly</changefreq>");
|
||||
out.println(" </url>");
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
personURIs.add(qs.getResource("person").getURI());
|
||||
}
|
||||
});
|
||||
} catch (RDFServiceException rse) {
|
||||
log.error(rse, rse);
|
||||
}
|
||||
|
||||
for(String person : personURIs) {
|
||||
String profileUrl = UrlBuilder.getIndividualProfileUrl(person, vreq);
|
||||
if (!StringUtils.isEmpty(profileUrl)) {
|
||||
try {
|
||||
out.println(" <url>");
|
||||
out.println(" <loc>" + schemeAndServer + profileUrl + "</loc>");
|
||||
out.println(" <changefreq>weekly</changefreq>");
|
||||
out.println(" </url>");
|
||||
} catch (Exception e) {
|
||||
log.error(e, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
out.println("</urlset>");
|
||||
|
@ -104,7 +120,8 @@ public class SiteMapServlet extends VitroHttpServlet {
|
|||
if ("http".equalsIgnoreCase(scheme) || "https".equalsIgnoreCase(scheme)) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(scheme).append("://").append(serverName);
|
||||
if (("http".equalsIgnoreCase(scheme) && serverPort != 80) || ("https".equalsIgnoreCase(scheme) && serverPort != 443) ) {
|
||||
if (("http".equalsIgnoreCase(scheme) && serverPort != 80)
|
||||
|| ("https".equalsIgnoreCase(scheme) && serverPort != 443) ) {
|
||||
builder.append(":").append(serverPort);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,12 @@ import edu.cornell.mannlib.vitro.webapp.i18n.VitroResourceBundle;
|
|||
import javax.servlet.ServletContextEvent;
|
||||
import javax.servlet.ServletContextListener;
|
||||
|
||||
/**
|
||||
* Configures VIVO to look for i18n properties files prefixed with 'vivo_'.
|
||||
* This listener must be run before any other code that uses resource bundles.
|
||||
* As this listener does not depend on any others, it should be run at or near
|
||||
* the top of the list in startup_listeners.txt.
|
||||
*/
|
||||
public class i18nSetup implements ServletContextListener {
|
||||
|
||||
@Override
|
||||
|
|
36
docker-compose.yml
Normal file
36
docker-compose.yml
Normal file
|
@ -0,0 +1,36 @@
|
|||
version: '3.2'
|
||||
|
||||
services:
|
||||
|
||||
solr:
|
||||
image: vivoweb/vivo-solr:latest
|
||||
environment:
|
||||
- RESET_CORE=${RESET_CORE}
|
||||
- VERBOSE=${VERBOSE}
|
||||
ports:
|
||||
- 8983:8983
|
||||
networks:
|
||||
- vivo
|
||||
|
||||
tomcat:
|
||||
container_name: vivo
|
||||
hostname: vivo
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
- VIVO_DIR=/usr/local/vivo/home
|
||||
- TDB_FILE_MODE=direct
|
||||
- SOLR_URL=http://solr:8983/solr/vivocore
|
||||
environment:
|
||||
- RESET_HOME=${RESET_HOME}
|
||||
- VERBOSE=${VERBOSE}
|
||||
ports:
|
||||
- 8080:8080
|
||||
volumes:
|
||||
- ${LOCAL_VIVO_HOME}:/usr/local/vivo/home
|
||||
networks:
|
||||
- vivo
|
||||
|
||||
networks:
|
||||
vivo:
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-home</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-project</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -82,10 +82,10 @@
|
|||
# ----------------------------
|
||||
#
|
||||
# Content triples source module: holds data contents
|
||||
# The SDB-based implementation is the default option. It reads its parameters
|
||||
# The TDB-based implementation is the default option. It reads its parameters
|
||||
# from the runtime.properties file, for backward compatibility.
|
||||
#
|
||||
# Other implementations are based on a local TDB instance, a "standard" SPARQL
|
||||
# Other implementations are based on an SDB instance, a "standard" SPARQL
|
||||
# endpoint, or a Virtuoso endpoint, with parameters as shown.
|
||||
#
|
||||
|
||||
|
|
|
@ -39,7 +39,6 @@ Vitro.defaultNamespace = http://vivo.mydomain.edu/individual/
|
|||
#
|
||||
rootUser.emailAddress = vivo_root@mydomain.edu
|
||||
|
||||
|
||||
#
|
||||
# Argon2 password hashing parameters for time, memory and parallelism required to
|
||||
# compute a hash.
|
||||
|
@ -72,20 +71,23 @@ argon2.time = 1000
|
|||
# Email parameters which VIVO can use to send mail. If these are left empty,
|
||||
# the "Contact Us" form will be disabled and users will not be notified of
|
||||
# changes to their accounts.
|
||||
# Example:
|
||||
# email.smtpHost = smtp.mydomain.edu
|
||||
# email.replyTo = vivoAdmin@mydomain.edu
|
||||
#
|
||||
email.smtpHost = smtp.mydomain.edu
|
||||
email.replyTo = vivoAdmin@mydomain.edu
|
||||
# email.smtpHost =
|
||||
# email.replyTo =
|
||||
|
||||
#
|
||||
# URL of Solr context used in local VIVO search. This will usually consist of:
|
||||
# scheme + server_name + port + vivo_webapp_name + "solr"
|
||||
# In the standard installation, the Solr context will be on the same server as VIVO,
|
||||
# and in the same Tomcat instance. The path will be the VIVO webapp.name (specified
|
||||
# in build.properties) + "solr"
|
||||
# scheme + server_name + port + "solr" + solr_core_name
|
||||
# In a standard Solr installation, the Solr service will be available on port
|
||||
# 8983. The path will be /solr followed by the name used when adding a core
|
||||
# for VIVO.
|
||||
# Example:
|
||||
# vitro.local.solr.url = http://localhost:8080/vivosolr
|
||||
# vitro.local.solr.url = http://localhost:8983/solr/vivocore
|
||||
#
|
||||
vitro.local.solr.url = http://localhost:8080/vivosolr
|
||||
vitro.local.solr.url = http://localhost:8983/solr/vivocore
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@ -112,6 +114,22 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
|
|||
#
|
||||
#externalAuth.netIdHeaderName = remote_userID
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# OPTIMIZING LIST VIEW QUERIES
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# Include sections between <precise-subquery></precise-subquery>
|
||||
# tags when executing 'list view' queries that retrieve data
|
||||
# for property lists on profile pages.
|
||||
#
|
||||
# Including these optional sections does not change the query
|
||||
# semantics, but may improve performance.
|
||||
#
|
||||
# Default is true if not set.
|
||||
# (Prior to v1.12, default was true for SDB and false for TDB.)
|
||||
#
|
||||
# listview.usePreciseSubquery = true
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# TUNING THE DATABASE CONNECTION POOL
|
||||
|
@ -130,7 +148,6 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
|
|||
#
|
||||
# VitroConnection.DataSource.pool.maxIdle = 10
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# USING A DIFFERENT DATABASE
|
||||
# -----------------------------------------------------------------------------
|
||||
|
@ -202,8 +219,8 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
|
|||
|
||||
#
|
||||
# A list of supported languages or Locales that the user may choose to
|
||||
# use instead of the one specified by the browser. Selection images must
|
||||
# be available in the i18n/images directory of the theme. This affects
|
||||
# use instead of the one specified by the browser. The selected language(s)
|
||||
# must exist in the VIVO-languages repository. This affects
|
||||
# RDF data retrieved from the model, if RDFService.languageFilter is true.
|
||||
# This also affects the text of pages that have been modified to support
|
||||
# multiple languages.
|
||||
|
@ -217,26 +234,43 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
|
|||
# ORCID INTEGRATION
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# The Client ID from your ORCID credentials
|
||||
# When your application for credentials is accepted, you will receive a Client
|
||||
# ID to be used in communications with the API. If you apply for sandbox
|
||||
# credentials first, and then production credentials, you will likely receive
|
||||
# two different Client IDs.
|
||||
# orcid.clientId = 0000-0000-0000-000X
|
||||
|
||||
# The Client Secret from your ORCID credentials
|
||||
# When your application for credentials is accepted, you will receive a Client
|
||||
# Secret to be used in communications with the API. If you apply for sandbox
|
||||
# credentials first, and then production credentials, you will likely receive
|
||||
# two different Client Secrets.
|
||||
# orcid.clientPassword = 00000000-0000-0000-0000-000000000000
|
||||
|
||||
#
|
||||
# The orcid.webappBaseUrl must end in a front slash (/)
|
||||
# if it includes a path past the domain and (if required) port.
|
||||
#
|
||||
# The base URL for your VIVO application, as seen from outside.
|
||||
# VIVO will use this to construct a callback URL that the ORCID API can use to
|
||||
# return control to VIVO. The actual callback URL will be the string you
|
||||
# provide here with the suffix of /orcid/callback added at the end.
|
||||
# The orcid.webappBaseUrl must end in a front slash (/)
|
||||
# if it includes a path past the domain and (if required) port.
|
||||
#
|
||||
# orcid.webappBaseUrl = http://vivo.mydomain.edu/vivo/
|
||||
# orcid.externalIdCommonName = VIVO Cornell Identifier
|
||||
|
||||
# 1.2, 2.0
|
||||
# The version of ORCIDs API protocol that VIVO will expect. Currently, the
|
||||
# only supported version is 2.0.
|
||||
# orcid.apiVersion = 2.0
|
||||
|
||||
# release, sandbox
|
||||
# The entry point for ORCID's public API.
|
||||
# This changes, depending on whether you are using the sandbox API or the
|
||||
# production API. Value is either release or sandbox.
|
||||
# orcid.api = sandbox
|
||||
|
||||
# Specify the type of API access that you have - public or member
|
||||
# public - only allows you to confirm ORCID IDs
|
||||
# member - allows VIVO to write a link to the VIVO profile in the ORCID record
|
||||
# If you only have a public API key, ensure that you have entered public here
|
||||
# Specify the type of API access that you have - public or member
|
||||
# public - only allows you to confirm ORCID IDs
|
||||
# member - allows VIVO to write a link to the VIVO profile in the ORCID record
|
||||
# If you only have a public API key, ensure that you have entered public here
|
||||
#orcid.apiLevel = public
|
||||
|
||||
|
||||
|
@ -392,7 +426,15 @@ Vitro.reconcile.defaultTypeList = http://vivoweb.org/ontology/core#Role, core:Ro
|
|||
# If you do not wish to use the claiming interface, set this property to nothing (empty)
|
||||
createAndLink.providers = doi, pmid
|
||||
|
||||
# Triple pattern fragments is a very fast, very simple means for querying a triple store.
|
||||
# The triple pattern fragments API in VIVO puts little load on the server, providing a simple means for getting data from the triple store. The API has a web interface for manual use, can be used from the command line via curl, and can be used by programs.
|
||||
# Triple Pattern Fragments is a very fast, very simple means for querying a
|
||||
# triple store. The Triple Pattern Fragments API in VIVO puts little load on
|
||||
# the server, providing a simple means for getting data from the triple store.
|
||||
# The API has a web interface for manual use, can be used from the command
|
||||
# line via curl, and can be used by programs.
|
||||
#
|
||||
# VIVO's Triple Pattern Fragments API does not require authentication and
|
||||
# makes the full RDF graph available regardless of display or publish levels
|
||||
# set on particular properties. Enable Triple Pattern Fragments only if your
|
||||
# VIVO does not contain restricted data that should not be shared with others.
|
||||
#
|
||||
# tpf.activeFlag = true
|
||||
|
|
|
@ -23,7 +23,8 @@ display:academicDeptsDataGetter
|
|||
WHERE
|
||||
{
|
||||
?theURI a vivo:AcademicDepartment .
|
||||
?theURI rdfs:label ?label
|
||||
?theURI rdfs:label ?label .
|
||||
FILTER (lang(?label) = '?country' ) .
|
||||
}
|
||||
|
||||
""" .
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
searchIndex:documentBuilding.DocumentModifier ,
|
||||
searchIndex:extensions.LabelsAcrossContextNodes ;
|
||||
rdfs:label "Labels across relatedBy/relates" ;
|
||||
:hasTypeRestriction "http://vivoweb.org/ontology/core#Relationship" ;
|
||||
:appliesToContextNodeType "http://vivoweb.org/ontology/core#Relationship" ;
|
||||
:hasIncomingProperty "http://vivoweb.org/ontology/core#relatedBy" ;
|
||||
:hasOutgoingProperty "http://vivoweb.org/ontology/core#relates" .
|
||||
|
||||
|
@ -117,6 +117,22 @@
|
|||
}
|
||||
""" .
|
||||
|
||||
# URI finder that will find the relevant person to update when the
|
||||
# property linking to the email or preferred title resource is removed
|
||||
:vivoUriFinder_VCard_2
|
||||
a searchIndex:indexing.IndexingUriFinder ,
|
||||
searchIndex:indexing.SelectQueryUriFinder ;
|
||||
rdfs:label "Preferred title / email person URI finder #2" ;
|
||||
:hasPredicateRestriction "http://www.w3.org/2006/vcard/ns#hasTitle" ;
|
||||
:hasPredicateRestriction "http://www.w3.org/2006/vcard/ns#hasEmail" ;
|
||||
:hasSelectQuery """
|
||||
PREFIX obo: <http://purl.obolibrary.org/obo/>
|
||||
SELECT ?uri
|
||||
WHERE {
|
||||
?uri obo:ARG_2000028 ?subject .
|
||||
}
|
||||
""" .
|
||||
|
||||
:vivodocumentModifier_PreferredTitle
|
||||
a searchIndex:documentBuilding.SelectQueryDocumentModifier ,
|
||||
searchIndex:documentBuilding.DocumentModifier ;
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
# $This file is distributed under the terms of the license in LICENSE$
|
||||
|
||||
@prefix about: <http://vitro.mannlib.cornell.edu/ns/default/about#> .
|
||||
|
||||
about:ABOUTDG
|
||||
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.FixedHTMLDataGetter> ;
|
||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#htmlValue>
|
||||
"""<h2>About VIVO</h2>
|
||||
<div class=\"pageGroupBody\" id=\"aboutText\"><p>The VIVO application enables the discovery of researchers across institutions. Participants in the network include institutions with local installations of VIVO or those with research discovery and profiling applications that can provide semantic web-compliant data. The information accessible through VIVO's search and browse capability will therefore reside and be controlled locally, within institutional VIVOs or other semantic web-compliant applications.</p>
|
||||
|
||||
<p>VIVO is an open source semantic web application originally developed and implemented at Cornell. When installed and populated with content at an institution, it enables the discovery of research and scholarship across disciplines at that institution. VIVO supports browsing and a search function which returns faceted results for rapid retrieval of desired information. Content in any local VIVO installation may be maintained manually or brought into the database in automated ways from local systems of record, such as human resources, scholarships, grants, course, and faculty activity databases.</p>
|
||||
|
||||
<p>See more information on the <a href=\"http://vivoweb.org\">VIVO Project</a>.</p></div>
|
||||
"""@en ;
|
||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#saveToVar>
|
||||
"aboutPage" .
|
||||
about:ABOUTPAGE
|
||||
a <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#Page> ;
|
||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#hasDataGetter>
|
||||
about:ABOUTDG ;
|
||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#title>
|
||||
"About Page" ;
|
||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#urlMapping>
|
||||
"/about" .
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
display:DefaultMenu
|
||||
a display:MainMenu ;
|
||||
rdfs:label "Default Menu" ;
|
||||
display:hasElement display:EventsMenuItem ;
|
||||
display:hasElement display:HomeMenuItem ;
|
||||
display:hasElement display:OrganizationsMenuItem ;
|
||||
|
@ -27,43 +26,36 @@ display:DefaultMenu
|
|||
display:HomeMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition 1;
|
||||
display:linkText "Home";
|
||||
display:toPage display:Home .
|
||||
|
||||
display:PeopleMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition 2;
|
||||
display:linkText "People";
|
||||
display:toPage display:People .
|
||||
|
||||
display:OrganizationsMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition 3;
|
||||
display:linkText "Organizations";
|
||||
display:toPage display:Organizations .
|
||||
|
||||
display:ResearchMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition 4;
|
||||
display:linkText "Research";
|
||||
display:toPage display:Research .
|
||||
|
||||
display:EventsMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition 5;
|
||||
display:linkText "Events";
|
||||
display:toPage display:Events .
|
||||
|
||||
display:CapabilityMapMenuItem
|
||||
a display:NavigationElement ;
|
||||
display:menuPosition 6;
|
||||
display:linkText "Capability Map";
|
||||
display:toPage display:CapabilityMap .
|
||||
|
||||
display:Home
|
||||
a display:HomePage ;
|
||||
a display:Page ;
|
||||
display:title "Home" ;
|
||||
display:urlMapping "/" ;
|
||||
display:hasDataGetter display:homeDataGetter;
|
||||
display:cannotDeletePage "true" .
|
||||
|
@ -72,7 +64,6 @@ display:Events
|
|||
a display:Page ;
|
||||
a display:ClassGroupPage;
|
||||
display:forClassGroup vivoweb:vitroClassGroupevents ;
|
||||
display:title "Events" ;
|
||||
display:urlMapping "/events" ;
|
||||
display:hasDataGetter display:eventsDataGetter .
|
||||
|
||||
|
@ -80,7 +71,6 @@ display:Organizations
|
|||
a display:Page ;
|
||||
a display:ClassGroupPage;
|
||||
display:forClassGroup vivoweb:vitroClassGrouporganizations ;
|
||||
display:title "Organizations" ;
|
||||
display:urlMapping "/organizations";
|
||||
display:hasDataGetter display:organizationsDataGetter .
|
||||
|
||||
|
@ -88,7 +78,6 @@ display:People
|
|||
a display:Page ;
|
||||
a display:ClassGroupPage;
|
||||
display:forClassGroup vivoweb:vitroClassGrouppeople ;
|
||||
display:title "People" ;
|
||||
display:urlMapping "/people" ;
|
||||
display:hasDataGetter display:peopleDataGetter .
|
||||
|
||||
|
@ -96,13 +85,11 @@ display:Research
|
|||
a display:Page ;
|
||||
a display:ClassGroupPage;
|
||||
display:forClassGroup vivoweb:vitroClassGrouppublications ;
|
||||
display:title "Research" ;
|
||||
display:urlMapping "/research" ;
|
||||
display:hasDataGetter display:researchDataGetter .
|
||||
|
||||
display:CapabilityMap
|
||||
a display:Page ;
|
||||
display:title "Capability Map" ;
|
||||
display:urlMapping "/vis/capabilitymap" ;
|
||||
display:hasDataGetter display:capabilityMapDataGetter .
|
||||
|
||||
|
|
|
@ -4763,9 +4763,8 @@ use one freetextKeyword assertion for each keyword or phrase.</obo:IAO_0000112>
|
|||
<!-- http://vivoweb.org/ontology/core#researcherId -->
|
||||
|
||||
<owl:DatatypeProperty rdf:about="http://vivoweb.org/ontology/core#researcherId">
|
||||
<rdfs:label xml:lang="en">ISI Researcher ID</rdfs:label>
|
||||
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">RearcherID is a Thomson Reuters project where researchers have a place to manage and share their professional information. It will allow them to solve author identity issues while simultaneously adding dynamic citation metrics and collaboration networks to your personal profile.
|
||||
Definition source: http://isiwebofknowledge.com/researcherid/</obo:IAO_0000112>
|
||||
<rdfs:label xml:lang="en">ResearcherID</rdfs:label>
|
||||
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ResearcherID is a Clarivate project where researchers have a place to manage and share their professional information. It will allow them to solve author identity issues while simultaneously adding dynamic citation metrics and collaboration networks to your personal profile. http://www.researcherid.com/</obo:IAO_0000112>
|
||||
<rdfs:subPropertyOf rdf:resource="http://vivoweb.org/ontology/core#identifier"/>
|
||||
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
|
||||
</owl:DatatypeProperty>
|
||||
|
@ -5982,6 +5981,32 @@ To enable other Gender/Sex codes to be used, this dataproperty has range URI. Th
|
|||
|
||||
|
||||
|
||||
<!-- http://purl.obolibrary.org/obo/BCO_0000003 -->
|
||||
|
||||
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BCO_0000003">
|
||||
<rdfs:label xml:lang="en">Data Collection Process</rdfs:label>
|
||||
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CollectionProcess"/>
|
||||
<obo:IAO_0000112 xml:lang="en">Observing and recording the presence or absence of butterflies during a transect walk.; A trip camera capture of an image of a jaguar is an observation, because it is "selected" by the camera as worthy of obsevation simply by virtue of moving in front of the camera.; Seeing three pelicans flying overhead on Christmas day and report them as part of the Christmas Bird Count.</obo:IAO_0000112>
|
||||
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000125"/>
|
||||
<obo:IAO_0000115 xml:lang="en">A process in which a person or machine sees or detects a material entity and selects it as worthy of observation, and which has as output an information content entity about the selected material entity.</obo:IAO_0000115>
|
||||
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
|
||||
<vitro:descriptionAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A collection process in which an information content entity is collected for research or scholarly purposes. The immediate use case is recording observations of taxa (presence/absence). Need to figure out how this relates to OBI assay OBI:0000070. maybe has broader synonym OBI:0000070</vitro:descriptionAnnot>
|
||||
</owl:Class>
|
||||
|
||||
|
||||
|
||||
<!-- http://purl.obolibrary.org/obo/BCO_0000042 -->
|
||||
|
||||
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BCO_0000042">
|
||||
<rdfs:label xml:lang="en">Taxonomic Identification Process</rdfs:label>
|
||||
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#IdentificationProcess"/>
|
||||
<obo:IAO_0000112 xml:lang="en">Using a key to identify a plant in the field.; Using DNA barcoding to identify a plant species.; Associating a museum specimen with a specific taxonomic concept based on its characters.; Using BLAST to identify the taxa present in an environmental (metagenomic) sample.</obo:IAO_0000112>
|
||||
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000125"/>
|
||||
<obo:IAO_0000115 xml:lang="en">A curation process in which a taxonomic name is appied to a biological entity to denote membership in a taxon.</obo:IAO_0000115>
|
||||
</owl:Class>
|
||||
|
||||
|
||||
|
||||
<!-- http://purl.obolibrary.org/obo/BFO_0000001 -->
|
||||
|
||||
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BFO_0000001">
|
||||
|
@ -9754,6 +9779,20 @@ This class allows for linking an author to a publication while indicating inform
|
|||
|
||||
|
||||
|
||||
<!-- http://vivoweb.org/ontology/core#GeoreferencingProcess -->
|
||||
|
||||
<owl:Class rdf:about="http://vivoweb.org/ontology/core#GeoreferencingProcess">
|
||||
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CurationProcess"/>
|
||||
<obo:IAO_0000111>Georeferenced</obo:IAO_0000111>
|
||||
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
|
||||
<obo:IAO_0000115 xml:lang="en">A curation process in which a material entity is annotated with geo-coordinates to indicate the location of a collection</obo:IAO_0000115>
|
||||
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
|
||||
<obo:IAO_0000117 xml:lang="en">PERSON: Anne Thessen</obo:IAO_0000117>
|
||||
<rdfs:label xml:lang="en">Georeferencing Process</rdfs:label>
|
||||
</owl:Class>
|
||||
|
||||
|
||||
|
||||
<!-- http://vivoweb.org/ontology/core#GovernmentAgency -->
|
||||
|
||||
<owl:Class rdf:about="http://vivoweb.org/ontology/core#GovernmentAgency">
|
||||
|
@ -9846,6 +9885,21 @@ This class allows for linking an author to a publication while indicating inform
|
|||
|
||||
|
||||
|
||||
<!-- http://vivoweb.org/ontology/core#IdentificationProcess -->
|
||||
|
||||
<owl:Class rdf:about="http://vivoweb.org/ontology/core#IdentificationProcess">
|
||||
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CurationProcess"/>
|
||||
<obo:IAO_0000111>Identified</obo:IAO_0000111>
|
||||
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
|
||||
<obo:IAO_0000115 xml:lang="en">A curation process in which a term is appied to a material entity to denote its type or kind</obo:IAO_0000115>
|
||||
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
|
||||
<obo:IAO_0000117 xml:lang="en">PERSON: Anne Thessen</obo:IAO_0000117>
|
||||
<vitro:descriptionAnnot>This is intended to apply to a wide variety of material entities, not just biological specimens.</vitro:descriptionAnnot>
|
||||
<rdfs:label xml:lang="en">Identification Process</rdfs:label>
|
||||
</owl:Class>
|
||||
|
||||
|
||||
|
||||
<!-- http://vivoweb.org/ontology/core#Institute -->
|
||||
|
||||
<owl:Class rdf:about="http://vivoweb.org/ontology/core#Institute">
|
||||
|
@ -10028,6 +10082,21 @@ This class allows for linking an author to a publication while indicating inform
|
|||
|
||||
|
||||
|
||||
<!-- http://vivoweb.org/ontology/core#MeasurementProcess -->
|
||||
|
||||
<owl:Class rdf:about="http://vivoweb.org/ontology/core#MeasurementProcess">
|
||||
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CurationProcess"/>
|
||||
<obo:IAO_0000111>Measured</obo:IAO_0000111>
|
||||
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
|
||||
<obo:IAO_0000115 xml:lang="en">A curation process in which data are collected about a specimen in a collection</obo:IAO_0000115>
|
||||
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
|
||||
<obo:IAO_0000117 xml:lang="en">PERSON: Anne Thessen</obo:IAO_0000117>
|
||||
<vitro:descriptionAnnot>possibly has broader synonym OBI assay OBI:0000070 because all measurement processes will be assays, but not all assays will be performed on a material entity in a collection</vitro:descriptionAnnot>
|
||||
<rdfs:label xml:lang="en">Measurement Process</rdfs:label>
|
||||
</owl:Class>
|
||||
|
||||
|
||||
|
||||
<!-- http://vivoweb.org/ontology/core#MedicalResidency -->
|
||||
|
||||
<owl:Class rdf:about="http://vivoweb.org/ontology/core#MedicalResidency">
|
||||
|
|
|
@ -1,6 +1,20 @@
|
|||
This directory contains ontology "TBox" files with class and property definitions.
|
||||
These are loaded by the VIVO application when it starts for the first time, after
|
||||
the initial installation or after an upgrade installation that involves changes
|
||||
to these files.
|
||||
This directory contains ontology "TBox" files with class and property
|
||||
definitions or annotations that are intended to be editable in the VIVO GUI.
|
||||
|
||||
These files are loaded by the VIVO application when it starts for the first time
|
||||
and during later restarts if the contents have changed. A triple is updated
|
||||
if there is no conflicting value for the same subject and predicate that was
|
||||
added to the triple store via the GUI or data ingest (e.g. SPARQL UPDATE).
|
||||
|
||||
The file vitroAnnotations.n3 contains triples with predicates in the vitro
|
||||
namespace and objects that are not literals with language tags.
|
||||
|
||||
The VIVO-languages project contains additional language-specific
|
||||
vitroAnnotations.n3 files where all of the triples contain language-tagged
|
||||
literals.
|
||||
|
||||
VIVO-languages also provides additional annotation files
|
||||
(e.g. initialTBoxAnnotations_en_US.n3) containing triples with predicates
|
||||
in ontologies/voabularies outside the vitro namespace (e.g. rdfs:label).
|
||||
|
||||
See ../filegraph/README.md for more information about "TBox" files.
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,6 @@
|
|||
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-installer-home</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-installer</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
|
@ -24,6 +24,34 @@
|
|||
</properties>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>package</id>
|
||||
<activation>
|
||||
<property><name>vivo-dir</name></property>
|
||||
</activation>
|
||||
<build>
|
||||
<finalName>${app-name}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>src/main/assembly/home.xml</descriptor>
|
||||
</descriptors>
|
||||
<appendAssemblyId>false</appendAssemblyId>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>install</id>
|
||||
<activation>
|
||||
|
@ -108,11 +136,11 @@
|
|||
<type>tar.gz</type>
|
||||
</dependency>
|
||||
<!-- Dependency for multilingual support -->
|
||||
<!-- dependency>
|
||||
<dependency>
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-languages-home</artifactId>
|
||||
<version>[2.0.0,2.1.0)</version>
|
||||
<artifactId>vivo-languages-home-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>tar.gz</type>
|
||||
</dependency -->
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
@ -7,12 +7,13 @@
|
|||
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-installer</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<name>VIVO Installer</name>
|
||||
|
||||
<properties>
|
||||
<app-name>vivo</app-name>
|
||||
<vitro-version>${project.version}</vitro-version>
|
||||
<maven-site-plugin.skip>true</maven-site-plugin.skip>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
@ -41,12 +42,6 @@
|
|||
<skip>true</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
|
@ -70,10 +65,6 @@
|
|||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.10</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.7</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>1.4.1</version>
|
||||
|
@ -228,6 +219,21 @@
|
|||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>skip</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.8.2</version>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<distributionManagement>
|
||||
|
@ -235,6 +241,14 @@
|
|||
<id>vivo-installer</id>
|
||||
<url>http://vivo-project.github.io/</url>
|
||||
</site>
|
||||
<snapshotRepository>
|
||||
<id>ossrh</id>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>ossrh</id>
|
||||
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
<reporting>
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-installer-vivo</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<packaging>war</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-installer</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
|
@ -122,6 +122,7 @@
|
|||
</profiles>
|
||||
|
||||
<build>
|
||||
<finalName>${app-name}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
|
@ -153,18 +154,18 @@
|
|||
<type>war</type>
|
||||
</dependency>
|
||||
<!-- Dependencies for multilingual support -->
|
||||
<!-- dependency>
|
||||
<dependency>
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vitro-languages-webapp</artifactId>
|
||||
<version>[2.0.0,2.1.0)</version>
|
||||
<artifactId>vitro-languages-webapp-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-languages-webapp</artifactId>
|
||||
<version>[2.0.0,2.1.0)</version>
|
||||
<artifactId>vivo-languages-webapp-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>war</type>
|
||||
</dependency -->
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
# debug.log4j.properties exists will be used instead, if it exists, but is not stored in Subversion.
|
||||
|
||||
log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
|
||||
log4j.appender.AllAppender.File= ${catalina.base}/logs/${app-name}.all.log
|
||||
log4j.appender.AllAppender.File=${catalina.base}/logs/${app-name}.all.log
|
||||
log4j.appender.AllAppender.MaxFileSize=10MB
|
||||
log4j.appender.AllAppender.MaxBackupIndex=10
|
||||
log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout
|
||||
|
|
61
pom.xml
61
pom.xml
|
@ -1,13 +1,11 @@
|
|||
<project
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-project</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<name>VIVO</name>
|
||||
|
@ -43,11 +41,9 @@
|
|||
</developer>
|
||||
</developers>
|
||||
|
||||
<!--
|
||||
The SCM repository location is used by Continuum to update against
|
||||
when changes have occurred. This spawns a new build cycle and releases
|
||||
snapshots into the snapshot repository below.
|
||||
-->
|
||||
<!-- The SCM repository location is used by Continuum to update against
|
||||
when changes have occurred. This spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below. -->
|
||||
<scm>
|
||||
<connection>scm:git:git@github.com:vivo-project/VIVO.git</connection>
|
||||
<developerConnection>scm:git:git@github.com:vivo-project/VIVO.git</developerConnection>
|
||||
|
@ -72,7 +68,29 @@
|
|||
</modules>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<profile>
|
||||
<id>Vitro-languages</id>
|
||||
<activation>
|
||||
<file>
|
||||
<exists>../Vitro-languages/pom.xml</exists>
|
||||
</file>
|
||||
</activation>
|
||||
<modules>
|
||||
<module>../Vitro-languages</module>
|
||||
</modules>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>VIVO-languages</id>
|
||||
<activation>
|
||||
<file>
|
||||
<exists>../VIVO-languages/pom.xml</exists>
|
||||
</file>
|
||||
</activation>
|
||||
<modules>
|
||||
<module>../VIVO-languages</module>
|
||||
</modules>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>vitro</id>
|
||||
<activation>
|
||||
<file>
|
||||
|
@ -335,7 +353,8 @@
|
|||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<!-- Used to validate all code style rules in source code using Checkstyle -->
|
||||
<!-- Used to validate all code style rules in source code using
|
||||
Checkstyle -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-checkstyle-plugin</artifactId>
|
||||
|
@ -343,7 +362,8 @@
|
|||
<executions>
|
||||
<execution>
|
||||
<id>verify-style</id>
|
||||
<!-- Bind to verify so it runs after package & unit tests, but before install -->
|
||||
<!-- Bind to verify so it runs after package & unit
|
||||
tests, but before install -->
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>check</goal>
|
||||
|
@ -352,10 +372,10 @@
|
|||
</executions>
|
||||
<configuration>
|
||||
<configLocation>
|
||||
duraspace-checkstyle/checkstyle.xml
|
||||
duraspace-checkstyle/checkstyle.xml
|
||||
</configLocation>
|
||||
<suppressionsLocation>
|
||||
vitro-checkstyle/checkstyle-suppressions.xml
|
||||
vitro-checkstyle/checkstyle-suppressions.xml
|
||||
</suppressionsLocation>
|
||||
<encoding>UTF-8</encoding>
|
||||
<consoleOutput>true</consoleOutput>
|
||||
|
@ -475,9 +495,11 @@
|
|||
<report>test-javadoc</report>
|
||||
</reports>
|
||||
</reportSet>
|
||||
<reportSet><!-- aggregate reportSet, to define in poms having modules -->
|
||||
<reportSet><!-- aggregate reportSet, to define in poms
|
||||
having modules -->
|
||||
<id>aggregate</id>
|
||||
<inherited>false</inherited><!-- don't run aggregate in child modules -->
|
||||
<inherited>false</inherited><!-- don't run aggregate
|
||||
in child modules -->
|
||||
<reports>
|
||||
<report>aggregate</report>
|
||||
</reports>
|
||||
|
@ -501,10 +523,9 @@
|
|||
</plugins>
|
||||
</reporting>
|
||||
|
||||
<!--
|
||||
Add a custom repository, which is actually just a simple GitHub project
|
||||
in order to distribute some dependencies that aren't part of Maven central
|
||||
-->
|
||||
<!-- Add a custom repository, which is actually just a simple GitHub
|
||||
project in order to distribute some dependencies that aren't part of Maven
|
||||
central -->
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>vivo-dependencies</id>
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.12</version>
|
||||
<version>4.13.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
60
start.sh
Normal file
60
start.sh
Normal file
|
@ -0,0 +1,60 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# allow easier debugging with `docker run -e VERBOSE=yes`
|
||||
if [[ "$VERBOSE" = "yes" ]]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
# allow easier reset home with `docker run -e RESET_HOME=true`
|
||||
if [[ "$RESET_HOME" = "true" ]]; then
|
||||
echo 'Clearing VIVO HOME /usr/local/vivo/home'
|
||||
rm -rf /usr/local/vivo/home/*
|
||||
fi
|
||||
|
||||
# copy home bin if not exists
|
||||
if [ ! -d /usr/local/vivo/home/bin ]; then
|
||||
echo "Copying home bin directory to /usr/local/vivo/home/bin"
|
||||
cp -r /vivo-home/bin /usr/local/vivo/home/bin
|
||||
fi
|
||||
|
||||
# copy home config if not exists
|
||||
if [ ! -d /usr/local/vivo/home/config ]; then
|
||||
echo "Copying home config directory to /usr/local/vivo/home/config"
|
||||
cp -r /vivo-home/config /usr/local/vivo/home/config
|
||||
fi
|
||||
|
||||
# copy home rdf if not exists
|
||||
if [ ! -d /usr/local/vivo/home/rdf ]; then
|
||||
echo "Copying home rdf directory to /usr/local/vivo/home/rdf"
|
||||
cp -r /vivo-home/rdf /usr/local/vivo/home/rdf
|
||||
fi
|
||||
|
||||
# copy runtime.properties if it does not already exist in target home directory
|
||||
if [ -f /usr/local/vivo/home/config/example.runtime.properties ]; then
|
||||
if [ ! -f /usr/local/vivo/home/config/runtime.properties ]
|
||||
then
|
||||
echo "Copying example.runtime.properties to /usr/local/vivo/home/config/runtime.properties"
|
||||
cp /usr/local/vivo/home/config/example.runtime.properties /usr/local/vivo/home/config/runtime.properties
|
||||
|
||||
# template runtime.properties vitro.local.solr.url value to $SOLR_URL value
|
||||
echo "Templating runtime.properties vitro.local.solr.url = $SOLR_URL"
|
||||
sed -i "s,http://localhost:8983/solr/vivocore,$SOLR_URL,g" /usr/local/vivo/home/config/runtime.properties
|
||||
else
|
||||
echo "Using existing /usr/local/vivo/home/config/runtime.properties"
|
||||
fi
|
||||
fi
|
||||
|
||||
# copy applicationSetup.n3 if it does not already exist in target home directory
|
||||
if [ -f /usr/local/vivo/home/config/example.applicationSetup.n3 ]; then
|
||||
if [ ! -f /usr/local/vivo/home/config/applicationSetup.n3 ]
|
||||
then
|
||||
echo "Copying example.applicationSetup.n3 to /usr/local/vivo/home/config/applicationSetup.n3"
|
||||
cp /usr/local/vivo/home/config/example.applicationSetup.n3 /usr/local/vivo/home/config/applicationSetup.n3
|
||||
else
|
||||
echo "Using existing /usr/local/vivo/home/config/applicationSetup.n3"
|
||||
fi
|
||||
fi
|
||||
|
||||
catalina.sh run
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-webapp</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<packaging>war</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-project</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
|
@ -69,7 +69,7 @@
|
|||
<dependency>
|
||||
<groupId>org.vivoweb</groupId>
|
||||
<artifactId>vivo-api</artifactId>
|
||||
<version>1.11.2-SNAPSHOT</version>
|
||||
<version>1.12.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
|
@ -5,6 +5,10 @@
|
|||
# https://sourceforge.net/apps/mediawiki/vivo/index.php?title=The_StartupManager
|
||||
#
|
||||
|
||||
# This listener must be run before any other code that uses resource bundles,
|
||||
# otherwise there will be problems with i18n-support.
|
||||
org.vivoweb.webapp.startup.i18nSetup
|
||||
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.JvmSmokeTests
|
||||
|
||||
edu.cornell.mannlib.vitro.webapp.application.ApplicationSetup
|
||||
|
@ -21,6 +25,9 @@ edu.cornell.mannlib.vitro.webapp.config.RevisionInfoSetup
|
|||
|
||||
edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailFactory$Setup
|
||||
|
||||
# For multiple language support
|
||||
edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionSetup
|
||||
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.ConfigurationModelsSetup
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.ContentModelSetup
|
||||
|
||||
|
@ -67,9 +74,6 @@ org.vivoweb.webapp.startup.SearchResultTemplateModelSetup
|
|||
|
||||
edu.ucsf.vitro.opensocial.OpenSocialSmokeTests
|
||||
|
||||
# For multiple language support
|
||||
edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionSetup
|
||||
|
||||
# The search indexer uses a "public" permission, so the PropertyRestrictionPolicyHelper
|
||||
# and the PermissionRegistry must already be set up.
|
||||
edu.cornell.mannlib.vitro.webapp.searchindex.SearchIndexerSetup
|
||||
|
@ -91,5 +95,3 @@ edu.cornell.mannlib.vitro.webapp.controller.individual.VIVOIndividualResponseBui
|
|||
|
||||
# This should be near the end, because it will issue a warning if the connection to the SearchEngine times out.
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.SearchEngineSmokeTest
|
||||
|
||||
org.vivoweb.webapp.startup.i18nSetup
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
.capability, .edge, .group, .links2, .links3, .links4 {
|
||||
text-indent: 28px;
|
||||
font-size: 9px;
|
||||
width: 98%;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url("../../../images/visualization/capabilitymap/key-sprite.png")
|
||||
}
|
||||
|
||||
.capability {
|
||||
background-position: 0px 0px;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
.edge {
|
||||
background-position: 0px -22px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.group {
|
||||
background-position: 0px -48px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.links2 {
|
||||
background-position: 0px -73px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.links3 {
|
||||
background-position: 0px -96px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.links4 {
|
||||
background-position: 0px -121px;
|
||||
height: 20px;
|
||||
}
|
|
@ -1,908 +0,0 @@
|
|||
#
|
||||
# Text strings for the controllers and templates
|
||||
#
|
||||
# Default (English)
|
||||
#
|
||||
|
||||
uri_icon = uri icon
|
||||
|
||||
#
|
||||
# "partial" individual templates ( /templates/freemarker/body/partials/individual )
|
||||
#
|
||||
contact_capitalized = Contact
|
||||
phone = phone
|
||||
primary_email = primary email
|
||||
additional_emails = additional emails
|
||||
email = email
|
||||
primary_email_capitalized = Primary Email
|
||||
additional_emails_capitalized = Additional Emails
|
||||
contact_info = Contact Info
|
||||
|
||||
active_grants_for = Active Grants for the
|
||||
department = department
|
||||
grant_name = Grant Name
|
||||
close_date = Close Date
|
||||
no_active_grants = There are currently no active grants for this department.
|
||||
view_all_active_grants = View all active grants
|
||||
|
||||
individuals_with_researh_area_one = Here are the individuals in <a href="{1}">{0}</a> who have an interest in this research area.
|
||||
individuals_with_researh_area_two = Here are the individuals in the <a href="{1}">{0}</a> who have an interest in this research area.
|
||||
individuals_with_dept = Here are the individuals with an interest in <a href="{1}">{0}</a> who are in this organization.
|
||||
faculty_with_researh_area = Here are the faculty members in the {0} department who have an interest in this research area.
|
||||
view_all_individuals_in_area = View all individuals with an interest in this area.
|
||||
view_all_individuals_in_dept = View all individuals in this organization.
|
||||
view_all_faculty_in_area = View all faculty with an interest in this area.
|
||||
faculty_research_areas = Faculty Research Areas
|
||||
affiliated_research_areas = Affiliated Research Areas
|
||||
affiliated_departments = Associated Departments
|
||||
organization = individuals with the research area in this organization
|
||||
|
||||
share_the_uri = share the uri
|
||||
|
||||
export_qr_codes = Export QR codes
|
||||
vcard_qr = vCard QR
|
||||
vcard_qr_code = vCard QR Code
|
||||
close_capitalized = Close
|
||||
qr_icon = qr icon
|
||||
qr_code = QR Code
|
||||
invalid_qr_code_parameter = You have passed an invalid value for the qrCode display parameter.
|
||||
|
||||
research_areas = research areas
|
||||
|
||||
publications_in_vivo = Publications in VIVO
|
||||
co_author = co-author
|
||||
co_authors = co-authors
|
||||
co_author_network = Co-author Network
|
||||
map_of_science = map of science
|
||||
map_of_science_capitalized = Map of Science
|
||||
co_investigator_network = co-investigator network
|
||||
co_investigator_network_capitalized = Co-investigator Network
|
||||
|
||||
networks = Networks
|
||||
co_authors_capitalized = Co-authors
|
||||
|
||||
temporal_graph = temporal graph
|
||||
temporal_graph_capitalized = Temporal Graph
|
||||
|
||||
websites = Websites
|
||||
|
||||
advisee_label = advisee label
|
||||
advisor_label = advisor label
|
||||
candidate = candidate
|
||||
candidacy = candidacy
|
||||
advisingRel_label = advisory label
|
||||
|
||||
editor_abbreviated = Ed.
|
||||
volume_abbreviated = Ed.
|
||||
resource_name = resource name
|
||||
missing_info_resource = missing information resource
|
||||
|
||||
award_receipt_name = award receipt name
|
||||
award_name = award name
|
||||
conferred_by = conferred by
|
||||
conferred_on = conferred on
|
||||
selected_award = Selected Award
|
||||
|
||||
incomplete_date_time_interval = incomplete date/time interval
|
||||
incomplete_date_time_value = incomplete date/time value
|
||||
|
||||
in = in
|
||||
organization_name = organization name
|
||||
missing_organization = missing organization
|
||||
middle_organization = middle organization
|
||||
|
||||
concept_name = concept name
|
||||
|
||||
at = at
|
||||
event_name = event name
|
||||
missing_event = missing event
|
||||
event_label = event label
|
||||
|
||||
activity_name = activity name
|
||||
missing_activity = missing activity
|
||||
awarded_by = awarded by
|
||||
administered_by = administered by
|
||||
|
||||
presentation_name = presentation name
|
||||
missing_presentation = missing presentation
|
||||
conference = conference
|
||||
series = series
|
||||
|
||||
author_name = author name
|
||||
missing_author = missing author
|
||||
|
||||
person_name = person name
|
||||
missing_person_in_posn = missing person in this position
|
||||
missing_person_in_role = missing person in this role
|
||||
|
||||
scopus_id_link = Scopus ID Link
|
||||
|
||||
click_to_view_web_page = Click to view the {0} web page
|
||||
screenshot_of_webpage = screenshot of webpage {0}
|
||||
click_webpage_icon = click webpage icon
|
||||
link_text = link text
|
||||
link_name = link name
|
||||
no_url_provided = no url provided for link
|
||||
|
||||
#
|
||||
# individual templates ( /templates/freemarker/body/individual )
|
||||
#
|
||||
standard_view = Standard profile view
|
||||
quick_view = Quick profile view
|
||||
quick_view_icon = quick view icon
|
||||
geographic_focus = Geographic Focus
|
||||
|
||||
background_top_image = background top image
|
||||
full_view_icon = full view icon
|
||||
profile_type = Profile Type
|
||||
#
|
||||
# body templates ( /templates/freemarker/body/ )
|
||||
#
|
||||
export_qr_code = Export QR code
|
||||
more_qr_info = More info on QR codes
|
||||
what_is_this = What is this?
|
||||
view_this_profile = View this person's profile
|
||||
vcard = Vcard
|
||||
hyperlink = Hyperlink
|
||||
|
||||
#
|
||||
# harvester templates ( /templates/freemarker/body/harvester )
|
||||
#
|
||||
must_be_admin = You must be an administrator to use this tool.
|
||||
error_no_job_specified = Error: No file harvest job was specified, or an unknown job was specified.
|
||||
probably_a_bug_so_report = The end user should not see this error under normal circumstances, so this is probably a bug and should be reported.
|
||||
return_to_ingest_menu = Return to the Data Ingest Tools menu
|
||||
ingest_menu = Ingest Menu
|
||||
data_being_harvested = Please wait while your data is harvested.
|
||||
harvest_complete = Harvest complete. For another, please refresh the page.
|
||||
error_harvest_cannot_continue = An error has occurred and the file harvest cannot continue.
|
||||
harvest_error_instructions_one = This is most likely due to an improper Harvester configuration. Please ensure the following:
|
||||
harvest_error_instructions_two = VIVO Harvester is installed.
|
||||
the_capitalized = The
|
||||
harvester_location = harvester.location
|
||||
harvest_error_instructions_three = property in runtime.properties is pointed to the Harvester installation directory.
|
||||
harvest_error_instructions_fourA = In VIVO Harvester, the web server user (typically tomcat6) has read and write access to the
|
||||
harvest_error_instructions_fourB = vivo/
|
||||
harvest_error_instructions_fourC = directory and all of its children.
|
||||
harvest_error_instructions_fiveA = In VIVO Harvester, the
|
||||
harvest_error_instructions_fiveB = logs/
|
||||
harvest_error_instructions_fiveC = directory exists and the web server user has read and write access to it.
|
||||
harvest_error_instructions_sixA = In VIVO Harvester, the file
|
||||
harvest_error_instructions_sixB = vivo/config/vivo.xml
|
||||
harvest_error_instructions_sixC = is properly configured with your database information and namespace.
|
||||
step_one = Step 1
|
||||
download_template = Download template
|
||||
download = Download
|
||||
step_two = Step 2
|
||||
fill_in_data = Fill in data
|
||||
help_capitalized = Help
|
||||
fill_in_template_with_data = Fill in the template with your data. You may fill in multiple templates if you wish to harvest multiple files at once.
|
||||
step_three = Step 3
|
||||
upload_files = Upload file(s)
|
||||
upload_completed_templates = Upload your completed template(s).
|
||||
upload_capitalized = Upload
|
||||
uploaded_files = Uploaded files
|
||||
step_four = Step 4
|
||||
harvest_capitalized = Harvest
|
||||
click_to_harvest = Click the button to harvest your file(s).
|
||||
step_five = Step 5
|
||||
view_results = View results
|
||||
script_executed = Script being executed
|
||||
progress_capitalized = Progress
|
||||
undefined_runtime_property = property in runtime.properties is undefined.
|
||||
define_value_for_property = In order to use this feature, please define a value for this property that points to the Harvester installation directory before redeploying and restarting the application.
|
||||
|
||||
#
|
||||
# lib templates ( /templates/freemarker/body/lib )
|
||||
#
|
||||
faculty_capitalized = Faculty
|
||||
loading_faculty = Loading faculty . . .
|
||||
research_capitalized = Research
|
||||
view_all = View all ...
|
||||
view_all_research = view all research
|
||||
no_research_content_found = No research content found.
|
||||
departments = Departments
|
||||
loading_map_information = Loading map information . . .
|
||||
verify_match_capitalized = Verify this match
|
||||
|
||||
#
|
||||
# custom form templates ( /templates/freemarker/edit/forms )
|
||||
#
|
||||
manage_concepts = Manage Concepts
|
||||
no_concepts_specified = There are currently no concepts specified.
|
||||
return_to_profile = Return to Profile Page
|
||||
external_vocabulary_services = External Vocabulary Services
|
||||
create_own_concept = Select or create a VIVO-defined concept.
|
||||
add_selected_concept = Add Selected Concept
|
||||
cannot_find_concept = Can't find the concept you want? Select or create a VIVO-defined concept.
|
||||
add_concept = Add Concept
|
||||
|
||||
event_type = event type
|
||||
attended = attended
|
||||
|
||||
manage_authors = Manage Authors
|
||||
no_linked_author = no linked author
|
||||
remove_author_link = remove author link
|
||||
add_author = Add Author
|
||||
return_to_publication = Return to publication
|
||||
add_an_author = Add an Author
|
||||
person_capitalized = Person
|
||||
organization_capitalized = Organization
|
||||
middle_name = Middle name
|
||||
initial_okay = initial okay
|
||||
selected_author = Selected Author
|
||||
organization_name_capitalized = Organization name
|
||||
selected_organization = Selected Organization
|
||||
|
||||
clinical_activity = clinical activity
|
||||
clinical_activity_type = clinical activity type
|
||||
year_hint_format = YYYY
|
||||
|
||||
collection_series_editor_role = collection or series editor role
|
||||
editor_role_in = editor role in
|
||||
|
||||
edit_wbpage_of = Edit webpage of
|
||||
add_webpage_for = Add webpage for
|
||||
add_webpage = Add Web Page
|
||||
url_type = URL Type
|
||||
faculty_of_1000 = Faculty of 1000 Link
|
||||
standard_web_link = Standard Web Link
|
||||
webpage_name = Webpage Name
|
||||
|
||||
investigator_entry_for = investigator entry for
|
||||
investigator_capitalized = Investigator
|
||||
principal_investigator_entry_for = principal investigator entry for
|
||||
co_principal_investigator_entry_for = co-principal investigator entry for
|
||||
start_year_must_precede_end = The Start Year must be earlier than the End Year.
|
||||
end_year_must_be_later = The End Year must be later than the Start Year.
|
||||
enter_or_select_grant = Please enter or select a value in the Grant Name field.
|
||||
selected_grant = Selected Grant
|
||||
years_of_grant_participation = Years of Participation in Grant
|
||||
|
||||
leadership = leadership
|
||||
organization_type = organization type
|
||||
|
||||
membership = membership
|
||||
membership_in = membership in
|
||||
organizations = organizations
|
||||
|
||||
organizer_of = organizer of
|
||||
|
||||
outreach_comm_service = outreach & community service
|
||||
outreach_comm_service_in = outreach & community service in
|
||||
|
||||
select_or_enter_name = Please select an existing value or enter a new value in the Name field.
|
||||
presentation_entry_for = presentation entry for
|
||||
presentation_capitalized = Presentation
|
||||
presentation_type = Presentation Type
|
||||
role_in = Role in
|
||||
presentation_hint = e.g., Moderator, Speaker, Panelist
|
||||
presented_at = Presented At
|
||||
selected_conference = Selected Conference
|
||||
|
||||
select_existing_pub_or_enter_new = Please select an existing publication in the Title field or enter a new one.
|
||||
|
||||
publication_entry_for = publication entry for
|
||||
publication_type = Publication Type
|
||||
selected_publication = Selected Publication
|
||||
published_in = Published in
|
||||
selected_journal = Selected Journal
|
||||
selected_event = Selected Event
|
||||
proceedings_of = Proceedings of
|
||||
editor_capitalized = Editor
|
||||
required_with_last_name = required with new Last name
|
||||
selected_editor = Selected Editor
|
||||
publisher_capitalized = Publisher
|
||||
selected_publisher = Selected Publisher
|
||||
volume_capitalized = Volume
|
||||
number_capitalized = Number
|
||||
issue_capitalized = Issue
|
||||
chapter_capitalized = Chapter
|
||||
start_page = Start Page
|
||||
end_page = End Page
|
||||
selected_book = Selected Book
|
||||
publication_date = Publication Date
|
||||
place_of_publication = Place of Publication
|
||||
|
||||
research_activity = research activity
|
||||
research_activity_type = research activity type
|
||||
|
||||
reviewer_of = reviewer of
|
||||
|
||||
entry_for = entry for
|
||||
specify_role_for_activity = Please specify a role for this activity.
|
||||
start_year = Start Year
|
||||
|
||||
service_to_profession = service to the profession
|
||||
service_to_profession_in = service to the profession in
|
||||
|
||||
teaching_activity = teaching activity
|
||||
teaching_activity_type = teaching activity type
|
||||
teaching_role_hint = e.g., Instructor, Facilitator, Assistant
|
||||
|
||||
create_own_concept_all_caps = Create Your Own Concept
|
||||
concept_capitalized = Concept
|
||||
selected_concept = Selected Concept
|
||||
create_concept = Create Concept
|
||||
return_to_manage_concepts = Return to Manage Concepts
|
||||
|
||||
institutional_internal_class = Institutional Internal Class
|
||||
internal_class_intro_one = This class will be used to designate those individuals internal to your institution.
|
||||
internal_class_intro_two = This will allow you to limit the individuals displayed on your menu pages (People, Research, etc.) to only those within your institution.
|
||||
no_local_oncologies = There are currently no recognized local ontologies.
|
||||
namespace_must_use_this_pattern = In order for a local ontology to be recognized here, its namespace URI must follow this pattern
|
||||
new_local_oncology = a new local ontology
|
||||
return_here_to_define_class = and then return here to define the institutional internal class.
|
||||
select_existing_local_class = Select an existing class from a local extension
|
||||
cannot_find_class = Can't find an appropriate class?
|
||||
create_new_class = Create a new class
|
||||
create_new_one = Create a new one
|
||||
use_capitals_each_word = use capitals for the first letter of each word
|
||||
local_namespace = Local Namespace
|
||||
problematic_section_error = Error: problematic section as above should all have been handled.
|
||||
new_local_ontology = new local ontology
|
||||
|
||||
manage_grants_and_projects = Manage Grants & Projects for
|
||||
check_grants_to_exclude = Check those grants and projects you want to <em>exclude</em> from the profile page.
|
||||
|
||||
manage_affiliated_people = Manage People Affiliated with
|
||||
check_people_to_exclude = Check those people you want to <em>exclude</em> from the profile page.
|
||||
|
||||
manage_publications_for = Manage Publications for
|
||||
check_pubs_to_exclude = Check those publications you want to <em>exclude</em> from the profile page.
|
||||
|
||||
manage_web_pages = Manage Web Pages
|
||||
has_no_webpages = This individual currently has no web pages specified. Add a new web page by clicking on the button below.
|
||||
edit_webpage_link = edit web page link
|
||||
delete_webpage_link = delete web page link
|
||||
webpage_url = webpage url
|
||||
add_new_web_page = Add New Web Page
|
||||
|
||||
enable_internal_class_one = To enable this option, you must first select an
|
||||
enable_internal_class_two = for your instance
|
||||
internal_class = institutional internal class
|
||||
only_display = Only display
|
||||
within_my_institution = within my institution
|
||||
|
||||
enter_a_name = Please enter a value in the Name field.
|
||||
enter_last_name = Please enter a Last name for this person.
|
||||
enter_first_name = Please enter a First name for this person.
|
||||
|
||||
posn_history_entry_for = position history entry for
|
||||
enter_posn_title_value = Please enter a value in the Position Title field.
|
||||
enter_posn_type_value = Please select a value in the Position Type field.
|
||||
enter_or_select_person_value = Please select an existing value or enter a new value in the Person field.
|
||||
position_title = Position Title
|
||||
position_type = Position Type
|
||||
selected_person = Selected Person
|
||||
|
||||
degree_candidacy = Degree Candidacy
|
||||
subject_area = Subject Area
|
||||
selected_subject_area = Selected Subject Area
|
||||
selected_advisee = Selected Advisee
|
||||
selected_advisor = Selected Advisor
|
||||
advisee_capitalized = Advisee
|
||||
advisor_capitalized = Advisor
|
||||
advising_relationship_type = Advising Relationship Type
|
||||
select_advising_relationship_type = Please select an Advising Relationship Type.
|
||||
advisor_relationship_entry_for = advisor relationship entry for
|
||||
advisee_relationship_entry_for = advisee relationship entry for
|
||||
years_participating = Years of Participation
|
||||
|
||||
award_or_honor_for = award or honor for
|
||||
select_Award_or_enter_name = Please select an existing value or enter a new value in the Award or Honor Name field.
|
||||
award_honor_name = Award or Honor Name
|
||||
conferred_by_capitalized = Conferred by
|
||||
selected_conferred = Selected Conferrer
|
||||
description = Description
|
||||
year_awarded = Year Awarded
|
||||
years_inclusive = Years Inclusive
|
||||
award_hint = (e.g., for multi-year awards)
|
||||
|
||||
educational_training_for = educational training entry for
|
||||
select_organization_type = Please select a value in the Organization Type field.
|
||||
select_an_organization_name = Please enter or select a value in the Name field.
|
||||
select_educational_training_value = Please select a value in the Type of Educational Training field.
|
||||
org_type_capitalized = Organization Type
|
||||
educational_training_type = Type of Educational Training
|
||||
dept_or_school_name = Department or School Name within the
|
||||
degree = Degree
|
||||
missing_degree = missing degree
|
||||
major_field = Major Field of Degree
|
||||
supplemental_information = Supplemental Information
|
||||
supplemental_information_hint = (e.g., Thesis title, Transfer info, etc.)
|
||||
academic_studies_or_other = Academic Studies or Other Training
|
||||
|
||||
create_mailing_address = Create Mailing Address
|
||||
mailing_address_for = mailing address for
|
||||
enter_a_country = Please enter a value in the Country field.
|
||||
enter_street_address = Please enter a value in the Street Address field.
|
||||
enter_a_locality = Please enter a value in the City/Locality field.
|
||||
enter_postal_code = Please enter a value in the Postal Code field.
|
||||
country = Country
|
||||
street_address = Street Address
|
||||
city_locality = City/Locality
|
||||
region = State/Province/Region
|
||||
postal_code = Postal Code
|
||||
|
||||
posn_entry_for = position entry for
|
||||
|
||||
#
|
||||
# coauthorship templates ( /templates/freemarker/visualization/coauthorship )
|
||||
#
|
||||
within_last_10_years = within the last 10 years
|
||||
total = total
|
||||
from = from
|
||||
file = file
|
||||
file_capitalized = File
|
||||
view_full_timeline_and_network = View full timeline and co-author network.
|
||||
download_data_as = Download data as
|
||||
unique_coauthors_per_year = Unique Co-Authors per year
|
||||
count_capitalized = Count
|
||||
|
||||
#
|
||||
# copi templates ( /templates/freemarker/visualization/copi )
|
||||
#
|
||||
year_capitalized = Year
|
||||
unique_coinvestigators = Unique co-investigators
|
||||
co_investigator = co-investigator
|
||||
co_investigators = co-investigators
|
||||
unique_coinvestigators_per_year = Unique Co-Investigators per year
|
||||
view_timeline_copi_network = View full timeline and co-investigator network.
|
||||
|
||||
#
|
||||
# entity comparison templates ( /templates/freemarker/visualization/entitycomparison )
|
||||
#
|
||||
parent_organization_of = Parent organization of
|
||||
temporal_graph_drill_up = temporal graph drill up
|
||||
how_to_compare = How do you want to compare?
|
||||
no_view_link = no view link
|
||||
persistent_link_to_visualization = Persistent link to current visualization
|
||||
error_notification = error notification
|
||||
close_me = Close Me
|
||||
what_to_compare = What do you want to compare?
|
||||
organizations_capitalized = Organizations
|
||||
people_capitalized = People
|
||||
organization_hierarchy_note = Note: the organizations or people listed below are only those which are directly beneath {0} in the organization hierarchy. You may 'drill down' to see the organizations or people below a given sub-organization by selecting the chart icon next to a selected sub-organization's name below the graph on the right.
|
||||
save_all_as_csv = Save All as CSV
|
||||
clear_capitalized = Clear
|
||||
clear_all_selected_entities = Clear all selected entities.
|
||||
comparing_capitalized = Comparing
|
||||
of = of
|
||||
institutions_capitalized = Institutions
|
||||
info_based_on_vivo_data = This information is based solely on {0} which have been loaded into the VIVO system.
|
||||
you_have_selected = You have selected
|
||||
of_a_maximum = of a maximum
|
||||
schools = schools
|
||||
legend_capitalized = Legend
|
||||
with_unknown_year = with unknown year
|
||||
with_known_year = with known year
|
||||
from_current_incomplete_year = from current incomplete year
|
||||
|
||||
entity_comp_error_text1 = This organization has neither sub-organizations nor people with
|
||||
entity_comp_error_text2 = in the system.
|
||||
entity_comp_error_text3 = Please visit the full
|
||||
entity_comp_error_text4 = for a more complete overview.
|
||||
profile_page = profile page
|
||||
|
||||
publication = publication
|
||||
published = published
|
||||
publications = publications
|
||||
by_publications = by Publications
|
||||
publications_capitalized = Publications
|
||||
grant = grant
|
||||
granted = granted
|
||||
grants = grants
|
||||
by_grants = by Grants
|
||||
grants_capitalized = Grants
|
||||
activity = activity
|
||||
activities = activities
|
||||
|
||||
#
|
||||
# grant visualization templates ( /templates/freemarker/visualization/grant )
|
||||
#
|
||||
view_all_grants = view all grants
|
||||
view_all_grants_text = View all VIVO grants and corresponding co-investigator network.
|
||||
grant_per_year = Grants per year
|
||||
link = link
|
||||
|
||||
#
|
||||
# map of science templates ( /templates/freemarker/visualization/mapOfScience )
|
||||
#
|
||||
parent_entity = parent entity
|
||||
map_of_science_icon = map of science icon
|
||||
explore_activity = Explore activity
|
||||
explore_capitalized = Explore
|
||||
across_subdisciplines = across 554 scientific subdisciplines
|
||||
compare_organizations = Compare organizations
|
||||
mapped = mapped
|
||||
save_unmapped_publications = Save Unmapped Publications
|
||||
map_of_science_visualization = Map of Science Visualization
|
||||
no_publications_for_this_organization = No publications in the system have been attributed to this organization.
|
||||
please_visit = Please visit the
|
||||
for_complete_overview = for a complete overview.
|
||||
|
||||
#
|
||||
# model constructor templates ( /templates/freemarker/visualization/modelconstructor )
|
||||
#
|
||||
cached_models_regenerated = The following cached models will be regenerated.
|
||||
uri_independent_model = URI Independent Model
|
||||
currently_no_constructed_models = Currently there are no constructed models for use by visualization.
|
||||
|
||||
#
|
||||
# person level templates ( /templates/freemarker/visualization/personlevel)
|
||||
#
|
||||
co_investigator_icon = co-investigator icon
|
||||
co_authorship = co-authorship
|
||||
this_author = this author
|
||||
in_the_vivo_db = in the VIVO database.
|
||||
no_papers_for = Currently there are no papers for
|
||||
publication_s_capitalized = Publication(s)
|
||||
co_author_s_capitalized = Co-author(s)
|
||||
incomplete_data_note1 = Note: This information is based solely on publications that have been loaded into the VIVO system. This may only be a small sample of the person's total work.
|
||||
incomplete_data_note2 = Go to your profile page to enter additional details about your publications.
|
||||
incomplete_data_note3 = Log in to enter additional details about your publications on your profile page.
|
||||
tables_capitalized = Tables
|
||||
publications_per_year = Publications per year
|
||||
|
||||
investigator_name = investigator name
|
||||
co_author_icon = co-author icon
|
||||
currently_no_grants_for = Currently there are no {0} grants for
|
||||
this_investigator = this investigator
|
||||
grant_s_capitalized = Grant(s)
|
||||
co_investigator_s_capitalized = Co-investigator(s)
|
||||
incomplete_grant_data_note1 = Note: This information is based solely on grants that have been loaded into the VIVO system. This may only be a small sample of the person's total work.
|
||||
incomplete_grant_data_note2 = Go to your profile page to enter additional details about your grants.
|
||||
incomplete_grant_data_note3 = Log in to enter additional details about your grants on your profile page.
|
||||
grants_per_year = Grants per year
|
||||
grant_info_for_all_years = The information in the following tables is for all years.
|
||||
grant_sparkline_note = The spark lines shown above reflect grants through the last complete calendar year. These tables, however, show the grant information for all years, based on the information loaded in the VIVO system.
|
||||
|
||||
#
|
||||
# publication templates ( /templates/freemarker/visualization/publication)
|
||||
#
|
||||
numbers_based_on_publications_in_vivo = These numbers are based solely on publications that have been loaded into this VIVO application. If this is your profile, you can enter additional publications below.
|
||||
last_ten_full_years = in the last 10 full years
|
||||
|
||||
last_ten_full = in the last 10 full
|
||||
download_link = download link
|
||||
years = years
|
||||
|
||||
#
|
||||
# miscellaneous visualization templates ( /templates/freemarker/visualization)
|
||||
#
|
||||
visualization_tools = Visualization Tools
|
||||
refresh_cached_vis_models = Refresh Cached Models for Visualization
|
||||
why_needed = Why is it needed?
|
||||
vis_tools_note_one = Large-scale visualizations like the Temporal Graph or the Map of Science involve calculating total counts of publications or of grants for some entity. Since this also means checking through all of its sub-entities, the underlying queries can be both memory-intensive and time-consuming. For a faster user experience, we wish to save the results of these queries for later re-use.
|
||||
vis_caching_process = What's involved in the caching process?
|
||||
vis_tools_note_two = To this end we have devised a caching solution which will retain information about the hierarchy of organizations -- namely, which publications are attributed to which organizations -- by storing the RDF model.
|
||||
vis_tools_note_three = We're currently caching these models in memory. The cache is built (only once) on the first user request after a server restart. Because of this, the same model will be served until the next restart. This means that the data in these models may become stale depending upon when it was last created. This works well enough for now. In future releases we will improve this solution so that models are stored on disk and periodically updated.
|
||||
vis_tools_note_four = The models are refreshed each time the server restarts. Since this is not generally practical on production instances, administrators can instead use the "refresh cache" link above to do this without a restart.
|
||||
|
||||
#
|
||||
# custom form javascript variables ( /templates/freemarker/edit/js)
|
||||
#
|
||||
drag_drop_reorder_authors = Drag and drop to reorder authors
|
||||
reordering_authors_failed = Reordering of authors failed.
|
||||
confirm_author_removal = Are you sure you want to remove this author:
|
||||
error_processing_author_request = Error processing request: author not removed
|
||||
author_capitalized = Author
|
||||
or_add_new_one = or add a new one.
|
||||
|
||||
vocabulary_service_unavailable = An error was encountered in executing this search.
|
||||
no_serch_results_found = No search results were found.
|
||||
label_type = Label (Type)
|
||||
label_altLabels = Label (Alternate Labels)
|
||||
definition_capitalized = Definition
|
||||
best_match = Best Match
|
||||
select_term_from_results = Please select at least one term from the search search results.
|
||||
select_vocabulary_source_to_search = Please select at least one external vocabulary source to search.
|
||||
confirm_term_deletion = Are you sure you want to remove this term?
|
||||
error_term_not_deleted = Error processing request: term not removed
|
||||
|
||||
advising = advising
|
||||
advising_relationship = advising relationship
|
||||
|
||||
select_or_create_organization = Select an existing Organization or create a new one.
|
||||
|
||||
grant_successfully_excluded = The item has been successfully excluded from the profile page.
|
||||
error_excluding_grant = Error processing request: the item cannot be excluded from the profile page.
|
||||
|
||||
person_successfully_excluded = The person has been successfully excluded from the organization page.
|
||||
error_excluding_person = Error processing request: the person cannot be excluded from the organization page.
|
||||
|
||||
publication_successfully_excluded = The publication will has been successfully excluded from the profile page.
|
||||
error_excluding_publication = Error processing request: the publication cannot be excluded from the profile page.
|
||||
|
||||
drag_drop_to_reorder_webpages = Drag and drop to reorder web pages
|
||||
webpage_reordering_failed = Reordering of web pages failed.
|
||||
confirm_webpage_deletion = Are you sure you want to remove this web page?
|
||||
error_removing_webpage = Error processing request: web page not removed.
|
||||
|
||||
#
|
||||
# miscellaneous javascript variables ( productMods/js)
|
||||
#
|
||||
researcher = researcher
|
||||
|
||||
#
|
||||
# individual javascript variables ( productMods/js/individual)
|
||||
#
|
||||
error_processing_type_change = Error processing request: the unchecked labels could not be deleted.
|
||||
|
||||
#
|
||||
# visualization javascript variables ( productMods/js/visualization)
|
||||
#
|
||||
publications_with = Publications with
|
||||
|
||||
co_investigators_capitalized = Co-investigators
|
||||
grants_with = Grants with
|
||||
|
||||
vis_first_link = First
|
||||
vis_last_link = Last
|
||||
vis_previous_link = Prev
|
||||
vis_next_link = Next
|
||||
|
||||
max_entity_note = A Maximum 10 entities can be compared. Please remove some & try again.
|
||||
organizations_and_people = Organizations and People
|
||||
loading_data_for = Loading data for
|
||||
data_for = Data for
|
||||
refreshing_data_message = is now being refreshed. The visualization will load as soon as we are done computing, or you can search or browse other data in VIVO and come back in a few minutes.
|
||||
disclaimer_text_one = This information is based solely on
|
||||
disclaimer_text_two = which have been loaded into the VIVO system as of
|
||||
level_undefined_error = ENTITY LEVEL UNDEFINED ERROR
|
||||
|
||||
total_number_of = Total Number of
|
||||
number_of = Number of
|
||||
have_an_unknown = have an unknown
|
||||
year_not_chartered = year (not charted above)
|
||||
in_completed_year = in a completed year
|
||||
were = were
|
||||
in_current_incomplete_year = in the current incomplete year (not charted above)
|
||||
publication_count = Publication Count
|
||||
grant_count = Grant Count
|
||||
entity_type = Entity Type
|
||||
entity_label = Entity Label
|
||||
no_matching_entities_found = No matching entities found
|
||||
clear_search_query = clear search query
|
||||
short_max_entity_note = A Maximum of 10 entities can be compared.
|
||||
information_capitalized = Information
|
||||
content_requires_flash = This content requires the Adobe Flash Player.
|
||||
get_flash = Get Flash
|
||||
of_pubs = of pubs.
|
||||
max_nbr_for_comp = The maximum number of items for comparison is 3.
|
||||
no_matching_science_areas = No matching science areas found
|
||||
|
||||
subdisciplines = Subdisciplines
|
||||
disciplines = Disciplines
|
||||
science_area_level = Level of Science Area
|
||||
of_activity = of activity
|
||||
|
||||
drill_down = drill down
|
||||
|
||||
disciplines_lower = disciplines
|
||||
subdisciplines_lower = subdisciplines
|
||||
show_discipline_labels = Show discipline labels
|
||||
|
||||
no_attributed_publications = No publications in the system have been attributed to this
|
||||
none_of_the = None of the
|
||||
publications_attributed_to = publications attributed to this
|
||||
been_science_located = have been "science-located."
|
||||
publication_attributed_to = The publication attributed to this
|
||||
not_science_located = has not been "science-located."
|
||||
no_journal_information = have no journal information.
|
||||
no_matching_map_location = could not be matched with a map location using their journal information.
|
||||
|
||||
map_being_refreshed_msg = is now being refreshed. The visualization will load as soon as we are done computing, or you can search or browse other data in VIVO and come back in a few minutes.
|
||||
|
||||
publication_pubs = publications (pubs.)
|
||||
percent_activity = % activity
|
||||
|
||||
#
|
||||
# miscellaneous additions
|
||||
#
|
||||
|
||||
standardview_tooltip_one = Click to display the
|
||||
standardview_tooltip_two = profile quick view.
|
||||
research_area_tooltip_one = Click an area to view others
|
||||
research_area_tooltip_two = with the same interest.
|
||||
quickview_tooltip = Click to view the standard profile page.
|
||||
global_research = Global Research
|
||||
country_wide_research = Country-wide Research
|
||||
local_research = Local Research
|
||||
selected_presentation = Selected Presentation
|
||||
event_capitalized = Event
|
||||
item_capitalized = Item
|
||||
telephone_number_for = telephone number for
|
||||
telephone_number = Telephone Number
|
||||
enter_telephone_number = Please enter a value in the Telephone Number field.
|
||||
email_address_for = email address for
|
||||
enter_email_address = Please enter a value in the Email Address field.
|
||||
full_name_for = full name for
|
||||
title_not_found = Title not found.
|
||||
speeches_capitalized = Speeches
|
||||
theses_capitalized = Theses
|
||||
select_document_type = Please select a value in the Document Type field.
|
||||
select_a_document_name = Please enter or select a value in the Document Name field.
|
||||
document_type_capitalized = Document Type
|
||||
document_name_capitalized = Document Name
|
||||
selected_document = Selected Document
|
||||
editor_name = editor name
|
||||
missing_editor = missing editor
|
||||
drag_drop_reorder_editors = Drag and drop to reorder editors
|
||||
reordering_editors_failed = Reordering of editors failed.
|
||||
confirm_editor_removal = Are you sure you want to remove this editor:
|
||||
error_processing_editor_request = Error processing request: editor not removed
|
||||
manage_editors = Manage Editors
|
||||
no_linked_editor = no linked editor
|
||||
remove_editor_link = remove editor link
|
||||
add_an_editor = Add an Editor
|
||||
add_editor = Add Editor
|
||||
please_select_type = Please select a type from the drop-down list.
|
||||
preferred_title = Preferred Title
|
||||
preferred_title_for = preferred title for
|
||||
enter_preferred_title = Please enter a value in the Preferred Title field.
|
||||
fax_number_for = fax number for
|
||||
fax_number = Fax Number
|
||||
enter_fax_number = Please enter a value in the Fax Number field.
|
||||
credentials = credentials
|
||||
select_credential_or_enter_name = Please enter or select a value in the Credential Name field.
|
||||
type_of_credential = Type of Credential
|
||||
credential_name = Credential Name
|
||||
selected_credential = Selected Credential
|
||||
year_issued = Year Issued
|
||||
year_awarded_for = year awarded for
|
||||
create_year_awarded = Create year awarded
|
||||
edit_year_awarded = Edit year awarded
|
||||
publication_date_for = publication date for
|
||||
create_publication_date = Create publication date
|
||||
edit_publication_date = Edit publication date
|
||||
name_prefix = Name Prefix
|
||||
name_suffix = Name Suffix
|
||||
administering_organization_for = administering organization for
|
||||
missing_credential = missing credential
|
||||
grant_administered_by = grant being administered by
|
||||
missing_grant = missing grant
|
||||
editor_of_entry = editor of entry for
|
||||
role_type = Role type
|
||||
researcher_role = Researcher Role
|
||||
search_service_btn = Search Service
|
||||
through_today = Publications through today's date
|
||||
doi_link=Digital Object Identifier (DOI)
|
||||
|
||||
using_cache_time=Using information cached at
|
||||
|
||||
#
|
||||
#New Entries for i18n purposes
|
||||
#
|
||||
edit_entry_for_head_role=: Edit this "head of" role
|
||||
edit_entry_for_member_role=: Edit this membership
|
||||
edit_entry_for_clinical_role=: Edit this clinical activity
|
||||
edit_entry_for_attendee_role=: Edit this participation
|
||||
edit_entry_for_organizer_role=: Edit this organizer role
|
||||
edit_entry_for_editor_role=: Edit this editor role
|
||||
edit_entry_for_service_provider_role=: Edit this service provider role
|
||||
edit_entry_for_outreach_provider_role=: Edit this outreach provider role
|
||||
edit_entry_for_researcher_role=: Edit this researcher role
|
||||
edit_entry_for_reviewer_role=: Edit this reviewer role
|
||||
edit_entry_for_teacher_role=: Edit this teaching role
|
||||
|
||||
create_entry_for_head_role=: Add a new "head of" role
|
||||
create_entry_for_member_role=: Add a new membership
|
||||
create_entry_for_clinical_role=: Add a new clinical activity
|
||||
create_entry_for_attendee_role=: Add a new participation
|
||||
create_entry_for_organizer_role=: Add a new Organizer role
|
||||
create_entry_for_editor_role=: Add a new editor role
|
||||
create_entry_for_service_provider_role=: Add a new service provider role
|
||||
create_entry_for_outreach_provider_role=: Add a new outreach provider role
|
||||
create_entry_for_researcher_role=: Add a new researcher role
|
||||
create_entry_for_reviewer_role=: Add a new reviewer role
|
||||
create_entry_for_teacher_role=: Add a new teaching role
|
||||
|
||||
|
||||
save_changes=Save
|
||||
start_capitalized = Start
|
||||
end_capitalized = End
|
||||
institution_name=Name of Institution
|
||||
role_in_institution=Role in Institution
|
||||
presentation_name_capitalized=Title of Presentation
|
||||
role_in_presentation_capitalized=Role in Presentation
|
||||
advisee_capitalized_first_name=First Name
|
||||
advisee_capitalized_lastname=Last Name
|
||||
|
||||
add_orcid_id=Add an iD
|
||||
|
||||
orcid_title_add = Do you want to add an ORCID iD?
|
||||
orcid_step1_add = Step 1: Adding your ORCID iD
|
||||
orcid_title_confirm = Do you want to add an ORCID iD?
|
||||
orcid_step1_confirm = Step 1: Adding your ORCID iD
|
||||
|
||||
orcid_step1_description = <ul><li>VIVO redirects you to ORCID's web site.</li> \
|
||||
<li>You log in to your ORCID account. <ul class="inner"><li>If you don't have an account, you can create one.</li></ul></li> \
|
||||
<li>You tell ORCID that VIVO may read your ORCID record. (one-time permission)</li> \
|
||||
<li>VIVO reads your ORCID record.</li> \
|
||||
<li>VIVO notes that your ORCID iD is confirmed.</li></ul>
|
||||
|
||||
orcid_step1_denied = <p>You denied VIVO's request to read your ORCID record.</p> \
|
||||
<p>Confirmation can't continue.</p>
|
||||
|
||||
orcid_step1_failed = <p>VIVO failed to read your ORCID record.</p> \
|
||||
<p>Confirmation can't continue.</p>
|
||||
|
||||
orcid_step1_confirmed = <p>Your ORCID iD is confirmed as {0}</p>
|
||||
|
||||
orcid_step2_heading = Step 2 (recommended): Linking your ORCID record to VIVO
|
||||
|
||||
orcid_step2_description = <ul><li>VIVO redirects you to ORCID's web site</li> \
|
||||
<li>You tell ORCID that VIVO may add an "external ID" to your ORCID record. (one-time permission)</li> \
|
||||
<li>VIVO adds the external ID.</li></ul>
|
||||
|
||||
orcid_step2_already_present = <p>Your ORCID record already includes a link to VIVO.</p>
|
||||
|
||||
orcid_step2_denied = <p>You denied VIVO's request to add an External ID to your ORCID record.</p> \
|
||||
<p>Linking can't continue.</p>
|
||||
|
||||
orcid_step2_failed = <p>VIVO failed to add an External ID to your ORCID record.</p> \
|
||||
<p>Linking can't continue.</p>
|
||||
|
||||
orcid_step2_added = <p>Your ORCID record is linked to VIVO</p>
|
||||
|
||||
orcid_button_step1 = Continue Step 1
|
||||
orcid_button_step2 = Continue Step 2
|
||||
|
||||
orcid_step_completed = (step completed)
|
||||
orcid_view_orcid_record = View your ORCID record.
|
||||
orcid_return_to_vivo = Return to your VIVO profile page
|
||||
|
||||
# Messages for creating and linking resources (publications)
|
||||
create_and_link_enter=Enter {0}:
|
||||
create_and_link_claim_for=Claiming works for<br />{0}
|
||||
create_and_link_confirm_works=Confirm your work(s)
|
||||
create_and_link_confirm_works_intro=Please check that these are the work(s) that you wish to claim, and indicate your relationship with them.
|
||||
create_and_link_authors=Authors
|
||||
create_and_link_authors_desc=If you are an author of a work, please select your name in the author list.<br />Retrieved metadata may be incomplete. If you can not see your name listed, select "Unlisted Author".
|
||||
create_and_link_editors=Editors
|
||||
create_and_link_editors_desc=If you edited the work, please select "Editor".
|
||||
create_and_link_not_mine_desc=If you do not wish to claim a work, select "This is not my work".
|
||||
create_and_link_already_claimed=You have already claimed this work.
|
||||
create_and_link_unlisted_author=Unlisted Author
|
||||
create_and_link_editor=Editor
|
||||
create_and_link_not_mine=This is not my work
|
||||
create_and_link_remaining=There are {0} ids remaining
|
||||
create_and_link_thank_you=Thank you
|
||||
create_and_link_finished=There are no more works left to claim.<br />You may enter more IDs below, or view your profile.
|
||||
create_and_link_go_profile=Go to profile
|
||||
create_and_link_enter_dois_intro=You may enter one or more DOIs to match, and can be entered either as an ID or URL:<br /><br />e.g.
|
||||
create_and_link_enter_dois_supported=Currently, DOIs issued by Crossref, DataCite and mEDRA are supported.<br />Each DOI should be separated by a comma or new line.
|
||||
create_and_link_enter_pmid_intro=You may enter one or more PubMed IDs to match. Each ID should be separated by a comma or new line.
|
||||
create_and_link_enter_pmid_supported=Note that metadata will be retrieved from Crossref, if the PubMed ID can be resolved to a DOI.
|
||||
create_and_link_unknown_profile=Unknown Profile
|
||||
create_and_link_unknown_resource=Unknown Resource Type
|
||||
create_and_link_unauthorized_for_profile=You do not have permissions to claim for this user
|
||||
create_and_link_submit_ids=Submit IDs
|
||||
create_and_link_submit_confirm=Confirm
|
||||
create_and_link_error=Unable to retrieve citation details
|
||||
create_and_link_type_article=Article
|
||||
create_and_link_type_article_journal=Journal Article
|
||||
create_and_link_type_book=Book
|
||||
create_and_link_type_chapter=Chapter
|
||||
create_and_link_type_dataset=Dataset
|
||||
create_and_link_type_figure=Image
|
||||
create_and_link_type_graphic=Image
|
||||
create_and_link_type_legal_case=Legal Case
|
||||
create_and_link_type_legislation=Legislation
|
||||
create_and_link_type_manuscript=Manuscript
|
||||
create_and_link_type_map=Map
|
||||
create_and_link_type_musical_score=Musical Score
|
||||
create_and_link_type_paper_conference=Conference Paper
|
||||
create_and_link_type_patent=Patent
|
||||
create_and_link_type_personal_communication=Letter
|
||||
create_and_link_type_post_weblog=Blog
|
||||
create_and_link_type_report=Report
|
||||
create_and_link_type_review=Review
|
||||
create_and_link_type_speech=Speech
|
||||
create_and_link_type_thesis=Thesis
|
||||
create_and_link_type_webpage=Webpage
|
||||
claim_publications_by=Claim publications by
|
||||
claim_publications_by_doi=DOI
|
||||
claim_publications_by_pmid=PubMed ID
|
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.6 KiB |
|
@ -64,7 +64,7 @@ $(document).ready(function(){
|
|||
}
|
||||
vcard += "END:VCARD";
|
||||
|
||||
spanStr = "<a title='${i18n().export_qr_codes}' href='"
|
||||
spanStr = "<a title='${i18n().export_qr_codes?js_string}' href='"
|
||||
+ exportQrCodeUrl + "'>"
|
||||
+ "<img id='codeImage' src='https://chart.googleapis.com/chart?cht=qr&chs=125x125&chl="
|
||||
+ vcard
|
||||
|
|
|
@ -26,6 +26,22 @@ var demos = [[
|
|||
if (!console) var console = {
|
||||
log : function() {}
|
||||
};
|
||||
if (typeof i18nStringsCap == 'undefined')
|
||||
{
|
||||
var i18nStringsCap = {
|
||||
term: 'Term',
|
||||
group: 'Group',
|
||||
pause: 'pause',
|
||||
resume: 'resume',
|
||||
reset: 'Reset',
|
||||
show_group_labels: 'show group labels',
|
||||
hide_group_labels: 'hide group labels',
|
||||
delete_selected: 'delete selected',
|
||||
remove_capability: 'Remove capability',
|
||||
remove_group: 'Remove group',
|
||||
expand: 'Expand'
|
||||
}
|
||||
};
|
||||
var schemes = {
|
||||
"white" : {
|
||||
"backgroundcolor" : "#FFFFFF",
|
||||
|
@ -395,7 +411,7 @@ DetailsPanel.prototype.showDetails = function(mode, id) {
|
|||
if (mode != "group") {
|
||||
$(this.panel)
|
||||
.empty()
|
||||
.append(title = $("<h2>Term: " + decodeURIComponent(id) + "</h2>")
|
||||
.append(title = $("<h2>" + i18nStringsCap.term + ": " + decodeURIComponent(id) + "</h2>")
|
||||
.bind("click", function() {
|
||||
highlight(id);
|
||||
detailsPane.showDetails(mode, id);
|
||||
|
@ -403,7 +419,7 @@ DetailsPanel.prototype.showDetails = function(mode, id) {
|
|||
.css("cursor", "pointer")
|
||||
.prepend($("<span/>").addClass("orange-square"))
|
||||
)
|
||||
.append($("<button>Remove capability</button>")
|
||||
.append($("<button>" + i18nStringsCap.remove_capability + "</button>")
|
||||
.bind("click", function() {
|
||||
g.removeCapability(id);
|
||||
that.clearDetails();
|
||||
|
@ -411,7 +427,7 @@ DetailsPanel.prototype.showDetails = function(mode, id) {
|
|||
})
|
||||
)
|
||||
.append($("<span> </span>"))
|
||||
.append($("<button>Expand</button>")
|
||||
.append($("<button>" + i18nStringsCap.expand + "</button>")
|
||||
.bind("click", function() {
|
||||
expandLastQuery = 1;
|
||||
addKwd(decodeURIComponent(id));
|
||||
|
@ -454,7 +470,7 @@ DetailsPanel.prototype.groupInfo = function(i, group, mode, id) {
|
|||
});
|
||||
return $("<div/>")
|
||||
.append(
|
||||
$("<h2>" + "Group: " + group.capabilities.map(function(c) {
|
||||
$("<h2>" + i18nStringsCap.group + ": " + group.capabilities.map(function(c) {
|
||||
return decodeURIComponent(c.term);
|
||||
}).join(", ") + "</h2>")
|
||||
.bind("click", function() {
|
||||
|
@ -464,7 +480,7 @@ DetailsPanel.prototype.groupInfo = function(i, group, mode, id) {
|
|||
.css("cursor", "pointer")
|
||||
.prepend($("<span/>").addClass("blue-circle"))
|
||||
)
|
||||
.append($("<button>Remove group</button>")
|
||||
.append($("<button>" + i18nStringsCap.remove_group + "</button>")
|
||||
.bind("click", function() {
|
||||
g.removeGroup(group);
|
||||
that.clearDetails();
|
||||
|
@ -615,12 +631,12 @@ var ipretResults = function(results) {
|
|||
var disableSubButton = function() {
|
||||
subButton.disabled = true;
|
||||
$("#sExpand").attr("disabled", true);
|
||||
$("#resetButton").val("Stop");
|
||||
$("#resetButton").val(i18nStringsCap.pause);
|
||||
}
|
||||
var enableSubButton = function() {
|
||||
subButton.disabled = false;
|
||||
$("#sExpand").attr("disabled", false);
|
||||
$("#resetButton").val("Reset");
|
||||
$("#resetButton").val(i18nStringsCap.reset);
|
||||
}
|
||||
var getLinkColor = function() {
|
||||
var linkColor = $("#linkColor").val();
|
||||
|
@ -807,7 +823,7 @@ var render = function() {
|
|||
|
||||
}
|
||||
force.on("tick", function() {
|
||||
$("#log button:first-child").html("pause");
|
||||
$("#log button:first-child").html(i18nStringsCap.pause);
|
||||
force2.start();
|
||||
node.call(updateNode);
|
||||
anchorNode.each(function(d, i) {
|
||||
|
@ -832,30 +848,30 @@ var render = function() {
|
|||
});
|
||||
|
||||
// refresh UI
|
||||
$("#log").empty().append($("<button>pause</button>")
|
||||
$("#log").empty().append($("<button>" + i18nStringsCap.pause + "</button>")
|
||||
.bind("click", function() {
|
||||
if ($(this).html() != "resume") {
|
||||
$(this).html("resume");
|
||||
if ($(this).html() != i18nStringsCap.resume) {
|
||||
$(this).html(i18nStringsCap.resume);
|
||||
force.stop();
|
||||
force2.stop();
|
||||
} else {
|
||||
$(this).html("pause");
|
||||
$(this).html(i18nStringsCap.pause);
|
||||
force.resume();
|
||||
force2.resume();
|
||||
}
|
||||
})
|
||||
).append(" ").append($("<button>hide group labels</button>")
|
||||
).append(" ").append($("<button>" + i18nStringsCap.hide_group_labels + "</button>")
|
||||
.bind("click", function() {
|
||||
if ($(this).html() != "show group labels") {
|
||||
$(this).html("show group labels");
|
||||
if ($(this).html() != i18nStringsCap.show_group_labels) {
|
||||
$(this).html(i18nStringsCap.show_group_labels);
|
||||
$(".label-group").css("visibility", "hidden");
|
||||
} else {
|
||||
$(this).html("hide group labels");
|
||||
$(this).html(i18nStringsCap.hide_group_labels);
|
||||
$(".label-group").css("visibility", "visible");
|
||||
}
|
||||
})
|
||||
);
|
||||
$("#log_printout").empty().append($("<button>Delete selected</button>").bind("click", function() {
|
||||
$("#log_printout").empty().append($("<button>" + i18nStringsCap.delete_selected + "</button>").bind("click", function() {
|
||||
$("input[type=checkbox]:checked").each(function() {
|
||||
g.removeCapability($(this).attr("name"));
|
||||
$(this).parent().remove();
|
||||
|
|
|
@ -1069,7 +1069,7 @@ function prepareTableForDataTablePagination(jsonData, dataTableParams){
|
|||
|
||||
// console.log(processJSONData.currentEntityLevel);
|
||||
|
||||
if (processJSONData.currentEntityLevel.toUpperCase() === "ORGANIZATIONS AND PEOPLE") {
|
||||
if (processJSONData.currentEntityLevel === i18nStringsGuiEvents.organizationsAndPeople) {
|
||||
$.fn.dataTableExt.afnFiltering.push(DatatableCustomFilters.peopleOrOrganizations);
|
||||
}
|
||||
|
||||
|
@ -1193,7 +1193,7 @@ function prepareTableForDataTablePagination(jsonData, dataTableParams){
|
|||
*/
|
||||
function reloadDataTablePagination(preselectedEntityURIs, jsonData){
|
||||
|
||||
if (processJSONData.currentEntityLevel.toUpperCase() === "ORGANIZATIONS AND PEOPLE") {
|
||||
if (processJSONData.currentEntityLevel === i18nStringsGuiEvents.organizationsAndPeople) {
|
||||
|
||||
/*
|
||||
* This will make sure that duplicate filters are not added.
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
<#-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||
|
||||
<#-- Page providing details on how QR codes work -->
|
||||
|
||||
<h2>About QR Codes</h2>
|
||||
|
||||
<h3>What is QR?</h3>
|
||||
|
||||
<p>QR, which stands for <i>Quick Response</i>, is a standard for two-dimensional barcodes that can be read by mobile devices equipped with cameras (such as a smartphone).</p>
|
||||
|
||||
<h3>What kind of data is in a QR code?</h3>
|
||||
|
||||
<p>QR codes can encode many different types of data. The QR code on the profile page of a person in VIVO encodes information about that person in <i>vCard</i> format. This is a sort of digital business card, containing information about the person's name, address, telephone number, email address, and more.</p>
|
||||
|
||||
<p>If you click on a person's QR code in VIVO, you will be taken to the <i>QR Export</i> page for that person. This page contains the vCard QR code seen on the front page, as well as a QR code containing a simple hyperlink to the user's VIVO profile. It also contains an HTML tag for each code, that can be embedded in a web page to display that code on other sites.</p>
|
||||
<#-- todo: make VIVO API? Currently pasting Google API code into export area, this will be static and not change if VIVO data is updated. -->
|
||||
|
||||
<h3>How do I read a QR code?</h3>
|
||||
|
||||
<p>There are apps you can download for the iPhone and Android phones that allow you to use your phone's camera to interact with QR codes placed on objects in the real world.</p>
|
||||
|
||||
<h3>What can I do with a QR code?</h3>
|
||||
|
||||
<p>Anything! For a state-of-the-art business card, put your hyperlink QR code on the back of it. That way anyone with a properly-equipped smartphone can quickly go to your VIVO profile by simply pointing their camera at the code. Or put your vCard QR code on your office door to provide more contact information.</p>
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
function doHarvest() {
|
||||
document.getElementById("harvestButton").disabled = true;
|
||||
document.getElementById("harvestButtonHelpText").innerHTML = "${i18n().data_being_harvested}";
|
||||
document.getElementById("harvestButtonHelpText").innerHTML = "${i18n().data_being_harvested?js_string}";
|
||||
|
||||
var request = createRequest();
|
||||
request.onreadystatechange=function() {
|
||||
|
@ -92,7 +92,7 @@
|
|||
importedItems.appendChild(newLi);
|
||||
}
|
||||
|
||||
document.getElementById("harvestButtonHelpText").innerHTML = "${i18n().harvest_complete}";
|
||||
document.getElementById("harvestButtonHelpText").innerHTML = "${i18n().harvest_complete?js_string}";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
<#else>
|
||||
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>>
|
||||
<#-- Label -->
|
||||
<@p.label individual editable labelCount localesCount/>
|
||||
<@p.label individual editable labelCount localesCount languageCount />
|
||||
</h1>
|
||||
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
|
||||
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
|
||||
|
@ -170,20 +170,20 @@ var profileTypeData = {
|
|||
defaultProfileType: '${profileType!}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
errorProcessingTypeChange: '${i18n().error_processing_type_change}',
|
||||
displayLess: '${i18n().display_less}',
|
||||
displayMoreEllipsis: '${i18n().display_more_ellipsis}',
|
||||
showMoreContent: '${i18n().show_more_content}',
|
||||
verboseTurnOff: '${i18n().verbose_turn_off}',
|
||||
standardviewTooltipOne: '${i18n().standardview_tooltip_one}',
|
||||
standardviewTooltipTwo: '${i18n().standardview_tooltip_two}',
|
||||
researchAreaTooltipOne: '${i18n().research_area_tooltip_one}',
|
||||
researchAreaTooltipTwo: '${i18n().research_area_tooltip_two}'
|
||||
errorProcessingTypeChange: '${i18n().error_processing_type_change?js_string}',
|
||||
displayLess: '${i18n().display_less?js_string}',
|
||||
displayMoreEllipsis: '${i18n().display_more_ellipsis?js_string}',
|
||||
showMoreContent: '${i18n().show_more_content?js_string}',
|
||||
verboseTurnOff: '${i18n().verbose_turn_off?js_string}',
|
||||
standardviewTooltipOne: '${i18n().standardview_tooltip_one?js_string}',
|
||||
standardviewTooltipTwo: '${i18n().standardview_tooltip_two?js_string}',
|
||||
researchAreaTooltipOne: '${i18n().research_area_tooltip_one?js_string}',
|
||||
researchAreaTooltipTwo: '${i18n().research_area_tooltip_two?js_string}'
|
||||
};
|
||||
var i18nStringsUriRdf = {
|
||||
shareProfileUri: '${i18n().share_profile_uri}',
|
||||
viewRDFProfile: '${i18n().view_profile_in_rdf}',
|
||||
closeString: '${i18n().close}'
|
||||
shareProfileUri: '${i18n().share_profile_uri?js_string}',
|
||||
viewRDFProfile: '${i18n().view_profile_in_rdf?js_string}',
|
||||
closeString: '${i18n().close?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@ -209,5 +209,5 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/js/individ
|
|||
'<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
|
||||
|
||||
<script type="text/javascript">
|
||||
i18n_confirmDelete = "${i18n().confirm_delete}";
|
||||
i18n_confirmDelete = "${i18n().confirm_delete?js_string}";
|
||||
</script>
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<div id="photo-wrapper">${individualImage}</div>
|
||||
<h1 itemprop="name" class="vcard foaf-person fn" <#if !editable>style="float:left;border-right:1px solid #A6B1B0;"</#if>>
|
||||
<#-- Label -->
|
||||
<@p.label individual editable labelCount localesCount/>
|
||||
<@p.label individual editable labelCount localesCount languageCount />
|
||||
</h1>
|
||||
<#-- Display preferredTitle if it exists; otherwise mostSpecificTypes -->
|
||||
<#assign title = propertyGroups.pullProperty("http://purl.obolibrary.org/obo/ARG_2000028","http://www.w3.org/2006/vcard/ns#Title")!>
|
||||
|
@ -220,19 +220,19 @@ var profileTypeData = {
|
|||
defaultProfileType: '${profileType!}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
errorProcessingTypeChange: '${i18n().error_processing_type_change}',
|
||||
displayLess: '${i18n().display_less}',
|
||||
displayMoreEllipsis: '${i18n().display_more_ellipsis}',
|
||||
showMoreContent: '${i18n().show_more_content}',
|
||||
verboseTurnOff: '${i18n().verbose_turn_off}',
|
||||
quickviewTooltip: '${i18n().quickview_tooltip}',
|
||||
researchAreaTooltipOne: '${i18n().research_area_tooltip_one}',
|
||||
researchAreaTooltipTwo: '${i18n().research_area_tooltip_two}'
|
||||
errorProcessingTypeChange: '${i18n().error_processing_type_change?js_string}',
|
||||
displayLess: '${i18n().display_less?js_string}',
|
||||
displayMoreEllipsis: '${i18n().display_more_ellipsis?js_string}',
|
||||
showMoreContent: '${i18n().show_more_content?js_string}',
|
||||
verboseTurnOff: '${i18n().verbose_turn_off?js_string}',
|
||||
quickviewTooltip: '${i18n().quickview_tooltip?js_string}',
|
||||
researchAreaTooltipOne: '${i18n().research_area_tooltip_one?js_string}',
|
||||
researchAreaTooltipTwo: '${i18n().research_area_tooltip_two?js_string}'
|
||||
};
|
||||
var i18nStringsUriRdf = {
|
||||
shareProfileUri: '${i18n().share_profile_uri}',
|
||||
viewRDFProfile: '${i18n().view_profile_in_rdf}',
|
||||
closeString: '${i18n().close}'
|
||||
shareProfileUri: '${i18n().share_profile_uri?js_string}',
|
||||
viewRDFProfile: '${i18n().view_profile_in_rdf?js_string}',
|
||||
closeString: '${i18n().close?js_string}'
|
||||
};
|
||||
</script>
|
||||
<#if editable>
|
||||
|
@ -270,5 +270,5 @@ ${scripts.add('<script async type="text/javascript" src="${urls.base}/js/individ
|
|||
'<script async type="text/javascript" src="//cdn.plu.mx/widget-popup.js"></script>')}
|
||||
|
||||
<script type="text/javascript">
|
||||
i18n_confirmDelete = "${i18n().confirm_delete}";
|
||||
i18n_confirmDelete = "${i18n().confirm_delete?js_string}";
|
||||
</script>
|
||||
|
|
|
@ -33,10 +33,10 @@
|
|||
<#include "individual-vitro.ftl">
|
||||
<script>
|
||||
var i18nStrings = {
|
||||
displayLess: '${i18n().display_less}',
|
||||
displayMoreEllipsis: '${i18n().display_more_ellipsis}',
|
||||
showMoreContent: '${i18n().show_more_content}',
|
||||
verboseTurnOff: '${i18n().verbose_turn_off}',
|
||||
displayLess: '${i18n().display_less?js_string}',
|
||||
displayMoreEllipsis: '${i18n().display_more_ellipsis?js_string}',
|
||||
showMoreContent: '${i18n().show_more_content?js_string}',
|
||||
verboseTurnOff: '${i18n().verbose_turn_off?js_string}',
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -28,16 +28,6 @@
|
|||
<input size="30" type="text" id="label" name="label" value="${labelValue}" />
|
||||
</p>
|
||||
</#if>
|
||||
<label for="newLabelLanguage">${i18n().add_label_for_language}</label>
|
||||
<select name="newLabelLanguage" id="newLabelLanguage" >
|
||||
<option value=""<#if !newLabelLanguageValue?has_content> selected="selected"</#if>>${i18n().select_locale}</option>
|
||||
<#if editConfiguration.pageData.selectLocale?has_content>
|
||||
<#assign selectLocale = editConfiguration.pageData.selectLocale />
|
||||
<#list selectLocale as locale>
|
||||
<option value="${locale.code}"<#if newLabelLanguageValue?has_content && locale.code == newLabelLanguageValue> selected="selected"</#if>>${locale.label}</option>
|
||||
</#list>
|
||||
</#if>
|
||||
</select>
|
||||
|
||||
<input type="hidden" name="editKey" id="editKey" value="${editKey}"/>
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ span.completed {
|
|||
<form method="GET" action="${orcidInfo.progressUrl}">
|
||||
<p>
|
||||
<#if continueAppears>
|
||||
<input type="submit" name="submit" value="<#if "START" == orcidInfo.progress>${i18n().orcid_button_step1}<#else>${i18n().orcid_button_step1}</#if>" class="submit"/>
|
||||
<input type="submit" name="submit" value="<#if "START" == orcidInfo.progress>${i18n().orcid_button_step1}<#else>${i18n().orcid_button_step2}</#if>" class="submit"/>
|
||||
or
|
||||
</#if>
|
||||
<a class="cancel" href="${orcidInfo.profilePage}">${i18n().orcid_return_to_vivo}</a>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<#assign coAuthorVisUrl = individual.coAuthorVisUrl()>
|
||||
<#assign mapOfScienceVisUrl = individual.mapOfScienceUrl()>
|
||||
|
||||
<#assign googleJSAPI = "https://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22visualization%22%2C%22version%22%3A%221%22%2C%22packages%22%3A%5B%22imagesparkline%22%5D%7D%5D%7D">
|
||||
<#assign googleJSAPI = "https://www.gstatic.com/charts/loader.js">
|
||||
|
||||
<span id="sparklineHeading">${i18n().publications_in_vivo}</span>
|
||||
|
||||
|
|
|
@ -46,10 +46,10 @@
|
|||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="column conceptLabelInfo">
|
||||
<h4>Concept (Type)</h4>
|
||||
<h4>${i18n().concept_type}</h4>
|
||||
</div>
|
||||
<div class="column conceptVocabSource">
|
||||
<h4>Vocabulary Source</h4>
|
||||
<h4>${i18n().vocabulary_source}</h4>
|
||||
</div>
|
||||
<div class="column conceptRemoval">
|
||||
</div>
|
||||
|
@ -173,19 +173,19 @@ var vocabSpecificDisplay = {};
|
|||
vocabSpecificDisplay["${vocab}"] = "${vocabSpecificDisplay[vocab]}";
|
||||
</#list>
|
||||
var i18nStrings = {
|
||||
vocServiceUnavailable: '${i18n().vocabulary_service_unavailable}',
|
||||
noResultsFound: '${i18n().no_serch_results_found}',
|
||||
defaultLabelTypeString: '${i18n().label_type}',
|
||||
definitionString: '${i18n().definition_capitalized}',
|
||||
bestMatchString: '${i18n().best_match}',
|
||||
selectTermFromResults: '${i18n().select_term_from_results}',
|
||||
selectVocSource: '${i18n().select_vocabulary_source_to_search}',
|
||||
confirmTermDelete: '${i18n().confirm_term_deletion}',
|
||||
errorTernNotRemoved: '${i18n().error_term_not_deleted}',
|
||||
vocServiceUnavailable: '${i18n().vocabulary_service_unavailable?js_string}',
|
||||
noResultsFound: '${i18n().no_serch_results_found?js_string}',
|
||||
defaultLabelTypeString: '${i18n().label_type?js_string}',
|
||||
definitionString: '${i18n().definition_capitalized?js_string}',
|
||||
bestMatchString: '${i18n().best_match?js_string}',
|
||||
selectTermFromResults: '${i18n().select_term_from_results?js_string}',
|
||||
selectVocSource: '${i18n().select_vocabulary_source_to_search?js_string}',
|
||||
confirmTermDelete: '${i18n().confirm_term_deletion?js_string}',
|
||||
errorTernNotRemoved: '${i18n().error_term_not_deleted?js_string}',
|
||||
vocabSpecificLabels: vocabSpecificDisplay,
|
||||
displayMoreEllipsis: '${i18n().display_more_ellipsis}',
|
||||
displayLess: '${i18n().display_less}',
|
||||
showMoreContent: '${i18n().show_more_content}'
|
||||
displayMoreEllipsis: '${i18n().display_more_ellipsis?js_string}',
|
||||
displayLess: '${i18n().display_less?js_string}',
|
||||
showMoreContent: '${i18n().show_more_content?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -185,14 +185,14 @@ var customFormData = {
|
|||
reorderUrl: '${urls.base}/edit/reorder'
|
||||
};
|
||||
var i18nStrings = {
|
||||
authorNameWrapperTitle: '${i18n().drag_drop_reorder_authors}',
|
||||
reorderAuthorsAlert: '${i18n().reordering_authors_failed}',
|
||||
removeAuthorshipMessage: '${i18n().confirm_author_removal}',
|
||||
removeAuthorshipAlert: '${i18n().error_processing_author_request}',
|
||||
authorTypeText: '${i18n().author_capitalized}',
|
||||
organizationTypeText: '${i18n().organization_capitalized}',
|
||||
helpTextSelect: '${i18n().select_an_existing}',
|
||||
helpTextAdd: '${i18n().or_add_new_one}'
|
||||
authorNameWrapperTitle: '${i18n().drag_drop_reorder_authors?js_string}',
|
||||
reorderAuthorsAlert: '${i18n().reordering_authors_failed?js_string}',
|
||||
removeAuthorshipMessage: '${i18n().confirm_author_removal?js_string}',
|
||||
removeAuthorshipAlert: '${i18n().error_processing_author_request?js_string}',
|
||||
authorTypeText: '${i18n().author_capitalized?js_string}',
|
||||
organizationTypeText: '${i18n().organization_capitalized?js_string}',
|
||||
helpTextSelect: '${i18n().select_an_existing?js_string}',
|
||||
helpTextAdd: '${i18n().or_add_new_one?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<p>
|
||||
<input type="submit" id="submit" value="${submitButtonText}" role="button" disabled="disabled"/>
|
||||
|
||||
<span class="or"> or </span>
|
||||
<span class="or"> ${i18n().or} </span>
|
||||
<a title="${i18n().cancel_title}" class="cancel" href="${cancelUrl}">${i18n().cancel_link}</a>
|
||||
</p>
|
||||
</form>
|
||||
|
@ -124,9 +124,9 @@ Also multiple types parameter set to true only if more than one type returned-->
|
|||
baseHref: '${urls.base}/individual?uri='
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectAnExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}'
|
||||
selectAnExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}'
|
||||
};
|
||||
</script>
|
||||
<#--
|
||||
|
|
|
@ -156,13 +156,13 @@ var customFormData = {
|
|||
reorderUrl: '${urls.base}/edit/reorder'
|
||||
};
|
||||
var i18nStrings = {
|
||||
editorNameWrapperTitle: '${i18n().drag_drop_reorder_editors}',
|
||||
reorderEditorsAlert: '${i18n().reordering_editors_failed}',
|
||||
removeEditorshipMessage: '${i18n().confirm_editor_removal}',
|
||||
removeEditorshipAlert: '${i18n().error_processing_editor_request}',
|
||||
editorTypeText: '${i18n().editor_capitalized}',
|
||||
helpTextSelect: '${i18n().select_an_existing}',
|
||||
helpTextAdd: '${i18n().or_add_new_one}'
|
||||
editorNameWrapperTitle: '${i18n().drag_drop_reorder_editors?js_string}',
|
||||
reorderEditorsAlert: '${i18n().reordering_editors_failed?js_string}',
|
||||
removeEditorshipMessage: '${i18n().confirm_editor_removal?js_string}',
|
||||
removeEditorshipAlert: '${i18n().error_processing_editor_request?js_string}',
|
||||
editorTypeText: '${i18n().editor_capitalized?js_string}',
|
||||
helpTextSelect: '${i18n().select_an_existing?js_string}',
|
||||
helpTextAdd: '${i18n().or_add_new_one?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -84,7 +84,6 @@ Set this flag on the input acUriReceiver where you would like this behavior to o
|
|||
<label for="orgType">${i18n().document_type_capitalized} ${requiredHint}</label>
|
||||
<#assign docTypeOpts = editConfiguration.pageData.documentType />
|
||||
<select id="typeSelector" name="documentType" acGroupName="document">
|
||||
<option value="" selected="selected">${i18n().select_one}</option>
|
||||
<#list docTypeOpts?keys as key>
|
||||
<#if documentTypeValue = key>
|
||||
<option value="${key}" selected >${docTypeOpts[key]}</option>
|
||||
|
@ -136,9 +135,9 @@ var customFormData = {
|
|||
subjectName: '${editConfiguration.subjectName}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectAnExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}'
|
||||
selectAnExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}'
|
||||
};
|
||||
|
||||
</script>
|
||||
|
|
|
@ -167,9 +167,9 @@ var customFormData = {
|
|||
flagClearLabelForExisting: '${flagClearLabelForExisting}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectAnExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}'
|
||||
selectAnExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}'
|
||||
};
|
||||
</script>
|
||||
${stylesheets.add('<link rel="stylesheet" href="${urls.base}/js/jquery-ui/css/smoothness/jquery-ui-1.12.1.css" />')}
|
||||
|
|
|
@ -184,9 +184,9 @@ var customFormData = {
|
|||
flagClearLabelForExisting: '${flagClearLabelForExisting}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectAnExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}'
|
||||
selectAnExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -132,7 +132,6 @@ Set this flag on the input acUriReceiver where you would like this behavior to o
|
|||
<#--TODO: Check if possible to have existing publication options here in order to select-->
|
||||
<p class="inline"><label for="typeSelector">${i18n().publication_type}<#if editMode != "edit"> ${requiredHint}<#else>:</#if></label>
|
||||
<select id="typeSelector" name="pubType" acGroupName="publication" >
|
||||
<option value="" <#if (publicationTypeValue?length = 0)>selected="selected"</#if>>${i18n().select_one}</option>
|
||||
<#list pubTypeLiteralOptions?keys as key>
|
||||
<option value="${key}" <#if (publicationTypeValue = key)>selected="selected"</#if>>${pubTypeLiteralOptions[key]}</option>
|
||||
</#list>
|
||||
|
@ -325,9 +324,9 @@ Set this flag on the input acUriReceiver where you would like this behavior to o
|
|||
flagClearLabelForExisting: '${flagClearLabelForExisting}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectAnExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}'
|
||||
selectAnExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -228,9 +228,9 @@ Set this flag on the input acUriReceiver where you would like this behavior to o
|
|||
flagClearLabelForExisting: '${flagClearLabelForExisting}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectAnExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}'
|
||||
selectAnExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -62,9 +62,9 @@ Set this flag on the input acUriReceiver where you would like this behavior to o
|
|||
flagClearLabelForExisting: '${flagClearLabelForExisting}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectAnExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}'
|
||||
selectAnExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -71,9 +71,9 @@ Also multiple types parameter set to true only if more than one type returned-->
|
|||
defaultTypeName: '${propertyPublicName}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}'
|
||||
selectExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
|
||||
<p class="submit">
|
||||
<input type="submit" id="submit" value="${submitLabel}" role="submit" />
|
||||
<span class="or"> or </span>
|
||||
<span class="or"> ${i18n().or} </span>
|
||||
<a class="cancel" title="${i18n().cancel_title}" href="${editConfiguration.cancelUrl}">${i18n().cancel_link}</a>
|
||||
</p>
|
||||
</form>
|
||||
|
|
|
@ -114,9 +114,9 @@ var customFormData = {
|
|||
flagClearLabelForExisting: '${flagClearLabelForExisting}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectAnExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}',
|
||||
selectAnExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}',
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -157,9 +157,9 @@ var customFormData = {
|
|||
subjectName: '${editConfiguration.subjectName}'
|
||||
};
|
||||
var i18nStrings = {
|
||||
selectAnExisting: '${i18n().select_an_existing}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one}',
|
||||
selectedString: '${i18n().selected}'
|
||||
selectAnExisting: '${i18n().select_an_existing?js_string}',
|
||||
orCreateNewOne: '${i18n().or_create_new_one?js_string}',
|
||||
selectedString: '${i18n().selected?js_string}'
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
|
|
|
@ -146,9 +146,9 @@ var publicationToPersonUtils = {
|
|||
// hide everything, then show what's needed based on type
|
||||
// simpler in the event the user changes the type
|
||||
this.hideAllFields();
|
||||
var selectedType = this.typeSelector.find(':selected').text();
|
||||
var selectedType = this.typeSelector.find(':selected').val();
|
||||
|
||||
if ( selectedType == 'Academic Article' ) {
|
||||
if ( selectedType == 'http://purl.org/ontology/bibo/AcademicArticle' ) {
|
||||
// if the user has changed type, keep any relevant values and display the
|
||||
// acSelection as appropriate
|
||||
var ckForVal = this.getAcUriReceiverVal('collection');
|
||||
|
@ -189,7 +189,7 @@ var publicationToPersonUtils = {
|
|||
this.number.val('');
|
||||
this.chapterNbr.val('');
|
||||
}
|
||||
else if ( selectedType == 'Chapter' ) {
|
||||
else if ( selectedType == 'http://purl.org/ontology/bibo/Chapter' ) {
|
||||
// if the user has changed type, keep any relevant values and display the
|
||||
// acSelection as appropriate
|
||||
var ckForVal = this.getAcUriReceiverVal('book');
|
||||
|
@ -233,7 +233,7 @@ var publicationToPersonUtils = {
|
|||
this.startPage.val('');
|
||||
this.endPage.val('');
|
||||
}
|
||||
else if ( selectedType == 'Book' || selectedType == 'Edited Book' ) {
|
||||
else if ( selectedType == 'http://purl.org/ontology/bibo/Book' || selectedType == 'http://purl.org/ontology/bibo/EditedBook' ) {
|
||||
// if the user has changed type, keep any relevant values and display the
|
||||
// acSelection as appropriate
|
||||
var ckForVal = this.getAcUriReceiverVal('editor');
|
||||
|
@ -270,7 +270,7 @@ var publicationToPersonUtils = {
|
|||
this.endPage.val('');
|
||||
this.chapterNbr.val('');
|
||||
}
|
||||
else if ( selectedType == 'Conference Paper' ) {
|
||||
else if ( selectedType == 'http://vivoweb.org/ontology/core#ConferencePaper' ) {
|
||||
// if the user has changed type, keep any relevant values and display the
|
||||
// acSelection as appropriate
|
||||
ckForVal = this.getAcUriReceiverVal('conference');
|
||||
|
@ -310,7 +310,7 @@ var publicationToPersonUtils = {
|
|||
this.endPage.val('');
|
||||
this.chapterNbr.val('');
|
||||
}
|
||||
else if ( selectedType == 'Conference Poster' || selectedType == 'Speech') {
|
||||
else if ( selectedType == 'http://vivoweb.org/ontology/core#ConferencePoster' || selectedType == 'http://vivoweb.org/ontology/core#Speech') {
|
||||
// if the user has changed type, keep any relevant values and display the
|
||||
// acSelection as appropriate
|
||||
var ckForVal = this.getAcUriReceiverVal('conference');
|
||||
|
|
|
@ -48,8 +48,8 @@ var customFormData = {
|
|||
processingUrl: '${urls.base}/edit/primitiveRdfEdit'
|
||||
};
|
||||
var i18nStrings = {
|
||||
itemSuccessfullyExcluded: '${i18n().grant_successfully_excluded}',
|
||||
errorExcludingItem: '${i18n().error_excluding_grant}'
|
||||
itemSuccessfullyExcluded: '${i18n().grant_successfully_excluded?js_string}',
|
||||
errorExcludingItem: '${i18n().error_excluding_grant?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -44,8 +44,8 @@ var customFormData = {
|
|||
processingUrl: '${urls.base}/edit/primitiveRdfEdit'
|
||||
};
|
||||
var i18nStrings = {
|
||||
itemSuccessfullyExcluded: '${i18n().person_successfully_excluded}',
|
||||
errorExcludingItem: '${i18n().error_excluding_person}'
|
||||
itemSuccessfullyExcluded: '${i18n().person_successfully_excluded?js_string}',
|
||||
errorExcludingItem: '${i18n().error_excluding_person?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -61,8 +61,8 @@ var customFormData = {
|
|||
processingUrl: '${urls.base}/edit/primitiveRdfEdit'
|
||||
};
|
||||
var i18nStrings = {
|
||||
itemSuccessfullyExcluded: '${i18n().publication_successfully_excluded}',
|
||||
errorExcludingItem: '${i18n().error_excluding_publication}'
|
||||
itemSuccessfullyExcluded: '${i18n().publication_successfully_excluded?js_string}',
|
||||
errorExcludingItem: '${i18n().error_excluding_publication?js_string}'
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue