summaryrefslogtreecommitdiffstats
path: root/dist/js/login.js
blob: 88bf5014da1366f9e7d1e1164c23ad14ed39a3d5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// const API_ENDPOINT = "https://gimb.tk/test.php"; // deprecated
document.addEventListener("DOMContentLoaded", () => {
	setupEventListeners();
	try {
		load_server_message_at_login();
	} catch (e) {
		console.log("login.js: load_server-message-at-login: silently failed.");
	}
});

function load_server_message_at_login() {
	$.ajax({
		url: "/server-message-at-login.html",
		success: (data) => {
			$("#server-message-at-login").html(data);
		},
		error: () => {
			$("#server-message-at-login").html("");
		}
	});
}

function setupEventListeners() {
    // Setup login button listener
    $("#login-button").click(() => {
        login();
    });

    window.addEventListener("keyup", (event) => {
        // Number 13 is the "Enter" key on the keyboard
        if (event.keyCode === 13) {
            // Cancel the default action, if needed
            event.preventDefault();
            login();
        }
    });
}

// Handle login button click
function login() {
    let username = $("#username").val();
    let password = $("#password").val();
		var gsecInstance;
		try {
    	gsecInstance = new gsec();
		} catch (error) {
			$.ajax({
				url: 'js/gsec.js?ajaxload',
				async: false,
				dataType: "script",
			});
			try {
	    	    gsecInstance = new gsec();
			} catch (error) {
				alert(D("browserNotSupported"));
			}
		}
    gsecInstance.login(username, password).then( (value) => {
        if (typeof value == "string") {
            let promises_to_run = [
                localforage.setItem("logged_in", true),
                localforage.setItem("username", username),
                localforage.setItem("password", password)
            ];
            // read_val(0);
            Promise.all(promises_to_run).then(function () {
                window.location.replace("/pages/timetable.html");
            });
        } else {
            UIAlert("loginFailed");
            $("#password").val("");
        }
    }).catch((err) => {
        gsecErrorHandlerUI(err);
        $("#password").val("");
    });
}