* [#420] passed a new param to people search to customize slotprops
* Added back function lost in rebase
---------
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
- 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
- Add small prop support to PeopleSearch component
- Pass small prop to PeopleSearch in AttendeeSearch
- Use small prop in EventFormFields Participants field
- Use small prop in TempCalendarsInput for left sidebar
- 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
- Add 150ms delay wait after time input change to ensure handler completes
- Fixes test case that was failing due to 0.1s delay in handleStartTimeChangeWithClose
- Remove label prop from all DatePicker and TimePicker components
- Add aria-label to inputProps for accessibility and testing
- Auto-close TimePicker dropdown when selecting an option
- Add 0.1s delay before calling time change handlers after closing dropdown
- Add test case to verify aria-label attributes
- Add translation key 'userDoesNotHavePublicCalendars' to all locale files (en, fr, vi, ru)
- Update ErrorSnackbar to support translation keys in error messages with params
- Update getTempCalendarsListAsync to throw error with translation key format instead of hardcoded message
- Error message now displays user-friendly translated text: '{User Name} does not have public calendars'
- Add logo click handler to navigate to current week view from any view (month, day, or week)
- Update MainTitle component to accept calendarRef and view change callbacks
- Implement handleLogoClick that changes view to week and navigates to current week
- Add comprehensive test cases for logo click behavior from all view types
Co-authored-by: Lê Nhân Phụng <lenhanphung@Phung-Mac-M4.local>
* [#337] added timezone loading from backend
* [#337] changed data structure to allow patching timezone while keeping other datetime params value
* [#337] fixed gap, event create modale sync with settings and added checkbox
* [#337] isBrowserDefaultTimezone is set to true when API return null timezone
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
* feat: #333 load language from backend configuration
* feat(settings): sync language with user configs api
* Update __test__/features/Settings/SettingsPage.test.tsx
Co-authored-by: Lê Nhân Phụng <lenhanphung@Phung-Mac-M4.local>
Co-authored-by: Benoit TELLIER <btellier@linagora.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
- added search in topbar
- added skeleton search results page
- added tests
- set personal calendars as default search in and allow to select personal and shared as a search in option
---------
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
* UI: #334 add config page language setting
* temporary remove logout button
* Unify fullscreen view class for dialog expanded and settings view
- Replace dialog-expanded and settings-view with single fullscreen-view class
- Update ResponsiveDialog to use fullscreen-view class
- Update CalendarLayout to use fullscreen-view class for settings view
- Consolidate CSS rules in Menubar.styl to use fullscreen-view
- Update test cases to use new class name
---------
Co-authored-by: Lê Nhân Phụng <lenhanphung@Phung-Mac-M4.local>
- Add temp storage utility (eventFormTempStorage.ts) to save/restore form data
- Implement error handling: close modal immediately, reopen on API failure with saved data
- Add event listeners in Calendar.tsx and EventDisplayPreview.tsx to reopen modals on error
- Fix calendar change logic in EventUpdateModal: use oldCalendar for update before move
- Update all test mocks to support .unwrap() method for Redux thunks
- Add sessionStorage.clear() in test beforeEach hooks
- Fix test timing issues with act() wrappers and increased timeouts
- Mock putEventAsync in TempUpdate test to ensure updateTempCalendar is called
- Fix update modal not reopening when API fails for recurring events (solo/all)
- Move update modal reopen logic from EventDisplayPreview to Calendar.tsx
- Use sessionStorage to persist update modal info across component unmounts
- Handle typeOfAction matching for recurring events (undefined vs solo/all)
- Fix error handling in updateEventInstanceAsync and updateSeriesAsync
- Ensure all API failures properly dispatch eventModalError event