/** * Created by robert on 10/14/15. */ (function(){ var jqScreen = $("#screen_signup"), jqUsername = $("#modalSignUpUsername"), jqName = $("#modalSignUpName"), jqEmail = $("#modalSignUpEmail"), jqPassword = $("#modalSignUpPassword"), jqVerify = $("#modalSignUpVerify"), jqFormSignUp = $('#formSignUp'), jqExitSignUpBtn = $('#exit_signup_btn'), jqNavBarRight = $('.nav.navbar-nav.navbar-right'), jqNavigationHomeBtn = $('#navigation-home'); codeq.globalStateMachine.register('signup',{ 'enter': function(){ jqNavigationHomeBtn.off('click');//remove the click listener of this element here jqNavBarRight.css('display','none');//hide settings etc. $('#signed-in-title').html(''); jqScreen.css('display', ''); $('#disabled').css('display', 'none'); jqExitSignUpBtn.on('click',function(){ codeq.globalStateMachine.transition('login'); }); //prepare listener for successfull signup jqFormSignUp.on('submit',function(event) { if (jqPassword.val() != jqVerify.val()) { alert('Passwords do not match.'); } else { codeq.comms.signup(jqUsername.val(), jqName.val(), jqEmail.val(), jqPassword.val()) .then(function (data) { if (data.code !== 0) throw new Error('Signup failed, code: ' + data.code + ', message: ' + data.message); var newUsername = jqUsername.val();//saving before transition (which will reset the value of the field) //back to login codeq.globalStateMachine.transition('login'); alert('Welcome '+ newUsername +'. Thanks for signing up.'); //assume user wants to sign-in with signed username $("#username").val(newUsername); }) .fail(function (reason) { codeq.log.error('Signup failed: ' + reason, reason); alert('Signup failed: ' + reason); }) .done(); } event.preventDefault(); // Prevent the form from submitting via the browser. }); }, 'exit' : function(){ jqScreen.css('display', 'none'); //re-enable the click listener jqNavigationHomeBtn.on('click', function(e){ codeq.globalStateMachine.transition('language'); e.preventDefault(); }); //disable listeners on stuff from this page only jqExitSignUpBtn.off('click'); jqFormSignUp.off('submit'); //show the menu buttons jqNavBarRight.css('display',''); jqUsername.val(''); jqName.val(''); jqEmail.val(''); jqPassword.val(''); jqVerify.val(''); } }); })();