5 * \defgroup StickyNotes Functions which handle "sticky notes"
6 * \ingroup WebcitDisplayItems
11 #include "webserver.h"
14 * \brief display sticky notes
15 * \param msgnum the citadel mesage number
17 void display_note(long msgnum)
21 char display_notetext[SIZ];
26 wprintf("<IMG ALIGN=MIDDLE src=\"static/storenotes_48x.gif\">\n");
28 serv_printf("MSG0 %ld", msgnum);
29 serv_getln(buf, sizeof buf);
31 wprintf("%s<br />\n", &buf[4]);
37 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
39 /** Fill the buffer */
40 if ( (in_text) && (strlen(notetext) < SIZ-256) ) {
41 strcat(notetext, buf);
44 if ( (!in_text) && (!strncasecmp(buf, "exti=", 5)) ) {
45 safestrncpy(eid, &buf[5], sizeof eid);
48 if ( (!in_text) && (!strcasecmp(buf, "text")) ) {
53 /** Now sanitize the buffer */
54 for (i=0; i<strlen(notetext); ++i) {
55 if (isspace(notetext[i])) notetext[i] = ' ';
58 /** Make it HTML-happy and print it. */
59 stresc(display_notetext, notetext, 0, 0);
60 if (strlen(eid) > 0) {
61 wprintf("<span id=\"note%s\">%s</span><br />\n", eid, display_notetext);
64 wprintf("<span id=\"note%ld\">%s</span><br />\n", msgnum, display_notetext);
67 /** Offer in-place editing. */
68 if (strlen(eid) > 0) {
69 wprintf("<script type=\"text/javascript\">"
70 "new Ajax.InPlaceEditor('note%s', 'updatenote?nonce=%ld?eid=%s', {rows:5,cols:72});"
81 * \brief This gets called by the Ajax.InPlaceEditor when we save a note.
87 char display_notetext[SIZ];
92 serv_printf("ENT0 1||0|0||||||%s", bstr("eid"));
93 serv_getln(buf, sizeof buf);
95 text_to_server(bstr("value"));
99 begin_ajax_response();
100 msgnum = locate_message_by_uid(bstr("eid"));
102 serv_printf("MSG0 %ld", msgnum);
103 serv_getln(buf, sizeof buf);
105 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
107 /** Fill the buffer */
108 if ( (in_text) && (strlen(notetext) < SIZ-256) ) {
109 strcat(notetext, buf);
112 if ( (!in_text) && (!strcasecmp(buf, "text")) ) {
116 /** Now sanitize the buffer */
117 for (i=0; i<strlen(notetext); ++i) {
118 if (isspace(notetext[i])) notetext[i] = ' ';
121 /** Make it HTML-happy and print it. */
122 stresc(display_notetext, notetext, 0, 0);
123 wprintf("%s\n", display_notetext);
127 wprintf("%s", _("An error has occurred."));