]> code.citadel.org Git - citadel.git/blobdiff - webcit/event.c
Form-to-icalrecur logic for both types of yearly events.
[citadel.git] / webcit / event.c
index 041e5b83301084961117802b288a7fccd0ad1cfb..138bc0ff38ffcde2ed92dceed026a4f497f6d2d2 100644 (file)
@@ -931,13 +931,23 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum, char *fr
                                                recur.by_month_day[1] = ICAL_RECURRENCE_ARRAY_MAX;
                                        }
                                        else if (!strcasecmp(bstr("rrmonthtype"), "rrmonthtype_wday")) {
-                                               lprintf(9, "MONTHLY BY WDAY\n");
-                                               /* FIXME implement this */
+                                               recur.by_day[0] = (atoi(bstr("rrmweek")) * 8)
+                                                               + atoi(bstr("rrmweekday")) + 1;
+                                               recur.by_day[1] = ICAL_RECURRENCE_ARRAY_MAX;
                                        }
                                        break;
 
                                case ICAL_YEARLY_RECURRENCE:
-                                       /* FIXME implement this */
+                                       if (!strcasecmp(bstr("rryeartype"), "rryeartype_ymday")) {
+                                               /* no further action is needed here */
+                                       }
+                                       else if (!strcasecmp(bstr("rryeartype"), "rryeartype_ywday")) {
+                                               recur.by_month[0] = atoi(bstr("rrymonth"));
+                                               recur.by_month[1] = ICAL_RECURRENCE_ARRAY_MAX;
+                                               recur.by_day[0] = (atoi(bstr("rrymweek")) * 8)
+                                                               + atoi(bstr("rrymweekday")) + 1;
+                                               recur.by_day[1] = ICAL_RECURRENCE_ARRAY_MAX;
+                                       }
                                        break;
 
                                /* This one can't happen either. */