From ee2771e99a9f7ba8b475bbf1522b27a30ebbded7 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Thu, 28 May 2009 04:06:14 +0000 Subject: [PATCH] BUGFIX Slice of extra "OO" if SQL server attempts to set value in DateField BUGFIX Don't attempt to use JS validation on DateField is javascript handler is "none" git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@78065 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- forms/DateField.php | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/forms/DateField.php b/forms/DateField.php index 152f9348e..fdf3cbd78 100755 --- a/forms/DateField.php +++ b/forms/DateField.php @@ -20,6 +20,18 @@ class DateField extends TextField { public static $validation_enabled = true; function setValue($val) { + if ($val) { + if (!is_array($val) ) { //&& strlen($val) == 26) { + + $ampm = substr($val,strlen($val)-2,strlen($val)); + if ($ampm == "PM") { //correct for pm offset when cutting off 12-hour clock format + $val = substr($val,0,strlen($val)-6)."PM"; + } elseif ($ampm == "AM") { + $val = substr($val,0,strlen($val)-6); + } + } + } + if(is_string($val) && preg_match('/^([\d]{2,4})-([\d]{1,2})-([\d]{1,2})/', $val)) { $this->value = preg_replace('/^([\d]{2,4})-([\d]{1,2})-([\d]{1,2})/','\\3/\\2/\\1', $val); } else { @@ -51,7 +63,12 @@ class DateField extends TextField { } function jsValidation() { - $formID = $this->form->FormName(); + $formID = $this->form->FormName(); + + if(Validator::get_javascript_validator_handler() == 'none') { + return true; + } + $error = _t('DateField.VALIDATIONJS', 'Please enter a valid date format (DD/MM/YYYY).'); $jsFunc =<<