track c_lastseen so we can use it in read operations
authorArt Cancro <ajc@citadel.org>
Thu, 8 Feb 2018 21:43:19 +0000 (16:43 -0500)
committerArt Cancro <ajc@citadel.org>
Thu, 8 Feb 2018 21:43:19 +0000 (16:43 -0500)
webcit-ng/room_functions.c
webcit-ng/static/js/main.js
webcit-ng/static/js/views.js
webcit-ng/webcit.h

index f49485d475bd92e68fccd8f993438b787344436d..21fe56460fa5cc407b2ad3e4faff034335433dc7 100644 (file)
@@ -424,6 +424,7 @@ void get_the_room_itself(struct http_transaction *h, struct ctdlsession *c)
        JsonObjectAppend(j, NewJsonNumber(      HKEY("default_view"),   c->room_default_view    ));
        JsonObjectAppend(j, NewJsonNumber(      HKEY("new_messages"),   c->new_messages         ));
        JsonObjectAppend(j, NewJsonNumber(      HKEY("total_messages"), c->total_messages       ));
+       JsonObjectAppend(j, NewJsonNumber(      HKEY("last_seen"),      c->last_seen            ));
 
        StrBuf *sj = NewStrBuf();
        SerializeJson(sj, j, 1);                        // '1' == free the source array
@@ -553,7 +554,7 @@ void ctdl_r(struct http_transaction *h, struct ctdlsession *c)
                         //     3       (int)info                       Info flag: set to nonzero if the user needs to read this room's info file
                         //     4       (int)CCC->room.QRflags          Various flags associated with this room.
                         //     5       (long)CCC->room.QRhighest       The highest message number present in this room
-                        //     6       (long)vbuf.v_lastseen           The highest message number the user has read in this room
+                        c->last_seen = extract_long(&buf[4], 6);       // The highest message number the user has read in this room
                         //     7       (int)rmailflag                  Boolean flag: 1 if this is a Mail> room, 0 otherwise.
                         //     8       (int)raideflag                  Nonzero if user is either Aide or a Room Aide in this room
                         //     9       (int)newmailcount               The number of new Mail messages the user has
index eeddc02b816edb3b53fe3c4e150f3ddde051c458..0170a987aba037465982c312e67a0320ecb8ad7e 100644 (file)
@@ -18,6 +18,7 @@ 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;
 
 
@@ -198,6 +199,7 @@ 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();
 }
index cf975ba0417442e0bb57fa609ccbc8d753cd14dc..ba1be92108cb2f04413fffdd5da1c0bd751f164c 100644 (file)
@@ -97,7 +97,7 @@ function forum_readmessages(flat_or_threads)
                {
                        if ((this.status / 100) == 2)
                        {
-                               document.getElementById(innerdivname).innerHTML = "Are we logged in? " + logged_in + "<ul>" ;
+                               document.getElementById(innerdivname).innerHTML = "Are we logged in? " + logged_in + "<br>" + "Last seen: " + last_seen + "<br><ul>" ;
                                msgs = JSON.parse(this.responseText);
                                for (var i in msgs)
                                {
index 72e40eed8d40fa899a85f48e30a2d1c0a2b883cd..a818260d3824a9c23fab689d797f11b35b8c1fc6 100644 (file)
@@ -82,6 +82,7 @@ struct ctdlsession {
        char room[128];                         // What room we are currently in
        int room_current_view;
        int room_default_view;
+       long last_seen;
        int new_messages;
        int total_messages;
        time_t last_access;                     // Timestamp of last request that used this session