From bda8836396f9516c52310c437e104614074867c7 Mon Sep 17 00:00:00 2001 From: Akim Juillerat Date: Tue, 13 Aug 2024 17:38:08 +0200 Subject: [PATCH] Apply default time on manual entry of date string --- .../static/src/js/datepicker.esm.js | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/web_datetime_picker_default_time/static/src/js/datepicker.esm.js b/web_datetime_picker_default_time/static/src/js/datepicker.esm.js index 65f5425d6..f453cbf7c 100644 --- a/web_datetime_picker_default_time/static/src/js/datepicker.esm.js +++ b/web_datetime_picker_default_time/static/src/js/datepicker.esm.js @@ -4,6 +4,7 @@ import {DateTimePicker} from "@web/core/datepicker/datepicker"; import {patch} from "@web/core/utils/patch"; +import {localization} from "@web/core/l10n/localization"; patch(DateTimePicker.prototype, "DateTimePickerDefaultTime", { onMounted() { @@ -21,6 +22,27 @@ patch(DateTimePicker.prototype, "DateTimePickerDefaultTime", { } }); }, + isStrDate(input_string) { + return input_string.trim().length == localization.dateFormat.length; + }, + customParseValue(input_value, options) { + const default_time = this.props.defaultTime; + let [res, error] = this.parseValueOriginal(input_value, options); + if (default_time && this.isStrDate(input_value)) { + const new_value = res.set({ + hour: default_time.hour, + minute: default_time.minute, + second: default_time.second, + }); + res = new_value; + } + return [res, error]; + }, + initFormat() { + this._super.apply(this, arguments); + this.parseValueOriginal = this.parseValue; + this.parseValue = this.customParseValue; + }, }); DateTimePicker.props = _.extend({}, DateTimePicker.props, {