X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit-ng%2Froom_functions.c;h=21fe56460fa5cc407b2ad3e4faff034335433dc7;hb=b189e3c20289655e602210cb8e250bfd98d9dd47;hp=4d166e320310d490739cff37a110b9bd555bc223;hpb=553af16f7e9532a5546c515acbecafe3b5f33d90;p=citadel.git diff --git a/webcit-ng/room_functions.c b/webcit-ng/room_functions.c index 4d166e320..21fe56460 100644 --- a/webcit-ng/room_functions.c +++ b/webcit-ng/room_functions.c @@ -1,7 +1,7 @@ /* * Room functions * - * Copyright (c) 1996-2017 by the citadel.org team + * Copyright (c) 1996-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. @@ -136,6 +136,11 @@ void object_in_room(struct http_transaction *h, struct ctdlsession *c) return; } + if (!strncasecmp(buf, "flat", 5)) { // Client is requesting a flat view (still kind of fuzzy here) + flat_view(h, c, &buf[5]); + return; + } + if ( (c->room_default_view == VIEW_CALENDAR) // room types where objects are referenced by EUID || (c->room_default_view == VIEW_TASKS) || (c->room_default_view == VIEW_ADDRESSBOOK) @@ -382,7 +387,7 @@ void propfind_the_room_itself(struct http_transaction *h, struct ctdlsession *c) StrBufAppendPrintf(Buf, ""); free(datestring); } - if (enumerate_by_euid) { // FIXME ajc 2017oct30 should this really be inside the timestamp conditional? + if (enumerate_by_euid) { // FIXME ajc 2017oct30 should this be inside the timestamp conditional? StrBufAppendPrintf(Buf, "\"%ld\"", msglist[i]); } } @@ -419,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 @@ -548,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