From: Art Cancro Date: Sat, 26 Dec 2020 20:56:32 +0000 (-0500) Subject: Replaced all XHR in main.js with fetch/await X-Git-Tag: v939~183 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=7f8b86678541efd3ddb0bb6b1981387c727d00f8 Replaced all XHR in main.js with fetch/await --- diff --git a/webcit-ng/static/js/main.js b/webcit-ng/static/js/main.js index 0b5c2add8..9fb998a3d 100644 --- a/webcit-ng/static/js/main.js +++ b/webcit-ng/static/js/main.js @@ -108,17 +108,14 @@ ctdl_startup = async() => { function display_room_list() { document.getElementById("roomlist").innerHTML = ""; // show throbber while loading - - - var request = new XMLHttpRequest(); - request.open("GET", "/ctdl/r/", true); - request.onreadystatechange = function() { - if ((this.readyState === 4) && ((this.status / 100) == 2)) { - display_room_list_renderer(JSON.parse(this.responseText)); + fetch_room_list = async() => { + response = await fetch("/ctdl/r/"); + room_list = await(response.json()); + if (response.ok) { + display_room_list_renderer(room_list); } - }; - request.send(); - request = null; + } + fetch_room_list(); } @@ -181,25 +178,22 @@ function update_banner() { // goto room // function gotoroom(roomname) { - var request = new XMLHttpRequest(); - request.open("GET", "/ctdl/r/" + escapeHTMLURI(roomname) + "/", true); - request.onreadystatechange = function() { - if ((this.readyState === 4) && ((this.status / 100) == 2)) { - gotoroom_2(JSON.parse(this.responseText)); + + fetch_room = async() => { + response = await fetch("/ctdl/r/" + escapeHTMLURI(roomname) + "/"); + data = await(response.json()); + if (response.ok) { + current_room = data.name; + new_messages = data.new_messages; + total_messages = data.total_messages; + current_view = data.current_view; + default_view = data.default_view; + last_seen = data.last_seen; + update_banner(); + render_room_view(0, 9999999999); } - }; - request.send(); - request = null; -} -function gotoroom_2(data) { - current_room = data.name; - new_messages = data.new_messages; - total_messages = data.total_messages; - current_view = data.current_view; - default_view = data.default_view; - last_seen = data.last_seen; - update_banner(); - render_room_view(0, 9999999999); + } + fetch_room(); } @@ -223,11 +217,10 @@ function gotonext(which_oper) { // Called by gotonext() when the march list is empty. // function load_new_march_list() { - var request = new XMLHttpRequest(); - request.open("GET", "/ctdl/r/", true); - request.onreadystatechange = function() { - if ((this.readyState === 4) && ((this.status / 100) == 2)) { - march_list = (JSON.parse(this.responseText)); + fetchm = async() => { + response = await fetch("/ctdl/r/"); + march_list = await(response.json()); + if (response.ok) { march_list = march_list.filter(function(room) { return room.hasnewmsgs; }); @@ -243,7 +236,6 @@ function load_new_march_list() { march_list.push({name:"_BASEROOM_",known:true,hasnewmsgs:true,floor:0}); gotonext(); } - }; - request.send(); - request = null; + } + fetchm(); }