diff --git a/webapp/web/edit/forms/dateTimeIntervalForm.jsp b/webapp/web/edit/forms/dateTimeIntervalForm.jsp index 3ca6cd0d6..891b88135 100644 --- a/webapp/web/edit/forms/dateTimeIntervalForm.jsp +++ b/webapp/web/edit/forms/dateTimeIntervalForm.jsp @@ -27,7 +27,7 @@ <%@ taglib prefix="v" uri="http://vitro.mannlib.cornell.edu/vitro/tags" %> <%! - public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.edit.forms.dateTimeIntervalForm.jsp"); + public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.edit.forms.dateTimeIntervalForm"); %> <% VitroRequest vreq = new VitroRequest(request); diff --git a/webapp/web/edit/forms/dateTimeValueForm.jsp b/webapp/web/edit/forms/dateTimeValueForm.jsp new file mode 100644 index 000000000..54cae816e --- /dev/null +++ b/webapp/web/edit/forms/dateTimeValueForm.jsp @@ -0,0 +1,183 @@ +<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%> + +<%@ page import="java.util.List" %> +<%@ page import="java.util.ArrayList" %> +<%@ page import="java.util.Arrays" %> + +<%@ page import="com.hp.hpl.jena.rdf.model.Literal"%> +<%@ page import="com.hp.hpl.jena.rdf.model.Model"%> +<%@ page import="com.hp.hpl.jena.vocabulary.XSD" %> + +<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual"%> +<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary"%> +<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration"%> +<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory"%> +<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest"%> +<%@ page import="edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils"%> +<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.StartYearBeforeEndYear"%> +<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.JavaScript" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Css" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.elements.DateTimeWithPrecision"%> +<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field"%> + +<%@ page import="org.apache.commons.logging.Log" %> +<%@ page import="org.apache.commons.logging.LogFactory" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%> +<%@ taglib prefix="v" uri="http://vitro.mannlib.cornell.edu/vitro/tags" %> + +<%! + public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.edit.forms.dateTimeValueForm"); +%> +<% + VitroRequest vreq = new VitroRequest(request); + WebappDaoFactory wdf = vreq.getWebappDaoFactory(); + vreq.setAttribute("defaultNamespace", ""); //empty string triggers default new URI behavior +%> + + +<%@page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.DateTimeIntervalValidation"%> + + + + + + + + + + +<%-- Assertions for adding a new date time value --%> + + ?subject <${toDateTimeValue}> ?valueNode . + ?valueNode <${type}> <${valueType}> . + ?valueNode <${dateTimeValue}> ?dateTimeField.value . + ?valueNode <${dateTimePrecision}> ?dateTimeField.precision . + + +<%-- Queries for editing an existing role --%> + + + SELECT ?existingNode WHERE { + ?subject <${toDateTimeValue}> ?existingNode . + ?existingNode <${type}> <${valueType}> . } + + + existingDateTimeValueQuery + + SELECT ?existingDateTimeValue WHERE { + ?subject <${toDateTimeValue}> ?existingValueNode . + ?existingValueNode <${type}> <${valueType}> . + ?existingValueNode <${dateTimeValue}> ?existingDateTimeValue . } + + + + SELECT ?existingPrecision WHERE { + ?subject <${toDateTimeValue}> ?existingValueNode . + ?existingValueNode <${type}> <${valueType}> . + ?existingValueNode <${dateTimePrecision}> ?existingPrecision . } + + + +<%-- Configure add vs. edit --%> +<% + + String objectUri = (String) request.getAttribute("objectUri"); + if (objectUri != null) { // editing existing entry +%> + + + + +<% + } else { // adding new entry +%> + + + + +<% } %> + + + { + "formUrl" : "${formUrl}", + "editKey" : "${editKey}", + "urlPatternToReturnTo" : "/individual", + + "subject" : ["subject", "${subjectUriJson}" ], + "predicate" : ["toDateTimeValue", "${predicateUriJson}" ], + "object" : ["valueNode", "${objectUriJson}", "URI" ], + + "n3required" : [ "${n3ForValue}" ], + + "n3optional" : [ ], + + "newResources" : { "valueNode" : "${defaultNamespace}" }, + + "urisInScope" : { }, + "literalsInScope": { }, + "urisOnForm" : [ ], + "literalsOnForm" : [ ], + "filesOnForm" : [ ], + "sparqlForLiterals" : { }, + "sparqlForUris" : { }, + "sparqlForExistingLiterals" : { + "dateTimeField.value" : "${existingDateTimeValueQuery}", + }, + "sparqlForExistingUris" : { + "valueNode" : "${existingNodeQuery}", + "dateTimeField.precision": "${existingPrecisionQuery}" + }, + "fields" : { + "dateTimeField" : { + "newResource" : "false", + "validators" : [ ], + "optionsType" : "UNDEFINED", + "literalOptions" : [ ], + "predicateUri" : "", + "objectClassUri" : "", + "rangeDatatypeUri" : "", + "rangeLang" : "", + "assertions" : ["${n3ForValue}"] + } + } +} + + +<% + log.debug(request.getAttribute("editjson")); + + EditConfiguration editConfig = EditConfiguration.getConfigFromSession(session,request); + if (editConfig == null) { + editConfig = new EditConfiguration((String) request.getAttribute("editjson")); + EditConfiguration.putConfigInSession(editConfig,session); + + //setup date time edit elements + Field dateTimeField = editConfig.getField("dateTimeField"); + // arguments for DateTimeWithPrecision are (fieldName, minimumPrecision, [requiredLevel]) + dateTimeField.setEditElement(new DateTimeWithPrecision(dateTimeField, VitroVocabulary.Precision.YEAR.uri(), VitroVocabulary.Precision.SECOND.uri())); + } + + Model model = (Model) application.getAttribute("jenaOntModel"); + + if (objectUri != null) { // editing existing + editConfig.prepareForObjPropUpdate(model); + } else { // adding new + editConfig.prepareForNonUpdate(model); + } + + String subjectName = ((Individual) request.getAttribute("subject")).getName(); +%> + + + +

${titleVerb} date time value for <%= subjectName %>

+ +
" > + + + +

+ + +