StrBufAppendBufPlain(Target, datebuf, -1, 0);
}
+void tmplput_MAIL_SUMM_EUID(StrBuf *Target, WCTemplputParams *TP)
+{
+ message_summary *Msg = (message_summary*) CTX;
+ StrBufAppendTemplate(Target, TP, Msg->euid, 0);
+}
+
void tmplput_MAIL_SUMM_DATE_FULL(StrBuf *Target, WCTemplputParams *TP)
{
char datebuf[64];
{ {HKEY("readlt")}, servcmd_readlt }
};
+
+int ParseMessageListHeaders_Detail(StrBuf *Line,
+ const char **pos,
+ message_summary *Msg,
+ StrBuf *ConversionBuffer)
+{
+ wcsession *WCC = WC;
+
+ Msg->from = NewStrBufPlain(NULL, StrLength(Line));
+ StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|');
+ if (StrLength(ConversionBuffer) != 0) {
+ /* Handle senders with RFC2047 encoding */
+ StrBuf_RFC822_to_Utf8(Msg->from, ConversionBuffer, WCC->DefaultCharset, NULL);
+ }
+
+ /* node name */
+ StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|');
+ if ((StrLength(ConversionBuffer) !=0 ) &&
+ ( ((WCC->CurRoom.QRFlags & QR_NETWORK)
+ || ((strcasecmp(ChrPtr(ConversionBuffer), ChrPtr(WCC->serv_info->serv_nodename))
+ && (strcasecmp(ChrPtr(ConversionBuffer), ChrPtr(WCC->serv_info->serv_fqdn))))))))
+ {
+ StrBufAppendBufPlain(Msg->from, HKEY(" @ "), 0);
+ StrBufAppendBuf(Msg->from, ConversionBuffer, 0);
+ }
+
+ /* Internet address (not used)
+ * StrBufExtract_token(Msg->inetaddr, Line, 4, '|');
+ */
+ StrBufSkip_NTokenS(Line, pos, '|', 1);
+ Msg->subj = NewStrBufPlain(NULL, StrLength(Line));
+ StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|');
+ if (StrLength(ConversionBuffer) == 0)
+ StrBufAppendBufPlain(Msg->subj, _("(no subject)"), -1,0);
+ else {
+ StrBuf_RFC822_to_Utf8(Msg->subj, ConversionBuffer, WCC->DefaultCharset, NULL);
+ if ((StrLength(Msg->subj) > 75) &&
+ (StrBuf_Utf8StrLen(Msg->subj) > 75)) {
+ StrBuf_Utf8StrCut(Msg->subj, 72);
+ StrBufAppendBufPlain(Msg->subj, HKEY("..."), 0);
+ }
+ }
+
+ if ((StrLength(Msg->from) > 25) &&
+ (StrBuf_Utf8StrLen(Msg->from) > 25)) {
+ StrBuf_Utf8StrCut(Msg->from, 23);
+ StrBufAppendBufPlain(Msg->from, HKEY("..."), 0);
+ }
+ return 1;
+}
+
/* Spit out the new summary view. This is basically a static page, so clients can cache the layout, all the dirty work is javascript :) */
void new_summary_view(void) {
DoTemplate(HKEY("msg_listview"),NULL,&NoCtx);
VIEW_MAILBOX,
mailview_GetParamsGetServerCall,
NULL, /// TODO: is this right?
+ ParseMessageListHeaders_Detail,
NULL, //// ""
mailview_RenderView_or_Tail,
mailview_Cleanup);
RegisterIterator("MAIL:SUMM:MSGS", 0, NULL, iterate_get_mailsumm_All,
NULL,NULL, CTX_MAILSUM, CTX_NONE, IT_NOFLAG);
+ RegisterNamespace("MAIL:SUMM:EUID", 0, 1, tmplput_MAIL_SUMM_EUID, NULL, CTX_MAILSUM);
RegisterNamespace("MAIL:SUMM:DATEBRIEF", 0, 0, tmplput_MAIL_SUMM_DATE_BRIEF, NULL, CTX_MAILSUM);
RegisterNamespace("MAIL:SUMM:DATEFULL", 0, 0, tmplput_MAIL_SUMM_DATE_FULL, NULL, CTX_MAILSUM);
RegisterNamespace("MAIL:SUMM:DATENO", 0, 0, tmplput_MAIL_SUMM_DATE_NO, NULL, CTX_MAILSUM);