/* CodeQ: an online programming tutor. Copyright (C) 2015 UL FRI This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ /** * Created by markop on 11/02/15. * */ (function(){ "use strict"; var jqScreen = $("#screen-upgrade-to-aai"), jqForm = $('#upgrade-to-aai-form'), jqNoBtn = $('#upgrade-to-aai-cancel'), jqPassword = $('#upgrade-to-aai-password'), jqLangSelect = jqScreen.find('.lang-select'), jqMessages = jqForm.find('.error,.success'); codeq.globalStateMachine.register('upgradeToAAI',{ 'jqScreen': jqScreen, 'enter': function () { jqMessages.hide(); jqNoBtn.on('click',function(){ codeq.comms.samlLogin(false) .then(codeq.loginCallbackFunction) .fail(function(reason){ if(codeq.samlLogin){//if the user goes back to the normal login screen the timeout (which will happen) mustn't do anything codeq.log.error('SAML login failed: ' + reason); alert('SAML login failed: ' + reason); codeq.globalStateMachine.transition('login'); } }) .done(); }); jqForm.on('submit', function (e) { e.preventDefault(); jqMessages.hide(); codeq.comms.samlLogin(true, jqPassword.val()) .then(function(data){ if (data.code == 4) { // incorrect password jqForm.find('.error.wrong-password').show(); } else { // ok or other codeq.loginCallbackFunction(data); } }) .fail(function(reason){ if(codeq.samlLogin){//if the user goes back to the normal login screen the timeout (which will happen) mustn't do anything codeq.log.error('SAML login failed: ' + reason); alert('SAML login failed: ' + reason); codeq.globalStateMachine.transition('login'); } }) .done(); }); // setup language selection links jqLangSelect.on('click', function (e) { codeq.setLang($(this).data('lang')); e.preventDefault(); }); jqScreen.css('display', ''); $('#disabled').css('display', 'none'); }, 'exit' : function(){ jqMessages.hide(); jqNoBtn.off('click'); jqForm.off('submit'); jqLangSelect.off('click'); jqScreen.css('display', 'none'); jqPassword.val(''); } }); })();