Commit Graph

218 Commits

Author SHA1 Message Date
Camille Moussu f0e63e07a6 [#555] untoggling calendars doesnt collapse anything anymore (#594) 2026-03-03 16:27:23 +01:00
Camille Moussu 3bd43c9935 [#572] removed dot for events (#590) 2026-03-02 11:15:46 +01:00
Camille Moussu 72a9d0ee05 [#527] calendar delegation CRUD (#581)
* [#527] added panel to grant right for calendar delegation

* [#527] added rights management to access modal

* [#527] conditionnal rendering of access granting based on rights

* [#527] saves on close except cancel

* [#527] added tests
2026-03-02 09:34:45 +01:00
Camille Moussu 62f54c3707 Bugfix delegation (#585)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-26 18:15:55 +01:00
Camille Moussu 82ec10cfad 460 import event without organiser (#579)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-25 17:15:25 +01:00
Camille Moussu 6874b9ee70 [#565] added move for delegated events, deletes old and put new (#578)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-25 15:51:13 +01:00
Camille Moussu 67898fa218 [fix] removed added calendars old naming convention (#567)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-25 15:50:43 +01:00
Camille Moussu 5989b3661e [#562] added DAV_BASE_URL to env (#570)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-23 11:29:02 +01:00
Camille Moussu f40165d2e2 559 delegation create event in another user calendar (#561)
* [#559] added delegated calendars in user selector
* [#559] selector for calendar display delegated and personal separatly

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-20 23:14:48 +01:00
Camille Moussu cfb2b59584 [DELEGATION] Edit attendance and events, delete event for someone (#553)
* [#523] added way to manage attendance for delegated calendars

* [DELEGATION] #523 & #524 changed eventURL calculation for delegated events to have the rigth one

* [#524] added drag and drop authorisation to delegated event

* [#524] added tests

* [#524] support for the permission access

* [#524] no edit when delegated event is not public
2026-02-19 09:50:29 +01:00
Camille Moussu 5d9eb8e19d [#522] added push for calendars updates (#541) 2026-02-17 17:52:23 +01:00
Camille Moussu c7843f8d69 [#465] changed render to show delete option when event is Own (#543)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-17 09:47:57 +01:00
Camille Moussu f8e159a618 [#533] updated localisation of field (#536)
* [#533] updated localisation of field + removed empty display for repetition

* [#533 & #545] fixed bug date in repetition field & set limit to repetition end to not be before start date
2026-02-16 11:11:59 +01:00
lenhanphung 53f763d6eb UI/update recurring event section (#544)
* Update global recurring event style

* #538 update date selector consistance

* update test cases
2026-02-13 09:34:33 +01:00
lenhanphung 1e312c1c8b Fix/time picker glitch (#542)
* update twake-mui

* #537 fix time picker glitch
2026-02-12 11:03:55 +01:00
Camille Moussu fad1dfe4c5 [#352] update exceptions on all update without reseting them (#510)
* [#352] update exceptions on all update without reseting them

* [#352] added tests
2026-02-11 11:20:10 +01:00
Camille Moussu d6e464afad [#421] added eslint check to CI (#534)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-10 10:41:37 +01:00
Camille Moussu 8a6ec8fc39 474 websocket add a snack bar to notify the user on websocket status changes (#483)
* [#474] added snackbar for websocket status

* [#474 & #447] added ping to complete browser online/offline status

* [#447] ping timeout as an env var
2026-02-09 19:14:13 +01:00
lenhanphung fe8e19686d Merge pull request #504 from linagora/UI/update-header-bar
UI/update header bar
2026-02-05 19:18:30 +07:00
Camille Moussu 9cf8d7f3ab [#494] switched UTC offset and timeZone name in timezone selector (#513) 2026-02-05 11:30:01 +01:00
lenhanphung 41c839f38b update header bar 2026-02-05 17:20:00 +07:00
Camille Moussu b142eb4e03 [#487] fixed recurring event input glitch (#505) 2026-02-05 11:10:20 +01:00
lenhanphung ec258f4d42 restyle current date state 2026-02-05 17:08:51 +07:00
lenhanphung 201f9c722b Use @linagora/twake-mui 1.1.6 from registry 2026-02-05 17:08:51 +07:00
Camille Moussu 2d8196fc8e [#490 & #489] Removed duplicated api call to get event data (#492)
* [#490 & #489] Removed duplicated api call to get event data

* [#490] removed arbitrary timezone fallback to UTC/ETC & updated exdate formating

* [#490] updated test and fixed eventdiff utils to properly handle dates
2026-02-04 15:01:13 +01:00
lenhanphung 5ae838c425 UI/update sidebar (#480)
* update minicalendar

* update left sidebar

* chore: update twake-mui to version 1.1.4

- Update @linagora/twake-mui from local file to npm package 1.1.4
- Add margin to TempCalendarsInput section in sidebar
- Remove margin from PeopleSearch component (moved to parent)

* Changed wording on my calendars and event creation button

---------

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-02 10:02:23 +01:00
Camille Moussu 0a8051870a [#469] fixed mail to attendees string (#484) 2026-01-30 15:51:04 +01:00
Camille Moussu 83fae6f1c2 [#448] added reconnection logic to websocket (#472)
* [#448] added reconnection logic to websocket

* [#448] added test

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-27 14:54:03 +01:00
Camille Moussu d966a9eb2f [FIX] fixed broken test after rebase (#485)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-01-27 14:38:26 +01:00
Camille Moussu dafac94aec [#449] added debounce for websocket updates (#476)
* [#449] added debounce for websocket updates

* [#449] changed behavior to have disableable debounce + changed debounced messages data storage to be handled by websocket Gate
2026-01-26 11:15:37 +01:00
Camille Moussu 1fc85e141e [#475] fixed calendars selection persistence (#479) 2026-01-26 11:14:42 +01:00
lenhanphung 7058f1c2d6 Feat/update login flow reload page (#467)
* update spacing event modal

* update spacing create calendar modal

* fix evenchip description color

* using variant instead of sx

* update login flow

* fix: add useEffect import back to Calendar.tsx
2026-01-26 11:13:26 +01:00
Camille Moussu 00742119be [#446] removed direct state update (#468) 2026-01-21 15:17:49 +01:00
Camille Moussu 23d50f250d Refactor imports (#470) 2026-01-20 17:33:30 +01:00
lenhanphung aeb8670895 UI/update global UI (#459)
* Update loading screen to use Lottie animation

- Replace simple logo with Lottie animation from loadercalendar.lottie
- Center animation on screen with full viewport coverage
- Set animation width to 175px
- Install @lottiefiles/dotlottie-react package

* update spacing event modal

* add twake workplace logo to loading screen

* update spacing create calendar modal

* fix evenchip description color

* using variant instead of sx
2026-01-20 09:14:03 +01:00
Camille Moussu 00c3c0d6f0 444 use websocket to trigger reloads (#458)
* [#444] added refresh on sync token calendar update

* [#444] added refresh on register and tests

* [#444] extracted logic for useEffects and updates

* [#444] refactored code structure to use absolute paths
2026-01-19 09:09:23 +01:00
Camille Moussu 2fa8a7f16a [#451] added websocket connexion (#453)
* [#451] added websocket connexion

* [#451] added tests

* [#451] add missing cleanup for web socket causing memory leaks
2026-01-14 15:17:29 +01:00
lenhanphung 8b3afc1737 - Replace avatar image from API with gradient avatar from twake-mui (#457)
- Display 2-letter initials (e.g., "JD" for "John Doe") instead of single letter
- Add getInitials helper function in avatarUtils for reusability
- Update Avatar in PeopleSearch, CalendarSearch, and Menubar components
- Remove avatarUrl prop usage across all Avatar components
2026-01-13 14:44:42 +01:00
Camille Moussu 478a0e0eb0 405 back reload token with synctokens (#436)
* [#405] added syncToken in calendar params and fetch with sync token

* [#405] changed reload to work with sync-token

* [#405] fixup promise handling, added calendar adding and removing hanlding with refresh

* [#405]  fixed event expansion calls

* [#405 & refactor] added helperfunction to get base event uid + refactored synctoken updates management

* [#405] added pMap lib to process event expansion

* [#405] added flag for no synctoken / new synctoken
2026-01-13 11:06:34 +01:00
lenhanphung 994ea1c45e fix url endcoding 2026-01-08 13:31:13 +07:00
lenhanphung aa9920dbbb roll back translate and add translate key 2026-01-08 11:42:10 +07:00
lenhanphung 24f8895baa Update avatar component 2026-01-08 11:41:38 +07:00
lenhanphung 462ad6d250 chore: update twake-mui dependency and use radius.lg for create event button 2026-01-08 11:41:37 +07:00
lenhanphung 5f0479e34a implement twake mui 2026-01-08 11:40:40 +07:00
Camille Moussu 9ff75056c7 [#397 bis] added participation management on event from thunderbird (#432)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-01-07 11:45:17 +01:00
Camille Moussu 90d6058b0f [#425] Event title modification of all day event alter event dates (#431)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-12-18 09:09:02 +01:00
lenhanphung a935d2bc43 372 drag and drop multiple days event to use normal mode instead of extended mode (#407)
- When dragging from allday slot: open normal mode with allday checked, show start date and end date
- When dragging from week/month view grid: open normal mode with allday checked, show 4 fields (start date, start time, end date, end time)
- Update DateTimeFields logic to support displaying time fields when allday=true and hasEndDateChanged=true for multiple days events

Add setHasEndDateChanged(false) to resetAllStateToDefault function to prevent stale state when:
- User creates multi-day event from grid (sets hasEndDateChanged = true)
- Closes the modal
- Opens modal again for a single-day event

This ensures hasEndDateChanged is properly reset to false when modal is closed or reset.

Fix drag and drop logic: keep allday=false when dragging from week view

- Remove setAllDay(true) when dragging multiple days from week view grid
- Keep allday=false to show time fields for week view drag scenarios
- Add comprehensive test cases for drag and drop scenarios
- Test cases cover allday slot and week view drag scenarios
- Prevent regressions with test coverage for display logic
2025-12-17 10:28:11 +01:00
Camille Moussu c81153a119 [#523] changed search bar to work like an autocomplete (#406)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-12-15 22:10:17 +01:00
lenhanphung 627e9bf44b feat(DateTimeFields): implement free typing time input with dropdown
- Replace default TimePicker field with custom EditableTimeField
- Allow free typing with multiple formats (HH:mm, HHmm, H, etc.)
- Show dropdown on click while maintaining typing capability
- Center-align time input text
2025-12-15 15:33:07 +01:00
Lê Nhân Phụng 1347583e9a Update DateTimeFields: improve UI layout and adjust time change logic
- Add separator '-' between start time and end time in normal mode
- Fix layout logic: keep single row for allday events in normal mode
- Remove auto-adjustment of start time when end time changes
- Update test case to match new behavior
2025-12-15 15:33:07 +01:00