From e16ad50d5cf064008fa4e93f61433c878570f187 Mon Sep 17 00:00:00 2001 From: bdc34 Date: Wed, 22 Dec 2010 22:38:18 +0000 Subject: [PATCH] Working on dateTime with precision NIHVIVO-295 --- .../widgets/edit/DateTimeWithPrecision.ftl | 276 ++++++++++++++++++ 1 file changed, 276 insertions(+) create mode 100644 webapp/web/templates/freemarker/widgets/edit/DateTimeWithPrecision.ftl diff --git a/webapp/web/templates/freemarker/widgets/edit/DateTimeWithPrecision.ftl b/webapp/web/templates/freemarker/widgets/edit/DateTimeWithPrecision.ftl new file mode 100644 index 000000000..403d909a9 --- /dev/null +++ b/webapp/web/templates/freemarker/widgets/edit/DateTimeWithPrecision.ftl @@ -0,0 +1,276 @@ +<#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> + +<#-- This is an example of how we could call this macro from a custom form if we end up +implementing this like the other freemarker "widgets". For now I just have this here as +an example and I didn't really see any other way to get the jsp custom forms to call +this at the moment. Needless to say, we need to be able to call the macro and pass +parameters from within the original custom form --> + +<@dateTime specificity="${precision}" required="${requiredMinimumPrecision}" /> + +<#macro dateTime specificity="full" required=specificity> + <#assign specLevel = 10 /> + <#assign reqLevel = 10 /> + <#if specificity == "${precisions.year}"> + <#assign specLevel = 1 /> + <#elseif specificity == "${precisions.month}"> + <#assign specLevel = 2 /> + <#-- allow to specify year, month and day using "date" --> + <#elseif specificity == "${precisions.day}" || specificity == "date"> + <#assign specLevel = 3 /> + <#elseif specificity == "${precisions.hour}"> + <#assign specLevel = 4 /> + <#-- allow to specify hours and minutes using "time" --> + <#elseif specificity == "${precisions.minute}" || specificity == "time"> + <#assign specLevel = 5 /> + <#elseif specificity == "${precisions.second}"> + <#assign specLevel = 6 /> + + <#if required == "${precisions.year}"> + <#assign reqLevel = 1 /> + <#elseif required == "${precisions.month}"> + <#assign reqLevel = 2 /> + <#-- allow to require year, month and day using "date" --> + <#elseif required == "${precisions.day}" || required == "date"> + <#assign reqLevel = 3 /> + <#elseif required == "${precisions.hour}"> + <#assign reqLevel = 4 /> + <#-- allow to require hours and minutes using "time" --> + <#elseif required == "${precisions.minute}" || required == "time"> + <#assign reqLevel = 5 /> + <#elseif required == "${precisions.second}"> + <#assign reqLevel = 6 /> + <#elseif required == "${precisions.none}"> + <#assign reqLevel = 0 /> + + +
+ + <#if specLevel gte 1> + <#-- Only text input field in the mix. We should have some validation to ensure it's a valid year (4 digits, integer, etc) --> + + required /> + + + <#if specLevel gte 2> + + + + + <#if specLevel gte 3> + + + + + <#if specLevel gte 4> + <#-- We'll need to make this more flexible to support 24 hour display down the road. For now assuming 12h with am/pm --> + + + + + <#if specLevel gte 5> + + + + + <#if specLevel gte 6> + + + +
+ \ No newline at end of file