* add more module handlers:
[citadel.git] / webcit / msg_renderers.c
index ed20d2eb28f850eb8f96ed9952aa0b110f8127e1..f33cd782b18e24c35c96456eccb85940e6993af0 100644 (file)
@@ -441,7 +441,7 @@ void tmplput_MAIL_SUMM_DATE_BRIEF(StrBuf *Target, WCTemplputParams *TP)
 {
        char datebuf[64];
        message_summary *Msg = (message_summary*) CTX;
-       webcit_fmt_date(datebuf, Msg->date, 1);
+       webcit_fmt_date(datebuf, 64, Msg->date, DATEFMT_BRIEF);
        StrBufAppendBufPlain(Target, datebuf, -1, 0);
 }
 
@@ -449,7 +449,7 @@ void tmplput_MAIL_SUMM_DATE_FULL(StrBuf *Target, WCTemplputParams *TP)
 {
        char datebuf[64];
        message_summary *Msg = (message_summary*) CTX;
-       webcit_fmt_date(datebuf, Msg->date, 0);
+       webcit_fmt_date(datebuf, 64, Msg->date, DATEFMT_FULL);
        StrBufAppendBufPlain(Target, datebuf, -1, 0);
 }
 void tmplput_MAIL_SUMM_DATE_NO(StrBuf *Target, WCTemplputParams *TP)
@@ -463,7 +463,7 @@ void tmplput_MAIL_SUMM_DATE_NO(StrBuf *Target, WCTemplputParams *TP)
 void render_MAIL(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *FoundCharset)
 {
        Mime->Data = NewStrBufPlain(NULL, Mime->length);
-       read_message(Mime->Data, HKEY("view_submessage"), Mime->msgnum, 0, Mime->PartNum);
+       read_message(Mime->Data, HKEY("view_submessage"), Mime->msgnum, Mime->PartNum);
 /*
        if ( (!IsEmptyStr(mime_submessages)) && (!section[0]) ) {
                for (i=0; i<num_tokens(mime_submessages, '|'); ++i) {
@@ -495,13 +495,42 @@ void render_MIME_VCard(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *FoundC
                }
 
                /* In all cases, display the full card */
-               display_vcard(Buf, ChrPtr(Mime->Data), 0, 1, NULL, Mime->msgnum);
+               display_vcard(Buf, Mime->Data, 0, 1, NULL, Mime->msgnum);
                FreeStrBuf(&Mime->Data);
                Mime->Data = Buf;
        }
 
 }
 
+void render_MIME_VNote(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *FoundCharset)
+{
+       MimeLoadData(Mime);
+       if (StrLength(Mime->Data) > 0) {
+               struct vnote *v;
+               StrBuf *Buf;
+
+               Buf = NewStrBuf();
+               v = vnote_new_from_str(ChrPtr(Mime->Data));
+               if (v) {
+                       WCTemplputParams TP;
+                       
+                       memset(&TP, 0, sizeof(WCTemplputParams));
+                       TP.Filter.ContextType = CTX_VNOTE;
+                       TP.Context = v;
+                       DoTemplate(HKEY("mail_vnoteitem"),
+                                  Buf, &TP);
+                       
+                       vnote_free(v);
+                       
+                       FreeStrBuf(&Mime->Data);
+                       Mime->Data = Buf;
+               }
+               else
+                       FlushStrBuf(Mime->Data);
+       }
+
+}
+
 void render_MIME_ICS(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *FoundCharset)
 {
        if (StrLength(Mime->Data) == 0) {
@@ -751,7 +780,7 @@ void tmplput_QUOTED_MAIL_BODY(StrBuf *Target, WCTemplputParams *TP)
 
        MsgNum = LBstr(TKEY(0));
        Buf = NewStrBuf();
-       read_message(Buf, HKEY("view_message_replyquote"), MsgNum, 0, NULL);
+       read_message(Buf, HKEY("view_message_replyquote"), MsgNum, NULL);
        StrBufAppendTemplate(Target, TP, Buf, 1);
        FreeStrBuf(&Buf);
 }
@@ -1132,7 +1161,7 @@ InitModule_MSGRENDERERS
        RegisterNamespace("MAIL:SUMM:ORGROOM", 0, 2, tmplput_MAIL_SUMM_ORGROOM,  CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:RFCA", 0, 2, tmplput_MAIL_SUMM_RFCA,  CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:OTHERNODE", 2, 0, tmplput_MAIL_SUMM_OTHERNODE,  CTX_MAILSUM);
-       RegisterNamespace("MAIL:SUMM:REFIDS", 0, 0, tmplput_MAIL_SUMM_REFIDS,  CTX_MAILSUM);
+       RegisterNamespace("MAIL:SUMM:REFIDS", 0, 1, tmplput_MAIL_SUMM_REFIDS,  CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:INREPLYTO", 0, 2, tmplput_MAIL_SUMM_INREPLYTO,  CTX_MAILSUM);
        RegisterNamespace("MAIL:BODY", 0, 2, tmplput_MAIL_BODY,  CTX_MAILSUM);
        RegisterNamespace("MAIL:QUOTETEXT", 1, 2, tmplput_QUOTED_MAIL_BODY,  CTX_NONE);
@@ -1179,6 +1208,7 @@ InitModule_MSGRENDERERS
 
        /* mime renderers translate an attachment into webcit viewable html text */
        RegisterMimeRenderer(HKEY("message/rfc822"), render_MAIL);
+       RegisterMimeRenderer(HKEY("text/vnote"), render_MIME_VNote);
        RegisterMimeRenderer(HKEY("text/x-vcard"), render_MIME_VCard);
        RegisterMimeRenderer(HKEY("text/vcard"), render_MIME_VCard);
        RegisterMimeRenderer(HKEY("text/calendar"), render_MIME_ICS);
@@ -1217,3 +1247,28 @@ InitModule_MSGRENDERERS
        RegisterMsgHdr(HKEY("suff"), examine_suff, 0);
        RegisterMsgHdr(HKEY("path"), examine_path, 0);
 }
+
+void 
+ServerStartModule_MSGRENDERERS
+(void)
+{
+       MsgHeaderHandler = NewHash(1, NULL);
+       MimeRenderHandler = NewHash(1, NULL);
+}
+
+void 
+ServerShutdownModule_MSGRENDERERS
+(void)
+{
+       DeleteHash(&MsgHeaderHandler);
+       DeleteHash(&MimeRenderHandler);
+}
+
+
+
+void 
+SessionDestroyModule_MSGRENDERERS
+(wcsession *sess)
+{
+       DeleteHash(&sess->attachments);
+}