From 3cef5026a777c489d2a1133a7ed5c1801ae7761b Mon Sep 17 00:00:00 2001 From: Franck Deroche Date: Tue, 30 May 2017 11:01:02 +0200 Subject: [PATCH] Issue #2882346 by DeFr: Fix date polyfill format --- core/misc/date.es6.js | 18 ++++++++++++++++++ core/misc/date.js | 14 ++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/core/misc/date.es6.js b/core/misc/date.es6.js index 8b6b71c..f0c8c38 100644 --- a/core/misc/date.es6.js +++ b/core/misc/date.es6.js @@ -36,6 +36,24 @@ .replace('Y', 'yy') .replace('m', 'mm') .replace('d', 'dd'); + + // If the date format isn't the standard HTML5 one, we need to use + // jQuery altField mecanism to ensure data get sent in the correct + // format. + if (datepickerSettings.dateFormat !== 'yy-mm-dd') { + var $hidden = $(''); + $hidden.attr('name', $input.attr('name')); + $hidden.val($input.val()); + $input.attr('name', ''); + $input.parent().append($hidden); + datepickerSettings.altFormat = 'yy-mm-dd'; + datepickerSettings.altField = $hidden; + if ($input.val()) { + var localized = $.datepicker.formatDate(datepickerSettings.dateFormat, new Date($input.val())); + $input.val(localized); + } + } + // Add min and max date if set on the input. if ($input.attr('min')) { datepickerSettings.minDate = $input.attr('min'); diff --git a/core/misc/date.js b/core/misc/date.js index 462784a..6980be8 100644 --- a/core/misc/date.js +++ b/core/misc/date.js @@ -23,6 +23,20 @@ datepickerSettings.dateFormat = dateFormat.replace('Y', 'yy').replace('m', 'mm').replace('d', 'dd'); + if (datepickerSettings.dateFormat !== 'yy-mm-dd') { + var $hidden = $(''); + $hidden.attr('name', $input.attr('name')); + $hidden.val($input.val()); + $input.attr('name', ''); + $input.parent().append($hidden); + datepickerSettings.altFormat = 'yy-mm-dd'; + datepickerSettings.altField = $hidden; + if ($input.val()) { + var localized = $.datepicker.formatDate(datepickerSettings.dateFormat, new Date($input.val())); + $input.val(localized); + } + } + if ($input.attr('min')) { datepickerSettings.minDate = $input.attr('min'); } -- 2.7.4