From 433cf85bd47bd3e2338ca0954a9abfeec80310b6 Mon Sep 17 00:00:00 2001 From: Sam Georges Date: Fri, 20 Jun 2014 19:30:37 +1000 Subject: [PATCH] All DateTime fields now validated in Lists --- modules/backend/widgets/Lists.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/backend/widgets/Lists.php b/modules/backend/widgets/Lists.php index d2c56ddb3..890cf39fc 100644 --- a/modules/backend/widgets/Lists.php +++ b/modules/backend/widgets/Lists.php @@ -608,6 +608,8 @@ class Lists extends WidgetBase if ($value === null) return null; + $value = $this->validateDateTimeValue($value, $column); + if ($column->format !== null) return $value->format($column->format); @@ -622,6 +624,8 @@ class Lists extends WidgetBase if ($value === null) return null; + $value = $this->validateDateTimeValue($value, $column); + if ($column->format === null) $column->format = 'g:i A'; @@ -636,6 +640,8 @@ class Lists extends WidgetBase if ($value === null) return null; + $value = $this->validateDateTimeValue($value, $column); + if ($column->format !== null) return $value->format($column->format); @@ -650,13 +656,23 @@ class Lists extends WidgetBase if ($value === null) return null; + $value = $this->validateDateTimeValue($value, $column); + + return $value->diffForHumans(); + } + + /** + * Validates a column type as a date + */ + private function validateDateTimeValue($value, $column) + { if ($value instanceof DateTime) $value = Carbon::instance($value); if (!$value instanceof Carbon) - throw new ApplicationException(sprintf('Column value %s is not a DateTime object, are you missing a $dates reference in the Model?', $column->columnName)); + throw new ApplicationException(Lang::get('backend::lang.list.invalid_column_datetime', ['column' => $column->columnName])); - return $value->diffForHumans(); + return $value; } //