]> code.citadel.org Git - citadel.git/blobdiff - webcit-ng/static/js/login.js
Grammar change in the license declaration.
[citadel.git] / webcit-ng / static / js / login.js
index f48f964e0064d4627f3f9a51773f503b952e77ef..11592ee62fd7febad0e1a554960f8c6ac5ef0f8f 100644 (file)
@@ -1,46 +1,49 @@
-// Copyright (c) 2016-2022 by the citadel.org team
+// Copyright (c) 2016-2023 by the citadel.org team
 //
-// This program is open source software.  It runs great on the
-// Linux operating system (and probably elsewhere).  You can use,
-// copy, and run it under the terms of the GNU General Public
-// License version 3.  Richard Stallman is an asshole communist.
-//
-// 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 General Public License for more details.
+// This program is open source software.  Use, duplication, or
+// disclosure is subject to the GNU General Public License v3.
 
 
+// This is where the login screen (modal) is displayed.
+// It appears in the "ctdl_big_modal" div which is defined in index.html and is used for several different modals.
+// If you want to change the look of the login dialog, this is where to change it.
 function display_login_screen(any_message) {
+       document.getElementById("ctdl_big_modal").innerHTML = `
 
-       document.getElementById("ctdl_big_modal").innerHTML =
-                 "<div class=\"w3-modal-content\">"
-               + "  <div class=\"w3-panel w3-border w3-border-blue w3-topbar w3-bottombar w3-leftbar w3-rightbar\"><center>"
+               <div class="ctdl-modal-header">
+                               <span><i class="fa fa-user"></i></span>
+                               <span>${any_message}</span>
+               </div>
 
-               + "<p>Put the login screen here, dummy</p>"
-               + "<p>" + any_message + "</p>"
-               + "<table border=0><tr><td>"
-               + _("User name:") + "</td><td><input type=\"text\" id=\"username\"></td></tr><tr><td>"
-               + _("Password:") + "</td><td><input type=\"password\" id=\"password\"></td></tr></table><br>"
-               + "<p>"
-               + "<button class=\"w3-button w3-blue\" onClick=\"javascript:login_button()\">" + _("Log in") + "</button>"
-               + "</p>"
+               <div class="ctdl-login-screen-grid-container">
+                       <div class="ctdl-login-screen-grid-item"><label><b>${_("User name:")}</b></label></div>
+                       <div class="ctdl-login-screen-grid-item"><input type="text" id="username" required></div>
+                       <div class="ctdl-login-screen-grid-item"><label><b>${_("Password:")}</b></label></div>
+                       <div class="ctdl-login-screen-grid-item"><input type="password" id="password" required></div>
+                       <div class="ctdl-login-screen-grid-item"></div>
+                       <div class="ctdl-login-screen-grid-item">
+                               <input type="checkbox" checked="checked">
+                               Remember me
+                       </div>
+                       <div class="ctdl-login-screen-grid-item"></div>
+                       <div class="ctdl-login-screen-grid-item">
+                               <button onClick="javascript:login_button()">${_("Log in")}</button>
+                               <button type="button">Cancel</button>
+                       </div>
+               </div>
+       `;
 
-               + "  </center></div>"
-               + "</div>";
        document.getElementById("ctdl_big_modal").style.display = "block";
 }
 
 
-function logout() {
-       var request = new XMLHttpRequest();
-       request.open("GET", "/ctdl/a/logout", true);
-       request.onreadystatechange = function() {
-               login_result(this.responseText);
-       };
-       request.send();
-       request = null;
-}
+// When the user elects to log out, we just call /ctdl/a/logout and let the system flush the session.
+// When we go back to ctdl_startup() it will detect that we are no longer logged in, and do the right thing.
+//function logout() {
+//logout = async() => {
+       //response = await fetch("/ctdl/a/logout");
+       //ctdl_startup();                                       // let the regular startup code take care of everything else
+//}
 
 
 function login_button(username) {
@@ -54,23 +57,23 @@ function login_button(username) {
        var request = new XMLHttpRequest();
        request.open("POST", "/ctdl/a/login", true);
        request.onreadystatechange = function() {
-               login_result(this.responseText);
+               if (this.readyState === XMLHttpRequest.DONE) {
+                       login_result(JSON.parse(this.responseText));
+               }
        };
        request.send(parms);
        request = null;
 }
 
 
+// Feed this a JSON output from login_button() or a similar function
 function login_result(data) {
-       if (data.substring(0,1) == "2") {
-               logged_in = 1;
-               current_user = data.substring(4).split("|")[0];
-               update_banner();
-               document.getElementById("ctdl-main").innerHTML = "FIXME ok we are logged in as " + current_user + " ... " ;
+       if (data.result) {
                document.getElementById("ctdl_big_modal").style.display = "none";
+               ctdl_startup();                         // let the regular startup code take care of everything else
        }
        else {
-               display_login_screen(data.substring(4));
+               display_login_screen(data.message);
        }
 }