From ccf3fd004e462270fe7eb9a711b6c05a69e3c573 Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Fri, 21 Jul 2017 17:55:21 +0100 Subject: [PATCH 01/89] Page speed improvements --- webapp/src/main/webapp/WEB-INF/web.xml | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/webapp/src/main/webapp/WEB-INF/web.xml b/webapp/src/main/webapp/WEB-INF/web.xml index 137bfc37..0b5d97cc 100644 --- a/webapp/src/main/webapp/WEB-INF/web.xml +++ b/webapp/src/main/webapp/WEB-INF/web.xml @@ -156,7 +156,29 @@ /* REQUEST - + + + ExpiresFilter + org.apache.catalina.filters.ExpiresFilter + + ExpiresByType image + access plus 10 minutes + + + ExpiresByType text/css + access plus 10 minutes + + + ExpiresByType application/javascript + access plus 10 minutes + + + + ExpiresFilter + /* + REQUEST + + - + @@ -56,101 +57,49 @@ - + - - Startup Status Display Filter - edu.cornell.mannlib.vitro.webapp.filters.StartupStatusDisplayFilter - Startup Status Display Filter /* - - - Session Timeout Limiting Filter - edu.cornell.mannlib.vitro.webapp.filters.SessionTimeoutLimitingFilter - Session Timeout Limiting Filter /* - - - Character Set Encoding Filter - edu.cornell.mannlib.vitro.webapp.filters.CharsetEncodingFilter - Character Set Encoding Filter /* - - - Override the Locale in the HttpRequest, if appropriate. - Locale selection filter - edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionFilter - Locale selection filter /* - - - Recognize conditional requests, and generate Cache-Control headers. - Caching Response filter - edu.cornell.mannlib.vitro.webapp.filters.CachingResponseFilter - Caching Response filter /* - - - JSession Strip Filter - edu.cornell.mannlib.vitro.webapp.filters.JSessionStripFilter - JSession Strip Filter /* - - - URL Rewriter Filter - edu.cornell.mannlib.vitro.webapp.filters.URLRewriterFilter - URL Rewriter Filter /* - - - RequestModelsPrep - edu.cornell.mannlib.vitro.webapp.filters.RequestModelsPrep - RequestModelsPrep /* REQUEST FORWARD - - - ClickjackFilter - edu.cornell.mannlib.vitro.webapp.filters.ClickjackFilter - ClickjackFilter /* REQUEST FORWARD - - - PageRoutingFilter - edu.cornell.mannlib.vitro.webapp.filters.PageRoutingFilter - PageRoutingFilter /* @@ -179,907 +128,7 @@ REQUEST - - - - - - - ProcessRdfFormController - edu.cornell.mannlib.vitro.webapp.edit.n3editing.controller.ProcessRdfFormController - - - ProcessRdfFormController - /edit/process - - - - EditRequestDispatch - edu.cornell.mannlib.vitro.webapp.edit.n3editing.controller.EditRequestDispatchController - - - EditRequestDispatch - /editRequestDispatch - - - - EditRequestAJAX - edu.cornell.mannlib.vitro.webapp.edit.n3editing.controller.EditRequestAJAXController - - - EditRequestAJAX - /editRequestAJAX - - - - IndexController - edu.cornell.mannlib.vitro.webapp.search.controller.IndexController - - - IndexController - /SearchIndex - - - - SimpleReasonerRecomputeController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.SimpleReasonerRecomputeController - - - SimpleReasonerRecomputeController - /RecomputeInferences - - - - DeletePropertyController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.DeletePropertyController - - - DeletePropertyController - /deletePropertyController - - - - PostEditCleanupController - edu.cornell.mannlib.vitro.webapp.edit.n3editing.controller.PostEditCleanupController - - - PostEditCleanupController - /postEditCleanupController - - - - DeletePageController - edu.cornell.mannlib.vitro.webapp.controller.edit.DeletePageController - - - DeletePageController - /deletePageController - - - - MenuManagementEdit - edu.cornell.mannlib.vitro.webapp.controller.edit.MenuManagementEdit - - - MenuManagementEdit - /menuManagementEdit - - - - InstitutionalInternalClassController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.InstitutionalInternalClassController - - - InstitutionalInternalClassController - /processInstitutionalInternalClass - - - - ajaxSparqlQuery - edu.cornell.mannlib.vitro.webapp.controller.ajax.SparqlQueryAjaxController - - - ajaxSparqlQuery - /ajax/sparqlQuery - - - - AboutController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.AboutController - - - AboutController - /about - - - - FreemarkerTestController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.TestController - - - FreemarkerTestController - /freemarkertest - - - - FreemarkerSamplesController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.SamplesController - - - FreemarkerSamplesController - /freemarkersamples - - - - SiteAdminController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.VIVOSiteAdminController - - - SiteAdminController - /siteAdmin - - - SiteAdminController - /siteAdmin.jsp - - - - StaticPageController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.StaticPageController - - - StaticPageController - /login - - - - RevisionInfoController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.RevisionInfoController - - - RevisionInfoController - /revisionInfo - - - - ImageUploadController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ImageUploadController - - - ImageUploadController - /uploadImages - - - - RDFUploadFormController - edu.cornell.mannlib.vitro.webapp.controller.jena.RDFUploadFormController - - - RDFUploadFormController - /uploadRDFForm - - - - RDFUploadController - edu.cornell.mannlib.vitro.webapp.controller.jena.RDFUploadController - - - RDFUploadController - /uploadRDF - - - - JenaIngestController - edu.cornell.mannlib.vitro.webapp.controller.jena.JenaIngestController - - - JenaIngestController - /ingest - - - - JenaCsv2RdfController - edu.cornell.mannlib.vitro.webapp.controller.jena.JenaCsv2RdfController - - - JenaCsv2RdfController - /csv2rdf - - - - - JenaExportController - edu.cornell.mannlib.vitro.webapp.controller.jena.JenaExportController - - - JenaExportController - /export/* - - - - JenaXMLFileUpload - edu.cornell.mannlib.vitro.webapp.controller.jena.JenaXMLFileUpload - - - JenaXMLFileUpload - /jenaXmlFileUpload/* - - - - JenaAdminServlet - edu.cornell.mannlib.vitro.webapp.controller.jena.JenaAdminActions - - - JenaAdminServlet - /jenaAdmin - - - - DumpRestoreController - edu.cornell.mannlib.vitro.webapp.controller.datatools.dumprestore.DumpRestoreController - - - DumpRestoreController - /dumpRestore/* - - - - EditFrontController - edu.cornell.mannlib.vedit.controller.EditFrontController - - - EditFrontController - /editForm - - - - OperationController - edu.cornell.mannlib.vedit.controller.OperationController - - - OperationController - /doEdit - - - - EntityEditController - edu.cornell.mannlib.vitro.webapp.controller.edit.EntityEditController - - - EntityEditController - /entityEdit - - - - VclassEditController - edu.cornell.mannlib.vitro.webapp.controller.edit.VclassEditController - - - VclassEditController - /vclassEdit - - - - Classes2ClassesOperationController - edu.cornell.mannlib.vitro.webapp.controller.edit.Classes2ClassesOperationController - - - Classes2ClassesOperationController - /classes2ClassesOp - - - - Properties2PropertiesOperationController - edu.cornell.mannlib.vitro.webapp.controller.edit.Properties2PropertiesOperationController - - - Properties2PropertiesOperationController - /props2PropsOp - - - - NamespacePrefixOperationController - edu.cornell.mannlib.vitro.webapp.controller.edit.NamespacePrefixOperationController - - - NamespacePrefixOperationController - /namespacePrefixOp - - - - RefactorOperationController - edu.cornell.mannlib.vitro.webapp.controller.edit.RefactorOperationController - - - RefactorOperationController - /refactorOp - - - - IndividualTypeOperationController - edu.cornell.mannlib.vitro.webapp.controller.edit.IndividualTypeOperationController - - - IndividualTypeOperationController - /individualTypeOp - - - - DatapropEditController - edu.cornell.mannlib.vitro.webapp.controller.edit.DatapropEditController - - - DatapropEditController - /datapropEdit - - - - OntologyEditController - edu.cornell.mannlib.vitro.webapp.controller.edit.OntologyEditController - - - OntologyEditController - /ontologyEdit - - - - PropertyEditController - edu.cornell.mannlib.vitro.webapp.controller.edit.PropertyEditController - - - PropertyEditController - /propertyEdit - - - - EntityRetryController - edu.cornell.mannlib.vitro.webapp.controller.edit.EntityRetryController - - - EntityRetryController - /entity_retry - - - - VclassRetryController - edu.cornell.mannlib.vitro.webapp.controller.edit.VclassRetryController - - - VclassRetryController - /vclass_retry - - - - DatatypeRetryController - edu.cornell.mannlib.vitro.webapp.controller.edit.DatatypeRetryController - - - DatatypeRetryController - /datatype_retry - - - - ListClassGroupsController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ListClassGroupsController - - - ListClassGroupsController - /listGroups - - - - ListPropertyGroupsController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ListPropertyGroupsController - - - ListPropertyGroupsController - /listPropertyGroups - - - - OntologiesListingController - edu.cornell.mannlib.vitro.webapp.controller.edit.listing.OntologiesListingController - - - OntologiesListingController - /listOntologies - - - - NamespacesListingController - edu.cornell.mannlib.vitro.webapp.controller.edit.listing.jena.NamespacesListingController - - - NamespacesListingController - /listNamespaces - - - - RestrictionsListingController - edu.cornell.mannlib.vitro.webapp.controller.edit.listing.jena.RestrictionsListingController - - - RestrictionsListingController - /listRestrictions - - - - RestrictionOperationController - edu.cornell.mannlib.vitro.webapp.controller.edit.RestrictionOperationController - - - RestrictionOperationController - /addRestriction - - - - AccountsAdmin - edu.cornell.mannlib.vitro.webapp.controller.accounts.admin.UserAccountsAdminController - - - AccountsAdmin - /accountsAdmin/* - - - - AccountsAjax - edu.cornell.mannlib.vitro.webapp.controller.accounts.admin.ajax.UserAccountsAjaxController - - - AccountsAjax - /accountsAjax/* - - - - AccountsUser - edu.cornell.mannlib.vitro.webapp.controller.accounts.user.UserAccountsUserController - - - AccountsUser - /accounts/* - - - - ManageProxies - edu.cornell.mannlib.vitro.webapp.controller.accounts.manageproxies.ManageProxiesController - - - ManageProxies - /manageProxies/* - - - - ProxiesAjax - edu.cornell.mannlib.vitro.webapp.controller.accounts.manageproxies.ajax.ManageProxiesAjaxController - - - ProxiesAjax - /proxiesAjax/* - - - - HomePageAjax - edu.cornell.mannlib.vitro.webapp.controller.ajax.HomePageAjaxController - - - HomePageAjax - /homePageAjax - - - - QrCodeAjax - edu.cornell.mannlib.vitro.webapp.controller.ajax.QrCodeAjaxController - - - QrCodeAjax - /qrCodeAjax - - - - ShowAuth - edu.cornell.mannlib.vitro.webapp.controller.admin.ShowAuthController - - - ShowAuth - /admin/showAuth - - - - ShowConfiguration - edu.cornell.mannlib.vitro.webapp.controller.admin.ShowConfiguration - - - ShowConfiguration - /admin/showConfiguration - - - - ShowRDFSources - edu.cornell.mannlib.vitro.webapp.controller.admin.ShowSourcesController - - - ShowRDFSources - /admin/showSources - - - - StartupStatus - edu.cornell.mannlib.vitro.webapp.controller.admin.StartupStatusController - - - StartupStatus - /startupStatus - - - - RestrictLogins - edu.cornell.mannlib.vitro.webapp.controller.admin.RestrictLoginsController - - - RestrictLogins - /admin/restrictLogins - - - - ShowBackgroundThreads - edu.cornell.mannlib.vitro.webapp.controller.admin.ShowBackgroundThreadsController - - - ShowBackgroundThreads - /admin/showThreads - - - - WaitForBackgroundThreads - edu.cornell.mannlib.vitro.webapp.controller.admin.WaitForBackgroundThreadsController - - - WaitForBackgroundThreads - /admin/wait - - - - ListVClassWebappsController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ListVClassWebappsController - - - ListVClassWebappsController - /listVClassWebapps - - - - IndividualsListingController - edu.cornell.mannlib.vitro.webapp.controller.edit.listing.IndividualsListingController - - - IndividualsListingController - /listIndividuals - - - - ManageGrantsForIndividualController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ManageGrantsForIndividualController - - - ManageGrantsForIndividualController - /manageGrants - - - - ViewLabelsServlet - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ViewLabelsServlet - - - ViewLabelsServlet - /viewLabels - - - - ManagePublicationsForIndividualController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ManagePublicationsForIndividualController - - - ManagePublicationsForIndividualController - /managePublications - - - - ManagePeopleForOrganizationController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ManagePeopleForOrganizationController - - - ManagePeopleForOrganizationController - /managePeople - - - - ShowClassHierarchyController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ShowClassHierarchyController - - - ShowClassHierarchyController - /showClassHierarchy - - - - ShowObjectPropertyHierarchyController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ShowObjectPropertyHierarchyController - - - ShowObjectPropertyHierarchyController - /showObjectPropertyHierarchy - - - - ListFauxPropertiesController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ListFauxPropertiesController - - - ListFauxPropertiesController - /listFauxProperties - - - - ShowDataPropertyHierarchyController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ShowDataPropertyHierarchyController - - - ShowDataPropertyHierarchyController - /showDataPropertyHierarchy - - - - ListPropertyWebappsController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ListPropertyWebappsController - - - ListPropertyWebappsController - /listPropertyWebapps - - - - ListDatatypePropertiesController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ListDatatypePropertiesController - - - ListDatatypePropertiesController - /listDatatypeProperties - - - - DataPropertyStatementListingController - edu.cornell.mannlib.vitro.webapp.controller.edit.listing.DataPropertyStatementListingController - - - DataPropertyStatementListingController - /listDataPropertyStatements - - - - ObjectPropertyStatementListingController - edu.cornell.mannlib.vitro.webapp.controller.edit.listing.ObjectPropertyStatementListingController - - - ObjectPropertyStatementListingController - /listObjectPropertyStatements - - - - IndividualListController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.IndividualListController - - - IndividualListController - /individuallist - - - - IndividualListRdf - edu.cornell.mannlib.vitro.webapp.controller.IndividualListRdfController - - - IndividualListRdf - /listrdf/* - - - - SearchController - edu.cornell.mannlib.vitro.webapp.search.controller.PagedSearchController - - - SearchController - /search - - - - SearchHelpController - edu.cornell.mannlib.vitro.webapp.search.controller.SearchHelpController - - - SearchHelpController - /searchHelp - - - - DeveloperAjax - edu.cornell.mannlib.vitro.webapp.utils.developer.DeveloperSettingsServlet - - - DeveloperAjax - /admin/developerAjax - - - - - SearchController - /search.jsp - - - SearchController - /fedsearch - - - SearchController - /searchcontroller - - - - AutocompleteController - edu.cornell.mannlib.vitro.webapp.search.controller.AutocompleteController - - - - AutocompleteController - /autocomplete - - - AutocompleteController - /populateselect - - - - DataAutocompleteController - edu.cornell.mannlib.vitro.webapp.search.controller.DataAutocompleteController - - - DataAutocompleteController - /dataautocomplete - - - - ReorderController - edu.cornell.mannlib.vitro.webapp.controller.edit.ReorderController - - - ReorderController - /edit/reorder - - - - TermsOfUseController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.TermsOfUseController - - - TermsOfUseController - /termsOfUse - - - - ContactFormController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ContactFormController - - - ContactFormController - /contact - - - - - JSON Service - edu.cornell.mannlib.vitro.webapp.controller.json.JsonServlet - - - JSON Service - /dataservice - - - - ConceptSearchService - edu.cornell.mannlib.vitro.webapp.servlet.ConceptSearchServlet - - - ConceptSearchService - /conceptSearchService - - - - - - JSON Reconcile Service - edu.cornell.mannlib.vitro.webapp.controller.grefine.JSONReconcileServlet - - - - JSON Reconcile Service - /reconcile - - - - Google Refine Property List Service - edu.cornell.mannlib.vitro.webapp.controller.grefine.GrefinePropertyListServlet - - - - Google Refine Property List Service - /get_properties_of_type - - - - Google Refine Mqlread Service - edu.cornell.mannlib.vitro.webapp.controller.grefine.GrefineMqlreadServlet - - - - Google Refine Mqlread Service - /grefineMqlread - - - - - - HomePageController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.HomePageController - - - HomePageController - /home - - - - DashboardPropertyListController - edu.cornell.mannlib.vitro.webapp.controller.DashboardPropertyListController - - - DashboardPropertyListController - /dashboardPropList - - + dwr-invoker org.directwebremoting.servlet.DwrServlet @@ -1096,72 +145,8 @@ dwr-invoker /dwr/* - - - sendMail - edu.cornell.mannlib.vitro.webapp.controller.freemarker.ContactMailController - 5 - - - sendMail - /submitFeedback - - - - mailusers - edu.cornell.mannlib.vitro.webapp.controller.MailUsersServlet - 5 - - - - ontology - edu.cornell.mannlib.vitro.webapp.controller.OntologyController - - - - individual - edu.cornell.mannlib.vitro.webapp.controller.individual.IndividualController - - - authenticate - edu.cornell.mannlib.vitro.webapp.controller.edit.Authenticate - - - - loginExternalAuthSetup - edu.cornell.mannlib.vitro.webapp.controller.authenticate.LoginExternalAuthSetup - - - - loginExternalAuthReturn - edu.cornell.mannlib.vitro.webapp.controller.authenticate.LoginExternalAuthReturn - - - - programLogin - edu.cornell.mannlib.vitro.webapp.controller.authenticate.ProgramLogin - - - programLogin - /programLogin - - - - adminLogin - edu.cornell.mannlib.vitro.webapp.controller.authenticate.AdminLoginController - - - adminLogin - /admin/login - - - - logout - edu.cornell.mannlib.vitro.webapp.controller.edit.Logout - - - - - - browsecontroller - edu.cornell.mannlib.vitro.webapp.controller.freemarker.BrowseController - 5 - - - browsecontroller - /browse - - - - serveFiles - edu.cornell.mannlib.vitro.webapp.filestorage.serving.FileServingServlet - - - serveFiles - /file/* - - - - SparqlQuery - edu.cornell.mannlib.vitro.webapp.controller.admin.SparqlQueryController - - - - SparqlQuery - /admin/sparqlquery - - - - SparqlQueryApi - edu.cornell.mannlib.vitro.webapp.controller.api.SparqlQueryApiController - - - - SparqlQueryApi - /api/sparqlQuery - - - - SparqlUpdateApi - edu.cornell.mannlib.vitro.webapp.controller.api.SparqlUpdateApiController - - - - SparqlUpdateApi - /api/sparqlUpdate - - - - StandardVisualizationController - edu.cornell.mannlib.vitro.webapp.controller.visualization.StandardVisualizationController - - - - ShortURLVisualizationController - edu.cornell.mannlib.vitro.webapp.controller.visualization.ShortURLVisualizationController - - - - StandardVisualizationController - /visualizationfm - - - - StandardVisualizationController - /visualization - - - - - ShortURLVisualizationController - /vis/* - - - - AjaxVisualizationController - edu.cornell.mannlib.vitro.webapp.controller.visualization.AjaxVisualizationController - - - - AjaxVisualizationController - /visualizationAjax - - - - DataVisualizationController - edu.cornell.mannlib.vitro.webapp.controller.visualization.DataVisualizationController - - - - DataVisualizationController - /visualizationData - - - - primitiveRdfEdit - edu.cornell.mannlib.vitro.webapp.controller.edit.PrimitiveRdfEdit - - - primitiveRdfEdit - /edit/primitiveRdfEdit - - - - primitiveDelete - edu.cornell.mannlib.vitro.webapp.controller.edit.PrimitiveDelete - - - primitiveDelete - /edit/primitiveDelete - - - - PageController - edu.cornell.mannlib.vitro.webapp.controller.freemarker.PageController - - - - - ExportQrCodeController - edu.cornell.mannlib.vitro.webapp.controller.ExportQrCodeController - - - ExportQrCodeController - /qrcode - - - - AboutQrCodesController - edu.cornell.mannlib.vitro.webapp.controller.AboutQrCodesController - - - AboutQrCodesController - /qrcode/about - - - - FileHarvestController - edu.cornell.mannlib.vitro.webapp.controller.harvester.FileHarvestController - - - FileHarvestController - /harvester/harvest - - - - - GadgetController - edu.ucsf.vitro.opensocial.GadgetController - - - GadgetController - /orng/* - - - - Multiple-language support. Allows user to select his preferred langauge - LocaleSelectionController - edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionController - - - LocaleSelectionController - /selectLocale - - - - SiteMap support - SiteMapServlet - org.vivoweb.webapp.sitemap.SiteMapServlet - - - SiteMapServlet - /robots.txt - - - SiteMapServlet - /sitemap.xml - - - - - - mailusers - /mailusers - - - - ontology - /ontology/* - - - - individual - /entity - - - individual - /entity/* - - - individual - /individual - - - individual - /individual/* - - - individual - /display - - - individual - /display/* - - - - authenticate - /authenticate - - - loginExternalAuthSetup - /loginExternalAuth - - - loginExternalAuthReturn - /loginExternalAuthReturn - - - logout - /logout - - - - - - SparlQueryBuilder - edu.cornell.mannlib.vitro.webapp.controller.SparqlQueryBuilderServlet - - - SparlQueryBuilder - /admin/sparqlquerybuilder - - - - GetAllClasses - edu.cornell.mannlib.vitro.webapp.sparql.GetAllClasses - - - GetAllClasses - /admin/getAllClasses - - - - GetAllPrefix - edu.cornell.mannlib.vitro.webapp.sparql.GetAllPrefix - - - GetAllPrefix - /admin/getAllPrefix - - - - GetClazzDataProperties - edu.cornell.mannlib.vitro.webapp.sparql.GetClazzDataProperties - - - GetClazzDataProperties - /admin/getClazzDataProperties - - - - GetClazzAllProperties - edu.cornell.mannlib.vitro.webapp.sparql.GetClazzAllProperties - - - GetClazzAllProperties - /admin/getClazzAllProperties - - - - GetClazzObjectProperties - edu.cornell.mannlib.vitro.webapp.sparql.GetClazzObjectProperties - - - GetClazzObjectProperties - /admin/getClazzObjectProperties - - - - GetObjectClasses - edu.cornell.mannlib.vitro.webapp.sparql.GetObjectClasses - - - GetObjectClasses - /admin/getObjectClasses - - - - SearchServiceController - edu.cornell.mannlib.vitro.webapp.search.controller.SearchServiceController - - - SearchServiceController - /searchService/* - - - - OrcidIntegrationController - edu.cornell.mannlib.vivo.orcid.controller.OrcidIntegrationController - - - OrcidIntegrationController - /orcid/* - - - - - TpfServlet - TpfServlet - org.vivoweb.linkeddatafragments.servlet.VitroLinkedDataFragmentServlet - - - TpfServlet - /tpf/* - @@ -1596,15 +246,4 @@ - - - - - - - From ece29aae7692c012ff88d0a58488dc0c12bfd94d Mon Sep 17 00:00:00 2001 From: Mike Conlon Date: Fri, 25 Aug 2017 15:50:24 -0400 Subject: [PATCH 11/89] Fix headings for contact info --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1529ca09..cd2b9acc 100644 --- a/README.md +++ b/README.md @@ -23,18 +23,19 @@ https://wiki.duraspace.org/display/VIVODOC19x/Installing+VIVO#InstallingVIVO-Git There are several ways to contact the VIVO community. Whatever your interest, we would be pleased to hear from you. -#### Contact form +### Contact form http://vivoweb.org/support/user-feedback -#### Mailing lists -##### [vivo-all](https://groups.google.com/forum/#!forum/vivo-all) +### Mailing lists + +#### [vivo-all](https://groups.google.com/forum/#!forum/vivo-all) This updates list provides news to the VIVO community of interest to all. -##### [vivo-community](https://groups.google.com/forum/#!forum/vivo-community) +#### [vivo-community](https://groups.google.com/forum/#!forum/vivo-community) Join the VIVO community! Here you'll find non-technical discussion regarding participation, the VIVO conference, policy, project management, outreach, and engagement. -##### [vivo-tech](https://groups.google.com/forum/#!forum/vivo-tech) +#### [vivo-tech](https://groups.google.com/forum/#!forum/vivo-tech) The best place to get your hands dirty in the VIVO Project. Developers and implementers frequent this list to get the latest on feature design, development, implementation, and testing. From 426064cc8160da2647e5179a7cc2475be7cdb2e1 Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Tue, 29 Aug 2017 22:59:03 +0100 Subject: [PATCH 12/89] [VIVO-1294] Create VIVO application level messages distinct from theme messages (theme messages now only contain those not use at an application level) --- .../org/vivoweb/webapp/startup/i18nSetup.java | 21 + .../WEB-INF/resources/startup_listeners.txt | 2 + .../src/main/webapp/i18n/vivo_all.properties | 773 ++++++++++++++ .../edit/forms/autoCompleteDataPropForm.ftl | 4 +- .../themes/tenderfoot/i18n/all.properties | 989 ++---------------- .../webapp/themes/wilma/i18n/all.properties | 925 ++-------------- 6 files changed, 970 insertions(+), 1744 deletions(-) create mode 100644 api/src/main/java/org/vivoweb/webapp/startup/i18nSetup.java create mode 100644 webapp/src/main/webapp/i18n/vivo_all.properties diff --git a/api/src/main/java/org/vivoweb/webapp/startup/i18nSetup.java b/api/src/main/java/org/vivoweb/webapp/startup/i18nSetup.java new file mode 100644 index 00000000..b4c1a6d5 --- /dev/null +++ b/api/src/main/java/org/vivoweb/webapp/startup/i18nSetup.java @@ -0,0 +1,21 @@ +/* $This file is distributed under the terms of the license in LICENSE$ */ + +package org.vivoweb.webapp.startup; + +import edu.cornell.mannlib.vitro.webapp.i18n.VitroResourceBundle; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class i18nSetup implements ServletContextListener { + + @Override + public void contextInitialized(ServletContextEvent servletContextEvent) { + VitroResourceBundle.addAppPrefix("vivo"); + } + + @Override + public void contextDestroyed(ServletContextEvent servletContextEvent) { + + } +} diff --git a/webapp/src/main/webapp/WEB-INF/resources/startup_listeners.txt b/webapp/src/main/webapp/WEB-INF/resources/startup_listeners.txt index 06042885..e7bdfa88 100644 --- a/webapp/src/main/webapp/WEB-INF/resources/startup_listeners.txt +++ b/webapp/src/main/webapp/WEB-INF/resources/startup_listeners.txt @@ -88,3 +88,5 @@ edu.cornell.mannlib.vivo.orcid.OrcidContextSetup # This should be near the end, because it will issue a warning if the connection to Solr times out. edu.cornell.mannlib.vitro.webapp.servlet.setup.SolrSmokeTest + +org.vivoweb.webapp.startup.i18nSetup diff --git a/webapp/src/main/webapp/i18n/vivo_all.properties b/webapp/src/main/webapp/i18n/vivo_all.properties new file mode 100644 index 00000000..964a0eee --- /dev/null +++ b/webapp/src/main/webapp/i18n/vivo_all.properties @@ -0,0 +1,773 @@ +# +# 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 {0} who have an interest in this research area. +individuals_with_researh_area_two = Here are the individuals in the {0} who have an interest in this research area. +individuals_with_dept = Here are the individuals with an interest in {0} 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 exclude from the profile page. + +manage_affiliated_people = Manage People Affiliated with +check_people_to_exclude = Check those people you want to exclude from the profile page. + +manage_publications_for = Manage Publications for +check_pubs_to_exclude = Check those publications you want to exclude 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 diff --git a/webapp/src/main/webapp/templates/freemarker/edit/forms/autoCompleteDataPropForm.ftl b/webapp/src/main/webapp/templates/freemarker/edit/forms/autoCompleteDataPropForm.ftl index 0243a36f..1a8d0c51 100644 --- a/webapp/src/main/webapp/templates/freemarker/edit/forms/autoCompleteDataPropForm.ftl +++ b/webapp/src/main/webapp/templates/freemarker/edit/forms/autoCompleteDataPropForm.ftl @@ -72,8 +72,8 @@ Also multiple types parameter set to true only if more than one type returned--> }; var i18nStrings = { selectExisting: '${i18n().select_an_existing}', - orCreateNewOne: '$i18n().or_create_new_one}', - selectedString: '$i18n().selected}' + orCreateNewOne: '${i18n().or_create_new_one}', + selectedString: '${i18n().selected}' }; diff --git a/webapp/src/main/webapp/themes/tenderfoot/i18n/all.properties b/webapp/src/main/webapp/themes/tenderfoot/i18n/all.properties index 73b1f842..a16e8c84 100644 --- a/webapp/src/main/webapp/themes/tenderfoot/i18n/all.properties +++ b/webapp/src/main/webapp/themes/tenderfoot/i18n/all.properties @@ -1,889 +1,100 @@ -# -# Text strings for the controllers and templates -# -# Default (English) -# -# wilma theme templates (themes/wilma/templates) -# -menu_termuse = Terms of Use -menu_powered = Powered by -menu_about = About -menu_contactus = Contact Us -menu_support = Support -menu_version = Version -menu_copyright = copyright -menu_item = menu item -menu_welcomestart = Welcome - -menu_logout = Log out -menu_login = Log in -menu_loginfull = Log in to manage this site - -identity_title = VIVO | connect share discover -identity_index = Index -identity_edit = Edit Page -identity_admin = Site Admin -identity_myprofile = My profile -identity_myaccount = My account -identity_user = user - -indiv_foafperson_for = for -indiv_foafperson_return = return to -uri_icon = uri icon - -intro_title = Welcome to VIVO -intro_para1 = VIVO is a research-focused discovery tool that enables collaboration among scientists across all disciplines. -intro_para2 = Browse or search information on people, departments, courses, grants, and publications. -intro_searchvivo = Search VIVO -intro_filtersearch = Filter search - -# -# "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 - -faculty_who_are_members_of_org = Here are the faculty in the {0} department who are members of this organization. -view_all_faculty = view all faculty -view_all_members_of_org = View all the members of this organization. -faculty_memberships = Faculty Memberships - -individuals_with_researh_area_one = Here are the individuals in {0} who have an interest in this research area. -individuals_with_researh_area_two = Here are the individuals in the {0} who have an interest in this research area. -individuals_with_dept = Here are the individuals with an interest in {0} 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 -research_area = individuals in the department with this research area -organization = individuals with the research area in this organization -display_more = more - -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 -grants_in_vivo = grants 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 - -address_street_one = address street one -address_street_two = address street two -address_street_three = address street three -address_label = address label - -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 - -loading_website_image = Loading website image -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 - -# -# accounts templates ( /templates/freemarker/body/accounts ) -# -password = password - -# -# 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. - -# -# menupage templates ( /templates/freemarker/body/menupage ) -# -grants_text_one = This body is from the the template file \ - vivo/productMods/templates/freemarker/body/menupage/grants.ftl. \ - In the display model, the grants page has a display:requiresBodyTemplate \ - property that defines that the grants page overrides the default template. \ - The default template for these pages is at /vitro/webapp/web/templates/freemarker/body/menupage/menupage.ftl -grants_two = This technique could be used to define pages without menu items, that get \ - their content from a freemarker template. An example would be the about page. -grants_text_three = This would create a page that would use about.ftl as the body. The page would be \ - accessed via /about and would override all servlet mappings in web.xml. - -# -# 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 -change_selection = change selection - -# -# 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 - -attendee_capitalized = Attendee -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_grant = Return to grant -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 -create_capitalized = Create -create_entry = Create Entry -unable_to_handle_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals. -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 -leadership_role = Leadership Role - -membership = membership -membership_in = membership in -organizations = organizations - -organizer_of = organizer of -organizer_role = Organizer Role - -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. -enter_new_role_value = Please enter a new value in the Role 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 -years_participation_in = Years of Participation in - -grant_entry_for = grant entry for -select_existing_pub_or_enter_new = Please select an existing publication in the Title field or enter a new one. -unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals. -grant_type = grant Type - -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 -place_of_grant = Place of grant -volume_capitalized = Volume -number_capitalized = Number -issue_capitalized = Issue -chapter_capitalized = Chapter -start_page = Start Page -end_page = End Page -grant_date = grant Date -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 -reviewer_role = Reviewer Role - -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 -service_provider_role = Service Provider Role - -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 exclude from the profile page. - -manage_affiliated_people = Manage People Affiliated with -check_people_to_exclude = Check those people you want to exclude from the profile page. - -manage_publications_for = Manage Publications for -check_pubs_to_exclude = Check those publications you want to exclude 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 -select_award = Selected Award -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 - -edit_mailing_address = Edit Mailing Address -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 -to = to -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 - -view = view -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) -# -loading_data = loading data -co_investigator_icon = co-investigator icon -co_authorship = co-authorship -currently_no_papers_for = Currently there are no {0} papers for -this_author = this author -in_the_vivo_db = in the VIVO database. -no_papers_for = Currently there are no papers for -profile_capitalized = Profile -vivo_profile = VIVO profile -publication_s_capitalized = Publication(s) -co_author_s_capitalized = Co-author(s) -first_publication = First publication -last_publication = Last publication -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 -no_grants_for = Currently there are no grants for -grant_s_capitalized = Grant(s) -co_investigator_s_capitalized = Co-investigator(s) -first_grant = First Grant -last_grant = Last Grant -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. - -province_or_region = Province or Region - -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 -researchers = researchers -currently_no_researchers = There are currently no researchers with a defined geographic focus. -countries_and_regions = countries and regions. -countries = countries -regions = regions -map_states_string = states. -map_state_string = state. -statewide_locations = state-wide locations. -researchers_in = researchers in - -no_faculty_found = No faculty members found. -placeholder_image = placeholder image -view_all_departments = view all academic departments -no_departments_found = No academic departments found. - -# -# 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 -# - -limit_search = limit search -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 -collection_capitalized = Collection -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 = Email Address -email_address_for = email address for -enter_email_address = Please enter a value in the Email Address field. -full_name = Full name -full_name_for = full name for -first_name = First name -last_name = Last name -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 -add_capitalized = Add -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 +address_street_two = address street two +loading_website_image = Loading website image +view = view +currently_no_papers_for = Currently there are no {0} papers for +identity_index = Index +service_provider_role = Service Provider Role +intro_searchvivo = Search VIVO +grant_type = grant Type +grants_in_vivo = grants in VIVO +last_grant = Last Grant +no_departments_found = No academic departments found. +leadership_role = Leadership Role +menu_contactus = Contact Us +countries = countries +menu_welcomestart = Welcome +view_all_faculty = view all faculty +menu_copyright = copyright +last_publication = Last publication +menu_item = menu item +address_street_three = address street three +vivo_profile = VIVO profile +identity_myprofile = My profile +unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals. +unable_to_handle_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals. +address_label = address label +no_grants_for = Currently there are no grants for +no_faculty_found = No faculty members found. +create_capitalized = Create +first_publication = First publication +address_street_one = address street one +select_award = Selected Award +first_name = First name +change_selection = change selection +menu_support = Support +indiv_foafperson_for = for +statewide_locations = state-wide locations. +password = password +place_of_grant = Place of grant +menu_logout = Log out +identity_edit = Edit Page +menu_loginfull = Log in to manage this site +reviewer_role = Reviewer Role +menu_login = Log in +view_all_departments = view all academic departments +identity_admin = Site Admin +intro_title = Welcome to VIVO +menu_version = Version +grant_date = grant Date +loading_data = loading data +to = to +collection_capitalized = Collection +create_entry = Create Entry +first_grant = First Grant +map_states_string = states. +limit_search = limit search +identity_user = user +menu_about = About +grant_entry_for = grant entry for +regions = regions +faculty_who_are_members_of_org = Here are the faculty in the {0} department who are members of this organization. +placeholder_image = placeholder image +indiv_foafperson_return = return to +enter_new_role_value = Please enter a new value in the Role field. +last_name = Last name +countries_and_regions = countries and regions. +currently_no_researchers = There are currently no researchers with a defined geographic focus. +research_area = individuals in the department with this research area +identity_myaccount = My account +province_or_region = Province or Region +full_name = Full name +researchers = researchers +email_address = Email Address +years_participation_in = Years of Participation in +menu_termuse = Terms of Use +identity_title = VIVO | connect share discover +map_state_string = state. +intro_filtersearch = Filter search +return_to_grant = Return to grant +display_more = more +intro_para2 = Browse or search information on people, departments, courses, grants, and publications. +intro_para1 = VIVO is a research-focused discovery tool that enables collaboration among scientists across all disciplines. +profile_capitalized = Profile +organizer_role = Organizer Role +faculty_memberships = Faculty Memberships +edit_mailing_address = Edit Mailing Address +add_capitalized = Add +attendee_capitalized = Attendee +researchers_in = researchers in +menu_powered = Powered by +view_all_members_of_org = View all the members of this organization. + +grants_text_one = This body is from the the template file \ + vivo/productMods/templates/freemarker/body/menupage/grants.ftl. \ + In the display model, the grants page has a display:requiresBodyTemplate \ + property that defines that the grants page overrides the default template. \ + The default template for these pages is at /vitro/webapp/web/templates/freemarker/body/menupage/menupage.ftl +grants_two = This technique could be used to define pages without menu items, that get \ + their content from a freemarker template. An example would be the about page. +grants_text_three = This would create a page that would use about.ftl as the body. The page would be \ + accessed via /about and would override all servlet mappings in web.xml. diff --git a/webapp/src/main/webapp/themes/wilma/i18n/all.properties b/webapp/src/main/webapp/themes/wilma/i18n/all.properties index 32b32732..4b717269 100644 --- a/webapp/src/main/webapp/themes/wilma/i18n/all.properties +++ b/webapp/src/main/webapp/themes/wilma/i18n/all.properties @@ -1,23 +1,20 @@ -# -# Text strings for the controllers and templates -# -# Default (English) -# -# wilma theme templates (themes/wilma/templates) -# +menu_contactus = Contact Us +menu_welcomestart = Welcome +menu_copyright = copyright +menu_support = Support +menu_logout = Log out +menu_loginfull = Log in to manage this site +menu_login = Log in +menu_version = Version +menu_about = About menu_termuse = Terms of Use menu_powered = Powered by -menu_about = About -menu_contactus = Contact Us -menu_support = Support -menu_version = Version -menu_copyright = copyright -menu_item = menu item -menu_welcomestart = Welcome -menu_logout = Log out -menu_login = Log in -menu_loginfull = Log in to manage this site +intro_title = Welcome to VIVO +intro_para1 = VIVO is a research-focused discovery tool that enables collaboration among scientists across all disciplines. +intro_para2 = Browse or search information on people, departments, courses, grants, and publications. +intro_searchvivo = Search VIVO +intro_filtersearch = Filter search identity_title = VIVO | connect share discover identity_index = Index @@ -27,222 +24,11 @@ identity_myprofile = My profile identity_myaccount = My account identity_user = user -indiv_foafperson_for = for -indiv_foafperson_return = return to -uri_icon = uri icon - -intro_title = Welcome to VIVO -intro_para1 = VIVO is a research-focused discovery tool that enables collaboration among scientists across all disciplines. -intro_para2 = Browse or search information on people, departments, courses, grants, and publications. -intro_searchvivo = Search VIVO -intro_filtersearch = Filter search +collection_capitalized = Collection +place_of_grant = Place of grant +email_address = Email Address # -# "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 - -faculty_who_are_members_of_org = Here are the faculty in the {0} department who are members of this organization. -view_all_faculty = view all faculty -view_all_members_of_org = View all the members of this organization. -faculty_memberships = Faculty Memberships - -individuals_with_researh_area_one = Here are the individuals in {0} who have an interest in this research area. -individuals_with_researh_area_two = Here are the individuals in the {0} who have an interest in this research area. -individuals_with_dept = Here are the individuals with an interest in {0} 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 -research_area = individuals in the department with this research area -organization = individuals with the research area in this organization -display_more = more - -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 -grants_in_vivo = grants 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 - -address_street_one = address street one -address_street_two = address street two -address_street_three = address street three -address_label = address label - -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 - -loading_website_image = Loading website image -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 - -# -# accounts templates ( /templates/freemarker/body/accounts ) -# -password = password - -# -# 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. - -# # menupage templates ( /templates/freemarker/body/menupage ) # grants_text_one = This body is from the the template file \ @@ -255,635 +41,68 @@ grants_two = This technique could be used to define pages without menu items, th grants_text_three = This would create a page that would use about.ftl as the body. The page would be \ accessed via /about and would override all servlet mappings in web.xml. -# -# 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 -change_selection = change selection +address_street_one = address street one +address_street_two = address street two +address_street_three = address street three +address_label = address label -# -# 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 - -attendee_capitalized = Attendee -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_grant = Return to grant -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 -create_capitalized = Create -create_entry = Create Entry -unable_to_handle_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals. -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 -leadership_role = Leadership Role - -membership = membership -membership_in = membership in -organizations = organizations - -organizer_of = organizer of -organizer_role = Organizer Role - -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. -enter_new_role_value = Please enter a new value in the Role 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 -years_participation_in = Years of Participation in - -grant_entry_for = grant entry for -select_existing_pub_or_enter_new = Please select an existing publication in the Title field or enter a new one. -unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals. -grant_type = grant Type - -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 -place_of_grant = Place of grant -volume_capitalized = Volume -number_capitalized = Number -issue_capitalized = Issue -chapter_capitalized = Chapter -start_page = Start Page -end_page = End Page -grant_date = grant Date -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 -reviewer_role = Reviewer Role - -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 -service_provider_role = Service Provider Role - -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 exclude from the profile page. - -manage_affiliated_people = Manage People Affiliated with -check_people_to_exclude = Check those people you want to exclude from the profile page. - -manage_publications_for = Manage Publications for -check_pubs_to_exclude = Check those publications you want to exclude 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 -select_award = Selected Award -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 - -edit_mailing_address = Edit Mailing Address -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 -to = to -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 +loading_website_image = Loading website image +researchers_in = researchers in view = view -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) -# -loading_data = loading data -co_investigator_icon = co-investigator icon -co_authorship = co-authorship -currently_no_papers_for = Currently there are no {0} papers for -this_author = this author -in_the_vivo_db = in the VIVO database. -no_papers_for = Currently there are no papers for -profile_capitalized = Profile -vivo_profile = VIVO profile -publication_s_capitalized = Publication(s) -co_author_s_capitalized = Co-author(s) -first_publication = First publication -last_publication = Last publication -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 -no_grants_for = Currently there are no grants for -grant_s_capitalized = Grant(s) -co_investigator_s_capitalized = Co-investigator(s) -first_grant = First Grant -last_grant = Last Grant -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. - -province_or_region = Province or Region - -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 -researchers = researchers -currently_no_researchers = There are currently no researchers with a defined geographic focus. -countries_and_regions = countries and regions. -countries = countries +grant_type = grant Type +grant_entry_for = grant entry for regions = regions +grant_date = grant Date map_states_string = states. map_state_string = state. -statewide_locations = state-wide locations. -researchers_in = researchers in - -no_faculty_found = No faculty members found. -placeholder_image = placeholder image +unable_to_handle_grant_editing = This form is unable to handle the editing of this grant because it is associated with multiple grant individuals. +unable_to_handle_position_editing = This form is unable to handle the editing of this position because it is associated with multiple Position individuals. +currently_no_papers_for = Currently there are no {0} papers for +change_selection = change selection view_all_departments = view all academic departments -no_departments_found = No academic departments found. - -# -# 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 -# - -limit_search = limit search -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 -collection_capitalized = Collection -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 = Email Address -email_address_for = email address for -enter_email_address = Please enter a value in the Email Address field. -full_name = Full name -full_name_for = full name for first_name = First name last_name = Last name -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 +first_grant = First Grant +last_grant = Last Grant +currently_no_researchers = There are currently no researchers with a defined geographic focus. +reviewer_role = Reviewer Role +vivo_profile = VIVO profile +loading_data = loading data +select_award = Selected Award +grants_in_vivo = grants in VIVO +service_provider_role = Service Provider Role +view_all_faculty = view all faculty +no_grants_for = Currently there are no grants for +statewide_locations = state-wide locations. +faculty_who_are_members_of_org = Here are the faculty in the {0} department who are members of this organization. +indiv_foafperson_for = for +indiv_foafperson_return = return to +no_departments_found = No academic departments found. +leadership_role = Leadership Role +countries = countries +first_publication = First publication +last_publication = Last publication +research_area = individuals in the department with this research area +password = password +limit_search = limit search +placeholder_image = placeholder image +view_all_members_of_org = View all the members of this organization. +display_more = more +create_entry = Create Entry +attendee_capitalized = Attendee +no_faculty_found = No faculty members found. +create_capitalized = Create +to = to +enter_new_role_value = Please enter a new value in the Role field. +countries_and_regions = countries and regions. +province_or_region = Province or Region +full_name = Full name +researchers = researchers +years_participation_in = Years of Participation in +return_to_grant = Return to grant +profile_capitalized = Profile +organizer_role = Organizer Role +faculty_memberships = Faculty Memberships +edit_mailing_address = Edit Mailing Address add_capitalized = Add -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 From 5e3b29d7348380e53b69be19af3c90475f61683e Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Thu, 31 Aug 2017 00:03:09 +0100 Subject: [PATCH 13/89] Fix broken site admin links --- .../main/java/org/vivoweb/webapp/startup/SiteAdminSetup.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/vivoweb/webapp/startup/SiteAdminSetup.java b/api/src/main/java/org/vivoweb/webapp/startup/SiteAdminSetup.java index a762b332..2553a8da 100644 --- a/api/src/main/java/org/vivoweb/webapp/startup/SiteAdminSetup.java +++ b/api/src/main/java/org/vivoweb/webapp/startup/SiteAdminSetup.java @@ -13,8 +13,8 @@ import javax.servlet.ServletContextListener; public class SiteAdminSetup implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { - SiteAdminController.registerSiteMaintenanceUrl("rebuildVisCache", UrlBuilder.getUrl("/vis/tools"), ToolsRequestHandler.REQUIRED_ACTIONS); - SiteAdminController.registerSiteConfigData("internalClass", UrlBuilder.getUrl("/processInstitutionalInternalClass"), InstitutionalInternalClassController.REQUIRED_ACTIONS); + SiteAdminController.registerSiteMaintenanceUrl("rebuildVisCache", "/vis/tools", null, ToolsRequestHandler.REQUIRED_ACTIONS); + SiteAdminController.registerSiteConfigData("internalClass", "/processInstitutionalInternalClass", null, InstitutionalInternalClassController.REQUIRED_ACTIONS); } @Override From e3c804088c5e1a0a74ddf72bc66ce29d1701c52e Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Thu, 31 Aug 2017 15:54:42 +0100 Subject: [PATCH 14/89] Use latest orcid-api-client --- api/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/pom.xml b/api/pom.xml index f31e77ce..c11e24f8 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -54,7 +54,7 @@ org.vivoweb orcid-api-client - 0.4 + 0.5 From d508f09ed985ec412943eb2ee85c5939a8f8e9b9 Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Wed, 6 Sep 2017 19:26:00 +0100 Subject: [PATCH 15/89] [VIVO-1379] Add CTSA search endpoints to VIVO --- .../controller/FedSearchController.java | 133 ++++++++++++++++++ .../freemarker/body/search/search-fs.ftl | 6 + .../body/search/search-fsresult.ftl | 8 ++ 3 files changed, 147 insertions(+) create mode 100644 api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java create mode 100644 webapp/src/main/webapp/templates/freemarker/body/search/search-fs.ftl create mode 100644 webapp/src/main/webapp/templates/freemarker/body/search/search-fsresult.ftl diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java new file mode 100644 index 00000000..891ec484 --- /dev/null +++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java @@ -0,0 +1,133 @@ +package edu.cornell.mannlib.vitro.webapp.search.controller; + +import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; +import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties; +import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; +import edu.cornell.mannlib.vitro.webapp.dao.ApplicationDao; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; + +@WebServlet(name = "FedSearchController", urlPatterns = {"/FS.xml","/ctsasearch"} ) // fedsearch +public class FedSearchController extends PagedSearchController { + private static final Log log = LogFactory.getLog(FedSearchController.class); + + private String classgroup; + private String populationType; + + private String getClassgroup(HttpServletRequest req) { + if (classgroup == null) { + ConfigurationProperties configuration = ConfigurationProperties.getBean(req.getSession().getServletContext()); + classgroup = configuration.getProperty("ctsa.classgroup", "http://vivoweb.org/ontology#vitroClassGrouppeople"); + } + + return classgroup; + } + + private String getPopulationType(HttpServletRequest req) { + if (populationType == null) { + ConfigurationProperties configuration = ConfigurationProperties.getBean(req.getSession().getServletContext()); + populationType = configuration.getProperty("ctsa.classgroup.type", "faculty,staff,students"); + } + + return populationType; + } + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + StringBuffer url = request.getRequestURL(); + String uri = request.getRequestURI(); + String serverBase = url.substring(0, url.indexOf(uri)); + + if (request.getRequestURI().contains("FS.xml")) { + try { + VitroRequest vreq = new VitroRequest(request); + Map body = new HashMap(); + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/xml;charset=UTF-8"); + response.setHeader("Content-Disposition", "attachment; filename=search.xml"); + + ApplicationDao aDao = vreq.getUnfilteredWebappDaoFactory().getApplicationDao(); + ApplicationBean applicationForEditing = aDao.getApplicationBean(); + + body.put("ApplicationName", applicationForEditing.getApplicationName()); + body.put("serverBase", serverBase); + + writeTemplate("search-fs.ftl", body, request, response); + } catch (Exception e) { + log.error(e, e); + } + } else { + try { + Map additionalParams = new TreeMap<>(); + + String classgroup = getClassgroup(request); + + additionalParams.put("classgroup", new String[] { classgroup }); + + VitroRequest vreq = new VitroRequest(new RequestWrapper(request, additionalParams)); + ResponseValues rvalues = processRequest(vreq); + + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/xml;charset=UTF-8"); + response.setHeader("Content-Disposition", "attachment; filename=search.xml"); + Map body = new HashMap(); + body.putAll(rvalues.getMap()); + body.put("serverBase", serverBase); + body.put("classgroup", classgroup); + body.put("populationType", getPopulationType(request)); + writeTemplate("search-fsresult.ftl", body, request, response); + } catch (Exception e) { + log.error(e, e); + } + } + } + + private class RequestWrapper extends HttpServletRequestWrapper { + private Map allParameters = null; + + public RequestWrapper(HttpServletRequest request, final Map additionalParams) { + super(request); + allParameters = new TreeMap(); + allParameters.putAll(super.getParameterMap()); + allParameters.putAll(additionalParams); + allParameters = Collections.unmodifiableMap(allParameters); + } + + @Override + public Map getParameterMap() { + return allParameters; + } + + @Override + public String getParameter(final String name) { + String[] strings = getParameterMap().get(name); + if (strings != null) { + return strings[0]; + } + return super.getParameter(name); + } + + @Override + public Enumeration getParameterNames() { + return Collections.enumeration(getParameterMap().keySet()); + } + + @Override + public String[] getParameterValues(final String name) { + return getParameterMap().get(name); + } + } +} diff --git a/webapp/src/main/webapp/templates/freemarker/body/search/search-fs.ftl b/webapp/src/main/webapp/templates/freemarker/body/search/search-fs.ftl new file mode 100644 index 00000000..56a12412 --- /dev/null +++ b/webapp/src/main/webapp/templates/freemarker/body/search/search-fs.ftl @@ -0,0 +1,6 @@ +<#-- $This file is distributed under the terms of the license in LICENSE$ --> + + + ${ApplicationName} + ${serverBase}${urls.base}/ctsasearch?querytext= + diff --git a/webapp/src/main/webapp/templates/freemarker/body/search/search-fsresult.ftl b/webapp/src/main/webapp/templates/freemarker/body/search/search-fsresult.ftl new file mode 100644 index 00000000..cb75c24e --- /dev/null +++ b/webapp/src/main/webapp/templates/freemarker/body/search/search-fsresult.ftl @@ -0,0 +1,8 @@ +<#-- $This file is distributed under the terms of the license in LICENSE$ --> + + + ${hitCount} + ${populationType} + ${serverBase}${urls.base}/search?classgroup=${classgroup?url}&querytext=${querytext?url} + ${serverBase}${urls.base}/search?classgroup=${classgroup?url}&querytext=${querytext?url} + From 7b38c2e8e71648afaf51dbba10a5cfee6137352a Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Wed, 6 Sep 2017 19:30:48 +0100 Subject: [PATCH 16/89] Change file name --- .../vitro/webapp/search/controller/FedSearchController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java index 891ec484..09501277 100644 --- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java +++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java @@ -57,7 +57,7 @@ public class FedSearchController extends PagedSearchController { Map body = new HashMap(); response.setCharacterEncoding("UTF-8"); response.setContentType("text/xml;charset=UTF-8"); - response.setHeader("Content-Disposition", "attachment; filename=search.xml"); + response.setHeader("Content-Disposition", "attachment; filename=FS.xml"); ApplicationDao aDao = vreq.getUnfilteredWebappDaoFactory().getApplicationDao(); ApplicationBean applicationForEditing = aDao.getApplicationBean(); From bc03e7e52c93a6c87c7045b9bd71a3c25daabedb Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Wed, 6 Sep 2017 19:33:12 +0100 Subject: [PATCH 17/89] [VIVO-1379] Fix result url --- .../templates/freemarker/body/search/search-fsresult.ftl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webapp/src/main/webapp/templates/freemarker/body/search/search-fsresult.ftl b/webapp/src/main/webapp/templates/freemarker/body/search/search-fsresult.ftl index cb75c24e..3065a7a2 100644 --- a/webapp/src/main/webapp/templates/freemarker/body/search/search-fsresult.ftl +++ b/webapp/src/main/webapp/templates/freemarker/body/search/search-fsresult.ftl @@ -3,6 +3,6 @@ ${hitCount} ${populationType} - ${serverBase}${urls.base}/search?classgroup=${classgroup?url}&querytext=${querytext?url} - ${serverBase}${urls.base}/search?classgroup=${classgroup?url}&querytext=${querytext?url} + ${serverBase}${urls.base}/search?classgroup=${classgroup?url}&querytext=${querytext?url} + ${serverBase}${urls.base}/search?classgroup=${classgroup?url}&querytext=${querytext?url} From 75fe93093cff725d4fed04ab6acd2d1762c12e17 Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Fri, 8 Sep 2017 12:32:48 +0100 Subject: [PATCH 18/89] Better document requirements of templates, for anyone needing to customise --- .../webapp/search/controller/FedSearchController.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java index 09501277..4f2693e6 100644 --- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java +++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/search/controller/FedSearchController.java @@ -84,10 +84,15 @@ public class FedSearchController extends PagedSearchController { response.setContentType("text/xml;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=search.xml"); Map body = new HashMap(); + body.putAll(rvalues.getMap()); - body.put("serverBase", serverBase); - body.put("classgroup", classgroup); + // Note - the template requires the following properties from the above map + // querytext + // hitCount + body.put("populationType", getPopulationType(request)); + body.put("classgroup", classgroup); + body.put("serverBase", serverBase); writeTemplate("search-fsresult.ftl", body, request, response); } catch (Exception e) { log.error(e, e); From 51e9ee9b9f06308fb91c29a13df28cbf61a238ef Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Mon, 11 Sep 2017 19:44:47 +0100 Subject: [PATCH 19/89] Rendering improvements --- .../src/main/webapp/themes/tenderfoot/css/page-browse.css | 7 +++++++ webapp/src/main/webapp/themes/tenderfoot/css/page-home.css | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/webapp/src/main/webapp/themes/tenderfoot/css/page-browse.css b/webapp/src/main/webapp/themes/tenderfoot/css/page-browse.css index 31b88f35..99595252 100644 --- a/webapp/src/main/webapp/themes/tenderfoot/css/page-browse.css +++ b/webapp/src/main/webapp/themes/tenderfoot/css/page-browse.css @@ -77,3 +77,10 @@ article.property ul.property-list { .pagination>li.selectedNavPage { padding-right: 7px; } + +nav#alpha-browse-container { + float: right; +} +#individuals-in-class { + margin-right: 0px; +} \ No newline at end of file diff --git a/webapp/src/main/webapp/themes/tenderfoot/css/page-home.css b/webapp/src/main/webapp/themes/tenderfoot/css/page-home.css index 4ade672a..2fd474c8 100644 --- a/webapp/src/main/webapp/themes/tenderfoot/css/page-home.css +++ b/webapp/src/main/webapp/themes/tenderfoot/css/page-home.css @@ -104,7 +104,6 @@ line-height: 1.25em; padding-top: 1.0em; padding-right: 4px; - font-size: 0.9em; } #home-faculty-mbrs { width: 297px; @@ -173,3 +172,6 @@ div.faculty-home { .research-count { background-color: #fff; } +.faculty-home a { + font-size: 1.2em; +} From 930507a6940e12e0d37f9c474b61b00fe4bc2bb9 Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Tue, 12 Sep 2017 15:29:11 +0100 Subject: [PATCH 20/89] [VIVO-1311] Implementation of UMLS datasource using NLM APIs --- .../semservices/service/impl/UMLSService.java | 351 +++++++++--------- .../service/impl/UMLSServiceTest.java | 19 + api/src/test/resources/umls.properties | 9 + 3 files changed, 211 insertions(+), 168 deletions(-) create mode 100644 api/src/test/java/edu/cornell/mannlib/semservices/service/impl/UMLSServiceTest.java create mode 100644 api/src/test/resources/umls.properties diff --git a/api/src/main/java/edu/cornell/mannlib/semservices/service/impl/UMLSService.java b/api/src/main/java/edu/cornell/mannlib/semservices/service/impl/UMLSService.java index 455f70b7..6d94a1fd 100644 --- a/api/src/main/java/edu/cornell/mannlib/semservices/service/impl/UMLSService.java +++ b/api/src/main/java/edu/cornell/mannlib/semservices/service/impl/UMLSService.java @@ -2,13 +2,11 @@ package edu.cornell.mannlib.semservices.service.impl; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.io.StringWriter; -import java.net.URL; -import java.net.URLEncoder; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import java.util.Properties; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -20,195 +18,212 @@ 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 * */ public class UMLSService implements ExternalConceptService { - protected final Log logger = LogFactory.getLog(getClass()); - private static final String submissionUrl = "http://link.informatics.stonybrook.edu/MeaningLookup/MlServiceServlet?"; - private static final String baseUri = "http://link.informatics.stonybrook.edu/umls/CUI/"; - private static final String endpoint = "http://link.informatics.stonybrook.edu/sparql/"; - private static final String schemeURI = "http://link.informatics.stonybrook.edu/umls"; - - - - @Override - public List getConcepts(String term) throws Exception { - List conceptList = new ArrayList(); + protected final Log logger = LogFactory.getLog(getClass()); - String results = null; - String dataUrl = submissionUrl + "textToProcess=" - + URLEncoder.encode(term, "UTF-8") - + "&format=json"; + private static String UTS_REST_API_URL = "https://uts-ws.nlm.nih.gov/rest"; + private static String SEARCH_PATH = "/search/current"; + private static String SEARCH_PARAMETER = "string"; + private static String SEARCH_TYPE_PARAMETER = "searchType"; + private static String SEARCH_TYPE = "rightTruncation"; + private static String PAGE_SIZE_PARAMETER = "pageSize"; + private static String RETURN_TYPE_PARAMETER = "returnIdType"; + private static String RETURN_TYPE = "concept"; + private static String TICKET_PARAMETER = "ticket"; - try { + private static String ticketGrantingTicketURL = null; - StringWriter sw = new StringWriter(); - URL rss = new URL(dataUrl); + private static long lastUpdate = -1; - BufferedReader in = new BufferedReader(new InputStreamReader( - rss.openStream())); - String inputLine; - while ((inputLine = in.readLine()) != null) { - sw.write(inputLine); - } - in.close(); + private static String username = null; + private static String password = null; + private static String apikey = null; - results = sw.toString(); - //System.out.println("results before processing: "+results); - conceptList = processOutput(results); - return conceptList; + private static String pageSize = "50"; - } catch (Exception ex) { - logger.error("error occurred in servlet", ex); - return null; - } - } + 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"; - public List processResults(String term) throws Exception { - String results = null; - String dataUrl = submissionUrl + "textToProcess=" - + URLEncoder.encode(term, "UTF-8") + "&format=json"; + { + if (username == null || apikey == null) { + final Properties properties = new Properties(); + try (InputStream stream = getClass().getResourceAsStream("/umls.properties")) { + properties.load(stream); + username = properties.getProperty("username"); + password = properties.getProperty("password"); + apikey = properties.getProperty("apikey"); - try { - - StringWriter sw = new StringWriter(); - URL rss = new URL(dataUrl); - - BufferedReader in = new BufferedReader(new InputStreamReader(rss.openStream())); - String inputLine; - while ((inputLine = in.readLine()) != null) { - sw.write(inputLine); - } - in.close(); - - results = sw.toString(); - //System.out.println("results before processing: "+results); - List conceptList = processOutput(results); - return conceptList; - - } catch (Exception ex) { - logger.error("error occurred in servlet", ex); - return null; - } - - } - - /** - * @param uri URI - */ - public List getConceptsByURIWithSparql(String uri) - throws Exception { - // deprecating this method...just return an empty list - List conceptList = new ArrayList(); - return conceptList; - } - - /** - * @param results Results to process - */ - private List processOutput(String results) throws Exception { - - List conceptList = new ArrayList(); - List bestMatchIdList = new ArrayList(); - String bestMatchId = new String(); - boolean bestMatchFound = false; - boolean allFound = false; - - try { - ObjectNode json = (ObjectNode) JacksonUtils.parseJson(results); - //System.out.println(json.toString()); - if (json.has("Best Match")) { - bestMatchFound = true; - //System.out.println("Best Match"); - - ArrayNode bestMatchArray = (ArrayNode) json.get("Best Match"); - int len = bestMatchArray.size(); - if (len > 1) { - logger.debug("Found this many best matches: "+ len); + String exPageSize = properties.getProperty("pagesize"); + try { + if (!StringUtils.isEmpty(exPageSize)) { + int iPageSize = Integer.parseInt(exPageSize, 10); + if (iPageSize > 5 && iPageSize < 200) { + pageSize = Integer.toString(iPageSize, 10); + } + } + } catch (Exception e) { + } + } catch (IOException e) { } - int i; - for (i = 0; i < len; i++) { - ObjectNode o = (ObjectNode) bestMatchArray.get(i); - //System.out.println(o.toString()); - Concept concept = new Concept(); - concept.setDefinedBy(schemeURI); - concept.setBestMatch("true"); - String cui = getJsonValue(o, "CUI"); - bestMatchIdList.add(cui); + } + } - concept.setConceptId(cui); - concept.setLabel(getJsonValue(o, "label")); - concept.setType(getJsonValue(o, "type")); - concept.setDefinition(getJsonValue(o, "definition")); - concept.setUri(baseUri + cui); - concept.setSchemeURI(schemeURI); - conceptList.add(concept); - } - } - if (json.has("All")) { - allFound = true; - ArrayNode allArray = (ArrayNode) json.get("All"); + public boolean isConfigured() { + return !(StringUtils.isEmpty(username) && StringUtils.isEmpty(apikey)); + } + + @Override + public List getConcepts(String term) throws Exception { + String ticket = getSingleUseTicket(); + + List conceptList = new ArrayList(); + + String results = null; + + try { + URIBuilder b = new URIBuilder(UTS_REST_API_URL + SEARCH_PATH); + b.addParameter(SEARCH_PARAMETER, term); + b.addParameter(RETURN_TYPE_PARAMETER, RETURN_TYPE); + b.addParameter(SEARCH_TYPE_PARAMETER, SEARCH_TYPE); + b.addParameter(PAGE_SIZE_PARAMETER, pageSize); + b.addParameter(TICKET_PARAMETER, ticket); + + results = Request.Get(b.build()) + .connectTimeout(3000) + .socketTimeout(3000) + .execute().returnContent().asString(); + + conceptList = processOutput(results); + return conceptList; + + } catch (Exception ex) { + logger.error("error occurred in servlet", ex); + return null; + } + } + + public List processResults(String term) throws Exception { + return getConcepts(term); + } + + /** + * @param uri URI + */ + public List getConceptsByURIWithSparql(String uri) throws Exception { + // deprecating this method...just return an empty list + List conceptList = new ArrayList(); + return conceptList; + } + + /** + * @param results Results to process + */ + private List processOutput(String results) throws Exception { + List conceptList = new ArrayList(); + List bestMatchIdList = new ArrayList(); + String bestMatchId = new String(); + + try { + ObjectNode json = (ObjectNode) JacksonUtils.parseJson(results); + ArrayNode allArray = (ArrayNode) json.get("result").get("results"); int len = allArray.size(); - //System.out.println("size of best match array: "+ len); int i; for (i = 0; i < len; i++) { - ObjectNode o = (ObjectNode) allArray.get(i); - //System.out.println(o.toString()); - Concept concept = new Concept(); - concept.setDefinedBy(schemeURI); - String cui = getJsonValue(o, "CUI"); - concept.setConceptId(cui); + ObjectNode o = (ObjectNode) allArray.get(i); - concept.setLabel(getJsonValue(o, "label")); - concept.setType(getJsonValue(o, "type")); - concept.setDefinition(getJsonValue(o, "definition")); - concept.setUri(baseUri + cui); - concept.setSchemeURI(schemeURI); - // prevent duplicate concepts in list - if (! bestMatchIdList.contains(cui)) { - concept.setBestMatch("false"); - conceptList.add(concept); - } + Concept concept = new Concept(); + concept.setDefinedBy(UTS_SERVICE_URL); + concept.setSchemeURI(UTS_SERVICE_URL); + + concept.setType(RETURN_TYPE); + concept.setConceptId(getJsonValue(o, "ui")); + concept.setLabel(getJsonValue(o, "name")); + concept.setUri(getJsonValue(o, "uri")); + + concept.setBestMatch("false"); + conceptList.add(concept); } - } - } catch (Exception ex ) { - ex.printStackTrace(); - logger.error("Could not get concepts", ex); - throw ex; - } - if (! bestMatchFound && !allFound) { - // we did not get a bestMatch or All element - throw new ConceptsNotFoundException(); - } + } catch (Exception ex) { + ex.printStackTrace(); + logger.error("Could not get concepts", ex); + throw ex; + } - // - return conceptList; + if (conceptList.size() == 0) { + throw new ConceptsNotFoundException(); + } - } + // + return conceptList; - /** - * Get a string from a json object or an empty string if there is no value for the given key - * @param obj JSON Object - * @param key Key to retrieve - */ - protected String getJsonValue(ObjectNode obj, String key) { - if (obj.has(key)) { - return obj.get(key).asText(); - } else { - return new String(""); - } - } + } + + /** + * Get a string from a json object or an empty string if there is no value for the given key + * + * @param obj JSON Object + * @param key Key to retrieve + */ + protected String getJsonValue(ObjectNode obj, String key) { + if (obj.has(key)) { + return obj.get(key).asText(); + } else { + return new String(""); + } + } + protected String stripConceptId(String uri) { + String conceptId = new String(); + int lastslash = uri.lastIndexOf('/'); + conceptId = uri.substring(lastslash + 1, uri.length()); + return conceptId; + } - protected String stripConceptId(String uri) { - String conceptId = new String(); - int lastslash = uri.lastIndexOf('/'); - conceptId = uri.substring(lastslash + 1, uri.length()); - return conceptId; - } + private synchronized void getTicketGrantingTicket() { + if (StringUtils.isEmpty(username) && StringUtils.isEmpty(apikey)) { + throw new IllegalStateException("Unable to read umls.properties"); + } + if (ticketGrantingTicketURL == null || lastUpdate + 28700000l < System.currentTimeMillis()) { + try { + if (!StringUtils.isEmpty(apikey)) { + ticketGrantingTicketURL = Request.Post(UMLS_AUTH_KEY_URL).useExpectContinue().version(HttpVersion.HTTP_1_1) + .bodyForm(Form.form().add("apikey", apikey).build()) + .execute().returnResponse().getFirstHeader("location").getValue(); + } else { + ticketGrantingTicketURL = Request.Post(UMLS_AUTH_USER_URL).useExpectContinue().version(HttpVersion.HTTP_1_1) + .bodyForm(Form.form().add("username", username).add("password", password).build()) + .execute().returnResponse().getFirstHeader("location").getValue(); + } + } catch (IOException e) { + throw new IllegalStateException("Unable to get ticket granting ticket."); + } + lastUpdate = System.currentTimeMillis(); + } + } + + private String getSingleUseTicket() { + getTicketGrantingTicket(); + String ticket = ""; + try { + ticket = Request.Post(ticketGrantingTicketURL).useExpectContinue().version(HttpVersion.HTTP_1_1) + .bodyForm(Form.form().add("service", UTS_SERVICE_URL).build()) + .execute().returnContent().asString(); + } catch (IOException e) { + throw new IllegalStateException("Unable to get ticket."); + } + return ticket; + } } diff --git a/api/src/test/java/edu/cornell/mannlib/semservices/service/impl/UMLSServiceTest.java b/api/src/test/java/edu/cornell/mannlib/semservices/service/impl/UMLSServiceTest.java new file mode 100644 index 00000000..54da3429 --- /dev/null +++ b/api/src/test/java/edu/cornell/mannlib/semservices/service/impl/UMLSServiceTest.java @@ -0,0 +1,19 @@ +package edu.cornell.mannlib.semservices.service.impl; + +import edu.cornell.mannlib.semservices.bo.Concept; +import org.junit.Assert; +import org.junit.Test; + +import java.util.List; + +public class UMLSServiceTest { + @Test + public void testUmls() throws Exception { + UMLSService service = new UMLSService(); + + if (service.isConfigured()) { + List concepts = service.getConcepts("diabetes"); + Assert.assertNotNull(concepts); + } + } +} diff --git a/api/src/test/resources/umls.properties b/api/src/test/resources/umls.properties new file mode 100644 index 00000000..95cb75fb --- /dev/null +++ b/api/src/test/resources/umls.properties @@ -0,0 +1,9 @@ +# Configure credentials to access UMLS service + +# Sign up here - https://uts.nlm.nih.gov//home.html + +# You can user either a username / password combination, or an apikey + +#username = +#password = +#apikey = From 5ba226bde722f7902f5a24767d07231e4885f66c Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Wed, 13 Sep 2017 20:27:27 +0100 Subject: [PATCH 21/89] [VIVO-1367] Update AGROVOC URL --- .../service/impl/AgrovocService.java | 6 +- .../edit/forms/addAssociatedConcept.ftl | 62 +++++++++++-------- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/api/src/main/java/edu/cornell/mannlib/semservices/service/impl/AgrovocService.java b/api/src/main/java/edu/cornell/mannlib/semservices/service/impl/AgrovocService.java index baa43e56..0639b9c4 100644 --- a/api/src/main/java/edu/cornell/mannlib/semservices/service/impl/AgrovocService.java +++ b/api/src/main/java/edu/cornell/mannlib/semservices/service/impl/AgrovocService.java @@ -58,9 +58,9 @@ 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://aims.fao.org/skosmos/rest/v1/"; + protected final String conceptSkosMosBase = "http://artemide.art.uniroma2.it:8081/skosmos/rest/v1/"; protected final String conceptsSkosMosSearch = conceptSkosMosBase + "search?"; - protected final String conceptSkosMosURL = conceptSkosMosBase + "/agrovoc/data?"; + protected final String conceptSkosMosURL = conceptSkosMosBase + "data?"; @Override public List getConcepts(String term) throws Exception { List conceptList = new ArrayList(); @@ -145,7 +145,7 @@ public class AgrovocService implements ExternalConceptService { - + public List processResults(String term) throws Exception { diff --git a/webapp/src/main/webapp/templates/freemarker/edit/forms/addAssociatedConcept.ftl b/webapp/src/main/webapp/templates/freemarker/edit/forms/addAssociatedConcept.ftl index 495fa259..23f5ede3 100644 --- a/webapp/src/main/webapp/templates/freemarker/edit/forms/addAssociatedConcept.ftl +++ b/webapp/src/main/webapp/templates/freemarker/edit/forms/addAssociatedConcept.ftl @@ -42,40 +42,48 @@ <#if (existingConcepts?size > 0)>
  • -
    -
    -

    Concept (Type)

    -
    -
    -

    Vocabulary Source

    -
    -
      -
    -
    +
    +
    +
    +
    +

    Concept (Type)

    +
    +
    +

    Vocabulary Source

    +
    +
      +
    +
    +
    +
  • <#list existingConcepts as existingConcept>
  • +
    -
    ${existingConcept.conceptLabel} - <#if existingConcept.conceptSemanticTypeLabel?has_content> - (${existingConcept.conceptSemanticTypeLabel}) - -
    -
    - <#if existingConcept.vocabURI?has_content && existingConcept.vocabLabel?has_content> - ${existingConcept.vocabLabel} - <#else> -   - <#--We still want the column to be there even if no vocabulary source is present--> - -
    - +
    +
    ${existingConcept.conceptLabel} + <#if existingConcept.conceptSemanticTypeLabel?has_content> + (${existingConcept.conceptSemanticTypeLabel}) + +
    +
    + <#if existingConcept.vocabURI?has_content && existingConcept.vocabLabel?has_content> + ${existingConcept.vocabLabel} + <#else> +   + <#--We still want the column to be there even if no vocabulary source is present--> + +
    + +
    +
  • ${headScripts.list()} From eb6f0e5d8cb3449bd0dc6a4b2335effed9656e83 Mon Sep 17 00:00:00 2001 From: Graham Triggs Date: Sat, 23 Sep 2017 01:23:09 +0100 Subject: [PATCH 44/89] data-spy caused problems on short pages --- .../webapp/themes/tenderfoot/templates/page/partials/menu.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/src/main/webapp/themes/tenderfoot/templates/page/partials/menu.ftl b/webapp/src/main/webapp/themes/tenderfoot/templates/page/partials/menu.ftl index 14c611c8..e772d352 100644 --- a/webapp/src/main/webapp/themes/tenderfoot/templates/page/partials/menu.ftl +++ b/webapp/src/main/webapp/themes/tenderfoot/templates/page/partials/menu.ftl @@ -1,7 +1,7 @@ <#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->