webcit-ng
[citadel.git] / webcit-ng / static / js / login.js
1 //
2 // Copyright (c) 2016-2017 by the citadel.org team
3 //
4 // This program is open source software; you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License version 3.
6 //
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 // GNU General Public License for more details.
11
12
13 function display_login_screen(any_message)
14 {
15         document.getElementById("main").innerHTML =
16                 "Put the login screen here, dummary<br><br>" +
17                 any_message + "<br><br>" +
18                 _("User name:") + "<input type=\"text\" id=\"username\"><br>" +
19                 _("Password:") + "<input type=\"password\" id=\"password\"><br>" +
20                 "<a href=\"javascript:login_button()\">" + _("Log in") + "</a>"
21         ;
22
23         update_banner();
24 }
25
26
27 function logout()
28 {
29         var request = new XMLHttpRequest();
30         request.open("GET", "/ctdl/a/logout", true);
31         request.onreadystatechange = function() {
32                 login_result(this.responseText);
33         };
34         request.send();
35         request = null;
36 }
37
38
39 function login_button(username)
40 {
41         parms = 
42                 document.getElementById("username").value
43                 + "|"
44                 + document.getElementById("password").value
45                 + "|"
46         ;
47
48         var request = new XMLHttpRequest();
49         request.open("POST", "/ctdl/a/login", true);
50         request.onreadystatechange = function() {
51                 login_result(this.responseText);
52         };
53         request.send(parms);
54         request = null;
55 }
56
57
58 function login_result(data)
59 {
60         if (data.substring(0,1) == "2") {
61                 logged_in = 1;
62                 current_user = data.substring(4).split("|")[0];
63                 update_banner();
64                 document.getElementById("main").innerHTML = "FIXME ok we are logged in as " + current_user + " ... " ;
65         }
66         else {
67                 display_login_screen(data.substring(4));
68         }
69 }
70
71
72 // Detect whether the Citadel session is logged in as a user and update our internal variables accordingly.
73 //
74 function detect_logged_in()
75 {
76         var request = new XMLHttpRequest();
77         request.open("GET", "/ctdl/a/whoami", true);
78         request.onreadystatechange = function() {
79                 detect_logged_in_2(this.responseText);
80         };
81         request.send();
82         request = null;
83 }
84 function detect_logged_in_2(data)
85 {
86         if (data.length > 0) {
87                 logged_in = 1;
88                 current_user = data;
89         }
90         else {
91                 logged_in = 0;
92                 current_user = _("Not logged in.");
93         }
94 }