/* 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'); codeq.globalStateMachine.register('upgradeToAAI',{ 'jqScreen': jqScreen, 'enter': function(){ 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(event) { event.preventDefault(); // Prevent the form from submitting via the browser. codeq.comms.samlLogin(true, jqPassword.val()) .then(function(data){ // password does not match if (data.code == 4) { codeq.log.error('code: ' + data.code + ', message: ' + data.message); alert('Password does not match. Enter right password or select No.'); } //ok or other else 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(){ jqNoBtn.off('click'); jqForm.off('submit'); jqLangSelect.off('click'); jqScreen.css('display', 'none'); jqPassword.val(''); } }); })();