mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-08 20:57:08 +08:00
feat: basic caldav support (#14372)
fix #13531 #### PR Dependency Tree * **PR #14372** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * CalDAV calendar integration: link and sync CalDAV-compatible calendars (discovery, listing, event sync). * New UI flow and dialog to link CalDAV accounts with provider selection, credentials, and display name. * **API / Config** * Server exposes CalDAV provider presets in config and new GraphQL mutation to link CalDAV accounts. * New calendar config section for CalDAV with validation and defaults. * **Tests** * Comprehensive CalDAV integration test suite added. * **Chores** * Removed analytics tokens from build configuration and reduced Cloud E2E test shards. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -1,27 +1,27 @@
|
||||
{
|
||||
"ar": 98,
|
||||
"ca": 99,
|
||||
"ar": 97,
|
||||
"ca": 98,
|
||||
"da": 4,
|
||||
"de": 99,
|
||||
"el-GR": 98,
|
||||
"de": 98,
|
||||
"el-GR": 97,
|
||||
"en": 100,
|
||||
"es-AR": 98,
|
||||
"es-CL": 99,
|
||||
"es": 98,
|
||||
"fa": 98,
|
||||
"fr": 99,
|
||||
"es-AR": 97,
|
||||
"es-CL": 98,
|
||||
"es": 97,
|
||||
"fa": 97,
|
||||
"fr": 98,
|
||||
"hi": 2,
|
||||
"it-IT": 99,
|
||||
"it-IT": 98,
|
||||
"it": 1,
|
||||
"ja": 98,
|
||||
"ko": 99,
|
||||
"ja": 97,
|
||||
"ko": 98,
|
||||
"nb-NO": 48,
|
||||
"pl": 100,
|
||||
"pt-BR": 98,
|
||||
"ru": 99,
|
||||
"sv-SE": 98,
|
||||
"uk": 98,
|
||||
"pl": 98,
|
||||
"pt-BR": 97,
|
||||
"ru": 98,
|
||||
"sv-SE": 97,
|
||||
"uk": 97,
|
||||
"ur": 2,
|
||||
"zh-Hans": 100,
|
||||
"zh-Hant": 98
|
||||
"zh-Hans": 99,
|
||||
"zh-Hant": 97
|
||||
}
|
||||
|
||||
@@ -8281,6 +8281,114 @@ export function useAFFiNEI18N(): {
|
||||
* `All day`
|
||||
*/
|
||||
["com.affine.integration.calendar.all-day"](): string;
|
||||
/**
|
||||
* `Failed to load calendar accounts`
|
||||
*/
|
||||
["com.affine.integration.calendar.account.load-error"](): string;
|
||||
/**
|
||||
* `Failed to load calendar providers`
|
||||
*/
|
||||
["com.affine.integration.calendar.provider.load-error"](): string;
|
||||
/**
|
||||
* `Failed to start calendar authorization`
|
||||
*/
|
||||
["com.affine.integration.calendar.auth.start-error"](): string;
|
||||
/**
|
||||
* `Failed to unlink calendar account`
|
||||
*/
|
||||
["com.affine.integration.calendar.account.unlink-error"](): string;
|
||||
/**
|
||||
* `Unlink`
|
||||
*/
|
||||
["com.affine.integration.calendar.account.unlink"](): string;
|
||||
/**
|
||||
* `Link`
|
||||
*/
|
||||
["com.affine.integration.calendar.account.link"](): string;
|
||||
/**
|
||||
* `No calendar accounts linked yet.`
|
||||
*/
|
||||
["com.affine.integration.calendar.account.linked-empty"](): string;
|
||||
/**
|
||||
* `Authorization failed: {{error}}`
|
||||
*/
|
||||
["com.affine.integration.calendar.account.status.failed"](options: {
|
||||
readonly error: string;
|
||||
}): string;
|
||||
/**
|
||||
* `Authorization failed. Please reconnect your account.`
|
||||
*/
|
||||
["com.affine.integration.calendar.account.status.failed-reconnect"](): string;
|
||||
/**
|
||||
* `{{count}} calendar`
|
||||
*/
|
||||
["com.affine.integration.calendar.account.count"](options: {
|
||||
readonly count: string;
|
||||
}): string;
|
||||
/**
|
||||
* `Link CalDAV account`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.link.title"](): string;
|
||||
/**
|
||||
* `Failed to link CalDAV account`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.link.failed"](): string;
|
||||
/**
|
||||
* `Provider`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.provider"](): string;
|
||||
/**
|
||||
* `Select provider`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.provider.placeholder"](): string;
|
||||
/**
|
||||
* `Please select a provider.`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.provider.error"](): string;
|
||||
/**
|
||||
* `Username`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.username"](): string;
|
||||
/**
|
||||
* `email@example.com`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.username.placeholder"](): string;
|
||||
/**
|
||||
* `Username is required.`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.username.error"](): string;
|
||||
/**
|
||||
* `Password`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.password"](): string;
|
||||
/**
|
||||
* `Password or app-specific password`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.password.placeholder"](): string;
|
||||
/**
|
||||
* `Password is required.`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.password.error"](): string;
|
||||
/**
|
||||
* `Display name (optional)`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.displayName"](): string;
|
||||
/**
|
||||
* `My CalDAV`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.field.displayName.placeholder"](): string;
|
||||
/**
|
||||
* `App-specific password required.`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.hint.app-password"](): string;
|
||||
/**
|
||||
* `Learn more`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.hint.learn-more"](): string;
|
||||
/**
|
||||
* `Provider setup guide`
|
||||
*/
|
||||
["com.affine.integration.calendar.caldav.hint.guide"](): string;
|
||||
/**
|
||||
* `New doc`
|
||||
*/
|
||||
|
||||
@@ -2078,6 +2078,32 @@
|
||||
"com.affine.integration.calendar.new-url-label": "Calendar URL",
|
||||
"com.affine.integration.calendar.save-error": "An error occurred while saving the calendar settings",
|
||||
"com.affine.integration.calendar.all-day": "All day",
|
||||
"com.affine.integration.calendar.account.load-error": "Failed to load calendar accounts",
|
||||
"com.affine.integration.calendar.provider.load-error": "Failed to load calendar providers",
|
||||
"com.affine.integration.calendar.auth.start-error": "Failed to start calendar authorization",
|
||||
"com.affine.integration.calendar.account.unlink-error": "Failed to unlink calendar account",
|
||||
"com.affine.integration.calendar.account.unlink": "Unlink",
|
||||
"com.affine.integration.calendar.account.link": "Link",
|
||||
"com.affine.integration.calendar.account.linked-empty": "No calendar accounts linked yet.",
|
||||
"com.affine.integration.calendar.account.status.failed": "Authorization failed: {{error}}",
|
||||
"com.affine.integration.calendar.account.status.failed-reconnect": "Authorization failed. Please reconnect your account.",
|
||||
"com.affine.integration.calendar.account.count": "{{count}} calendar",
|
||||
"com.affine.integration.calendar.caldav.link.title": "Link CalDAV account",
|
||||
"com.affine.integration.calendar.caldav.link.failed": "Failed to link CalDAV account",
|
||||
"com.affine.integration.calendar.caldav.field.provider": "Provider",
|
||||
"com.affine.integration.calendar.caldav.field.provider.placeholder": "Select provider",
|
||||
"com.affine.integration.calendar.caldav.field.provider.error": "Please select a provider.",
|
||||
"com.affine.integration.calendar.caldav.field.username": "Username",
|
||||
"com.affine.integration.calendar.caldav.field.username.placeholder": "email@example.com",
|
||||
"com.affine.integration.calendar.caldav.field.username.error": "Username is required.",
|
||||
"com.affine.integration.calendar.caldav.field.password": "Password",
|
||||
"com.affine.integration.calendar.caldav.field.password.placeholder": "Password or app-specific password",
|
||||
"com.affine.integration.calendar.caldav.field.password.error": "Password is required.",
|
||||
"com.affine.integration.calendar.caldav.field.displayName": "Display name (optional)",
|
||||
"com.affine.integration.calendar.caldav.field.displayName.placeholder": "My CalDAV",
|
||||
"com.affine.integration.calendar.caldav.hint.app-password": "App-specific password required.",
|
||||
"com.affine.integration.calendar.caldav.hint.learn-more": "Learn more",
|
||||
"com.affine.integration.calendar.caldav.hint.guide": "Provider setup guide",
|
||||
"com.affine.integration.calendar.new-doc": "New doc",
|
||||
"com.affine.integration.calendar.show-events": "Show calendar events",
|
||||
"com.affine.integration.calendar.show-events-desc": "Enabling this setting allows you to connect your calendar events to your Journal in AFFiNE",
|
||||
|
||||
Reference in New Issue
Block a user