X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fnotes.c;h=667745c7fcbce75ac66e55d94e125ff9b4bfeed0;hb=cef2aa1d629bb63d6743632f9bc76a467dd2b098;hp=89f2c84ca31a342c04f0d09211e8d840b6a0c4d1;hpb=10eb640e25404415291524b67e07f3d40695c746;p=citadel.git diff --git a/webcit/notes.c b/webcit/notes.c index 89f2c84ca..667745c7f 100644 --- a/webcit/notes.c +++ b/webcit/notes.c @@ -7,16 +7,19 @@ */ /*@{*/ #include "webcit.h" +#include "groupdav.h" #include "webserver.h" /** * \brief display sticky notes * \param msgnum the citadel mesage number */ -void display_note(long msgnum) { +void display_note(long msgnum) +{ char buf[SIZ]; char notetext[SIZ]; char display_notetext[SIZ]; + char eid[128]; int in_text = 0; int i; @@ -30,28 +33,102 @@ void display_note(long msgnum) { } strcpy(notetext, ""); + strcpy(eid, ""); while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { - /** Fill the buffer to at least 256 characters */ - if ( (in_text) && (strlen(notetext) < 256) ) { + /** Fill the buffer */ + if ( (in_text) && (strlen(notetext) < SIZ-256) ) { strcat(notetext, buf); } + if ( (!in_text) && (!strncasecmp(buf, "exti=", 5)) ) { + safestrncpy(eid, &buf[5], sizeof eid); + } + if ( (!in_text) && (!strcasecmp(buf, "text")) ) { in_text = 1; } } - /** Now sanitize the buffer, and shorten it to just a small snippet */ + /** Now sanitize the buffer */ for (i=0; i\n", display_notetext); + stresc(display_notetext, notetext, 0, 0); + if (strlen(eid) > 0) { + wprintf("%s
\n", eid, display_notetext); + } + else { + wprintf("%s
\n", msgnum, display_notetext); + } + + /** Offer in-place editing. */ + if (strlen(eid) > 0) { + wprintf("\n", + eid, + eid + ); + } } +/** + * \brief This gets called by the Ajax.InPlaceEditor when we save a note. + */ +void updatenote(void) +{ + char buf[SIZ]; + char notetext[SIZ]; + char display_notetext[SIZ]; + long msgnum; + int in_text = 0; + int i; + + serv_printf("ENT0 1||0|0||||||%s", bstr("eid")); + serv_getln(buf, sizeof buf); + if (buf[0] == '4') { + text_to_server(bstr("value"), 0); + serv_puts("000"); + } + + begin_ajax_response(); + msgnum = locate_message_by_uid(bstr("eid")); + if (msgnum >= 0L) { + serv_printf("MSG0 %ld", msgnum); + serv_getln(buf, sizeof buf); + if (buf[0] == '1') { + while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { + + /** Fill the buffer */ + if ( (in_text) && (strlen(notetext) < SIZ-256) ) { + strcat(notetext, buf); + } + + if ( (!in_text) && (!strcasecmp(buf, "text")) ) { + in_text = 1; + } + } + /** Now sanitize the buffer */ + for (i=0; i