You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.6 KiB
42 lines
1.6 KiB
/** @odoo-module **/
|
|
|
|
import publicWidget from 'web.public.widget';
|
|
/**
|
|
* Age Verification Widget for Odoo Website.
|
|
*
|
|
* This widget handles the age verification process for users trying to sign up on the Odoo website.
|
|
* It displays a modal asking users to confirm their date of birth and checks if the user is at least
|
|
* 18 years old. If the user is 18 or older, the sign-up form is enabled; otherwise, an access
|
|
* denied message is shown.
|
|
*/
|
|
publicWidget.registry.age_verification = publicWidget.Widget.extend({
|
|
selector: ".oe_website_login_container",
|
|
events: {
|
|
'click #age_confirmed': 'onClickAgeConfirm',
|
|
},
|
|
start: function() {
|
|
this._super.apply(this, arguments);
|
|
this._showAgeVerificationModal();
|
|
},
|
|
_showAgeVerificationModal: function () {
|
|
var emailField = $('#signup_form input[name="login"]').val();
|
|
var passwordField = $('#signup_form input[name="password"]').val();
|
|
if (emailField) {
|
|
this.$el.find('.age-verify').hide();
|
|
}
|
|
},
|
|
onClickAgeConfirm: function(e) {
|
|
var date = this.$el.find('#start').val();
|
|
var dob = new Date(date);
|
|
var currentDate = new Date();
|
|
var timeDiff = currentDate.getTime() - dob.getTime();
|
|
var age = Math.floor(timeDiff / (1000 * 60 * 60 * 24 * 365.25));
|
|
if (age >= 18) {
|
|
this.$el.find('.age-verify').hide();
|
|
this.$el.find('.oe_signup_form :input').prop('disabled', false);
|
|
sessionStorage.setItem('ageVerified', true);
|
|
} else {
|
|
this.$el.find('.access_message').removeClass('d-none');
|
|
}
|
|
},
|
|
});
|
|
|