/*
* Functions which handle calendar objects and their processing/display.
*
- * Copyright (c) 1996-2011 by the citadel.org team
+ * Copyright (c) 1996-2012 by the citadel.org team
*
* This program is open source software. You can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 3 of the
- * License, or (at your option) any later version.
+ * modify it under the terms of the GNU General Public License, version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "webcit.h"
int is_update = 0;
char divname[32];
static int divcount = 0;
+ const char *ch;
sprintf(divname, "rsvp%04x", ++divcount);
the_method = icalproperty_get_method(method);
StrBufAppendPrintf(Target, "<div id=\"%s_title\">", divname);
- StrBufAppendPrintf(Target, "<img src=\"static/calarea_48x.gif\">");
+ StrBufAppendPrintf(Target, "<img src=\"static/webcit_icons/essen/32x32/calendar.png\">");
StrBufAppendPrintf(Target, "<span>");
switch(the_method) {
case ICAL_METHOD_REQUEST:
StrBufAppendPrintf(Target, "<dt>");
StrBufAppendPrintf(Target, _("Attendee:"));
StrBufAppendPrintf(Target, "</dt><dd>");
- safestrncpy(buf, icalproperty_get_attendee(p), sizeof buf);
- if (!strncasecmp(buf, "MAILTO:", 7)) {
+ ch = icalproperty_get_attendee(p);
+ if ((ch != NULL) && !strncasecmp(buf, "MAILTO:", 7)) {
/** screen name or email address */
- strcpy(buf, &buf[7]);
+ safestrncpy(buf, ch + 7, sizeof(buf));
striplt(buf);
StrEscAppend(Target, NULL, buf, 0, 0);
StrBufAppendPrintf(Target, " ");
serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
- wc_printf("<img src=\"static/calarea_48x.gif\"><span>");
+ wc_printf("<img src=\"static/webcit_icons/essen/32x32/calendar.png\"><span>");
if (!strcasecmp(bstr("sc"), "accept")) {
wc_printf(_("You have accepted this meeting invitation. "
"It has been entered into your calendar.")
wc_printf(_("A reply has been sent to the meeting organizer."));
wc_printf("</span>");
} else {
- wc_printf("<img align=\"center\" src=\"static/error.gif\"><span>");
+ wc_printf("<img align=\"center\" src=\"static/webcit_icons/error.gif\"><span>");
wc_printf("%s\n", &buf[4]);
wc_printf("</span>");
}
serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
- wc_printf("<img src=\"static/calarea_48x.gif\"><span>");
+ wc_printf("<img src=\"static/webcit_icons/calendar.png\"><span>");
if (!strcasecmp(bstr("sc"), "update")) {
- /* Translators: RSVP aka Répondez s'il-vous-plaît Is the term
- that the recipient of an ical-invitation should please
- answer this request. */
+ /// Translators: RSVP aka Répondez s'il-vous-plaît Is the term
+ /// that the recipient of an ical-invitation should please
+ /// answer this request.
wc_printf(_("Your calendar has been updated to reflect this RSVP."));
} else if (!strcasecmp(bstr("sc"), "ignore")) {
wc_printf(_("You have chosen to ignore this RSVP. "
}
wc_printf("</span>");
} else {
- wc_printf("<img src=\"static/error.gif\"><span> %s\n", &buf[4]);
+ wc_printf("<img src=\"static/webcit_icons/error.gif\"><span> %s\n", &buf[4]);
wc_printf("</span>");
}
}
/* Store it in the hash list. */
- syslog(LOG_DEBUG, "INITIAL: %s", ctime(&Cal->event_start));
+ /* syslog(LOG_DEBUG, "INITIAL: %s", ctime(&Cal->event_start)); */
Put(WCC->disp_cal_items,
(char*) &Cal->event_start,
sizeof(Cal->event_start),
if (!icaltime_is_null_time(dtend)) { /* Need duration for recurrences */
dur = icaltime_subtract(dtend, dtstart);
}
+ else {
+ dur = icaltime_subtract(dtstart, dtstart);
+ }
/*
* Just let libical iterate the recurrence, and keep looping back to the top of this function,
while ( ps = icalcomponent_get_first_property(cptr, ICAL_DTSTART_PROPERTY),
ps != NULL
) {
- syslog(LOG_DEBUG, "Removing old dtstart");
icalcomponent_remove_property(cptr, ps);
- syslog(LOG_DEBUG, "Removed old dtstart");
}
/* Add our shiny new DTSTART property from the iteration */
- syslog(LOG_DEBUG, "Adding new dtstart");
ps = icalproperty_new_dtstart(next);
icalcomponent_add_property(cptr, ps);
Cal->event_start = icaltime_as_timet(next);
final_recurrence = Cal->event_start;
- syslog(LOG_DEBUG, "Added new dtstart");
/* Remove any existing DTEND properties */
while ( ps = icalcomponent_get_first_property(cptr, ICAL_DTEND_PROPERTY),
(ps != NULL)
) {
- syslog(LOG_DEBUG, "Removing old dtend");
icalcomponent_remove_property(cptr, ps);
- syslog(LOG_DEBUG, "Removed old dtend");
}
/* Add our shiny new DTEND property from the iteration */
- syslog(LOG_DEBUG, "Adding new dtend");
ps = icalproperty_new_dtend(icaltime_add(next, dur));
icalcomponent_add_property(cptr, ps);
- syslog(LOG_DEBUG, "Added new dtend");
}
if ( (Cal->event_start > calv->lower_bound)
&& (Cal->event_start < calv->upper_bound)
) {
-
-/* FIXME we are getting two different timestamps here and that's why it is not working */
- syslog(LOG_DEBUG, "REPEATS: %s", ctime(&Cal->event_start));
- time_t foo;
- foo = icaltime_as_timet(icalproperty_get_dtstart(icalcomponent_get_first_property(Cal->cal, ICAL_DTSTART_PROPERTY)));
- syslog(LOG_DEBUG, "REPEATZ: %s", ctime(&foo));
-
-
+ /* syslog(LOG_DEBUG, "REPEATS: %s", ctime(&Cal->event_start)); */
Put(WCC->disp_cal_items,
(char*) &Cal->event_start,
sizeof(Cal->event_start),
char mime_filename[256];
char mime_content_type[256];
char mime_disposition[256];
- int mime_length;
char relevant_partnum[256];
char *relevant_source = NULL;
int phase = 0; /* 0 = citadel headers, 1 = mime headers, 2 = body */
extract_token(mime_partnum, &bptr[5], 2, '|', sizeof mime_partnum);
extract_token(mime_disposition, &bptr[5], 3, '|', sizeof mime_disposition);
extract_token(mime_content_type, &bptr[5], 4, '|', sizeof mime_content_type);
- mime_length = extract_int(&bptr[5], 5);
+ /* do we care? mime_length = */extract_int(&bptr[5], 5);
if ( (!strcasecmp(mime_content_type, "text/calendar"))
|| (!strcasecmp(mime_content_type, "application/ics"))
calendar_GetParamsGetServerCall,
NULL,
NULL,
+ NULL,
calendar_LoadMsgFromServer,
calendar_RenderView_or_Tail,
calendar_Cleanup);
calendar_GetParamsGetServerCall,
NULL,
NULL,
+ NULL,
calendar_LoadMsgFromServer,
calendar_RenderView_or_Tail,
calendar_Cleanup);