]> code.citadel.org Git - citadel.git/blobdiff - webcit/notes.c
* several memoryleaks
[citadel.git] / webcit / notes.c
index 664ddb8d569ee383605aca9b691abab712f9acc6..0775d9709d11e083adecdf2f993176beb47d8cd9 100644 (file)
@@ -54,37 +54,6 @@ void display_vnote_div(struct vnote *v) {
        wprintf("<img onclick=\"NotesClickPalette(event,'%s')\" ", v->uid);
        wprintf("src=\"static/8paint16.gif\">");
 
-       /* embed color selector */
-       wprintf("<div id=\"palette-%s\" ", v->uid);     // begin stickynote_palette div
-       wprintf("class=\"stickynote_palette\">");
-
-       wprintf("<table border=0 cellpadding=0 cellspacing=0>");
-       for (i=0; i<9; ++i) {
-               if ((i%3)==0) wprintf("<tr>");
-               wprintf("<td ");
-               wprintf("onClick=\"NotesClickColor(event,'%s',%d,%d,%d,'#%02x%02x%02x','#%02x%02x%02x')\" ",
-                       v->uid,
-                       pastel_palette[i][0],           // color values to pass to ajax call
-                       pastel_palette[i][1],
-                       pastel_palette[i][2],
-                       pastel_palette[i][0],           // new color of note
-                       pastel_palette[i][1],
-                       pastel_palette[i][2],
-                       pastel_palette[i][0] / 2,       // new color of title bar
-                       pastel_palette[i][1] / 2,
-                       pastel_palette[i][2] / 2
-               );
-               wprintf("bgcolor=\"#%02x%02x%02x\"> </td>",
-                       pastel_palette[i][0],
-                       pastel_palette[i][1],
-                       pastel_palette[i][2]
-               );
-               if (((i+1)%3)==0) wprintf("</tr>");
-       }
-       wprintf("</table>");
-
-       wprintf("</div>");                              // end stickynote_palette div
-
        wprintf("</td>");
 
        wprintf("<td></td>");   // nothing in the title bar, it's just for dragging
@@ -129,6 +98,44 @@ void display_vnote_div(struct vnote *v) {
 
 
 
+
+       /* embed color selector - it doesn't have to be inside the title bar html because
+        * it's a separate div placed by css
+        */
+       wprintf("<div id=\"palette-%s\" ", v->uid);     // begin stickynote_palette div
+       wprintf("class=\"stickynote_palette\">");
+
+       wprintf("<table border=0 cellpadding=0 cellspacing=0>");
+       for (i=0; i<9; ++i) {
+               if ((i%3)==0) wprintf("<tr>");
+               wprintf("<td ");
+               wprintf("onClick=\"NotesClickColor(event,'%s',%d,%d,%d,'#%02x%02x%02x','#%02x%02x%02x')\" ",
+                       v->uid,
+                       pastel_palette[i][0],           // color values to pass to ajax call
+                       pastel_palette[i][1],
+                       pastel_palette[i][2],
+                       pastel_palette[i][0],           // new color of note
+                       pastel_palette[i][1],
+                       pastel_palette[i][2],
+                       pastel_palette[i][0] / 2,       // new color of title bar
+                       pastel_palette[i][1] / 2,
+                       pastel_palette[i][2] / 2
+               );
+               wprintf("bgcolor=\"#%02x%02x%02x\"> </td>",
+                       pastel_palette[i][0],
+                       pastel_palette[i][1],
+                       pastel_palette[i][2]
+               );
+               if (((i+1)%3)==0) wprintf("</tr>");
+       }
+       wprintf("</table>");
+
+       wprintf("</div>");                              // end stickynote_palette div
+
+
+
+
+
        wprintf("</div>\n");                            // end outer div
 }
 
@@ -220,13 +227,16 @@ struct vnote *vnote_new_from_msg(long msgnum) {
 void write_vnote_to_server(struct vnote *v) 
 {
        char buf[1024];
+       char *pch;
 
        serv_puts("ENT0 1|||4");
        serv_getln(buf, sizeof buf);
        if (buf[0] == '4') {
                serv_puts("Content-type: text/vnote");
                serv_puts("");
-               serv_puts(vnote_serialize(v));
+               pch = vnote_serialize(v);
+               serv_puts(pch);
+               free(pch);
                serv_puts("000");
        }
 }
@@ -265,7 +275,7 @@ void ajax_update_note(void) {
        // Was this request a delete operation?  If so, nuke it...
        if (havebstr("deletenote")) {
                if (!strcasecmp(bstr("deletenote"), "yes")) {
-                       serv_printf("DELE %ld", msgnum);
+                       serv_printf("DELE %d", msgnum);
                        serv_getln(buf, sizeof buf);
                        begin_ajax_response();
                        wprintf("%s", buf);
@@ -278,7 +288,7 @@ void ajax_update_note(void) {
        v = vnote_new_from_msg(msgnum);
        if (!v) {
                begin_ajax_response();
-               wprintf("Cannot locate a vNote within message %ld\n", msgnum);
+               wprintf("Cannot locate a vNote within message %d\n", msgnum);
                end_ajax_response();
                return;
        }
@@ -372,3 +382,11 @@ void add_new_note(void) {
        
        readloop("readfwd");
 }
+
+void 
+InitModule_NOTES
+(void)
+{
+       WebcitAddUrlHandler(HKEY("add_new_note"), add_new_note, 0);
+       WebcitAddUrlHandler(HKEY("ajax_update_note"), ajax_update_note, 0);
+}