From a4815fc672b57fa76a3abb1f62620dc9d54637a5 Mon Sep 17 00:00:00 2001 From: luxick Date: Wed, 11 Mar 2026 12:18:02 +0100 Subject: [PATCH] Calendar Sync V2 --- README.md | 6 -- admin/main.php | 31 +++++++ src/CalDavClient.php | 30 +------ src/CalendarEvent.php | 2 +- src/CalendarService.php | 177 +++++++++++++++++----------------------- src/IcsWriter.php | 152 ++-------------------------------- 6 files changed, 114 insertions(+), 284 deletions(-) diff --git a/README.md b/README.md index 9f3d11a..c4896a4 100644 --- a/README.md +++ b/README.md @@ -359,8 +359,6 @@ Completed tasks can be reopened with a "Reopen" button. Write-back rules: - `VEVENT` components: `STATUS:TODO` for open, `STATUS:COMPLETED` for completed. -- `VTODO` components: Uses native completion semantics (`STATUS:COMPLETED`, - `COMPLETED` timestamp, `PERCENT-COMPLETE:100`). - Recurring events: Completion writes an occurrence override/exception to preserve per-occurrence state rather than modifying the master event. @@ -412,10 +410,6 @@ a cron job that triggers the sync via the DokuWiki AJAX endpoint. still has stale data. The completion write-back updates the remote immediately to mitigate this. -- **VTODO recurrence**: sabre/vobject's recurrence expansion has limited support - for `VTODO` components. Recurring `VTODO` items may not expand as expected. - Non-recurring `VTODO` items work correctly. - ### 1) List files by glob pattern The `{{directory>...}}` syntax (or `{{files>...}}` for backwards compatibility) can handle both directory listings and glob patterns. When a glob pattern is used, it renders as a table: diff --git a/admin/main.php b/admin/main.php index 61388d6..695b88c 100644 --- a/admin/main.php +++ b/admin/main.php @@ -300,6 +300,37 @@ class admin_plugin_luxtools_main extends DokuWiki_Admin_Plugin echo '
'; } + // CalDAV Sync button (outside the save form, separate action) + $ajaxUrl = DOKU_BASE . 'lib/exe/ajax.php'; + $sectok = getSecurityToken(); + echo '
'; + echo ''; + echo ''; + echo '
'; + echo ''; + // pagelink_search_depth echo '