mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
* feat(vacay): read-only calendar shares on the server (#444, #667) * feat(vacay): shared calendars card and ring overlay on desktop * feat(vacay): share sheet and calendar rings on mobile * test(vacay): cover the calendar share flows * docs(vacay): document read-only calendar sharing
This commit is contained in:
@@ -18,7 +18,7 @@ The following addons are registered in the system (defined in `server/src/db/see
|
||||
| `packing` | trip | **Lists** — packing lists and to-do tasks for your trips. See [Packing-Lists](Packing-Lists). |
|
||||
| `budget` | trip | **Costs** — track and split trip expenses. See [Budget-Tracking](Budget-Tracking). |
|
||||
| `documents` | trip | Document and file attachments for trips — store itineraries, visa copies, and other files. See [Documents-and-Files](Documents-and-Files). |
|
||||
| `vacay` | global | Personal vacation day planner with a year calendar, holiday packs, and collaborator fusion. See [Vacay](Vacay). |
|
||||
| `vacay` | global | Personal vacation day planner with a year calendar, holiday packs, collaborator fusion, and read-only calendar sharing. See [Vacay](Vacay). |
|
||||
| `atlas` | global | Interactive world map showing countries and regions you have visited, plus a bucket list. See [Atlas](Atlas). |
|
||||
| `collab` | trip | Notes, polls, and live chat for trip collaboration. See [Real-Time-Collaboration](Real-Time-Collaboration). |
|
||||
| `journey` | global | Trip tracking and travel journal — check-ins, photos, and daily stories. See [Journey-Journal](Journey-Journal). |
|
||||
|
||||
@@ -107,6 +107,10 @@ Requires `vacay:read` or `vacay:write` scope.
|
||||
| `delete_holiday_calendar` | Remove a holiday calendar from the vacation plan. |
|
||||
| `list_holiday_countries` | List countries available for public holiday calendars. |
|
||||
| `list_holidays` | List public holidays for a country and year. |
|
||||
| `list_vacay_shares` | List read-only calendar shares — who you share your calendar with, and which calendars are shared with you. |
|
||||
| `share_vacay_calendar` | Share the current user's vacation calendar with another user (view only, no merge). |
|
||||
| `unshare_vacay_calendar` | Remove a read-only calendar share — revoke one you shared, or remove a calendar shared with you. |
|
||||
| `get_shared_vacay_calendars` | Get the read-only calendars shared with the current user for a year (entries and company holidays per sharer). |
|
||||
|
||||
### Journey _(Journey addon required)_
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ The following events are configurable in user settings:
|
||||
| `booking_change` | A booking was added, updated, or removed in a trip you're part of |
|
||||
| `trip_reminder` | Reminder before a trip starts |
|
||||
| `vacay_invite` | You were invited to fuse vacation plans |
|
||||
| `vacay_share` | Someone shared their vacation calendar with you (view only) |
|
||||
| `photos_shared` | Photos were shared with a trip |
|
||||
| `collab_message` | A new message in a collaborative trip |
|
||||
| `packing_tagged` | You were assigned to a packing category in a trip |
|
||||
|
||||
+13
-1
@@ -50,9 +50,21 @@ To invite someone, click the **+** icon in the **Persons** panel in the sidebar,
|
||||
|
||||
To undo a fusion, open Settings and use the **Dissolve** action. Each user's logged entries return to their own separate plan.
|
||||
|
||||
## Sharing your calendar (view only)
|
||||
|
||||
Fusion merges two plans into one — everyone can edit everything. If you only want someone to *see* when you are off (different employers, different company holidays, separate allowances), share your calendar instead.
|
||||
|
||||
Sharing is one-directional and read-only:
|
||||
|
||||
- Click the share icon in the **Shared Calendars** panel in the sidebar, pick a user, and share. No acceptance step is needed — the recipient gets a notification and can remove the calendar from their list at any time.
|
||||
- Calendars shared with you appear in the same panel. Each one overlays the grid as a coloured **ring** around the sharer's days off (vacation days, half days and their plan's company holidays), clearly distinct from the filled cells of your own plan. Hover a ringed day to see who is off and how much.
|
||||
- The eye toggle hides or shows a shared calendar without removing the share; **Stop sharing** revokes a calendar you shared out.
|
||||
|
||||
Shared calendars never grant edit rights, keep both users' settings and allowances separate, and work independently of fusion — you can be fused with one person and share with others at the same time.
|
||||
|
||||
## Live sync
|
||||
|
||||
Changes — logged days, settings updates, fusions, invites — sync in real time to all fused collaborators via WebSocket events (`vacay:update`, `vacay:settings`, `vacay:invite`, `vacay:accepted`, `vacay:declined`, `vacay:cancelled`, `vacay:dissolved`). You do not need to refresh the page.
|
||||
Changes — logged days, settings updates, fusions, invites — sync in real time to all fused collaborators via WebSocket events (`vacay:update`, `vacay:settings`, `vacay:invite`, `vacay:accepted`, `vacay:declined`, `vacay:cancelled`, `vacay:dissolved`). Read-only shares push their own events (`vacay:share`, `vacay:share-removed`, `vacay:shared-update`), so shared overlays update live too. You do not need to refresh the page.
|
||||
|
||||
## See also
|
||||
|
||||
|
||||
Reference in New Issue
Block a user