From add79b79bcc86d61a2f8661103f7fce6d554f45c Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Tue, 6 May 2008 16:44:46 +0000 Subject: [PATCH] * The 'delete' button on sticky notes now works. * Removed old-style notes interface. The new one is now required. --- webcit/messages.c | 42 ---------- webcit/notes.c | 180 ++++------------------------------------- webcit/static/wclib.js | 40 +++++---- webcit/webcit.c | 2 - 4 files changed, 35 insertions(+), 229 deletions(-) diff --git a/webcit/messages.c b/webcit/messages.c index ab45068e9..212734d23 100644 --- a/webcit/messages.c +++ b/webcit/messages.c @@ -2471,7 +2471,6 @@ void readloop(char *oper) } if (is_notes) { - wprintf("
%s
\n", _("Click on any note to edit it.")); wprintf("
\n"); } @@ -2712,13 +2711,6 @@ void readloop(char *oper) /** end bbview scroller */ } - if (is_notes) - { - wprintf ("\n"); - } - - - for (a = 0; a < nummsgs; ++a) { if ((WCC->msgarr[a] >= startmsg) && (num_displayed < maxmsgs)) { @@ -2882,40 +2874,6 @@ void readloop(char *oper) /** end bbview scroller */ } - if (is_notes) - { -// wprintf ("\n"); - wprintf ("
Drop notes here to remove them.
\n"); - wprintf ("\n"); - } - - - DONE: if (is_tasks) { do_tasks_view(); /** Render the task list */ diff --git a/webcit/notes.c b/webcit/notes.c index 7497746ca..b4a08b469 100644 --- a/webcit/notes.c +++ b/webcit/notes.c @@ -7,161 +7,6 @@ #include "groupdav.h" #include "webserver.h" - -/* - * Uncomment this #define in order to get the new vNote-based sticky notes view. - * We're keeping both versions here so that I can work on the new view without breaking - * the existing implementation prior to completion. - */ - -/* #define NEW_NOTES_VIEW */ - - -#ifndef NEW_NOTES_VIEW -/* - * display sticky notes - * - * msgnum = Message number on the local server of the note to be displayed - */ -void display_note(long msgnum, int unread) -{ - char buf[SIZ]; - char notetext[SIZ]; - char display_notetext[SIZ]; - char eid[128]; - int in_text = 0; - int i, len; - - serv_printf("MSG0 %ld", msgnum); - serv_getln(buf, sizeof buf); - if (buf[0] != '1') { - wprintf("%s
\n", &buf[4]); - return; - } - - strcpy(notetext, ""); - strcpy(eid, ""); - 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) && (!strncasecmp(buf, "exti=", 5)) ) { - safestrncpy(eid, &buf[5], sizeof eid); - } - - if ( (!in_text) && (!strcasecmp(buf, "text")) ) { - in_text = 1; - } - } - - /* Now sanitize the buffer */ - len = strlen(notetext); - for (i=0; i\n"); - wprintf ("\n"); - } - else { - wprintf ("\n"); - wprintf ("\n"); - } - - if (!IsEmptyStr(eid)) { - wprintf("%s
\n", eid, display_notetext); - } - else { - wprintf("%s
\n", msgnum, display_notetext); - } - - /* Offer in-place editing. */ - if (!IsEmptyStr(eid)) { - wprintf("\n", - eid, - WC->nonce, - eid - ); - } -} -#endif - - -/* - * 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, len; - - serv_printf("ENT0 1||0|0||||||%s", bstr("eid")); - serv_getln(buf, sizeof buf); - if (buf[0] == '4') { - text_to_server(bstr("value")); - 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') { - strcpy(notetext, ""); - 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 */ - len = strlen(notetext); - for (i=0; i containing a rendered sticky note. */ @@ -191,9 +36,9 @@ void display_vnote_div(struct vnote *v) { wprintf(""); wprintf(""); // nothing in the title bar, it's just for dragging - wprintf("
"); + wprintf(""); + wprintf("uid, _("Delete this note?") ); + wprintf("src=\"static/closewindow.gif\">"); wprintf("
"); wprintf("\n"); @@ -343,6 +188,20 @@ void ajax_update_note(void) { return; } msgnum = atol(&buf[4]); + + // Was this request a delete operation? If so, nuke it... + if (havebstr("deletenote")) { + if (!strcasecmp(bstr("deletenote"), "yes")) { + serv_printf("DELE %ld", msgnum); + serv_getln(buf, sizeof buf); + begin_ajax_response(); + wprintf("%s", buf); + end_ajax_response(); + return; + } + } + + // If we get to this point it's an update, not a delete v = vnote_new_from_msg(msgnum); if (!v) { begin_ajax_response(); @@ -391,10 +250,6 @@ void ajax_update_note(void) { - - -#ifdef NEW_NOTES_VIEW - /* * display sticky notes * @@ -420,4 +275,3 @@ void display_note(long msgnum, int unread) { } } -#endif diff --git a/webcit/static/wclib.js b/webcit/static/wclib.js index 853f01b35..5eec5d0d4 100644 --- a/webcit/static/wclib.js +++ b/webcit/static/wclib.js @@ -571,13 +571,26 @@ function NotesResizeMouseDown(evt, uid) { } +function DeleteStickyNote(evt, uid, confirmation_prompt) { + uid_of_note_being_deleted = uid; + d = $('note-' + uid_of_note_being_deleted); + if (confirm(confirmation_prompt)) { + new Effect.Puff(d); - - - - - + // submit an ajax http call to delete it on the server + p = 'note_uid=' + uid_of_note_being_deleted + + '&deletenote=yes' + + '&r=' + CtdlRandomString(); + new Ajax.Request( + 'ajax_update_note', + { + method: 'post', + parameters: p + } + ); + } +} @@ -723,23 +736,6 @@ function ctdl_ts_getInnerText(el) { } - -// This function handles the creation of new notes in the "Notes" view. -// -function add_new_note() { - - new_eid = CtdlRandomString(); - - $('new_notes_here').innerHTML = $('new_notes_here').innerHTML - + '\"Note\"' - + '' - + '' + Date() + '
' - ; - - new Ajax.InPlaceEditor('note' + new_eid, - 'updatenote?eid=' + new_eid , {rows:5,cols:72}); -} - function CtdlShowRaw(msgnum) { var customnav = document.createElement("span"); var mode_citadel = document.createElement("a"); diff --git a/webcit/webcit.c b/webcit/webcit.c index 0d16385cb..7aefacf22 100644 --- a/webcit/webcit.c +++ b/webcit/webcit.c @@ -2063,8 +2063,6 @@ void session_loop(struct httprequest *req) dump_vars(); wprintf("
\n"); wDumpContent(1); - } else if (!strcasecmp(action, "updatenote")) { - updatenote(); } else if (!strcasecmp(action, "ajax_update_note")) { ajax_update_note(); } else if (!strcasecmp(action, "display_room_directory")) { -- 2.30.2