Rewrote ctdl_startup() using fetch/await
[citadel.git] / webcit-ng / static / js / main.js
index f0b0e90a4484b300f55c22cfe8b4abbb1cf531b6..8aa87112162cb612f28c5e3df060241ea969df70 100644 (file)
@@ -84,32 +84,26 @@ function escapeJS(text) {
 // This is called at the very beginning of the main page load.
 //
 function ctdl_startup() {
-       var request = new XMLHttpRequest();
-       request.open("GET", "/ctdl/c/info", true);
-       request.onreadystatechange = function() {
-               if ((this.readyState === 4) && ((this.status / 100) == 2)) {
-                       ctdl_startup_2(JSON.parse(this.responseText));
-               }
-       };
-       request.send();
-       request = null;
-}
 
+       const csa = async () => {
+               console.log("starting");
+               const response = await fetch("/ctdl/c/info");
+               const the_text = await(response.text());
 
-// Continuation of ctdl_startup() after serv_info is retrieved
-//
-function ctdl_startup_2(data) {
-       serv_info = data;
-
-       if (data.serv_rev_level < 905) {
-               alert("Citadel server is too old, some functions may not work");
+               if (response.ok) {
+                       serv_info = JSON.parse(the_text);
+                       if (serv_info.serv_rev_level < 905) {
+                               alert("Citadel server is too old, some functions may not work");
+                       }
+       
+                       update_banner();
+       
+                       // for now, show a room list in the main div
+                       gotoroom("_BASEROOM_");
+                       display_room_list();
+               }
        }
-
-       update_banner();
-
-       // for now, show a room list in the main div
-       gotoroom("_BASEROOM_");
-       display_room_list();
+       csa();
 }
 
 
@@ -212,8 +206,10 @@ function gotoroom_2(data) {
 
 
 // Goto next room with unread messages
+// which_oper is 0=ungoto, 1=skip, 2=goto
 //
-function gotonext() {
+function gotonext(which_oper) {
+       if (which_oper != 2) return;            // FIXME implement the other two
        if (march_list.length == 0) {
                load_new_march_list();          // we will recurse back here
        }