/* See what we need to do with this */
if (method != NULL) {
- the_method = icalproperty_get_method(method);
char *title;
+ the_method = icalproperty_get_method(method);
StrBufAppendPrintf(Target, "<div id=\"%s_title\">", divname);
StrBufAppendPrintf(Target, "<img src=\"static/calarea_48x.gif\">");
void cal_process_attachment(wc_mime_attachment *Mime)
{
icalcomponent *cal;
-
+
cal = icalcomponent_new_from_string(ChrPtr(Mime->Data));
FlushStrBuf(Mime->Data);
if (cal == NULL) {
icalrecur_iterator *ritr = NULL;
struct icaltimetype next;
int num_recur = 0;
+ int stop_rr = 0;
dtstart = icaltime_null_time();
dtend = icaltime_null_time();
ritr = icalrecur_iterator_new(recur, dtstart);
if (!ritr) return;
- int stop_rr = 0;
while (next = icalrecur_iterator_next(ritr), ((!icaltime_is_null_time(next))&&(!stop_rr)) ) {
++num_recur;
if (num_recur > 1) { /* Skip the first one. We already did it at the root. */
+ icalcomponent *cptr;
/* lprintf(9, "REPEATS: %s\n", icaltime_as_ical_string(next)); */
/* Note: anything we do here, we also have to do above for the root event. */
memcpy(Cal->from, from, len + 1);
Cal->cal_msgnum = msgnum;
- icalcomponent *cptr;
if (icalcomponent_isa(Cal->cal) == ICAL_VEVENT_COMPONENT) {
cptr = Cal->cal;
}
created_new_vtodo = 1;
}
- // TODO: Can we take all this and move it into a template?
+ /*/ TODO: Can we take all this and move it into a template? */
output_headers(1, 1, 1, 0, 0, 0);
wprintf("<!-- start task edit form -->");
p = icalcomponent_get_first_property(vtodo, ICAL_SUMMARY_PROPERTY);
- // Get summary early for title
+ /* Get summary early for title */
wprintf("<div class=\"box\">\n");
wprintf("<div class=\"boxlabel\">");
wprintf(_("Edit task"));
wprintf("<FORM METHOD=\"POST\" action=\"save_task\">\n");
wprintf("<div style=\"display: none;\">\n ");
wprintf("<input type=\"hidden\" name=\"nonce\" value=\"%d\">\n", WC->nonce);
- wprintf("<INPUT TYPE=\"hidden\" NAME=\"msgnum\" VALUE=\"%ld\">\n",
- msgnum);
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"msgnum\" VALUE=\"%ld\">\n", msgnum);
+ wprintf("<INPUT TYPE=\"hidden\" NAME=\"return_to_summary\" VALUE=\"%d\">\n",
+ ibstr("return_to_summary"));
wprintf("</div>");
wprintf("<table class=\"calendar_background\"><tr><td>");
wprintf("<TABLE STYLE=\"border: none;\">\n");
}
wprintf(" >");
wprintf("</TD></TR>");
- // start category field
+ /* start category field */
p = icalcomponent_get_first_property(vtodo, ICAL_CATEGORIES_PROPERTY);
wprintf("<TR><TD>");
wprintf(_("Category:"));
}
wprintf("\">");
wprintf("</TD></TR>\n ");
- // end category field
+ /* end category field */
wprintf("<TR><TD>");
wprintf(_("Description:"));
wprintf("</TD><TD>");
icalproperty_new_summary(bstr("summary")));
} else {
icalcomponent_add_property(vtodo,
- icalproperty_new_summary("Untitled Task"));
+ icalproperty_new_summary(_("Untitled Task")));
}
while (prop = icalcomponent_get_first_property(vtodo,
icalcomponent_remove_property(vtodo,prop);
icalproperty_free(prop);
}
+ while(prop = icalcomponent_get_first_property(vtodo,
+ ICAL_PERCENTCOMPLETE_PROPERTY), prop != NULL) {
+ icalcomponent_remove_property(vtodo,prop);
+ icalproperty_free(prop);
+ }
+
if (havebstr("status")) {
- icalproperty_status taskStatus = icalproperty_string_to_status(
- bstr("status"));
+ icalproperty_status taskStatus = icalproperty_string_to_status(bstr("status"));
icalcomponent_set_status(vtodo, taskStatus);
+ icalcomponent_add_property(vtodo,
+ icalproperty_new_percentcomplete(
+ (strcasecmp(bstr("status"), "completed") ? 0 : 100)
+ )
+ );
+ }
+ else {
+ icalcomponent_add_property(vtodo, icalproperty_new_percentcomplete(0));
}
while (prop = icalcomponent_get_first_property(vtodo,
ICAL_CATEGORIES_PROPERTY), prop != NULL) {
icalcomponent_free(vtodo);
}
- /** Go back to the task list */
- readloop(readfwd);
+ /* Go back to wherever we came from */
+ if (ibstr("return_to_summary") == 1) {
+ summary();
+ }
+ else {
+ readloop(readfwd);
+ }
}
/* Force change the room if we have to */
if (havebstr("taskrm")) {
- gotoroom((char *)bstr("taskrm"));
+ gotoroom(sbstr("taskrm"));
}
msgnum = lbstr("msgnum");
InitModule_CALENDAR
(void)
{
+ RegisterPreference("daystart", _("Calendar day view begins at:"), PRF_INT, NULL);
+ RegisterPreference("dayend", _("Calendar day view ends at:"), PRF_INT, NULL);
+ RegisterPreference("weekstart", _("Week starts on:"), PRF_INT, NULL);
+
WebcitAddUrlHandler(HKEY("display_edit_task"), display_edit_task, 0);
WebcitAddUrlHandler(HKEY("save_task"), save_task, 0);
WebcitAddUrlHandler(HKEY("display_edit_event"), display_edit_event, 0);