Commit Graph

52 Commits

Author SHA1 Message Date
lethemanh cadfa70e60 #708 apply strictier linting rules (#717)
* #708 apply strictier linting rules and fix simple eslint bugs

* #708 fix eslint errors relate to promise

* #708 fix eslint import/no-extraneous-dependencies

* #708 fix eslint errors of react-hook

* #708 enable eslint check for typescript

---------

Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-01 17:15:10 +02:00
Benoit TELLIER c9710d7651 feat: parse multiple attendees from pasted text (#723) (#731)
When pasting text containing multiple email addresses into the attendee
input, the component now splits by comma, semicolon, newline, or space
and adds each valid email as an individual attendee chip. Duplicates
are silently skipped. Any invalid chunks remain in the input field
with an error message so the user can correct them manually.

Co-authored-by: JacobiusMakes <jgalperin98@gmail.com>
2026-03-30 13:23:07 +02:00
Camille Moussu d8119e9807 [#706] skip malformed email adresses in get userdatafromEmail (#712)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-03-25 12:43:59 +01:00
lethemanh 43424607d4 #602 adminstrator can manage calendar resources (#703)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-03-25 08:28:24 +01:00
lethemanh a17320b861 #654 assign icon based on icon property (#662)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-03-18 13:59:32 +01:00
Camille Moussu e665ea4a79 [#646] improve dark color management (#648)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-03-17 16:26:37 +01:00
lethemanh 7d21eab757 #600 quick search for resource calendar (#635)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-03-17 16:10:36 +01:00
lethemanh 0dd7f1b2fd #599 ability to register to a resource calendar (#631)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-03-17 09:33:15 +01:00
Camille Moussu 27be9f10ae 620 bug redundant attendees in the invitation list (#629)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-03-14 06:37:50 +01:00
Camille Moussu fd7581a8db [#90] added freebusy (#618) 2026-03-12 18:07:25 +01:00
Camille Moussu dcc8ba46c3 [#621] set autocomplete listItems to proper size (#622) 2026-03-10 16:30:45 +01:00
Camille Moussu 0f69e9df18 [#554] removed people icon on adding people chips and removed cross (#609) 2026-03-05 14:39:02 +01:00
Camille Moussu 7664d8bb38 [#548] peoplesearch validate input on blur (#550)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-02-13 15:57:23 +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
lenhanphung da0dba423e update normal mode event createa update modal 2026-02-05 17:08:51 +07: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 23d50f250d Refactor imports (#470) 2026-01-20 17:33:30 +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
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 e59d878e6c [#419] removed duplicate adornment and ugly padding (#428)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-01-05 11:48:05 +01:00
Camille Moussu 89103b5787 [#420] passed a new param to people search to customize slotprops (#424)
* [#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>
2025-12-17 07:29:01 +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
Benoit TELLIER f413bd832b DRY - PeopleSearch onKeyDown: handleEnterKey 2025-12-15 15:33:07 +01:00
Benoit TELLIER 071c04654e Apply @Crash comment to avoid boolean flags 2025-12-15 15:33:07 +01:00
Benoit TELLIER 2494a558a6 Address nitpicks 2025-12-15 15:33:07 +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
lenhanphung 12776d36a4 Add small prop to PeopleSearch components for reduced height
- 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
2025-12-15 15:33:07 +01:00
Camille Moussu aa7d032aef [#367] added custom placeholder to people search (#411)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-12-11 18:56:46 +01:00
Camille Moussu 2f2ee369fc [#525] adopted twake-i18n (#404)
* [#525] adopted twake-i18n 

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-12-09 11:10:44 +01:00
lenhanphung 25dc016688 Enhance UI: #355 Remove labels, update buttons, icons, and styles (#356)
Co-authored-by: Lê Nhân Phụng <lenhanphung@Phung-Mac-M4.local>
2025-11-25 11:17:24 +01:00
lenhanphung 007266e7b0 Fix: #319 attendee role: use REQ-PARTICIPANT instead of CHAIR for nor… (#349)
- Change role from CHAIR to REQ-PARTICIPANT when adding attendees via PeopleSearch
- Keep CHAIR role only for organizers
2025-11-20 12:00:17 +01:00
lenhanphung 43f6facfad UI: #321 Remove unuse dropdown search icon (#348) 2025-11-20 11:10:01 +01:00
Camille Moussu 8e7b6e18eb [#311] preserve input on unfocus in peopleSearch (#346)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-11-19 16:09:09 +01:00
lenhanphung e8374cc2a1 #272 fix:search spins forever in case of error (#302) 2025-11-14 13:28:05 +01:00
Camille Moussu 0647be551f [#206] removed autocomplete suggestions 2025-11-07 08:15:49 +01:00
Camille Moussu c05dac3f08 [#206] removed no option from display when no input + test 2025-11-07 08:15:49 +01:00
Camille Moussu 36bc027d6d [#82] added cozy-ui for internationnalisation (#267)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-11-06 15:46:58 +01:00
Camille Moussu 42f5d8e1a9 #204 Error management (#237)
* added error snackbar for api fails
* improved error page to be shown only for userdata errors and to allow retrying
* fixed test breaking only in local because of timezone and reduced warnings for easier reading of tests results
* added error management for failure inside calendars imports
* added error snackbar for api fails
* improved error page to be shown only for userdata errors and to allow retrying
* added error management for failure inside calendars imports

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-10-27 11:23:38 +01:00
Camille Moussu 34363562cc Color picker rework (#232)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-10-24 01:20:56 +02:00
lenhanphung 64393bf161 fix: preserve original timezone when reopening event update modal
- Add formatDateTimeInTimezone() helper to format dates in event's original timezone
- Fix EventUpdateModal to display event times in original timezone instead of browser timezone
- Fix EventModal (duplicate event) with same timezone handling
- Update EventDisplay tests to use flexible date pattern
2025-10-15 08:29:28 +02:00
lenhanphung 732c2cd051 fix: disable browser autocomplete and fix React key error in PeopleSearch
- Add autoComplete attributes to disable browser suggestion tooltip
- Fix React key prop warning by properly handling key from Autocomplete props
- Add objectTypes to useEffect dependency array
2025-10-15 08:29:28 +02:00
lenhanphung f245991816 feat: improve video conference UI in EventModal
- Replace 'Meeting link generated' text with 'Join Visio conference' button
- Button opens video conference link in new tab when clicked
- Use contained variant styling to match Save button appearance
- Maintain copy and delete functionality for meeting links
2025-10-03 14:51:40 +07:00
lenhanphung 3261479874 refactor: improve EventModal UI labels and visibility controls
- Rename 'Alarm' to 'Notification' for better clarity
- Rename 'Attendees' to 'Participants' with updated placeholder text
- Replace 'Visibility' dropdown with 'Visible to' toggle buttons (All/Participants)
- Remove CONFIDENTIAL option, keep only PUBLIC and PRIVATE
- Add icons (PublicIcon/LockIcon) with fixed sizing for toggle buttons
- Rename 'Show as' to 'Show me as'
- Fix ResponsiveDialog scroll bar positioning in expanded mode
- Update PeopleSearch placeholder to 'Start typing a name or email'
2025-10-02 14:19:05 +07:00
lenhanphung 3870bceb6d feat: prepare project for cozy-ui migration (#157)
* feat: prepare project for cozy-ui migration

Build Configuration
- Add Stylus support via @rsbuild/plugin-stylus
- Add SVGR support via @rsbuild/plugin-svgr
- Update rsbuild.config.ts with custom configuration
- Add historyApiFallback for SPA routing

ESLint Configuration
- Create .eslintrc.json with react-app configuration
- Remove eslintConfig from package.json

CSS to Stylus Migration
Convert all 5 CSS files to Stylus (.styl) format:
  - src/App.css to src/App.styl
  - src/index.css to src/index.styl
  - src/components/Calendar/Calendar.css to src/components/Calendar/Calendar.styl
  - src/components/Calendar/CustomCalendar.css to src/components/Calendar/CustomCalendar.styl
  - src/components/Menubar/Menubar.css to src/components/Menubar/Menubar.styl
- Update all imports from .css to .styl
- Preserve all styling rules and values

MUI Styling Cleanup
- Replace all MUI sx props with standard style props across 15+ components
- Convert MUI spacing units (mr: 2 to marginRight: 16px)
- Convert MUI shorthand props (p: 2 to padding: 16px, mb: 1 to marginBottom: 8px)
- Remove MUI-specific syntax (&.Mui-checked selectors)
- Maintain exact visual appearance

FullCalendar Fixes
- Comment out problematic CSS rule in CustomCalendar.styl
- Fix display issues with timegrid slot labels

Files Modified
- Config: rsbuild.config.ts, .eslintrc.json, package.json
- Styling: 5 CSS to Stylus conversions, 15+ component sx to style updates
- Components: All components using MUI sx props updated

Development Workflow
- Continue using existing development commands
- Stylus files are now the source of truth for styling
- MUI components work with standard style props
- ESLint uses familiar react-app rules

Dependencies Added
- @rsbuild/plugin-stylus
- @rsbuild/plugin-svgr
2025-10-01 17:31:18 +02:00
Camille Moussu 2c78a037a9 allow external attendees (#141)
* [#122] added external attendees

* fixup! [#122] added external attendees

* fixup! [#122] added external attendees

* Update src/components/Attendees/AttendeeSearch.tsx

---------

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
Co-authored-by: Benoit TELLIER <btellier@linagora.com>
2025-09-25 11:25:22 +02:00
Camille Moussu 00c0b58032 sidebar availability search (#128)
* [123] added people search in left side bar

* [#123] added toggle temp calendars

* [#123] added tests]

* fixup! [123] added people search in left side bar

* fixup! [#123] added toggle temp calendars

* [#123] fixed event creation on Enter

* fixup! [#123] fixed event creation on Enter

* fixup! [#123] fixed event creation on Enter

* fixup! [#123] fixed event creation on Enter

* fixup! [#123] fixed event creation on Enter

* fixup! [#123] fixed event creation on Enter

* fixup! [#123] fixed event creation on Enter

* fixup! [#123] fixed event creation on Enter

* [#123] added color diff for temp calendars

* fixup! [#123] fixed event creation on Enter

* fixup! [#123] added tests]

* fixup! [#123] added toggle temp calendars

---------

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-24 17:05:45 +02:00
Camille Moussu cd724a30a0 ability to register a shared calendar (#118)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2025-09-22 20:45:02 +02:00
Camille Moussu 8efeea8102 [#77] added tests and fixed bug 2025-09-05 12:36:58 +02:00