/* 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 robert on 10/14/15. * */ (function(){ "use strict"; var jqScreen = $('#screen-change-pass'), jqNew = $('#change-password-new'), jqVerify = $('#change-password-verify'), jqCancelBtn = $('#change-password-cancel'), jqChangePassForm = $('#change-password-form'); codeq.globalStateMachine.register('changePassword',{ 'jqScreen': jqScreen, 'isModal': true, 'enter': function(){ jqCancelBtn.on('click',function(){ history.back();//forces a transition to the previous state }); jqChangePassForm.on('submit',function(event) { if (jqNew.val() != jqVerify.val()) { alert('Passwords do not match.'); } else { codeq.comms.changePassword(jqNew.val()) .then(function (data) { if (data.code !== 0) throw new Error('Password change failed, code: ' + data.code + ', message: ' + data.message); alert('Password changed.'); history.back();//force to return to previous state }) .fail(function (reason) { codeq.log.error('Password change failed: ' + reason, reason); alert('Password change failed: ' + reason); }) .done(); } event.preventDefault(); // Prevent the form from submitting via the browser. }); jqScreen.css('display', ''); $('#disabled').css('display', 'none'); }, 'exit' : function(){ jqChangePassForm.off('submit'); jqCancelBtn.off('click'); jqScreen.css('display', 'none'); jqNew.val(''); jqVerify.val(''); } }); })();