RegisterIterator("ICAL:CONFLICT", 0, NULL, iterate_FindConflict,
- NULL, NULL, CTX_MIME_ATACH, CTX_ICALCONFLICT, IT_NOFLAG);
+ NULL, DeleteHash, CTX_MIME_ATACH, CTX_ICALCONFLICT, IT_NOFLAG);
RegisterNamespace("ICAL:CONFLICT:MSGID", 0, 1, tmplput_ConflictEventMsgID, NULL, CTX_ICALCONFLICT);
RegisterNamespace("ICAL:CONFLICT:EUID", 0, 1, tmplput_ConflictEUID, NULL, CTX_ICALCONFLICT);
RegisterNamespace("ICAL:CONFLICT:SUMMARY", 0, 1, tmplput_ConflictSummary, NULL, CTX_ICALCONFLICT);
RegisterCTX(CTX_ICALATTENDEE);
RegisterIterator("ICAL:ATTENDEES", 0, NULL, iterate_get_ical_attendees,
- NULL, NULL, CTX_ICALATTENDEE, CTX_ICAL, IT_NOFLAG);
+ NULL, DeleteHash, CTX_ICALATTENDEE, CTX_ICAL, IT_NOFLAG);
RegisterNamespace("ICAL:ATTENDEE", 1, 2, tmplput_ICalAttendee, NULL, CTX_ICALATTENDEE);
RegisterConditional("COND:ICAL:ATTENDEE", 1, cond_ICalAttendeeState, CTX_ICALATTENDEE);
{
DeleteHash(&IcalComponentMap);
}
-
-
-
-/*
- if (is_update) {
- snprintf(conflict_message, sizeof conflict_message,
- _("This is an update of '%s' which is already in your calendar."), conflict_name);
- }
- else {
- snprintf(conflict_message, sizeof conflict_message,
- _("This event would conflict with '%s' which is already in your calendar."), conflict_name);
- }
-
- StrBufAppendPrintf(Target, "<dt>%s",
- (is_update ?
- _("Update:") :
- _("CONFLICT:")
- )
- );
- StrBufAppendPrintf(Target, "</dt><dd>");
- StrEscAppend(Target, NULL, conflict_message, 0, 0);
- StrBufAppendPrintf(Target, "</dd>\n");
- }
- }
-/*/
WCTemplputParams SubTP;
StrBuf *Error = NULL;
+ memset(&SuperTP, 0, sizeof(WCTemplputParams));
+ memset(&SubTP, 0, sizeof(WCTemplputParams));
+
Buf = NewStrBuf();
FoundCharset = NewStrBuf();
Msg = (message_summary *)malloc(sizeof(message_summary));
/* Locate a renderer capable of converting this MIME part into HTML */
if (GetHash(MimeRenderHandler, SKEY(Buf), &vHdr) &&
(vHdr != NULL)) {
- WCTemplputParams SubTP;
RenderMimeFuncStruct *Render;
StackContext(&SuperTP, &SubTP, Msg->MsgBody, CTX_MIME_ATACH, 0, NULL);
-
<div class="mimepart">
<div id="rsvp<?BSTR("divname")>_title">
<?--("If this is a REQUEST, display conflicts and buttons")>
<?!("COND:ICAL:METHOD", 110, #"ICAL_METHOD_REQUEST")>
-<?ICAL:SERV:CHECK:CONFLICT()>
+<?ITERATE("ICAL:CONFLICT", ="ical_attachment_display_conflict")>
<?--("Display the Accept/Decline buttons")>
<p id="rsvp<?BSTR("divname")>_question">
<?_("How would you like to respond to this invitation?")>
--- /dev/null
+<dt>
+<??("ICAL:CONFLICT:IS:UPDATE", 30)><?_("Update:" )><??("X", 30)>
+<??("ICAL:CONFLICT:IS:UPDATE", 40)><?_("CONFLICT:")><??("X", 40)>
+</dt><dd>
+<??("ICAL:CONFLICT:IS:UPDATE", 10)><?_("This is an update of" )> '<?ICAL:CONFLICT:SUMMARY("X")>' <?_("which is already in your calendar.")><??("X", 10)>
+<?!("ICAL:CONFLICT:IS:UPDATE", 20)><?_("This event would conflict with")> '<?ICAL:CONFLICT:SUMMARY("X")>' <?_("which is already in your calendar.")><?!("X", 20)>
+</dd>
Sub->Sub = Super->Sub;
Super->Sub = Sub;
}
+ if (Sub->Sub != NULL)
+ Sub->Sub->Super = Sub;
Sub->Super = Super;
Sub->Context = Context;
{
Sub->Super->Sub = Sub->Sub;
}
+ if (Sub->Sub != NULL)
+ {
+ Sub->Sub->Super = Sub->Super;
+ }
}
void UnStackDynamicContext(StrBuf *Target, WCTemplputParams **TPP)
{
*/
}
-
-
-
void LogError (StrBuf *Target, const char *Type, const char *Format, ...)
{
wcsession *WCC;
return 1;
LogTemplateError(
- Target, ErrType, ERR_PARM1, TP,
+ Target, ErrType, ERR_NAME, TP,
" WARNING: requires Context: [%s], have [%s]!",
ContextName(Need->ContextType),
ContextName(TP->Filter.ContextType));
res = Cond->CondF(Target, TP);
if (res == Neg)
rc = TP->Tokens->Params[1]->lvalue;
+
if (LoadTemplates > 5)
syslog(1, "<%s> : %d %d==%d\n",
ChrPtr(TP->Tokens->FlatToken),
rc, res, Neg);
+
if (TP->Sub != NULL)
{
*TPP = TP->Sub;