From: Art Cancro Date: Thu, 3 Nov 2005 16:13:46 +0000 (+0000) Subject: * Removed the 'mark message as seen' C code (in the mailbox view) because it X-Git-Tag: v7.86~4490 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=7017b03bb1c8cbfd68994a6c778d2446b7215c0d;p=citadel.git * Removed the 'mark message as seen' C code (in the mailbox view) because it was no longer getting called. Implemented this in JavaScript using an ajax call plus a new WebCit function to perform generic server commands using ajax. Also reinstated the removal of bold font weight for messages transitioning from unseen to seen (again, in JavaScript). --- diff --git a/webcit/ChangeLog b/webcit/ChangeLog index 6147783b3..fa527c947 100644 --- a/webcit/ChangeLog +++ b/webcit/ChangeLog @@ -1,5 +1,12 @@ $Id$ +Thu Nov 3 11:11:37 EST 2005 ajc +* Removed the 'mark message as seen' C code (in the mailbox view) because it + was no longer getting called. Implemented this in JavaScript using an ajax + call plus a new WebCit function to perform generic server commands using + ajax. Also reinstated the removal of bold font weight for messages + transitioning from unseen to seen (again, in JavaScript). + Wed Nov 2 23:45:16 EST 2005 ajc * Mailbox view -- onClick is now implemented by a JavaScript function which is defined in wclib.js -- now, it not only handles the Ajax load of the diff --git a/webcit/mainmenu.c b/webcit/mainmenu.c index fcde57aed..2332cc045 100644 --- a/webcit/mainmenu.c +++ b/webcit/mainmenu.c @@ -363,8 +363,6 @@ void do_generic(void) } - - /* * Display the menubar. Set as_single_page to * display HTML headers and footers -- otherwise it's assumed diff --git a/webcit/messages.c b/webcit/messages.c index acb74a132..82fb3dd48 100644 --- a/webcit/messages.c +++ b/webcit/messages.c @@ -2227,15 +2227,6 @@ DONE: WC->num_summ = 0; free(WC->summ); } - - /* If we got here via a mailbox view and are reading a single - * message, mark it as "seen." We do this after rendering the web page - * so it doesn't keep the user waiting. - */ - if ( (maxmsgs == 1) && (WC->wc_view == VIEW_MAILBOX) ) { - serv_printf("SEEN %ld|1", startmsg); - serv_getln(buf, sizeof buf); - } } diff --git a/webcit/static/wclib.js b/webcit/static/wclib.js index 7ea98ae00..b4202cfb8 100644 --- a/webcit/static/wclib.js +++ b/webcit/static/wclib.js @@ -73,5 +73,20 @@ function CtdlSingleClickMsg(msgnum) { CtdlNumMsgsSelected = CtdlNumMsgsSelected + 1; CtdlMsgsSelected[CtdlNumMsgsSelected-1] = msgnum; + // Update the preview pane new Ajax.Updater('preview_pane', '/msg/'+msgnum, { method: 'get' } ); + + // Mark the message as read + new Ajax.Request( + '/ajax_servcmd', { + method: 'post', + parameters: 'g_cmd=SEEN '+msgnum+'|1', + onComplete: CtdlRemoveTheUnseenBold(msgnum) + } + ); } + +function CtdlRemoveTheUnseenBold(msgnum) { + $('m'+msgnum).style.fontWeight='normal' ; +} + diff --git a/webcit/webcit.c b/webcit/webcit.c index ffb40a9c7..3ec962f93 100644 --- a/webcit/webcit.c +++ b/webcit/webcit.c @@ -824,6 +824,51 @@ void end_ajax_response(void) { wDumpContent(0); } +void ajax_servcmd(void) +{ + char buf[1024]; + char gcontent[1024]; + char *junk; + size_t len; + + begin_ajax_response(); + + serv_printf("%s", bstr("g_cmd")); + serv_getln(buf, sizeof buf); + + if (buf[0] == '8') { + serv_printf("\n\n000"); + } + if ((buf[0] == '1') || (buf[0] == '8')) { + while (serv_getln(gcontent, sizeof gcontent), strcmp(gcontent, "000")) { + /* maybe do something with it? */ + } + wprintf("000"); + } + if (buf[0] == '4') { + text_to_server(bstr("g_input"), 0); + serv_puts("000"); + } + if (buf[0] == '6') { + len = atol(&buf[4]); + junk = malloc(len); + serv_read(junk, len); + free(junk); + } + if (buf[0] == '7') { + len = atol(&buf[4]); + junk = malloc(len); + memset(junk, 0, len); + serv_write(junk, len); + free(junk); + } + + end_ajax_response(); +} + + + + /* @@ -1359,6 +1404,8 @@ void session_loop(struct httprequest *req) display_generic(); } else if (!strcasecmp(action, "do_generic")) { do_generic(); + } else if (!strcasecmp(action, "ajax_servcmd")) { + ajax_servcmd(); } else if (!strcasecmp(action, "display_menubar")) { display_menubar(1); } else if (!strcasecmp(action, "mimepart")) { diff --git a/webcit/webcit.h b/webcit/webcit.h index 6e9852c8f..efdcf285d 100644 --- a/webcit/webcit.h +++ b/webcit/webcit.h @@ -465,6 +465,7 @@ void display_siteconfig(void); void siteconfig(void); void display_generic(void); void do_generic(void); +void ajax_servcmd(void); void display_menubar(int); void smart_goto(char *); void worker_entry(void);