[#77] added complex ui for repetition, fixed broken tests due to new feature
This commit is contained in:
@@ -81,6 +81,22 @@ export function parseCalendarEvent(
|
||||
break;
|
||||
case "status":
|
||||
event.status = String(value);
|
||||
break;
|
||||
case "rrule":
|
||||
event.repetition = { freq: value.freq.toLowerCase() };
|
||||
if (value.byday) {
|
||||
event.repetition.selectedDays = value.byday;
|
||||
}
|
||||
if (value.until) {
|
||||
event.repetition.selectedDays = value.endDate;
|
||||
}
|
||||
if (value.count) {
|
||||
event.repetition.selectedDays = value.occurrences;
|
||||
}
|
||||
if (value.interval) {
|
||||
event.repetition.interval = value.interval;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (recurrenceId && event.uid) {
|
||||
@@ -105,7 +121,7 @@ export function calendarEventToJCal(event: CalendarEvent): any[] {
|
||||
const vevent: any[] = [
|
||||
"vevent",
|
||||
[
|
||||
["uid", {}, "text", event.uid],
|
||||
["uid", {}, "text", event.uid.split("/")[0]],
|
||||
["transp", {}, "text", event.transp ?? "OPAQUE"],
|
||||
[
|
||||
"dtstart",
|
||||
@@ -150,8 +166,21 @@ export function calendarEventToJCal(event: CalendarEvent): any[] {
|
||||
if (event.description) {
|
||||
vevent[1].push(["description", {}, "text", event.description]);
|
||||
}
|
||||
if (event.repetition) {
|
||||
vevent[1].push(["rrule", {}, "recur", { freq: event.repetition }]);
|
||||
if (event.repetition?.freq) {
|
||||
const repetitionRule: Record<string, any> = { freq: event.repetition.freq };
|
||||
if (event.repetition.interval) {
|
||||
repetitionRule["interval"] = event.repetition.interval;
|
||||
}
|
||||
if (event.repetition.occurrences) {
|
||||
repetitionRule["count"] = event.repetition.occurrences;
|
||||
}
|
||||
if (event.repetition.endDate) {
|
||||
repetitionRule["until"] = event.repetition.endDate;
|
||||
}
|
||||
if (event.repetition.selectedDays) {
|
||||
repetitionRule["byday"] = event.repetition.selectedDays;
|
||||
}
|
||||
vevent[1].push(["rrule", {}, "recur", repetitionRule]);
|
||||
}
|
||||
|
||||
event.attendee.forEach((att) => {
|
||||
|
||||
Reference in New Issue
Block a user