]> code.citadel.org Git - citadel.git/blobdiff - webcit/webcit.c
Completed 'Add New Note'. The new sticky notes view
[citadel.git] / webcit / webcit.c
index cd9e08103cbfbe3227341b57986e6f83df074914..d16258f748fe7690d2c8d265bca25e274ae3ac60 100644 (file)
@@ -674,7 +674,7 @@ void output_headers(        int do_httpheaders,     /* 1 = output HTTP headers
        if (do_htmlhead) {
                begin_burst();
                if (!access("static.local/webcit.css", R_OK)) {
-                       svprintf("CSSLOCAL", WCS_STRING,
+                       svprintf(HKEY("CSSLOCAL"), WCS_STRING,
                           "<link href=\"static.local/webcit.css\" rel=\"stylesheet\" type=\"text/css\">"
                        );
                }
@@ -794,7 +794,7 @@ void print_menu_box(char* Title, char *Class, int nLines, ...)
        va_list arg_list;
        long i;
        
-       svprintf("BOXTITLE", WCS_STRING, Title);
+       svput("BOXTITLE", WCS_STRING, Title);
        do_template("beginbox");
        
        wprintf("<ul class=\"%s\">", Class);
@@ -929,6 +929,44 @@ void output_image()
        output_static(blank_gif);
 }
 
+/**
+  * \brief Extract an embedded photo from a vCard for display on the client
+  *
+  * \param msgnum
+  */
+void display_vcard_photo_img(char *msgnum_as_string)
+{
+       long msgnum = 0L;
+       char *vcard;
+       struct vCard *v;
+       char *xferbuf;
+    char *photosrc;
+       int decoded;
+       const char *contentType;
+
+       msgnum = atol(msgnum_as_string);
+       
+       vcard = load_mimepart(msgnum,"1");
+       v = vcard_load(vcard);
+       
+       photosrc = vcard_get_prop(v, "PHOTO", 1,0,0);
+       xferbuf = malloc(strlen(photosrc));
+       if (xferbuf == NULL) {
+               lprintf(5, "xferbuf malloc failed\n");
+               return;
+       }
+       memset(xferbuf, 1, SIZ);
+       decoded = CtdlDecodeBase64(
+               xferbuf,
+               photosrc,
+               strlen(photosrc));
+       contentType = GuessMimeType(xferbuf, decoded);
+       http_transmit_thing(xferbuf, decoded, contentType, 0);
+       free(v);
+       free(photosrc);
+       free(xferbuf);
+}
+
 /**
  * \brief Generic function to output an arbitrary MIME part from an arbitrary
  *        message number on the server.
@@ -1330,7 +1368,6 @@ void session_loop(struct httprequest *req)
 
        WC->upload_length = 0;
        WC->upload = NULL;
-       WC->vars = NULL;
        WC->is_wap = 0;
 
        hptr = req;
@@ -1783,6 +1820,8 @@ void session_loop(struct httprequest *req)
                print_message(index[1]);
        } else if (!strcasecmp(action, "msgheaders")) {
                display_headers(index[1]);
+       } else if (!strcasecmp(action, "vcardphoto")) {
+               display_vcard_photo_img(index[1]);      
        } else if (!strcasecmp(action, "wiki")) {
                display_wiki_page();
        } else if (!strcasecmp(action, "display_enter")) {
@@ -2024,8 +2063,8 @@ void session_loop(struct httprequest *req)
                dump_vars();
                wprintf("</PRE><hr />\n");
                wDumpContent(1);
-       } else if (!strcasecmp(action, "updatenote")) {
-               updatenote();
+       } else if (!strcasecmp(action, "add_new_note")) {
+               add_new_note();
        } else if (!strcasecmp(action, "ajax_update_note")) {
                ajax_update_note();
        } else if (!strcasecmp(action, "display_room_directory")) {