Learn from the Citadel Server whether a room is the user's trash folder.
authorArt Cancro <ajc@citadel.org>
Mon, 13 Mar 2023 17:30:08 +0000 (13:30 -0400)
committerArt Cancro <ajc@citadel.org>
Mon, 13 Mar 2023 17:30:08 +0000 (13:30 -0400)
webcit-ng/server/room_functions.c
webcit-ng/server/webcit.h
webcit-ng/static/js/defs.js
webcit-ng/static/js/main.js

index 4abf0dbea0753d02481485733bd658217cb301a0..92ed577e874ef54516b8943a632306bb121b71a4 100644 (file)
@@ -512,6 +512,7 @@ void get_the_room_itself(struct http_transaction *h, struct ctdlsession *c) {
        JsonObjectAppend(j, NewJsonNumber(HKEY("current_view"), c->room_current_view));
        JsonObjectAppend(j, NewJsonNumber(HKEY("default_view"), c->room_default_view));
        JsonObjectAppend(j, NewJsonNumber(HKEY("is_room_aide"), c->is_room_aide));
+       JsonObjectAppend(j, NewJsonNumber(HKEY("is_trash_folder"), c->is_trash_folder));
        JsonObjectAppend(j, NewJsonNumber(HKEY("can_delete_messages"), c->can_delete_messages));
        JsonObjectAppend(j, NewJsonNumber(HKEY("new_messages"), c->new_messages));
        JsonObjectAppend(j, NewJsonNumber(HKEY("total_messages"), c->total_messages));
@@ -644,7 +645,7 @@ void ctdl_r(struct http_transaction *h, struct ctdlsession *c) {
                        //      10      (int)CC->room.QRfloor           The floor number this room resides on
                        c->room_current_view = extract_int(&buf[4], 11);
                        c->room_default_view = extract_int(&buf[4], 12);
-                       //      13      (int)is_trash                   Boolean flag: 1 if this is the user's Trash folder, 0 otherwise.
+                       c->is_trash_folder  = extract_int(&buf[4], 13); // Boolean flag: 1 if this is the user's Trash folder, 0 otherwise.
                        room_flags2 = extract_long(&buf[4], 14);        // More flags associated with this room.
                        c->room_mtime = extract_long(&buf[4], 15);      // Timestamp of the last write activity in this room
 
index d8009ddca6686042ef688ed82e2c700ff1911452..32939d28622c32e12ee44ba8daabe83a0d6eccd3 100644 (file)
@@ -83,6 +83,7 @@ struct ctdlsession {
        char room[128];                         // What room we are currently in
        int room_current_view;
        int room_default_view;
+       int is_trash_folder;                    // Nonzero if this room is the user's Trash folder
        int is_room_aide;                       // nonzero if the user has aide rights to THIS room
        int can_delete_messages;                // nonzeri if the user is permitted to delete messages in THIS room
        long last_seen;
index 33ed987fa58635f1a4fa5d2b14e5355be90dd9f7..67d93874cbf8a3d1ea1b8f3294d08bf2f820fcae 100644 (file)
@@ -19,6 +19,7 @@ var current_user = _("Not logged in.");
 var serv_info;
 var last_seen = 0;
 var is_room_aide = 0;
+var is_trash_folder = 0;
 var room_mtime = 0;
 var can_delete_messages = 0;
 var messages_per_page = 20;
index 57b6744ac790850906d2631294702a4a5919e520..6b5537d53bbe8860d4dab2f9f1b84c695ffa1392 100644 (file)
@@ -69,6 +69,9 @@ function update_banner() {
        detect_logged_in();
        if (current_room) {
                document.getElementById("ctdl_banner_title").innerHTML = current_room;
+               if (is_trash_folder) {
+                       document.getElementById("ctdl_banner_title").innerHTML += "&nbsp;<i class=\"fa fa-trash\"></i>";
+               }
                if (is_room_aide) {
                        document.getElementById("ctdl_banner_title").innerHTML += "&nbsp;<i class=\"fa fa-user-cog\"></i>";
                }
@@ -104,6 +107,7 @@ function gotoroom(roomname) {
                        default_view = data.default_view;
                        last_seen = data.last_seen;
                        is_room_aide = data.is_room_aide;
+                       is_trash_folder = data.is_trash_folder;
                        room_mtime = data.room_mtime;
                        can_delete_messages = data.can_delete_messages;
                        update_banner();