UNPKG

sportsbet-mobile

Version:
196 lines (164 loc) 5.13 kB
///<reference path=".#ts/client.d.ts"/> interface Templates { register: Template; } Template.register.onRendered(function() { googleSend({ 'eventCategory': 'Registration', 'eventAction': 'Started registration', 'pageEventArea': 'Main' }); }); Template.register.helpers({ errors: function() { return Users.Profile.db.errors('register'); }, signupButtonDisabled: function() { return Session.get('signupButtonDisabled'); }, refCode: function() { return $.cookie('refCode'); }, dobYears: function () { var years = []; var start = moment().subtract(18, 'years'); var end = moment().subtract(100, 'years'); years.push('<option>Year</option>'); while (start.format('YYYY') >= end.format('YYYY')) { years.push('<option value="' + start.format('YYYY') + '">' + start.format('YYYY') + '</option>'); start = start.subtract(1,'years'); } return years; }, dobMonths: function () { var months = []; var start = 1; var end = 12; months.push('<option>Month</option>'); while (start <= end) { months.push('<option value="' + start + '">' + start + '</option>'); start++; } return months; }, dobDays: function () { var days = []; var start = 1; var end = 31; days.push('<option>Day</option>'); while (start <= end) { days.push('<option value="' + start + '">' + start + '</option>'); start++; } return days; }, registerEnabled: function() { return Session.get('clientCountry') !== 'GB' && Session.get('clientCountry') !== 'AU' && Session.get('clientCountry') !== 'US' && Session.get('clientCountry') !== 'UM'; } }); Template.register.events({ 'keyup, change input': _.debounce(function(e: MeteorTemplateEvent) { Users.Profile.db.validate(e.target, function(){}); }, 300), 'submit form': function(e: MeteorTemplateEvent) { e.preventDefault(); if (Session.get('clientCountry') === 'GB' || Session.get('clientCountry') === 'AU' || Session.get('clientCountry') === 'US' || Session.get('clientCountry') === 'UM') { return; } var $form = $(e.target); var data = $form.serializeObject(); var errorContainer = $form.find('.generalError'); errorContainer.hide(); errorContainer.html(''); Session.set('signupButtonDisabled', true); Users.Profile.db.validate(e.target, function (validationMessages) { var isValid = true; for (var key in validationMessages) { var $field = $form.find('[name=' + key + ']'); var $fieldContainer = $field.parent().find('.icon'); var $messageContainer = $fieldContainer.find('span'); $fieldContainer.addClass('error'); $messageContainer.html(validationMessages[key]); isValid = false; } var dateOfBirth = $("[name='year']").val() + '-' + $("[name='month']").val() + '-' + $("[name='day']").val(); if (!moment(dateOfBirth, 'YYYY-M-D', true).isValid()) { errorContainer.append('<li>Incorrect date of birth</li>'); isValid = false; googleSend({ 'eventCategory': 'Registration', 'eventAction': 'Date of Birth Error', 'eventLabel': 'Date of Birth is incorrect', 'pageEventArea': 'Main' }); } else if (calcAge(moment(dateOfBirth, 'YYYY-M-D', true).toDate()) < 18) { errorContainer.append('<li>You must be at least 18 years old to register</li>'); isValid = false; } if (!isValid) { errorContainer.show(); var errs = Users.Profile.db.errors('register'); for (var errType in errs) { errorContainer.append('<li>' + errs[errType] + '</li>'); var errMsg = errs[errType]; if (errType == 'repeatPassword') { errType = 'Confirm Password'; } googleSend({ 'eventCategory': 'Registration', 'eventAction': errType.substr(0, 1).toUpperCase() + errType.substr(1) + ' Error', 'eventLabel': errMsg, 'pageEventArea': 'Main' }); } Session.set('signupButtonDisabled', false); return; } Session.set('loading', true); Accounts.createUser({ username: data.username, email: data.email, password: data.password, profile: { dateOfBirth: dateOfBirth, refCode: $.cookie('refCode') ? $.cookie('refCode') : data.refCode, refPage: Session.get('refPage') ? Session.get('refPage') : undefined } }, function (err?) { Session.set('loading', false); if (err) { Log.error(err); Session.set('signupButtonDisabled', false); return; } googleSend({ 'eventCategory': 'Registration', 'eventAction': 'Registration Complete', 'pageEventArea': 'Main', 'registrationsCompleted': 1 }, true); Session.set('betSlipError', false); Session.set('signupButtonDisabled', false); Pages.go('/'); (<HTMLFormElement> $form[0]).reset(); Meteor.call('Fraud/getDeviceInfo', (err, res) => { if (err) { return; } Meteor.call('Fraud/RegisterLookup', res); }); Session.set('showRegisterLanding', true); }); }); }, 'click .fa-eye': function() { let pwdField = $('.pwd'); if (pwdField.attr('type') == 'password') { pwdField.attr('type', 'text') } else { pwdField.attr('type', 'password') } } });