diff options
Diffstat (limited to 'addons/website_event/static/src')
| -rw-r--r-- | addons/website_event/static/src/js/website_event.js | 12 | ||||
| -rw-r--r-- | addons/website_event/static/src/js/website_event_ticket_details.js | 55 |
2 files changed, 55 insertions, 12 deletions
diff --git a/addons/website_event/static/src/js/website_event.js b/addons/website_event/static/src/js/website_event.js index cdaf012448d..36c0f5df526 100644 --- a/addons/website_event/static/src/js/website_event.js +++ b/addons/website_event/static/src/js/website_event.js @@ -9,9 +9,6 @@ var _t = core._t; // Catch registration form event, because of JS for attendee details var EventRegistrationForm = Widget.extend({ - events: { - 'click .o_wevent_registration_btn': '_onRegistrationBtnClick', - }, /** * @override @@ -70,15 +67,6 @@ var EventRegistrationForm = Widget.extend({ }); } }, - /** - * @private - * @param {Event} ev - */ - _onRegistrationBtnClick: function (ev) { - var $btn = $(ev.currentTarget); - $btn.toggleClass('btn-primary text-left pl-0'); - $btn.siblings().toggleClass('d-none'); - }, }); publicWidget.registry.EventRegistrationFormInstance = publicWidget.Widget.extend({ diff --git a/addons/website_event/static/src/js/website_event_ticket_details.js b/addons/website_event/static/src/js/website_event_ticket_details.js new file mode 100644 index 00000000000..8ad2e307c69 --- /dev/null +++ b/addons/website_event/static/src/js/website_event_ticket_details.js @@ -0,0 +1,55 @@ +odoo.define('website_event.ticket_details', function (require) { + var publicWidget = require('web.public.widget'); + + publicWidget.registry.ticketDetailsWidget = publicWidget.Widget.extend({ + selector: '.o_wevent_js_ticket_details', + events: { + 'click .o_wevent_registration_btn': '_onTicketDetailsClick', + 'change .custom-select': '_onTicketQuantityChange' + }, + start: function (){ + this.foldedByDefault = this.$el.data('foldedByDefault') === 1; + return this._super.apply(this, arguments); + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @private + */ + _getTotalTicketCount: function (){ + var ticketCount = 0; + this.$('.custom-select').each(function (){ + ticketCount += parseInt($(this).val()); + }); + return ticketCount; + }, + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + /** + * @private + * @param {*} ev + */ + _onTicketDetailsClick: function (ev){ + ev.preventDefault(); + if (this.foldedByDefault){ + $(ev.currentTarget).toggleClass('btn-primary text-left pl-0'); + $(ev.currentTarget).siblings().toggleClass('d-none'); + this.$('.close').toggleClass('d-none'); + } + }, + /** + * @private + */ + _onTicketQuantityChange: function (){ + this.$('button.btn-primary').attr('disabled', this._getTotalTicketCount() === 0); + } + }); + +return publicWidget.registry.ticketDetailsWidget; +}); |
