window.matrixLogin = { endpoint: location.origin + "/_matrix/client/api/v1/login", serverAcceptsPassword: false, serverAcceptsCas: false }; var submitPassword = function(user, pwd) { console.log("Logging in with password..."); var data = { type: "m.login.password", user: user, password: pwd, }; $.post(matrixLogin.endpoint, JSON.stringify(data), function(response) { show_login(); matrixLogin.onLogin(response); }).error(errorFunc); }; var submitToken = function(loginToken) { console.log("Logging in with login token..."); var data = { type: "m.login.token", token: loginToken }; $.post(matrixLogin.endpoint, JSON.stringify(data), function(response) { show_login(); matrixLogin.onLogin(response); }).error(errorFunc); }; var errorFunc = function(err) { show_login(); if (err.responseJSON && err.responseJSON.error) { setFeedbackString(err.responseJSON.error + " (" + err.responseJSON.errcode + ")"); } else { setFeedbackString("Request failed: " + err.status); } }; var gotoCas = function() { var this_page = window.location.origin + window.location.pathname; var redirect_url = matrixLogin.endpoint + "/cas/redirect?redirectUrl=" + encodeURIComponent(this_page); window.location.replace(redirect_url); } var setFeedbackString = function(text) { $("#feedback").text(text); }; var show_login = function() { $("#loading").hide(); if (matrixLogin.serverAcceptsPassword) { $("#password_form").show(); } if (matrixLogin.serverAcceptsCas) { $("#cas_flow").show(); } if (!matrixLogin.serverAcceptsPassword && !matrixLogin.serverAcceptsCas) { $("#no_login_types").show(); } }; var show_spinner = function() { $("#password_form").hide(); $("#cas_flow").hide(); $("#no_login_types").hide(); $("#loading").show(); }; var fetch_info = function(cb) { $.get(matrixLogin.endpoint, function(response) { var serverAcceptsPassword = false; var serverAcceptsCas = false; for (var i=0; i