summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2018-03-15 13:44:10 +0100
committerqsm-odoo <qsm@odoo.com>2018-07-27 12:36:54 +0200
commit2d5595fcbad73ed0ce03f048fdd870d9659bcd5e (patch)
tree2fa28e304ee7978e3d02d5732daf1eea07224b35 /addons
parent770aec399c4e6e29cfc5854318cbda19a605315d (diff)
[REF] web, *: BS4, adapt use of tooltip/popover.js
Diffstat (limited to 'addons')
-rw-r--r--addons/account/static/src/js/account_payment_field.js1
-rw-r--r--addons/account/static/src/js/reconciliation/reconciliation_renderer.js4
-rw-r--r--addons/hr_org_chart/static/src/js/hr_org_chart.js2
-rw-r--r--addons/mail/static/src/js/activity.js12
-rw-r--r--addons/web/static/src/js/chrome/menu.js2
-rw-r--r--addons/web/static/src/js/libs/bootstrap.js28
-rw-r--r--addons/web/static/src/js/services/crash_manager.js2
-rw-r--r--addons/web/static/src/js/views/basic/basic_renderer.js1
-rw-r--r--addons/web/static/src/js/views/form/form_renderer.js1
-rw-r--r--addons/web/static/src/js/views/graph/graph_controller.js2
-rw-r--r--addons/web/static/src/js/views/kanban/kanban_column.js2
-rw-r--r--addons/web/static/src/js/views/kanban/kanban_column_progressbar.js10
-rw-r--r--addons/web/static/src/js/views/kanban/kanban_record.js5
-rw-r--r--addons/web_editor/static/src/js/editor/rte.js4
-rw-r--r--addons/web_editor/static/src/js/editor/rte.summernote.js4
-rw-r--r--addons/web_editor/static/src/js/editor/snippets.editor.js2
-rw-r--r--addons/website/static/src/js/content/snippets.animation.js2
17 files changed, 38 insertions, 46 deletions
diff --git a/addons/account/static/src/js/account_payment_field.js b/addons/account/static/src/js/account_payment_field.js
index 1e5171e1f44..3c7bbdc0b1f 100644
--- a/addons/account/static/src/js/account_payment_field.js
+++ b/addons/account/static/src/js/account_payment_field.js
@@ -80,6 +80,7 @@ var ShowPaymentLineWidget = AbstractField.extend({
title: 'Payment Information',
trigger: 'focus',
delay: { "show": 0, "hide": 100 },
+ container: $(k).parent(), // FIXME Ugly, should use the default body container but system & tests to adapt to properly destroy the popover
};
$(k).popover(options);
});
diff --git a/addons/account/static/src/js/reconciliation/reconciliation_renderer.js b/addons/account/static/src/js/reconciliation/reconciliation_renderer.js
index 7578f9c4d1d..c071c612059 100644
--- a/addons/account/static/src/js/reconciliation/reconciliation_renderer.js
+++ b/addons/account/static/src/js/reconciliation/reconciliation_renderer.js
@@ -485,7 +485,7 @@ var LineRenderer = Widget.extend(FieldManagerMixin, {
_destroyPopover: function ($el) {
var popover = $el.data('bs.popover');
if (popover) {
- popover.destroy();
+ popover.dispose();
}
},
/**
@@ -775,7 +775,7 @@ var LineRenderer = Widget.extend(FieldManagerMixin, {
_onTogglePartialReconcile: function (e) {
e.stopPropagation();
var popover = $(e.target).data('bs.popover');
- popover && popover.destroy();
+ popover && popover.dispose();
this.trigger_up('toggle_partial_reconcile');
}
});
diff --git a/addons/hr_org_chart/static/src/js/hr_org_chart.js b/addons/hr_org_chart/static/src/js/hr_org_chart.js
index 69599fa39e3..b889375cac4 100644
--- a/addons/hr_org_chart/static/src/js/hr_org_chart.js
+++ b/addons/hr_org_chart/static/src/js/hr_org_chart.js
@@ -91,7 +91,7 @@ var FieldOrgChart = AbstractField.extend({
'.o_employee_sub_redirect', _.bind(self._onEmployeeSubRedirect, self));
return $content;
},
- template: $(QWeb.render('hr_orgchart_emp_popover', {})),
+ template: QWeb.render('hr_orgchart_emp_popover', {}),
});
});
});
diff --git a/addons/mail/static/src/js/activity.js b/addons/mail/static/src/js/activity.js
index 17d1970dea6..3a63b1fbd60 100644
--- a/addons/mail/static/src/js/activity.js
+++ b/addons/mail/static/src/js/activity.js
@@ -322,8 +322,10 @@ var Activity = AbstractActivityField.extend({
var previousActivityTypeID = $popoverElement.data('previous-activity-type-id');
if (!$popoverElement.data('bs.popover')) {
$popoverElement.popover({
+ template: $(Popover.Default.template).addClass('o_mail_activity_feedback')[0].outerHTML, // Ugly but cannot find another way
+ container: $popoverElement.parent(), // FIXME Ugly and should probably be in the body as by default but form view should handle destroying popovers
title : _t("Feedback"),
- html: 'true',
+ html: true,
trigger:'click',
content : function () {
var $popover = $(QWeb.render('mail.activity_feedback_form', { 'previous_activity_type_id': previousActivityTypeID }));
@@ -344,12 +346,10 @@ var Activity = AbstractActivityField.extend({
});
return $popover;
},
- }).on('show.bs.popover', function (e) {
- var $popover = $(this).data('bs.popover').tip();
- $popover.addClass('o_mail_activity_feedback').attr('tabindex', 0);
- $('.o_mail_activity_feedback.popover').not(e.target).popover('hide');
}).on('shown.bs.popover', function () {
- var $popover = $(this).data('bs.popover').tip();
+ var $popover = $($(this).data("bs.popover").tip);
+ $(".o_mail_activity_feedback.popover").not($popover).popover("hide");
+ $popover.addClass('o_mail_activity_feedback').attr('tabindex', 0);
$popover.find('#activity_feedback').focus();
$popover.off('focusout');
$popover.focusout(function (e) {
diff --git a/addons/web/static/src/js/chrome/menu.js b/addons/web/static/src/js/chrome/menu.js
index 1e253ba54f7..8613e90afa8 100644
--- a/addons/web/static/src/js/chrome/menu.js
+++ b/addons/web/static/src/js/chrome/menu.js
@@ -143,7 +143,7 @@ var Menu = Widget.extend({
}
// add a tooltip to cropped menu items
this.$secondary_menus.find('.oe_secondary_submenu li a span').each(function() {
- $(this).tooltip(this.scrollWidth > this.clientWidth ? {title: $(this).text().trim(), placement: 'right'} :'destroy');
+ $(this).tooltip(this.scrollWidth > this.clientWidth ? {title: $(this).text().trim(), placement: 'right'} : 'dispose');
});
},
/**
diff --git a/addons/web/static/src/js/libs/bootstrap.js b/addons/web/static/src/js/libs/bootstrap.js
index 04ca2381d7d..135a6b65df6 100644
--- a/addons/web/static/src/js/libs/bootstrap.js
+++ b/addons/web/static/src/js/libs/bootstrap.js
@@ -7,23 +7,19 @@ odoo.define('web.bootstrap.extensions', function () {
*/
/* Bootstrap defaults overwrite */
-$.fn.tooltip.Constructor.DEFAULTS.placement = 'auto top';
-$.fn.tooltip.Constructor.DEFAULTS.html = true;
-$.fn.tooltip.Constructor.DEFAULTS.trigger = 'hover focus click';
-$.fn.tooltip.Constructor.DEFAULTS.container = 'body';
-$.fn.tooltip.Constructor.DEFAULTS.delay = { show: 1000, hide: 0 };
-//overwrite bootstrap tooltip method to prevent showing 2 tooltip at the same time
-var bootstrap_show_function = $.fn.tooltip.Constructor.prototype.show;
-$.fn.modal.Constructor.prototype.enforceFocus = function () { };
+$.fn.tooltip.Constructor.Default.placement = 'top';
+$.fn.tooltip.Constructor.Default.fallbackPlacement = ['bottom', 'right', 'left', 'top'];
+$.fn.tooltip.Constructor.Default.html = true;
+$.fn.tooltip.Constructor.Default.trigger = 'hover focus click';
+$.fn.tooltip.Constructor.Default.container = 'body';
+$.fn.tooltip.Constructor.Default.delay = { show: 1000, hide: 0 };
+
+var bootstrapShowFunction = $.fn.tooltip.Constructor.prototype.show;
$.fn.tooltip.Constructor.prototype.show = function () {
+ // Overwrite bootstrap tooltip method to prevent showing 2 tooltip at the
+ // same time
$('.tooltip').remove();
- //the following fix the bug when using placement
- //auto and the parent element does not exist anymore resulting in
- //an error. This should be remove once we updade bootstrap to a version that fix the bug
- //edit: bug has been fixed here : https://github.com/twbs/bootstrap/pull/13752
- var e = $.Event('show.bs.' + this.type);
- var inDom = $.contains(document.documentElement, this.$element[0]);
- if (e.isDefaultPrevented() || !inDom) return;
- return bootstrap_show_function.call(this);
+
+ return bootstrapShowFunction.call(this);
};
});
diff --git a/addons/web/static/src/js/services/crash_manager.js b/addons/web/static/src/js/services/crash_manager.js
index a5b8cb32c13..b105913464e 100644
--- a/addons/web/static/src/js/services/crash_manager.js
+++ b/addons/web/static/src/js/services/crash_manager.js
@@ -142,7 +142,7 @@ var CrashManager = core.Class.extend({
});
});
dialog.on("closed", this, function () {
- $clipboardBtn.tooltip("destroy");
+ $clipboardBtn.tooltip('dispose');
clipboard.destroy();
});
diff --git a/addons/web/static/src/js/views/basic/basic_renderer.js b/addons/web/static/src/js/views/basic/basic_renderer.js
index 13a00dda046..197892f3361 100644
--- a/addons/web/static/src/js/views/basic/basic_renderer.js
+++ b/addons/web/static/src/js/views/basic/basic_renderer.js
@@ -152,7 +152,6 @@ var BasicRenderer = AbstractRenderer.extend({
// widget's $el
$node = $node.length ? $node : widget.$el;
$node.tooltip({
- delay: { show: 1000, hide: 0 },
title: function () {
return qweb.render('WidgetLabel.tooltip', {
debug: config.debug,
diff --git a/addons/web/static/src/js/views/form/form_renderer.js b/addons/web/static/src/js/views/form/form_renderer.js
index 646dfdd8c40..1422392db41 100644
--- a/addons/web/static/src/js/views/form/form_renderer.js
+++ b/addons/web/static/src/js/views/form/form_renderer.js
@@ -265,7 +265,6 @@ var FormRenderer = BasicRenderer.extend({
_addButtonTooltip: function (node, $button) {
var self = this;
$button.tooltip({
- delay: { show: 1000, hide: 0 },
title: function () {
return qweb.render('WidgetButton.tooltip', {
debug: config.debug,
diff --git a/addons/web/static/src/js/views/graph/graph_controller.js b/addons/web/static/src/js/views/graph/graph_controller.js
index e7f25c23fdd..36a05af7653 100644
--- a/addons/web/static/src/js/views/graph/graph_controller.js
+++ b/addons/web/static/src/js/views/graph/graph_controller.js
@@ -45,7 +45,7 @@ var GraphController = AbstractController.extend(GroupByMenuInterfaceMixin,{
destroy: function () {
if (this.$buttons) {
// remove jquery's tooltip() handlers
- this.$buttons.find('button').off().tooltip('destroy');
+ this.$buttons.find('button').off().tooltip('dispose');
}
this._super.apply(this, arguments);
},
diff --git a/addons/web/static/src/js/views/kanban/kanban_column.js b/addons/web/static/src/js/views/kanban/kanban_column.js
index 95e3f1e85b1..a1c7e415470 100644
--- a/addons/web/static/src/js/views/kanban/kanban_column.js
+++ b/addons/web/static/src/js/views/kanban/kanban_column.js
@@ -153,7 +153,7 @@ var KanbanColumn = Widget.extend({
this.$el.toggleClass('o_column_folded', this.folded && !config.device.isMobile);
var tooltip = this.data.count + _t(' records');
tooltip = '<p>' + tooltip + '</p>' + this.tooltipInfo;
- this.$header.find('.o_kanban_header_title').tooltip({html: true}).attr('data-original-title', tooltip);
+ this.$header.find('.o_kanban_header_title').tooltip({}).attr('data-original-title', tooltip);
if (!this.remaining) {
this.$('.o_kanban_load_more').remove();
} else {
diff --git a/addons/web/static/src/js/views/kanban/kanban_column_progressbar.js b/addons/web/static/src/js/views/kanban/kanban_column_progressbar.js
index 7af6b677dcf..0bfe5027876 100644
--- a/addons/web/static/src/js/views/kanban/kanban_column_progressbar.js
+++ b/addons/web/static/src/js/views/kanban/kanban_column_progressbar.js
@@ -133,9 +133,8 @@ var KanbanColumnProgressBar = Widget.extend({
});
if (this.progressBarHelp && _.every(this.subgroupCounts, function (val) { return val === 0; })) {
this.$el.tooltip({
- delay: '0',
- trigger:'hover',
- placement: 'top',
+ delay: 0,
+ trigger: 'hover',
title: this.progressBarHelp,
});
}
@@ -152,9 +151,8 @@ var KanbanColumnProgressBar = Widget.extend({
// Adapt tooltip
$bar.attr('data-original-title', count + ' ' + key);
$bar.tooltip({
- delay: '0',
- trigger:'hover',
- placement: 'top'
+ delay: 0,
+ trigger: 'hover',
});
// Adapt active state
diff --git a/addons/web/static/src/js/views/kanban/kanban_record.js b/addons/web/static/src/js/views/kanban/kanban_record.js
index 247f8eca90f..09fb956e52c 100644
--- a/addons/web/static/src/js/views/kanban/kanban_record.js
+++ b/addons/web/static/src/js/views/kanban/kanban_record.js
@@ -99,8 +99,7 @@ var KanbanRecord = Widget.extend({
var tooltip = $el.attr('tooltip');
if (tooltip) {
$el.tooltip({
- 'html': true,
- 'title': self.qweb.render(tooltip, self.qweb_context)
+ title: self.qweb.render(tooltip, self.qweb_context)
});
}
});
@@ -490,7 +489,7 @@ var KanbanRecord = Widget.extend({
if (elem === event.currentTarget) {
ischild = false;
}
- var test_event = events && events.click && (events.click.length > 1 || events.click[0].namespace !== "tooltip");
+ var test_event = events && events.click && (events.click.length > 1 || events.click[0].namespace !== 'bs.tooltip');
if (ischild) {
children.push(elem);
if (test_event) {
diff --git a/addons/web_editor/static/src/js/editor/rte.js b/addons/web_editor/static/src/js/editor/rte.js
index f4f7f82506b..06caaf65990 100644
--- a/addons/web_editor/static/src/js/editor/rte.js
+++ b/addons/web_editor/static/src/js/editor/rte.js
@@ -316,7 +316,7 @@ var RTEWidget = Widget.extend({
$('body').addClass('editor_enable');
- $(document)
+ $(document.body)
.tooltip({
selector: '[data-oe-readonly]',
container: 'body',
@@ -364,7 +364,7 @@ var RTEWidget = Widget.extend({
$(document).off('click.rte keyup.rte mousedown.rte activate.rte mouseup.rte');
$(document).off('content_changed').removeClass('o_is_inline_editable').removeData('rte');
- $(document).tooltip('destroy');
+ $(document).tooltip('dispose');
$('body').removeClass('editor_enable');
this.trigger('rte:stop');
},
diff --git a/addons/web_editor/static/src/js/editor/rte.summernote.js b/addons/web_editor/static/src/js/editor/rte.summernote.js
index 3626d5d3ec0..6f45452f466 100644
--- a/addons/web_editor/static/src/js/editor/rte.summernote.js
+++ b/addons/web_editor/static/src/js/editor/rte.summernote.js
@@ -196,7 +196,7 @@ renderer.tplPopovers = function (lang, options) {
setTimeout(function () {
$airPopover.add($linkPopover).add($imagePopover).find("button")
- .tooltip('destroy')
+ .tooltip('dispose')
.tooltip({
container: 'body',
trigger: 'hover',
@@ -895,7 +895,7 @@ eventHandler.attach = function (oLayoutInfo, options) {
if (!show_tooltip) return;
$target.tooltip({title: _t('Double-click to edit'), trigger: 'manuel', container: 'body'}).tooltip('show');
setTimeout(function () {
- $target.tooltip('destroy');
+ $target.tooltip('dispose');
}, 800);
}, 400);
});
diff --git a/addons/web_editor/static/src/js/editor/snippets.editor.js b/addons/web_editor/static/src/js/editor/snippets.editor.js
index cbaa7a2fbbc..6ed77009150 100644
--- a/addons/web_editor/static/src/js/editor/snippets.editor.js
+++ b/addons/web_editor/static/src/js/editor/snippets.editor.js
@@ -153,7 +153,7 @@ var SnippetEditor = Widget.extend({
});
var $parent = this.$target.parent();
- this.$target.find('*').andSelf().tooltip('destroy');
+ this.$target.find('*').andSelf().tooltip('dispose');
this.$target.remove();
this.$el.remove();
diff --git a/addons/website/static/src/js/content/snippets.animation.js b/addons/website/static/src/js/content/snippets.animation.js
index 602556c03cc..6c031037f65 100644
--- a/addons/website/static/src/js/content/snippets.animation.js
+++ b/addons/website/static/src/js/content/snippets.animation.js
@@ -863,7 +863,7 @@ registry.socialShare = Animation.extend({
var self = this;
setTimeout(function () {
if (!$(".popover:hover").length) {
- $(self).popover("destroy");
+ $(self).popover('dispose');
}
}, 200);
});