diff options
| author | Jeremy Kersten <jke@odoo.com> | 2017-10-26 17:02:14 +0200 |
|---|---|---|
| committer | Jeremy Kersten <jke@odoo.com> | 2017-10-26 17:52:21 +0200 |
| commit | 809aaf9e7b9de28383444d5059b19a67bb513f51 (patch) | |
| tree | 450dbecb8feabb11e2cd1344d0a86c7d8504e14b /addons | |
| parent | ab9b5a13e4a610ae74a633e989620d5c3da240be (diff) | |
[FIX] website_event: avoid double subscription
Before this commit, you was able to double click on the button when
are in registration flow. In this case, you subscribe 2 times and so
take 2x more seats, what can be annoying when you have a limited room.
In the same time, we fix the form in the form that generate
strange behaviour like some events not bubbled correctly.
The attendee form (into the modal) was inside the registration form.
$'attendee_form).on('submit') obviously failed due to this bad dom.
This commit closes opw-778191
Diffstat (limited to 'addons')
4 files changed, 7 insertions, 5 deletions
diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index 4e5b805fa8c..c353590510e 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -228,7 +228,7 @@ base.ready().then(function () { init_kanban(this); }); - $('.js_website_submit_form').on('submit', function() { + $('body').on('submit', '.js_website_submit_form', function() { var $buttons = $(this).find('button[type="submit"], a.a-submit'); _.each($buttons, function(btn) { $(btn).attr('data-loading-text', '<i class="fa fa-spinner fa-spin"></i> ' + $(btn).text()).button('loading'); diff --git a/addons/website_event/static/src/js/website_event.js b/addons/website_event/static/src/js/website_event.js index 3b2248742a9..b5a31ae7950 100644 --- a/addons/website_event/static/src/js/website_event.js +++ b/addons/website_event/static/src/js/website_event.js @@ -9,6 +9,7 @@ $(document).ready(function () { .off('click') .removeClass('a-submit') .click(function (ev) { + $(this).attr('disabled', true); ev.preventDefault(); ev.stopPropagation(); var $form = $(ev.currentTarget).closest('form'); @@ -18,7 +19,8 @@ $(document).ready(function () { }); ajax.jsonRpc($form.attr('action'), 'call', post).then(function (modal) { var $modal = $(modal); - $modal.appendTo($form).modal(); + $modal.find('.modal-body > div').removeClass('container'); // retrocompatibility - REMOVE ME in master / saas-19 + $modal.after($form).modal(); $modal.on('click', '.js_goto_event', function () { $modal.modal('hide'); }); diff --git a/addons/website_event/views/website_event.xml b/addons/website_event/views/website_event.xml index 69701ce0056..a1c7e8e0588 100644 --- a/addons/website_event/views/website_event.xml +++ b/addons/website_event/views/website_event.xml @@ -441,7 +441,7 @@ <template id="registration_attendee_details" name="Registration Attendee Details"> <div id="modal_attendees_registration" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog modal-lg"> - <form id="attendee_registration" t-attf-action="/event/#{slug(event)}/registration/confirm" method="post"> + <form id="attendee_registration" t-attf-action="/event/#{slug(event)}/registration/confirm" method="post" class="js_website_submit_form"> <input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/> <div class="modal-content"> <div class="modal-header"> @@ -449,7 +449,7 @@ <h4 class="modal-title" id="myModalLabel"><strong>Attendees</strong></h4> </div> <div class="modal-body"> - <div class="container"> + <div class=""> <t t-set="counter_type" t-value="1"/> <t t-set="counter" t-value="0"/> <t t-foreach="tickets" t-as="ticket"> diff --git a/addons/website_event_questions/views/website_event_questions_templates.xml b/addons/website_event_questions/views/website_event_questions_templates.xml index ec9c055e2ae..c12c81a36c9 100644 --- a/addons/website_event_questions/views/website_event_questions_templates.xml +++ b/addons/website_event_questions/views/website_event_questions_templates.xml @@ -22,7 +22,7 @@ </xpath> <!-- Generic questions --> - <xpath expr="//div[@class='container']/t[last()]" position="after"> + <xpath expr="//div[hasclass('modal-body')]/div/t[last()]" position="after"> <t t-if="event.general_question_ids"> <h4 class="page-header mt32"><strong>Last questions</strong></h4> <div class="row"> |
