From 92bc8835db62847fee9e2e19ea9abe266fe3d3b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 12 Sep 2020 10:41:34 +0200 Subject: [PATCH] Do not monkey patch datetimepicker if not loaded The tests does not load graphical libraries so datetimepicker can not be loaded. issue9455 --- src/sao.js | 58 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/src/sao.js b/src/sao.js index 888c671efd..0df3b4f0e6 100644 --- a/src/sao.js +++ b/src/sao.js @@ -1147,36 +1147,38 @@ var Sao = {}; .next('.modal-backdrop.in').removeClass('hidden'); } - // XXX: use Popper to place popup - // cherry picked from tempusdominus-core.js - $.fn.datetimepicker.prototype.constructor.Constructor.prototype._place = function _place(e) { - var self = (e && e.data && e.data.picker) || this; - if (self._options.sideBySide) { - self._element.append(self.widget); - return; - } - if (self._options.widgetParent) { - self._options.widgetParent.append(self.widget); - } else if (self._element.is('input')) { - self._element.after(self.widget).parent(); - } else { - self._element.children().first().after(self.widget); - } + if ($.fn.datetimepicker) { + // XXX: use Popper to place popup + // cherry picked from tempusdominus-core.js + $.fn.datetimepicker.prototype.constructor.Constructor.prototype._place = function _place(e) { + var self = (e && e.data && e.data.picker) || this; + if (self._options.sideBySide) { + self._element.append(self.widget); + return; + } + if (self._options.widgetParent) { + self._options.widgetParent.append(self.widget); + } else if (self._element.is('input')) { + self._element.after(self.widget).parent(); + } else { + self._element.children().first().after(self.widget); + } - var reference = self.component[0]; + var reference = self.component[0]; - if (!reference) { - reference = self._element; - } + if (!reference) { + reference = self._element; + } - // ReSharper disable once ConstructorCallNotUsed - new Popper(reference, self.widget[0], { - placement: 'bottom-start' - }); - }; + // ReSharper disable once ConstructorCallNotUsed + new Popper(reference, self.widget[0], { + placement: 'bottom-start' + }); + }; - // XXX: Ensure to always return a date - $.fn.datetimepicker.prototype.constructor.Constructor.prototype._getLastPickedDate = function _getLastPickedDate() { - return this._dates[this._getLastPickedDateIndex()] || this.getMoment(); - }; + // XXX: Ensure to always return a date + $.fn.datetimepicker.prototype.constructor.Constructor.prototype._getLastPickedDate = function _getLastPickedDate() { + return this._dates[this._getLastPickedDateIndex()] || this.getMoment(); + }; + } }());