From 5bfb8bb498a27ec9d36b009759ea011361bac040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Aug 2012 14:31:28 +0200 Subject: [PATCH] [IMP] mail.js: Thread: updated and cleaned event bindings (use on instead of delegate, handle propagation). bzr revid: tde@openerp.com-20120821123128-29njlixe14eu8rmg --- addons/mail/static/src/js/mail.js | 33 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index 706a744b20f..d102bccab69 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -418,51 +418,50 @@ openerp.mail = function(session) { else if (charCode == 13) { return self.do_message_post(); } }); // event: click on 'Reply' in msg - this.$element.find('div.oe_mail_thread_display').delegate('a.oe_mail_msg_reply', 'click', function (event) { - var act_dom = $(this).parents('div.oe_mail_thread_display').find('div.oe_mail_thread_action:first'); + this.$element.on('click', 'a.oe_mail_msg_reply', function (event) { + var act_dom = $(this).parents('li.oe_mail_thread_msg').eq(0).find('div.oe_mail_thread_action:first'); act_dom.toggle(); event.preventDefault(); + event.stopPropagation(); }); // event: click on 'attachment(s)' in msg - this.$element.delegate('a.oe_mail_msg_view_attachments', 'click', function (event) { + this.$element.on('click', 'a.oe_mail_msg_view_attachments', function (event) { var act_dom = $(this).parent().parent().parent().find('.oe_mail_msg_attachments'); act_dom.toggle(); event.preventDefault(); + event.stopPropagation(); }); // event: click on 'Delete' in msg side menu - this.$element.find('div.oe_mail_thread_display').delegate('a.oe_mail_msg_delete', 'click', function (event) { + this.$element.on('click', 'a.oe_mail_msg_delete', function (event) { + event.preventDefault(); + event.stopPropagation(); if (! confirm(_t("Do you really want to delete this message?"))) { return false; } var msg_id = event.srcElement.dataset.id; if (! msg_id) return false; var call_defer = self.ds_msg.unlink([parseInt(msg_id)]); - $(event.srcElement).parents('li.oe_mail_thread_msg').eq(0).hide(); - if (self.params.thread_level > 0) { - $(event.srcElement).parents('.oe_mail_thread').eq(0).hide(); - } - event.preventDefault(); + $(event.srcElement).parents('li.oe_mail_thread_msg').eq(0).remove(); return call_defer; }); // event: click on 'Hide' in msg side menu - this.$element.find('div.oe_mail_thread_display').delegate('a.oe_mail_msg_hide', 'click', function (event) { + this.$element.on('click', 'a.oe_mail_msg_hide', function (event) { + event.preventDefault(); + event.stopPropagation(); if (! confirm(_t("Do you really want to hide this thread ?"))) { return false; } var msg_id = event.srcElement.dataset.id; if (! msg_id) return false; var call_defer = self.ds.call('message_remove_pushed_notifications', [[self.params.res_id], [parseInt(msg_id)], true]); - $(event.srcElement).parents('li.oe_mail_thread_msg').eq(0).hide(); - if (self.params.thread_level > 0) { - $(event.srcElement).parents('.oe_mail_thread').eq(0).hide(); - } - event.preventDefault(); + $(event.srcElement).parents('li.oe_mail_thread_msg').eq(0).remove(); return call_defer; }); // event: click on "Reply by email" in msg side menu (email style) - this.$element.find('div.oe_mail_thread_display').delegate('a.oe_mail_msg_reply_by_email', 'click', function (event) { + this.$element.on('click', 'a.oe_mail_msg_reply_by_email', function (event) { + event.preventDefault(); + event.stopPropagation(); var msg_id = event.srcElement.dataset.msg_id; var email_mode = (event.srcElement.dataset.type == 'email'); var formatting = (event.srcElement.dataset.formatting == 'html'); if (! msg_id) return false; self.instantiate_composition_form('reply', email_mode, formatting, msg_id); - event.preventDefault(); }); },