-
Notifications
You must be signed in to change notification settings - Fork 17
feat: add calendar color prop #24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
fc7900b
d578421
7595a4b
1b3cb5c
113fbdd
92b72c2
71c1276
ba406b3
e2b7398
b62978f
0ea7809
5977824
60c6a59
aba1d99
cba31a4
f4951ea
769f4e5
88f47e1
cd63fc0
d49988b
6c097eb
51eebf2
3350b20
7aac9f4
0b8c77e
d4e88f7
e08f28b
3e68132
93b20f7
c3f711c
bbd7e65
a3519ab
802cc19
195d058
3877621
1b858b1
a4f630b
cea5099
af0c299
351864a
3e30d64
257680a
c9221f9
3c0be37
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # Changelog | ||
|
|
||
| ## Unreleased (2025-01-13) | ||
|
|
||
| ### Added | ||
| - `canEdit()` convenience method to GetCalendarResponse for checking calendar write permissions (commit f1c2c81) | ||
| - Returns true for writable calendars or when privilege-set not provided by server | ||
| - Eliminates need for null-checking `isWritable()` in application code | ||
| - `getCredentials()` method to CalDavClient for accessing stored credentials (commit 126d2fb) | ||
| - Returns array with 'user' and 'password' keys | ||
| - Removes need for reflection to access private properties | ||
| - `parseVAlarms()` static method to GetCalendarResponse with full RFC 5545 support (commit fa44101) | ||
| - Supports duration-based triggers: "-PT15M", "PT0S", "-P1D", "-PT1H30M" | ||
| - Supports absolute DATE-TIME triggers: "19760401T005545Z" | ||
| - Handles mixed time units (weeks, days, hours, minutes, seconds) | ||
| - Preserves X-APPLE-DEFAULT-ALARM property for default alarm detection | ||
| - `expandWithRRulePreservation()` static method to GetCalendarResponse (commit 8022062) | ||
| - Preserves RRULE on expanded recurring event instances | ||
| - Attaches RRULE as X-MASTER-RRULE property for frontend display | ||
| - Eliminates need to manually capture/restore RRULE during expansion | ||
| - `createEventFromICS()` and `updateEventFromICS()` methods to CalDavClient (commit d66c0c7) | ||
| - Support for raw iCalendar content in PUT requests | ||
| - Enables proper all-day event creation and custom property preservation | ||
| - Returns EventCreatedResponse/EventUpdatedResponse with ETag handling | ||
| - Comprehensive test coverage (commit 711ec62) | ||
| - Verified response methods (isSuccessFull, getCode) exist | ||
| - Tests for all new functionality | ||
|
|
||
| ### Improved | ||
| - `getCurrentUserPrivileges()` and `isWritable()` methods now in GetCalendarResponse | ||
| - All-day event creation/update now supported via library methods | ||
| - VALARM parsing supports all RFC 5545 duration formats and absolute timestamps | ||
|
|
||
| ### Migration Notes | ||
| For applications migrating from workarounds to native fork functionality: | ||
|
|
||
| 1. **Privilege Checking**: Replace null-checking logic with simple `$response->canEdit()` call | ||
| 2. **Credentials Access**: Replace reflection code with `$client->getCredentials()` | ||
| 3. **VALARM Parsing**: Replace manual parsing with `GetCalendarResponse::parseVAlarms($vevent)` | ||
| 4. **RRULE Preservation**: Replace manual RRULE capture/restore with `GetCalendarResponse::expandWithRRulePreservation($vcalendar, $start, $end)` | ||
| 5. **Event Creation**: Replace direct HTTP PUT/Guzzle calls with `$client->createEventFromICS()` and `$client->updateEventFromICS()` | ||
|
|
||
| All changes are backward compatible with existing CalDavClient API usage. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,10 +17,11 @@ | |
| "guzzlehttp/guzzle": "^6.3", | ||
| "sabre/xml": "1.5.0", | ||
| "sabre/uri": "1.2.0", | ||
| "eluceo/ical": "^0.11.3" | ||
| "eluceo/ical": "^0.15.0" | ||
| }, | ||
| "require-dev": { | ||
| "phpunit/phpunit": "^5.7" | ||
| "phpunit/phpunit": "^9.5", | ||
| "sabre/vobject": "^4.2" | ||
|
Comment on lines
+20
to
+24
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🌐 Web query:
💡 Result: eluceo/ical ^0.15: PHP 7.0 phpunit/phpunit ^9.5: PHP 7.3 sabre/vobject ^4.2: PHP 7.1 Project-level "require": {"php": "^7.3"} satisfies all three, as it meets or exceeds each minimum (7.3 >= 7.3, 7.3 >= 7.1, 7.3 >= 7.0). A looser constraint like "^7.0 || ^8.0" would also work but ^7.3 is the tightest common minimum. Citations:
Add an explicit PHP constraint to the The packages being updated have specific PHP requirements: Add 🤖 Prompt for AI Agents |
||
| }, | ||
| "autoload": { | ||
| "psr-4": { | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep the unreleased bucket undated.
Unreleased (2025-01-13)reads like a shipped release. Leave it as plainUnreleaseduntil you tag/version the release, then replace it with the actual version heading.🤖 Prompt for AI Agents