Skip to content

Commit

Permalink
[REF] web: calendar: allow to override popover
Browse files Browse the repository at this point in the history
This commit move some code to be able to override
Bootstrap popover in web_enterprise for mobile.

Task ID: 2052506

closes #35727

Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
  • Loading branch information
rfr-odoo committed Aug 19, 2019
1 parent a01b834 commit 6e04e59
Showing 1 changed file with 37 additions and 15 deletions.
52 changes: 37 additions & 15 deletions addons/web/static/src/js/views/calendar/calendar_renderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,18 @@ return AbstractRenderer.extend({
this.$sidebar_container = this.$(".o_calendar_sidebar_container");
this._initCalendarMini();
},
/**
* Finalise the popover
*
* @param {jQueryElement} $popoverElement
* @param {web.CalendarPopover} calendarPopover
* @private
*/
_onPopoverShown: function ($popoverElement, calendarPopover) {
var $popover = $($popoverElement.data('bs.popover').tip);
$popover.find('.o_cw_popover_close').on('click', this._unselectEvent.bind(this));
$popover.find('.o_cw_body').replaceWith(calendarPopover.$el);
},
/**
* Render the calendar view, this is the main entry point.
*
Expand Down Expand Up @@ -699,6 +711,27 @@ return AbstractRenderer.extend({

return context;
},
/**
* Prepare the parameters for the popover.
* This allow the parameters to be extensible.
*
* @private
* @param {Object} eventData
*/
_getPopoverParams: function (eventData) {
return {
animation: false,
delay: {
show: 50,
hide: 100
},
trigger: 'manual',
html: true,
title: eventData.record.display_name,
template: qweb.render('CalendarView.event.popover.placeholder', {color: this.getColor(eventData.color_index)}),
container: eventData.allDay ? '.fc-view' : '.fc-scroller',
}
},
/**
* Render event popover
*
Expand All @@ -712,21 +745,10 @@ return AbstractRenderer.extend({
// Initialize popover widget
var calendarPopover = new self.config.CalendarPopover(self, self._getPopoverContext(eventData));
calendarPopover.appendTo($('<div>')).then(() => {
$eventElement.popover({
animation: false,
delay: {
show: 50,
hide: 100
},
trigger: 'manual',
html: true,
title: eventData.record.display_name,
template: qweb.render('CalendarView.event.popover.placeholder', {color: this.getColor(eventData.color_index)}),
container: eventData.allDay ? '.fc-view' : '.fc-scroller',
}).on('shown.bs.popover', function () {
var $popover = $($(this).data('bs.popover').tip);
$popover.find('.o_cw_popover_close').on('click', self._unselectEvent.bind(self));
$popover.find('.o_cw_body').replaceWith(calendarPopover.$el);
$eventElement.popover(
self._getPopoverParams(eventData)
).on('shown.bs.popover', function () {
self._onPopoverShown($(this), calendarPopover);
}).popover('show');
});
},
Expand Down

0 comments on commit 6e04e59

Please sign in to comment.