Skip to content
Open
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
cf4a389
First working version of recurring tasks
schulm Jan 8, 2026
49e9a51
npm run lint -- --fix
schulm Jan 9, 2026
d2de912
Merge branch 'main' into recurring-tasks
schulm Jan 9, 2026
4cd8a85
Merge branch 'main' of https://github.com/nextcloud/tasks into recurr…
schulm Jan 21, 2026
75ab22d
Fix problems with occurrences
schulm Jan 22, 2026
3ded22c
Fix translations
schulm Jan 22, 2026
cbad596
Merge branch 'main' into recurring-tasks
schulm Jan 22, 2026
2ba9cd6
Align UI with calendar
schulm Jan 22, 2026
c4d3c32
Fix l10n line endings (restore from main)
schulm Jan 22, 2026
9a01809
Revert "Fix l10n line endings (restore from main)"
schulm Jan 22, 2026
bc61ca6
Fix l10n line endings (normalize to LF)
schulm Jan 22, 2026
f3b3994
Update RepeatForkWarning.vue
schulm Jan 22, 2026
b1aedbb
Revert changes below l10n/
schulm Jan 22, 2026
1d25f07
Let DateTimePicker overlap over modal
schulm Jan 22, 2026
5b4ab81
CSS Fixes in the Repeat tasks modal
schulm Jan 22, 2026
62246fa
Clarify visibility of RecurrenceItem, show recurring icon in list
schulm Jan 24, 2026
d616e34
Show ReccurenceItem also when due date is set
schulm Jan 25, 2026
168d6d0
Fix timezone bug in calculating next task
schulm Jan 25, 2026
03319e3
Fix RecurrenceItem visibility on first task in empty list
schulm Jan 27, 2026
c5bc584
Fix calculation of next recurrent task
schulm Jan 27, 2026
5ede339
Add some tests for the last fixes
schulm Jan 27, 2026
33caf10
Merge branch 'main' into recurring-tasks
schulm Feb 15, 2026
6d3e75e
Merge remote-tracking branch 'origin' into pr-3021
raimund-schluessler Feb 15, 2026
581649e
Cleanup
schulm Feb 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion l10n/af.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ OC.L10N.register(
"All day" : "Heeldag",
"Details" : "Besonderhede",
"Notes" : "Notas",
"An error occurred" : "'n Fout het voorgekom"
"An error occurred" : "'n Fout het voorgekom",
"Repeat" : "Herhaal",
"never" : "nooit",
"after" : "na",
"second" : "sekonde"
},
"nplurals=2; plural=(n != 1);");
Expand Down
23 changes: 22 additions & 1 deletion l10n/ar.js
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,27 @@ OC.L10N.register(
"{time} before the task starts" : "{time} قبل أن تبدأ المهمة",
"{time} before the task is due" : "{time} قبل اكتمال المهمة",
"{time} after the task starts" : "{time} بعد أن تبدأ المهمة",
"{time} after the task is due" : "{time} بعد اكتمال المهمة"
"{time} after the task is due" : "{time} بعد اكتمال المهمة",
"Repeat" : "كرّر",
"Repeat every" : "تكرار كل",
"never" : "أبداً",
"on date" : "في تاريخ",
"after" : "بعد",
"End repeat" : "نهاية التكرار",
"first" : "أول",
"second" : "ثاني",
"third" : "ثالث",
"fourth" : "رابع",
"fifth" : "خامس",
"last" : "الأخير",
"second to last" : "الثاني إلى الاخير",
"By day of the month" : "بحسب اليوم من الشهر",
"On the" : "في الـ",
"On specific day" : "في يومٍ مُحدَّد",
"weekday" : "أيام الاسبوع",
"weekend day" : "يوم نهاية الاسبوع",
"_time_::_times_" : ["مرات","مرة","مرات","مرات","مرات","مرات"],
"_month_::_months_" : ["شهور","شهر","شهور","شهور","شهور","شهور"],
"_year_::_years_" : ["سنه","سنه","سنه","سنوات","سنوات","سنوات"]
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
Expand Down
11 changes: 10 additions & 1 deletion l10n/ast.js
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,15 @@ OC.L10N.register(
"[Starts tomorrow at] LT" : "[Comienza mañana:] LT",
"[Starts on] LL [at] LT" : "[Comienza'l] LL [:] LT",
"[Started yesterday at] LT" : "[Comenzó ayeri:] LT",
"[Started on] LL [at] LT" : "[Comienza'l] LL [:] LT"
"[Started on] LL [at] LT" : "[Comienza'l] LL [:] LT",
"Repeat" : "Repitir",
"never" : "enxamás",
"first" : "primer",
"second" : "segundu",
"third" : "tercer",
"fourth" : "cuartu",
"fifth" : "quintu",
"_month_::_months_" : ["mes","meses"],
"_year_::_years_" : ["añu","años"]
},
"nplurals=2; plural=(n != 1);");
Expand Down
5 changes: 4 additions & 1 deletion l10n/az.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ OC.L10N.register(
"Set start date" : "Başlanğıc tarixini işə sal",
"Set due date" : "Vaxtı təyin et",
"Details" : "Detallar",
"Notes" : "Qeydlər"
"Notes" : "Qeydlər",
"Repeat" : "Təkrar",
"never" : "heç vaxt",
"second" : "saniyə"
},
"nplurals=2; plural=(n != 1);");
Expand Down
23 changes: 22 additions & 1 deletion l10n/bg.js
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,27 @@ OC.L10N.register(
"[Starts tomorrow at] LT" : "[Започва утре в] LT",
"[Starts on] LL [at] LT" : "[Започва на] LL [в] LT",
"[Started yesterday at] LT" : "[Започнато вчера в] LT",
"[Started on] LL [at] LT" : "[Започнато на] LL [в] LT"
"[Started on] LL [at] LT" : "[Започнато на] LL [в] LT",
"Repeat" : "Да се повтаря",
"Repeat every" : "Повтаряй всеки",
"never" : "никога",
"on date" : "на дата",
"after" : "след",
"End repeat" : "Край на повторението",
"first" : "първи",
"second" : "секунда",
"third" : "трети",
"fourth" : "четвърти",
"fifth" : "пети",
"last" : "последен",
"second to last" : "предпоследен",
"By day of the month" : "От ден на месеца",
"On the" : "На",
"On specific day" : "На определен ден",
"weekday" : "делничен ден",
"weekend day" : "Почивен ден",
"_time_::_times_" : ["пъти","пъти"],
"_month_::_months_" : ["месец","месеци"],
"_year_::_years_" : ["година","години"]
},
"nplurals=2; plural=(n != 1);");
Expand Down
5 changes: 4 additions & 1 deletion l10n/bn_BD.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ OC.L10N.register(
"Set start date" : "আরম্ভের তারিখ নির্ধারণ করুন",
"Set due date" : "কার্যকারিতার তারিখ নির্ধারণ করুন",
"Details" : "বিসতারিত",
"Notes" : "নোট"
"Notes" : "নোট",
"Repeat" : "পূনঃসংঘটন",
"never" : "কখনোই নয়",
"second" : "সেকেন্ড"
},
"nplurals=2; plural=(n != 1);");
Expand Down
6 changes: 5 additions & 1 deletion l10n/br.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ OC.L10N.register(
"When shared hide this event" : "Kuzhat an darvoud-mañ pa vez lodet",
"Canceled" : "Nullet",
"Details" : "Munudoù",
"Notes" : "Notennoù"
"Notes" : "Notennoù",
"never" : "james",
"after" : "goude",
"first" : "kentañ",
"third" : "trede"
},
"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");
Expand Down
5 changes: 4 additions & 1 deletion l10n/bs.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ OC.L10N.register(
"Email" : "E-pošta",
"Close" : "Zatvori",
"Tomorrow" : "Sutra",
"Notes" : "Notes"
"Notes" : "Notes",
"Repeat" : "Ponovi",
"never" : "nikad",
"second" : "drugi"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
Expand Down
23 changes: 22 additions & 1 deletion l10n/ca.js
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,27 @@ OC.L10N.register(
"{time} before the task starts" : "{time} abans que comenci la tasca",
"{time} before the task is due" : "{time} abans del termini de la tasca",
"{time} after the task starts" : "{time} després que comenci la tasca",
"{time} after the task is due" : "{time} després del termini de la tasca"
"{time} after the task is due" : "{time} després del termini de la tasca",
"Repeat" : "Repeteix",
"Repeat every" : "Repeteix cada",
"never" : "mai",
"on date" : "el dia",
"after" : "després de",
"End repeat" : "Finalitza la repetició",
"first" : "primer",
"second" : "segon",
"third" : "tercer",
"fourth" : "quart",
"fifth" : "cinquè",
"last" : "últim",
"second to last" : "penúltim",
"By day of the month" : "Per dia del mes",
"On the" : "Al",
"On specific day" : "En un dia concret",
"weekday" : "dia de la setmana",
"weekend day" : "dia de cap de setmana",
"_time_::_times_" : ["vegada","vegades"],
"_month_::_months_" : ["mes","mesos"],
"_year_::_years_" : ["any","anys"]
},
"nplurals=2; plural=(n != 1);");
Expand Down
23 changes: 22 additions & 1 deletion l10n/cs.js
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,27 @@ OC.L10N.register(
"{time} before the task starts" : "{time} před zahájením úkolu",
"{time} before the task is due" : "{time} před termínem úkolu",
"{time} after the task starts" : "{time} po zahájení úkolu",
"{time} after the task is due" : "{time} po termínu úkolu"
"{time} after the task is due" : "{time} po termínu úkolu",
"Repeat" : "Opakovat",
"Repeat every" : "Opakovat každé",
"never" : "nikdy",
"on date" : "dne",
"after" : "po",
"End repeat" : "Konec opakování",
"first" : "první",
"second" : "sekunda",
"third" : "třetí",
"fourth" : "čtvrté",
"fifth" : "páté",
"last" : "poslední",
"second to last" : "po kolik sekund",
"By day of the month" : "Podle dne v měsíci",
"On the" : "V",
"On specific day" : "V konkrétní den",
"weekday" : "den v týdnu",
"weekend day" : "den o víkendu",
"_time_::_times_" : ["krát","krát","krát","krát"],
"_month_::_months_" : ["měsíc","měsíce","měsíců","měsíce"],
"_year_::_years_" : ["rok","roky","let","roky"]
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
Expand Down
22 changes: 21 additions & 1 deletion l10n/cy_GB.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,26 @@ OC.L10N.register(
"All day" : "Drwy'r dydd",
"Details" : "Manylion",
"Notes" : "Nodiadau",
"An error occurred" : "Digwyddodd gwall"
"An error occurred" : "Digwyddodd gwall",
"Repeat" : "Ailadrodd",
"Repeat every" : "Ailadrodd bob",
"never" : "byth",
"on date" : "ar ddyddiad",
"after" : "wedi",
"End repeat" : "Gorffen ailadrodd",
"first" : "cyntaf",
"second" : "ail",
"third" : "trydydd",
"fourth" : "pedwerydd",
"fifth" : "pumed",
"last" : "o;af",
"second to last" : "ail i olaf",
"By day of the month" : "Yn ôl dydd o'r mis",
"On the" : "Ar y",
"weekday" : "yn ystod yr wythnos",
"weekend day" : "diwrnod penwythnos",
"_time_::_times_" : ["amser","gwaith","gwaith","gwaith"],
"_month_::_months_" : ["mis","mis","mis","mis"],
"_year_::_years_" : ["blwyddyn","blwyddyn","flwyddyn","blwyddyn"]
},
"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
Expand Down
23 changes: 22 additions & 1 deletion l10n/da.js
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,27 @@ OC.L10N.register(
"[Starts tomorrow at] LT" : "[Starter i morgen kl.] LT",
"[Starts on] LL [at] LT" : "[Starter på] LL [kl.] LT",
"[Started yesterday at] LT" : "[Begyndte i går kl.] LT",
"[Started on] LL [at] LT" : "[Begyndte den] LL [kl.] LT"
"[Started on] LL [at] LT" : "[Begyndte den] LL [kl.] LT",
"Repeat" : "Gentag",
"Repeat every" : "Gentag hver",
"never" : "aldrig",
"on date" : "på dato",
"after" : "efter",
"End repeat" : "Afslut gentagelse",
"first" : "første",
"second" : "sekund",
"third" : "tredje",
"fourth" : "fjerde",
"fifth" : "femte",
"last" : "sidste",
"second to last" : "næstsidste",
"By day of the month" : "Efter dag i måneden",
"On the" : "Den",
"On specific day" : "På specifik dag",
"weekday" : "hverdag",
"weekend day" : "weekenddag",
"_time_::_times_" : ["gang","gange"],
"_month_::_months_" : ["måned","måneder"],
"_year_::_years_" : ["år","år"]
},
"nplurals=2; plural=(n != 1);");
Expand Down
71 changes: 70 additions & 1 deletion l10n/de.js
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,75 @@ OC.L10N.register(
"{time} before the task starts" : "{time} vor Beginn der Aufgabe",
"{time} before the task is due" : "{time} bevor die Aufgabe fällig ist",
"{time} after the task starts" : "{time} nach Beginn der Aufgabe",
"{time} after the task is due" : "{time} nachdem die Aufgabe fällig ist"
"{time} after the task is due" : "{time} nachdem die Aufgabe fällig ist",
"Repeat" : "Wiederholen",
"Repeat task" : "Aufgabe wiederholen",
"Save" : "Speichern",
"Repeat every" : "Wiederhole jeden",
"Interval" : "Intervall",
"End" : "Ende",
"Never" : "Niemals",
"On date" : "Am Datum",
"After" : "Nach",
"Occurrences" : "Wiederholungen",
"Until" : "Bis",
"Remove recurrence" : "Wiederholung entfernen",
"never" : "Niemals",
"_month_::_months_" : ["Monat","Monate"],
"_year_::_years_" : ["Jahr","Jahre"],
"_time_::_times_" : ["Mal","Mal"],
"End repeat" : "Wiederholung beenden",
"Select to end repeat" : "Auswählen, um Wiederholung zu beenden",
"on date" : "am Datum",
"after" : "Nach",
"on" : "am",
"By day of the month" : "Nach Tag des Monats",
"On the" : "Am",
"On specific day" : "An einem bestimmten Tag",
"first" : "ersten",
"second" : "zweiten",
"third" : "dritten",
"fourth" : "vierten",
"fifth" : "fünften",
"last" : "letzten",
"second to last" : "vorletzten",
"Monday" : "Montag",
"Tuesday" : "Dienstag",
"Wednesday" : "Mittwoch",
"Thursday" : "Donnerstag",
"Friday" : "Freitag",
"Saturday" : "Samstag",
"Sunday" : "Sonntag",
"day" : "Tag",
"weekday" : "Wochentag",
"weekend day" : "Wochenendtag",
"Does not repeat" : "Wiederholt sich nicht",
"Daily" : "Täglich",
"Weekly" : "Wöchentlich",
"Monthly" : "Monatlich",
"Yearly" : "Jährlich",
"Every {interval} {frequency}" : "Alle {interval} {frequency}",
"on {days}" : "am {days}",
"on day {days}" : "am Tag {days}",
"on the {ordinal} {dayNames}" : "am {ordinal} {dayNames}",
"in {months}" : "im {months}",
"{count} time" : "{count} Mal",
"{count} times" : "{count} Mal",
"until {date}" : "bis {date}",
"January" : "Januar",
"February" : "Februar",
"March" : "März",
"April" : "April",
"May" : "Mai",
"June" : "Juni",
"July" : "Juli",
"August" : "August",
"September" : "September",
"October" : "Oktober",
"November" : "November",
"December" : "Dezember",
"The recurrence definition of this task is not fully supported by Nextcloud. If you edit the recurrence-options, certain recurrences may be lost." : "Die Wiederholungsdefinition dieser Aufgabe wird von Nextcloud nicht vollständig unterstützt. Wenn du die Wiederholungsoptionen bearbeitest, können bestimmte Wiederholungen verloren gehen.",
"This task is the recurrence-exception of a recurrence-set. You cannot add a recurrence-rule to it." : "Diese Aufgabe ist eine Wiederholungsausnahme einer Wiederholungsserie. Du kannst keine Wiederholungsregel hinzufügen.",
"Error processing recurring task" : "Fehler beim Verarbeiten der wiederkehrenden Aufgabe"
},
"nplurals=2; plural=(n != 1);");
Loading