feat(calendar): add domain field and test-connection button to Exchange sources

- Prisma: domain String? added to CalendarSource model (db push applied)
- DTOs: domain in CreateCalendarSourceDto, UpdateCalendarSourceDto, new TestCalendarSourceConfigDto
- Service: domain in SOURCE_SAFE_SELECT, addSource, updateSource; new testConnectionFromConfig method
- Controller: POST /calendar/sources/test-config (before :id routes to avoid collision)
- ExchangeProvider: domain in all source interfaces; passed as 3rd arg to EWS WebCredentials
- Frontend: domain in CalendarSource/CreateSourcePayload/UpdateSourcePayload; testSourceConfig API fn
- Form: domain field (Exchange-only), "Test connection" button with idle/loading/success/error states
- i18n: de+en keys for formFieldDomain, formFieldDomainHint, formTestConnection, formTesting, formTestSuccess, formTestFailed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-01 13:15:13 +02:00
parent 2e0e7290ba
commit 42daa87e5e
12 changed files with 214 additions and 6 deletions
@@ -41,6 +41,10 @@ export class CreateCalendarSourceDto {
@IsIn(['ews', 'graph'])
exchangeMode?: string;
@IsOptional()
@IsString()
domain?: string;
@IsOptional()
@IsHexColor()
color?: string;