Commit Graph

5023 Commits

Author SHA1 Message Date
dab246 2a58247b2b feat: Use the displayed email id here, not only _currentEmailId. 2026-03-27 14:07:21 +07:00
dab246 432c482155 feat: Re-use AddLabelToEmailMixin for logic add label to email in EmailView 2026-03-27 14:07:21 +07:00
dab246 f4ae94d47b feat: Apply EmailMoreActionContextMenu mixin for ThreadView and SearchEmailView 2026-03-27 14:07:21 +07:00
dab246 0d0efdcf96 feat: Add EmailMoreActionContextMenu mixin to handle action email 2026-03-27 14:07:21 +07:00
dab246 ff4515c26a feat: Add Label as to context menu for each email item in list 2026-03-27 14:07:21 +07:00
dab246 0a88a8f109 TF-4404 Keep automation keys stable across enum renames. 2026-03-27 10:36:23 +07:00
dab246 b97abfbf69 TF-4404 Add e2e test for Mail to attendees action on mobile 2026-03-27 10:36:23 +07:00
dab246 6a245f228a TF-4404 Fix missing subject when perform Mail to attendees action in event email 2026-03-27 10:36:23 +07:00
Dat H. Pham 93c96a2b83 ADR-71 CollapseThread (#4380)
* ADR-71 CollapseThread

* fixup! ADR-71 CollapseThread

* docs(ADR-0072): Add thread-aware bulk actions for collapseThreads in EmailList

* fixup! docs(ADR-0072): Add thread-aware bulk actions for collapseThreads in EmailList

* fixup! fixup! docs(ADR-0072): Add thread-aware bulk actions for collapseThreads in EmailList

* fixup! fixup! fixup! docs(ADR-0072): Add thread-aware bulk actions for collapseThreads in EmailList

* fixup! fixup! fixup! fixup! docs(ADR-0072): Add thread-aware bulk actions for collapseThreads in EmailList

* fixup! fixup! fixup! fixup! fixup! docs(ADR-0072): Add thread-aware bulk actions for collapseThreads in EmailList

* fixup! fixup! fixup! fixup! fixup! fixup! docs(ADR-0072): Add thread-aware bulk actions for collapseThreads in EmailList

* fixup! fixup! fixup! fixup! fixup! fixup! fixup! docs(ADR-0072): Add thread-aware bulk actions for collapseThreads in EmailList

---------

Co-authored-by: dab246 <tdvu@linagora.com>
2026-03-27 09:44:45 +07:00
dab246 6d0246de20 TF-4391 Fix last menu item inaccessible due to system navigation bar overlap 2026-03-26 17:25:55 +07:00
dab246 eb017b54b1 TF-4383 Handle read only labels 2026-03-26 17:06:13 +07:00
Dat H. Pham c17782bfd4 Translate Scribe for vi, ru 2026-03-26 12:02:32 +07:00
dab246 fdae057837 TF-4370 Fix selector/key wiring: modal instantiation does not pass the key the test expects 2026-03-25 19:45:46 +07:00
dab246 0f9ea3c778 TF-4370 Add E2E test for test case create new a tag 2026-03-25 19:45:46 +07:00
dab246 7df25c5f5a TF-4370 Handle create new a label with description 2026-03-25 19:45:46 +07:00
dab246 90ddbf5824 TF-4370 Add description field to Label object 2026-03-25 19:45:46 +07:00
dab246 4c837ed9cf TF-4370 Add Description field to Create new Label modal 2026-03-25 19:45:46 +07:00
Dat H. Pham a8dca322d4 TF-4378 Add unit test to cover the replace of placeholder 2026-03-25 11:52:35 +07:00
dab246 28d5036667 TF-4378 Migrate scribe-mobile branch to master branch 2026-03-25 11:52:35 +07:00
Théo Poizat d0cc14beb4 Fix Scribe mobile in landscape mode
- Decided to use mobile UI in mobile landscape
- Make mobile bottom sheet content scrollable except header and bottombar: bottom sheet will render correctly even if keyboard is opened and there is not a lot of space. It will be less usable than in portrait but all actions available.
2026-03-25 11:52:35 +07:00
Théo Poizat 0c2fa84f93 fixup! Update Scribe mobile custom prompt bar UI
Fix Scribe Bar hint color in mobile
Fix Scribe Bar spacing allocation in mobile
USe borderRadius instead of ClipRRect
2026-03-25 11:52:35 +07:00
Théo Poizat c35534a12b Add toast when copying Scribe suggestion 2026-03-25 11:52:35 +07:00
Théo Poizat 9be2e9820a Update Scribe success button actions 2026-03-25 11:52:35 +07:00
Théo Poizat b36b89cd04 Update Scribe mobile custom prompt bar UI 2026-03-25 11:52:35 +07:00
Théo Poizat 1e43ac510b Increase Scribe mobile inline button size 2026-03-25 11:52:35 +07:00
Théo Poizat ee546ef744 Fix Scribe mobile inline never showing modal
- The context.mounted check was placed after onTapFallback?.call()
- The onTapFallback function calls controller.saveAndUnfocusForModal() which unfocuses the editor
- This caused the context to become unmounted so the context.mounted check would return early
- As a result the modal would never be show
2026-03-25 11:52:35 +07:00
Théo Poizat 83452277b7 Use own Dio instance for prompt service 2026-03-25 11:52:35 +07:00
Théo Poizat 32cf606aea Cache Linagora Ecosystem in controller for Scribe 2026-03-25 11:52:35 +07:00
Théo Poizat 3ebb9113bc Revert "Cache LinagoraEcosystem to avoid multiple network calls"
This reverts commit 252f34f914fa21f8acf2ef2b5de9ac0ab28a8b4c.
2026-03-25 11:52:35 +07:00
Théo Poizat 1982f199ac Rework PromptService
- Use dependency injection and Get.find instead of manual singleton pattern
- Move from domain to data layer
- Prevents multiple API calls if the previous request hasn't finished
2026-03-25 11:52:35 +07:00
Théo Poizat 6d8d10cf26 Cache LinagoraEcosystem to avoid multiple network calls 2026-03-25 11:52:35 +07:00
Théo Poizat 71901b2640 Create and use an enum for AIRole in Scribe 2026-03-25 11:52:35 +07:00
Théo Poizat b84b2ce703 Fetch prompts from scribePromptUrl
First, we try to fetch prompts from scribePromptUrl. At fallback, we
use local prompts.
2026-03-25 11:52:35 +07:00
Théo Poizat a98368e6a6 Allow to get scribePromptUrl from LinagoraEcosystem 2026-03-25 11:52:35 +07:00
Théo Poizat 04696eecd7 Get and build prompt from local JSON file
Here we map our AI actions to the prompt from the JSON file
to be able to use them.
2026-03-25 11:52:35 +07:00
Théo Poizat 11fd808080 Add prompts.json in Scribe package
This is a default prompts.json used when no other will be available.
2026-03-25 11:52:35 +07:00
Théo Poizat fabf3ec54f Manage prompts as a "messages" object during prompt lifecycle
Before, our prompts were just a string like "Translate this text:
user text" and just before being sent to the backend, it was
converted to an "messages" object compatible with OpenAI API like [{
"role": "user", "content": "Translate this text: user text"}].

Now, we use "messages" object directly when building the prompt
because in the near future we will create more complex prompts with
system content and user content so we will need "messages" object
dirrectly.
2026-03-25 11:52:35 +07:00
Théo Poizat 2ab6e0df02 [Scribe] Add Improve button (#4335) 2026-03-25 11:52:35 +07:00
Théo Poizat c8253551b1 Add a toolbar to execute quick actions to Scribe suggestion
Actions :
 - copy
- regenerate
2026-03-25 11:52:35 +07:00
Théo Poizat 4ba6184a69 Rename bottomsheetIcon to secondaryIcon
To be able to reuse this color without loosing a correct semantic name.
2026-03-25 11:52:35 +07:00
dab246 b64aa4e4c7 feat(scribe-mobile):Fix sometimes the top part is cut off 2026-03-25 11:52:35 +07:00
dab246 5937055789 feat(scribe-mobile): Display the result prompt modal in the correct position relative to the inline scribe button on tablet 2026-03-25 11:52:35 +07:00
Théo Poizat 170bdd28c9 Autofocus Scribe input bar
Help user use the Scribe input bar. Also solves issues where Scribe bar is not well positioned when focused is removed from "To" field.
2026-03-25 11:52:35 +07:00
Théo Poizat d035e40853 fixup! Display Scribe modals correctly when a keyboard is opened
Manage multiline content in scribe bar and spacing between keyboard and scribe bar
2026-03-25 11:52:35 +07:00
Théo Poizat 13f81a9bee Include spacer in tablet bottom bar Scribe button 2026-03-25 11:52:35 +07:00
Théo Poizat 269ca7116c Display Scribe modals correctly when a keyboard is opened 2026-03-25 11:52:35 +07:00
Théo Poizat 7b3e3e1b16 Do not focus composer when clicking on tablet bottom bar button 2026-03-25 11:52:35 +07:00
Théo Poizat 0d7813c368 Display AI Scribe toggle in preferences in mobile
It has been forgotten when enabling AI Scribe in mobile.
2026-03-25 11:52:35 +07:00
Théo Poizat ed53929323 fixup! Display Scribe mobile (bottomsheet) only when responsive mobile 2026-03-25 11:52:35 +07:00
Théo Poizat 03a03b9088 Fix Scribe on responsive mobile
- Button was not added in MobileResponsiveAppBar
- Mobile behavior related scripts were not correctly added for web composer
- Mobile behavior related scripts return value was not properly handled for web composer
- In responsive web, bottomsheet modal clicks were intercepted by iframe behind
2026-03-25 11:52:35 +07:00