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
Théo Poizat
46a12745a5
Ensure replace function respect new lines in every editor
2026-03-25 11:52:35 +07:00
Théo Poizat
17b9d97284
Adjust Scribe context menu to support tablet screens
...
- Support tap in addition to hover for context menu
- Improve clamping for greater screen sizes to avoid Scribe getting off screen
- Set a padding to 0 to avoid random padding depending on screen sizes
2026-03-25 11:52:35 +07:00
Théo Poizat
7a6a49fc7b
Display Scribe mobile (bottomsheet) only when responsive mobile
...
Previosuly, we display Scribe mobile (bottomsheet) if platform was mobile, so also Android or iOS tablet.
Now we choose to display Scribe mobile relatively to display screens instead of platform to display the desktop Scribe (context menu) for tablets.
2026-03-25 11:52:35 +07:00