Release: LMW delta sync hardening, CTAG windowing, calendar matching guard

This commit is contained in:
Jürgen Mummert
2026-03-28 16:59:58 +01:00
parent c6f63a56a9
commit c0d3bf4c82
15 changed files with 775 additions and 171 deletions
+26 -1
View File
@@ -19,7 +19,7 @@ foreach (array_keys($GLOBALS['TL_DCA']['tl_calendar']['palettes'] ?? []) as $pal
;
}
$GLOBALS['TL_DCA']['tl_calendar']['subpalettes']['caldavSyncEnabled'] = 'caldavUrl,caldavUsername,caldavPassword,caldavAuthorId,caldavTimezone,caldavCalendarHrefs';
$GLOBALS['TL_DCA']['tl_calendar']['subpalettes']['caldavSyncEnabled'] = 'caldavUrl,caldavUsername,caldavPassword,caldavAuthorId,caldavTimezone,caldavCalendarHrefs,caldavPastSyncRange,caldavFutureSyncRange,caldavSyncCtags';
$GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavSyncEnabled'] = [
'exclude' => true,
@@ -74,3 +74,28 @@ $GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavCalendarHrefs'] = [
'sql' => 'blob NULL',
];
$GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavPastSyncRange'] = [
'exclude' => true,
'inputType' => 'select',
'options' => ['none', 'all', '1y', '2y'],
'reference' => &$GLOBALS['TL_LANG']['tl_calendar']['caldavPastSyncRangeOptions'],
'eval' => ['mandatory' => true, 'includeBlankOption' => false, 'tl_class' => 'w50'],
'sql' => "varchar(8) NOT NULL default '1y'",
];
$GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavFutureSyncRange'] = [
'exclude' => true,
'inputType' => 'select',
'options' => ['all', '1y', '2y'],
'reference' => &$GLOBALS['TL_LANG']['tl_calendar']['caldavFutureSyncRangeOptions'],
'eval' => ['mandatory' => true, 'includeBlankOption' => false, 'tl_class' => 'w50'],
'sql' => "varchar(8) NOT NULL default '2y'",
];
$GLOBALS['TL_DCA']['tl_calendar']['fields']['caldavSyncCtags'] = [
'exclude' => true,
'inputType' => 'textarea',
'eval' => ['readonly' => true, 'disabled' => true, 'doNotCopy' => true, 'tl_class' => 'clr long'],
'sql' => 'blob NULL',
];
+8 -8
View File
@@ -26,55 +26,55 @@ foreach (array_keys($GLOBALS['TL_DCA']['tl_calendar_events']['palettes'] ?? [])
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['caldavCalendarHref'] = [
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 2048, 'readonly' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'eval' => ['maxlength' => 2048, 'readonly' => true, 'disabled' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'sql' => "varchar(2048) NOT NULL default ''",
];
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['caldavUid'] = [
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 255, 'readonly' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'eval' => ['maxlength' => 255, 'readonly' => true, 'disabled' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'sql' => "varchar(255) NOT NULL default ''",
];
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['caldavHref'] = [
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 2048, 'readonly' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'eval' => ['maxlength' => 2048, 'readonly' => true, 'disabled' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'sql' => "varchar(2048) NOT NULL default ''",
];
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['caldavEtag'] = [
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 255, 'readonly' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'eval' => ['maxlength' => 255, 'readonly' => true, 'disabled' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'sql' => "varchar(255) NOT NULL default ''",
];
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['caldavSyncHash'] = [
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 64, 'readonly' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'eval' => ['maxlength' => 64, 'readonly' => true, 'disabled' => true, 'doNotCopy' => true, 'tl_class' => 'clr'],
'sql' => "varchar(64) NOT NULL default ''",
];
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['caldavLastSync'] = [
'exclude' => true,
'inputType' => 'text',
'eval' => ['readonly' => true, 'doNotCopy' => true, 'tl_class' => 'w50'],
'eval' => ['readonly' => true, 'disabled' => true, 'doNotCopy' => true, 'tl_class' => 'w50'],
'sql' => "int(10) unsigned NOT NULL default 0",
];
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['caldavOrigin'] = [
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 16, 'readonly' => true, 'doNotCopy' => true, 'tl_class' => 'w50'],
'eval' => ['maxlength' => 16, 'readonly' => true, 'disabled' => true, 'doNotCopy' => true, 'tl_class' => 'w50'],
'sql' => "varchar(16) NOT NULL default ''",
];
$GLOBALS['TL_DCA']['tl_calendar_events']['fields']['caldavSyncState'] = [
'exclude' => true,
'inputType' => 'text',
'eval' => ['maxlength' => 32, 'readonly' => true, 'doNotCopy' => true, 'tl_class' => 'w50'],
'eval' => ['maxlength' => 32, 'readonly' => true, 'disabled' => true, 'doNotCopy' => true, 'tl_class' => 'w50'],
'sql' => "varchar(32) NOT NULL default ''",
];
+14
View File
@@ -10,3 +10,17 @@ $GLOBALS['TL_LANG']['tl_calendar']['caldavPassword'] = ['CalDAV-Passwort', 'Pass
$GLOBALS['TL_LANG']['tl_calendar']['caldavAuthorId'] = ['CalDAV-Author', 'Pflichtauswahl des Contao-Benutzers fuer neu importierte CalDAV-Events.'];
$GLOBALS['TL_LANG']['tl_calendar']['caldavTimezone'] = ['CalDAV-Zeitzone', 'IANA-Zeitzone wie Europe/Berlin. Optional, faellt auf UTC zurueck.'];
$GLOBALS['TL_LANG']['tl_calendar']['caldavCalendarHrefs'] = ['Remote-Kalender', 'Vom Server geladene CalDAV-Kalender. Mehrfachauswahl ist moeglich.'];
$GLOBALS['TL_LANG']['tl_calendar']['caldavPastSyncRange'] = ['Vergangene Events synchronisieren', 'Legt fest, wie weit in die Vergangenheit Events beim Sync beruecksichtigt werden.'];
$GLOBALS['TL_LANG']['tl_calendar']['caldavPastSyncRangeOptions'] = [
'none' => 'Keine',
'all' => 'Alle',
'1y' => 'Bis 1 Jahr zurueck',
'2y' => 'Bis 2 Jahre zurueck',
];
$GLOBALS['TL_LANG']['tl_calendar']['caldavFutureSyncRange'] = ['Zukuenftige Events synchronisieren', 'Legt fest, wie weit in die Zukunft Events beim Sync beruecksichtigt werden.'];
$GLOBALS['TL_LANG']['tl_calendar']['caldavFutureSyncRangeOptions'] = [
'all' => 'Alle',
'1y' => 'Bis 1 Jahr voraus',
'2y' => 'Bis 2 Jahre voraus',
];
$GLOBALS['TL_LANG']['tl_calendar']['caldavSyncCtags'] = ['Sync-CTAG Cache', 'Technischer Speicher fuer zuletzt gelesene Collection Tags pro Remote-Kalender.'];