From 3bf1f4b7898daec824134a68d804da9c09e92cd3 Mon Sep 17 00:00:00 2001
From: tworrall
Date: Mon, 21 Nov 2011 18:35:09 +0000
Subject: [PATCH] NIHVIVO-3162 and 3245 date time interval form gernerator and
template
---
.../DateTimeIntervalFormGenerator.java | 45 ++++-
.../DateTimeValueFormGenerator.java | 2 +-
.../edit/forms/dateTimeIntervalForm.ftl | 169 +++++++-----------
3 files changed, 97 insertions(+), 119 deletions(-)
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeIntervalFormGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeIntervalFormGenerator.java
index 1745ec095..c34f1a553 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeIntervalFormGenerator.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeIntervalFormGenerator.java
@@ -2,15 +2,23 @@
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
import javax.servlet.http.HttpSession;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.vocabulary.XSD;
+
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisionVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo;
+import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
+import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
public class DateTimeIntervalFormGenerator extends
BaseEditConfigurationGenerator implements EditConfigurationGenerator {
@@ -58,21 +66,28 @@ public class DateTimeIntervalFormGenerator extends
conf.addSparqlForExistingUris(
"endField-precision", existingEndPrecisionQuery);
- conf.addField(new FieldVTwo().setName("startField").
- setEditElement(new DateTimeWithPrecisionVTwo(null,
+ FieldVTwo startField = new FieldVTwo().setName("startField");
+ startField.setEditElement(new DateTimeWithPrecisionVTwo(startField,
VitroVocabulary.Precision.SECOND.uri(),
- VitroVocabulary.Precision.NONE.uri())));
- conf.addField(new FieldVTwo().setName("endField").
- setEditElement(new DateTimeWithPrecisionVTwo(null,
- VitroVocabulary.Precision.SECOND.uri(),
- VitroVocabulary.Precision.NONE.uri())));
+ VitroVocabulary.Precision.NONE.uri()));
+
+ FieldVTwo endField = new FieldVTwo().setName("endField");
+ endField.setEditElement(new DateTimeWithPrecisionVTwo(endField,
+ VitroVocabulary.Precision.SECOND.uri(),
+ VitroVocabulary.Precision.NONE.uri()));
+ conf.addField(startField);
+ conf.addField(endField);
+
+ //Adding additional data, specifically edit mode
+ addFormSpecificData(conf, vreq);
+
return conf;
}
final static String n3ForStart =
- "?subject <" + toDateTimeInterval + " ?intervalNode . \n" +
+ "?subject <" + toDateTimeInterval + "> ?intervalNode . \n" +
"?intervalNode a <" + intervalType + "> . \n" +
"?intervalNode <" + intervalToStart + "> ?startNode . \n" +
"?startNode a <" + dateTimeValueType + "> . \n" +
@@ -134,8 +149,20 @@ public class DateTimeIntervalFormGenerator extends
"SELECT ?existingEndPrecision WHERE { \n" +
"?subject <" + toDateTimeInterval + "> ?existingIntervalNode . \n" +
"?intervalNode a <" + intervalType + "> . \n" +
- "intervalNode <" + intervalToEnd + "> ?endNode . \n" +
+ "?intervalNode <" + intervalToEnd + "> ?endNode . \n" +
"?endNode a <" + dateTimeValueType + "> . \n" +
"?endNode <" + dateTimePrecision + "> ?existingEndPrecision . }";
+ //Adding form specific data such as edit mode
+ public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
+ HashMap formSpecificData = new HashMap();
+ formSpecificData.put("editMode", getEditMode(vreq).name().toLowerCase());
+ editConfiguration.setFormSpecificData(formSpecificData);
+ }
+
+ public EditMode getEditMode(VitroRequest vreq) {
+ List predicates = new ArrayList();
+ predicates.add(toDateTimeInterval);
+ return EditModeUtils.getEditMode(vreq, predicates);
+ }
}
diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeValueFormGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeValueFormGenerator.java
index 77ea3979f..81d531a4d 100644
--- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeValueFormGenerator.java
+++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/DateTimeValueFormGenerator.java
@@ -101,7 +101,7 @@ public class DateTimeValueFormGenerator extends BaseEditConfigurationGenerator
public EditMode getEditMode(VitroRequest vreq) {
List predicates = new ArrayList();
- predicates.add(dateTimeValue);
+ predicates.add(toDateTimeValue);
return EditModeUtils.getEditMode(vreq, predicates);
}
}
\ No newline at end of file
diff --git a/webapp/web/templates/freemarker/edit/forms/dateTimeIntervalForm.ftl b/webapp/web/templates/freemarker/edit/forms/dateTimeIntervalForm.ftl
index 221fcc90b..447cabdfd 100644
--- a/webapp/web/templates/freemarker/edit/forms/dateTimeIntervalForm.ftl
+++ b/webapp/web/templates/freemarker/edit/forms/dateTimeIntervalForm.ftl
@@ -1,126 +1,77 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
-<#-- Custom form for adding date time intervals -->
+<#-- Template for adding/editing time values -->
-<#if editConfig.object?has_content>
- <#assign editMode = "edit">
-<#else>
- <#assign editMode = "add">
-#if>
+<#--Retrieve certain edit configuration information-->
+<#assign editMode = editConfiguration.pageData.editMode />
+<#assign htmlForElements = editConfiguration.pageData.htmlForElements />
<#if editMode == "edit">
<#assign titleVerb="Edit">
- <#assign submitButtonText="Edit Date/Time Interval">
+ <#assign submitButtonText="Edit Date/Time Value">
<#assign disabledVal="disabled">
<#else>
<#assign titleVerb="Create">
- <#assign submitButtonText="Create Date/Time Interval">
+ <#assign submitButtonText="Create Date/Time Value">
<#assign disabledVal=""/>
-#if>startField-
+#if>
+<#--If edit submission exists, then retrieve validation errors if they exist-->
+<#if editSubmission?has_content && editSubmission.submissionExists = true && editSubmission.validationErrors?has_content>
+ <#assign submissionErrors = editSubmission.validationErrors/>
+#if>
-${titleVerb} date time interval for ${subjectName}
+${titleVerb} date time value for ${editConfiguration.subjectName}
+
+<#--Display error messages if any-->
+<#if submissionErrors?has_content>
+
+
+
+ <#--below shows examples of both printing out all error messages and checking the error message for a specific field-->
+ <#list submissionErrors?keys as errorFieldName>
+ <#if errorFieldName == "startField">
+ <#if submissionErrors[errorFieldName]?contains("before")>
+ The Start interval must be earlier than the End interval.
+ <#else>
+ ${submissionErrors[errorFieldName]}
+ #if>
+
+ <#elseif errorFieldName == "endField">
+ <#if submissionErrors[errorFieldName]?contains("after")>
+ The End interval must be later than the Start interval.
+ <#else>
+ ${submissionErrors[errorFieldName]}
+ #if>
+ #if>
+ #list>
+
+
+#if>
- or
+${stylesheets.add(' ',
+ ' ')}
- Cancel
-
-
\ No newline at end of file
+${scripts.add('',
+ '',
+ '')}
\ No newline at end of file