odoo18/addons/web/static/src/public/datetime_picker_widget.js

43 lines
1.2 KiB
JavaScript

import {
deserializeDate,
deserializeDateTime,
parseDate,
parseDateTime,
} from "@web/core/l10n/dates";
import PublicWidget from "@web/legacy/js/public/public_widget";
export const DateTimePickerWidget = PublicWidget.Widget.extend({
selector: "[data-widget='datetime-picker']",
disabledInEditableMode: true,
/**
* @override
*/
start() {
this._super(...arguments);
const { widgetType, minDate, maxDate } = this.el.dataset;
const type = widgetType || "datetime";
const { value } = this.el;
const [parse, deserialize] =
type === "date" ? [parseDate, deserializeDate] : [parseDateTime, deserializeDateTime];
this.disableDateTimePicker = this.call("datetime_picker", "create", {
target: this.el,
pickerProps: {
type,
minDate: minDate && deserialize(minDate),
maxDate: maxDate && deserialize(maxDate),
value: parse(value),
},
}).enable();
},
/**
* @override
*/
destroy() {
this.disableDateTimePicker();
return this._super(...arguments);
},
});
PublicWidget.registry.DateTimePickerWidget = DateTimePickerWidget;