march mode list is loaded and works, now just need to filter it
[citadel.git] / webcit-ng / static / js / main.js
index c711e96e406a813962fcfc9c609d4a17b03174cf..5f02ec0c3e2a02479eb4a17d8e6cbbfbc26115dd 100644 (file)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2016-2017 by the citadel.org team
+// Copyright (c) 2016-2018 by the citadel.org team
 //
 // This program is open source software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 3.
@@ -18,6 +18,9 @@ var current_view = 0;
 var logged_in = 0;
 var current_user = _("Not logged in.");
 var serv_info;
+var last_seen = 0;
+var messages_per_page = 20;
+var march_list = [] ;
 
 
 // Placeholder for when we add i18n later
@@ -30,7 +33,7 @@ function _(x) {
 // Useful for generating one-time-use div names
 //
 function randomString(length) {
-       var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');
+       var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghiklmnopqrstuvwxyz'.split('');
 
        if (! length) {
                length = Math.floor(Math.random() * chars.length);
@@ -197,6 +200,45 @@ function gotoroom_2(data) {
        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();
+       render_room_view(0, 9999999999);
+}
+
+
+// Goto next room with unread messages
+//
+function gotonext() {
+       console.log("march list contains " + march_list.length );
+       if (march_list.length == 0) {
+               load_new_march_list();
+               march_list = [ 
+                       {"rorder":0,"name":"CitaNews","known":true,"hasnewmsgs":true,"floor":0} ,
+                       {"rorder":0,"name":"Hot Rodding","known":true,"hasnewmsgs":true,"floor":0} ,
+                       {"rorder":0,"name":"_BASEROOM_","known":true,"hasnewmsgs":true,"floor":0} ,
+               ] ;
+               // FIXME load the room list then start over, probably ok to recurse
+       }
+       else {
+               next_room = march_list[0].name;
+               march_list.splice(0, 1);
+               console.log("going to " + next_room);
+               gotoroom(next_room);
+       }
+}
+
+
+// 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));
+                       gotonext();             // yes , we recurse right back  FIXME sort and filter this data
+               }
+       };
+       request.send();
+       request = null;
 }