/** * Created by robert on 9/17/15. */ (function(){ var jqNavBarRight = $('.nav.navbar-nav.navbar-right'), jqNavigationHomeBtn = $('#navigation-home'), jqAAILoginBtn = $('#aai_login_button'), jqSignupBtn = $('#signup_button'), jqSubmitLoginBtn = $("#submit"); var loginFun = function(){ $('#disabled').css('display', ''); $('#disabled').css('cursor', 'wait'); codeq.comms.connect() .then(function () { return codeq.comms.login($('#username').val(), $('#password').val()); }) .then(function (data) { $('#disabled').css('display', 'none'); $('#disabled').css('cursor', ''); if (data.code !== 0) throw new Error('Login failed, code: ' + data.code + ', message: ' + data.message); //nav signed in... $('#signed-in-title').html(data.name||$('#username').val()); //merge with profile page $('#profileUsername').html($('#username').val()); $('#profileName').html(data.name||'undefined'); $('#profileJoined').html(new Date(data.joined).toLocaleString()); $('#profileLastLogin').html(new Date(data["last-login"]).toLocaleString()); //merge these settings into the already existing default settings var sett = data.settings; $.extend(codeq.settings, sett); if('gui_lang' in sett && sett['gui_lang'] in codeq.supportedLangs){ codeq.setLang(sett['gui_lang']); $("#gui_lang_select").val(sett['gui_lang']); } $('#robot_address_input').val(codeq.settings['robot_address'] || ''); codeq.globalStateMachine.transition('language'); //codeq.activateState('language'); }) .fail(function (reason) { $('#disabled').css('display', 'none'); $('#disabled').css('cursor', ''); codeq.log.error('Login failed: ' + reason, reason); alert('Login request failed: ' + reason); $('#disabled').css('display', 'none'); }) .done(); }, formInputs = $('#username, #password'); codeq.globalStateMachine.register('login',{ 'enter': function(){ jqNavigationHomeBtn.off('click');//remove the click listener of this element here jqNavBarRight.css('display','none');//hide settings etc. $('#signed-in-title').html(''); //setup the signup button jqSignupBtn.on('click', function(e){ codeq.globalStateMachine.transition('signup'); e.preventDefault(); }); //setup the AAI login btn jqAAILoginBtn.on('click',function(e){ codeq.globalStateMachine.transition('aailogin'); e.preventDefault(); }); jqSubmitLoginBtn.on('click', loginFun); formInputs.on('keyup', function (ev) { if ((ev.keyCode || ev.which) == 13) { jqSubmitLoginBtn.trigger('click'); } }); //$('#modalLogIn').modal(); $("#screen_login").css('display', ''); $('#disabled').css('display', 'none'); }, 'exit' : function(){ //remove the listener from the buttons specific to this page jqSubmitLoginBtn.off('click', loginFun); formInputs.off('keyup'); jqSignupBtn.off('click'); jqAAILoginBtn.off('click'); $("#screen_login").css('display', 'none'); $('#signed-in-title').html($('#username').val()); $("#password").val(''); //re-enable the click listener jqNavigationHomeBtn.on('click', function(e){ codeq.globalStateMachine.transition('language'); e.preventDefault(); }); jqNavBarRight.css('display',''); } }); })();