From d5786447567b05e85edd43dbefe8e82f22dc2129 Mon Sep 17 00:00:00 2001 From: qsm-odoo Date: Mon, 27 Aug 2018 11:01:30 +0530 Subject: [FIX] web, *: use correct DOM for m2m tags * mail, calendar - Fix traceback when clicking on a tag without color field (introduced in recent changes) - Properly allow to delete tags on firefox (a button obviously cannot contain another button) Closes https://github.com/odoo/odoo/pull/26547 Thanks to @hbh-odoo --- addons/web/static/src/js/fields/relational_fields.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'addons/web/static/src/js/fields/relational_fields.js') diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js index 7683cd6db94..9f958ec57e0 100644 --- a/addons/web/static/src/js/fields/relational_fields.js +++ b/addons/web/static/src/js/fields/relational_fields.js @@ -1841,6 +1841,7 @@ var FieldMany2ManyTags = AbstractField.extend({ * @param {MouseEvent} event */ _onDeleteTag: function (event) { + event.preventDefault(); event.stopPropagation(); this._removeTag($(event.target).parent().data('id')); }, @@ -1886,7 +1887,7 @@ var FieldMany2ManyTags = AbstractField.extend({ var FormFieldMany2ManyTags = FieldMany2ManyTags.extend({ events: _.extend({}, FieldMany2ManyTags.prototype.events, { - 'click .badge': '_onOpenColorPicker', + 'click .dropdown-toggle': '_onOpenColorPicker', 'mousedown .o_colorpicker a': '_onUpdateColor', 'mousedown .o_colorpicker .o_hide_in_kanban': '_onUpdateColor', 'focusout .o_colorpicker': '_onCloseColorPicker', @@ -1907,8 +1908,9 @@ var FormFieldMany2ManyTags = FieldMany2ManyTags.extend({ * @param {MouseEvent} ev */ _onOpenColorPicker: function (ev) { - var tagID = $(ev.currentTarget).data('id'); - var tagColor = $(ev.currentTarget).data('color'); + ev.preventDefault(); + var tagID = $(ev.currentTarget).parent().data('id'); + var tagColor = $(ev.currentTarget).parent().data('color'); var tag = _.findWhere(this.value.data, { res_id: tagID }); if (tag && this.colorField in tag.data) { // if there is a color field on the related model this.$color_picker = $(qweb.render('FieldMany2ManyTag.colorpicker', { @@ -1937,8 +1939,8 @@ var FormFieldMany2ManyTags = FieldMany2ManyTags.extend({ var $target = $(ev.currentTarget); var color = $target.data('color'); var id = $target.data('id'); - var tag = this.$("button.badge[data-id='" + id + "']"); - var currentColor = tag.data('color'); + var $tag = this.$(".badge[data-id='" + id + "']"); + var currentColor = $tag.data('color'); var changes = {}; if ($target.is('.o_hide_in_kanban')) { -- cgit v1.2.3