diff --git a/productMods/edit/forms/personHasEducationalTraining.jsp b/productMods/edit/forms/personHasEducationalTraining.jsp index 71868f21..33aa576c 100644 --- a/productMods/edit/forms/personHasEducationalTraining.jsp +++ b/productMods/edit/forms/personHasEducationalTraining.jsp @@ -88,33 +88,13 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision) - -<%-- For new datetime handling in ontology - v1.2 - - - - ---%> - - - SELECT ?existingYear WHERE { - ?edTraining <${edToDateTime}> ?dateTimeNode . - ?dateTimeNode <${dateTimeValue}> ?existingYear . } - - - - SELECT ?existingPrecision WHERE { - ?edTraining <${edToDateTime}> ?dateTimeNode . - ?dateTimeNode <${dateTimePrecision}> ?existingPrecision . } - - - - SELECT ?dateTime WHERE { ?edTraining <${edToDateTime}> ?dateTime . } - + + + + <%-- Assertions for adding a new educational training entry --%> - ?org a ?orgType . @@ -132,11 +112,22 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision) ?edTraining <${majorFieldPred}> ?majorField . - - ?edTraining <${edToDateTime}> ?dateTimeNode . - ?dateTimeNode <${type}> <${dateTimeValueType}> . - ?dateTimeNode <${dateTimeValue}> ?dateTime.value . - ?dateTimeNode <${dateTimePrecision}> ?dateTime.precision . + + ?edTraining <${ToInterval}> ?intervalNode . + ?intervalNode <${type}> <${intervalType}> . + ?intervalNode <${intervalToStart}> ?startNode . + ?startNode <${type}> <${dateTimeValueType}> . + ?startNode <${dateTimeValue}> ?startField.value . + ?startNode <${dateTimePrecision}> ?startField.precision . + + + + ?edTraining <${ToInterval}> ?intervalNode . + ?intervalNode <${type}> <${intervalType}> . + ?intervalNode <${intervalToEnd}> ?endNode . + ?endNode <${type}> <${dateTimeValueType}> . + ?endNode <${dateTimeValue}> ?endField.value . + ?endNode <${dateTimePrecision}> ?endField.precision . @@ -204,6 +195,65 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision) + + SELECT ?existingIntervalNode WHERE { + ?edTraining <${ToInterval}> ?existingIntervalNode . + ?existingIntervalNode <${type}> <${intervalType}> . } + + + + SELECT ?existingStartNode WHERE { + ?edTraining <${ToInterval}> ?intervalNode . + ?intervalNode <${type}> <${intervalType}> . + ?intervalNode <${intervalToStart}> ?existingStartNode . + ?existingStartNode <${type}> <${dateTimeValueType}> .} + + + + SELECT ?existingDateStart WHERE { + ?edTraining <${ToInterval}> ?intervalNode . + ?intervalNode <${type}> <${intervalType}> . + ?intervalNode <${intervalToStart}> ?startNode . + ?startNode <${type}> <${dateTimeValueType}> . + ?startNode <${dateTimeValue}> ?existingDateStart . } + + + + SELECT ?existingStartPrecision WHERE { + ?edTraining <${ToInterval}> ?intervalNode . + ?intervalNode <${type}> <${intervalType}> . + ?intervalNode <${intervalToStart}> ?startNode . + ?startNode <${type}> <${dateTimeValueType}> . + ?startNode <${dateTimePrecision}> ?existingStartPrecision . } + + + + + SELECT ?existingEndNode WHERE { + ?edTraining <${ToInterval}> ?intervalNode . + ?intervalNode <${type}> <${intervalType}> . + ?intervalNode <${intervalToEnd}> ?existingEndNode . + ?existingEndNode <${type}> <${dateTimeValueType}> .} + + + + SELECT ?existingEndDate WHERE { + ?edTraining <${ToInterval}> ?intervalNode . + ?intervalNode <${type}> <${intervalType}> . + ?intervalNode <${intervalToEnd}> ?endNode . + ?endNode <${type}> <${dateTimeValueType}> . + ?endNode <${dateTimeValue}> ?existingEndDate . } + + + + SELECT ?existingEndPrecision WHERE { + ?edTraining <${ToInterval}> ?intervalNode . + ?intervalNode <${type}> <${intervalType}> . + ?intervalNode <${intervalToEnd}> ?endNode . + ?endNode <${type}> <${dateTimeValueType}> . + ?endNode <${dateTimePrecision}> ?existingEndPrecision . } + + ${orgClass} ${degreeClass} @@ -217,14 +267,16 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision) "predicate" : ["predicate", "${predicateUriJson}" ], "object" : ["edTraining", "${objectUriJson}", "URI" ], - "n3required" : [ "${n3ForNewEdTraining}", "${orgLabelAssertion}", "${orgTypeAssertion}", "${dateTimeAssertions}" ], + "n3required" : [ "${n3ForNewEdTraining}", "${orgLabelAssertion}", "${orgTypeAssertion}" ], "n3optional" : [ "${n3ForEdTrainingToOrg}", "${majorFieldAssertion}", - "${degreeAssertion}", "${deptAssertion}", "${infoAssertion}" ], + "${degreeAssertion}", "${deptAssertion}", "${infoAssertion}" , "${n3ForStart}", "${n3ForEnd}"], "newResources" : { "edTraining" : "${defaultNamespace}", "org" : "${defaultNamespace}" , - "dateTimeNode" : "${defaultNamespace}" }, + "intervalNode" : "${defaultNamespace}", + "startNode" : "${defaultNamespace}", + "endNode" : "${defaultNamespace}" }, "urisInScope" : { }, "literalsInScope": { }, @@ -237,15 +289,19 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision) "orgLabel" : "${orgLabelQuery}", "majorField" : "${majorFieldQuery}", "dept" : "${deptQuery}", - "info" : "${infoQuery}", - "dateTime.value" : "${existingYearQuery}" + "info" : "${infoQuery}", + "startField.value" : "${existingStartDateQuery}", + "endField.value" : "${existingEndDateQuery}" }, "sparqlForExistingUris" : { "org" : "${orgQuery}", "orgType" : "${orgTypeQuery}", - "degree" : "${degreeQuery}", - "dateTimeNode" : "${existingDateTimeQuery}", - "dateTime.precision" : "${existingYearPrecision}" + "degree" : "${degreeQuery}", + "intervalNode" : "${existingIntervalNodeQuery}", + "startNode" : "${existingStartNodeQuery}", + "endNode" : "${existingEndNodeQuery}", + "startField.precision": "${existingStartPrecisionQuery}", + "endField.precision" : "${existingEndPrecisionQuery}" }, "fields" : { "degree" : { @@ -270,8 +326,8 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision) "rangeLang" : "", "assertions" : [ "${majorFieldAssertion}" ] }, - "dateTime" : { - "newResource" : "true", + "startField" : { + "newResource" : "false", "validators" : [ ], "optionsType" : "UNDEFINED", "literalOptions" : [ ], @@ -279,7 +335,18 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision) "objectClassUri" : "", "rangeDatatypeUri" : "", "rangeLang" : "", - "assertions" : [ "${dateTimeAssertions}" ] + "assertions" : [ "${n3ForStart}" ] + }, + "endField" : { + "newResource" : "false", + "validators" : [ ], + "optionsType" : "UNDEFINED", + "literalOptions" : [ ], + "predicateUri" : "", + "objectClassUri" : "", + "rangeDatatypeUri" : "", + "rangeLang" : "", + "assertions" : [ "${n3ForEnd}" ] }, "org" : { "newResource" : "false", @@ -345,10 +412,13 @@ core:dateTimePrecision (DateTimeValue : DateTimeValuePrecision) EditConfiguration editConfig = EditConfiguration.getConfigFromSession(session,request); if (editConfig == null) { editConfig = new EditConfiguration((String) request.getAttribute("editjson")); - - //setup date time edit element - Field dateTime = editConfig.getField("dateTime"); - dateTime.setEditElement( new DateTimeWithPrecision(dateTime, VitroVocabulary.Precision.YEAR.uri(), VitroVocabulary.Precision.NONE.uri())); + + //setup date time edit elements + Field startField = editConfig.getField("startField"); + // arguments for DateTimeWithPrecision are (fieldName, minimumPrecision, [requiredLevel]) + startField.setEditElement(new DateTimeWithPrecision(startField, VitroVocabulary.Precision.YEAR.uri(), VitroVocabulary.Precision.NONE.uri())); + Field endField = editConfig.getField("endField"); + endField.setEditElement(new DateTimeWithPrecision(endField, VitroVocabulary.Precision.YEAR.uri(), VitroVocabulary.Precision.NONE.uri())); EditConfiguration.putConfigInSession(editConfig,session); } @@ -403,9 +473,6 @@ This goes to an experimental FM based form: --%> - - - @@ -418,8 +485,9 @@ This goes to an experimental FM based form: - - + + +