summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/components/datepicker.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/components/datepicker.js')
-rw-r--r--addons/web/static/src/js/components/datepicker.js29
1 files changed, 24 insertions, 5 deletions
diff --git a/addons/web/static/src/js/components/datepicker.js b/addons/web/static/src/js/components/datepicker.js
index d7d62ba104e..6031c72fc69 100644
--- a/addons/web/static/src/js/components/datepicker.js
+++ b/addons/web/static/src/js/components/datepicker.js
@@ -42,7 +42,8 @@ odoo.define('web.DatePickerOwl', function (require) {
$(this.el).on('hide.datetimepicker', this._onDateTimePickerHide.bind(this));
$(this.el).on('error.datetimepicker', () => false);
- this._datetimepicker(this.props);
+ const pickerOptions = Object.assign({ format: this.defaultFormat }, this.props);
+ this._datetimepicker(pickerOptions);
this.inputRef.el.value = this._formatDate(this.props.date);
}
@@ -51,8 +52,10 @@ odoo.define('web.DatePickerOwl', function (require) {
}
willUpdateProps(nextProps) {
+ for (const prop in nextProps) {
+ this._datetimepicker(prop, nextProps[prop]);
+ }
if (nextProps.date) {
- this._datetimepicker('date', nextProps.date);
this.inputRef.el.value = this._formatDate(nextProps.date);
}
}
@@ -62,6 +65,17 @@ odoo.define('web.DatePickerOwl', function (require) {
//---------------------------------------------------------------------
/**
+ * @returns {string}
+ */
+ get defaultFormat() {
+ return time.getLangDateFormat();
+ }
+
+ //---------------------------------------------------------------------
+ // Private
+ //---------------------------------------------------------------------
+
+ /**
* Handle bootstrap datetimepicker calls.
* @private
* @param {...any} args anything that will be passed to the datetimepicker function.
@@ -153,7 +167,6 @@ odoo.define('web.DatePickerOwl', function (require) {
DatePicker.defaultProps = {
calendarWeeks: true,
- format: time.getLangDateFormat(),
icons: {
clear: 'fa fa-delete',
close: 'fa fa-check primary',
@@ -185,7 +198,7 @@ odoo.define('web.DatePickerOwl', function (require) {
optional: 1,
},
calendarWeeks: Boolean,
- format: String,
+ format: { type: String, optional: 1 },
icons: {
type: Object,
shape: {
@@ -226,6 +239,13 @@ odoo.define('web.DatePickerOwl', function (require) {
this.typeOfDate = 'datetime';
}
+
+ /**
+ * @override
+ */
+ get defaultFormat() {
+ return time.getLangDatetimeFormat();
+ }
}
DateTimePicker.defaultProps = Object.assign({}, DatePicker.defaultProps, {
@@ -234,7 +254,6 @@ odoo.define('web.DatePickerOwl', function (require) {
showClose: true,
showToday: false,
},
- format: time.getLangDatetimeFormat(),
});
return {