Baptiste Devessier
7735a0fc7d
Add missing RPL configuration for note tabs ( #17092 )
...
## Before
<img width="3456" height="2160" alt="CleanShot 2026-01-12 at 12 03
52@2x"
src="https://github.com/user-attachments/assets/3c7c28f7-b38a-40e2-b8d6-ba6385f823ee "
/>
## After
https://github.com/user-attachments/assets/16db3823-8b7d-4403-9901-75ee109680af
2026-01-12 11:26:58 +00:00
Baptiste Devessier
dec2b44808
Generate Field widgets for relations ( #17047 )
...
To release version 1, we must ensure feature parity with the current
production version.
In the future, all widgets will be stored in the backend. For now, let's
compute Field widgets for relations at runtime.
https://github.com/user-attachments/assets/acffe2f9-0f9b-4eff-bb89-c41f7caf5441
2026-01-09 16:24:35 +00:00
Baptiste Devessier
8fc0bb3ed7
Use canvas layout for all advanced RPL widgets ( #17028 )
...
## Before
<img width="3456" height="2160" alt="CleanShot 2026-01-08 at 18 46
32@2x"
src="https://github.com/user-attachments/assets/50e5f82f-b8e4-40d9-b5d9-4faf193cc2fd "
/>
## After
<img width="3456" height="2160" alt="CleanShot 2026-01-08 at 18 46
59@2x"
src="https://github.com/user-attachments/assets/badf46ff-b4c1-471c-a815-24673759fcac "
/>
2026-01-09 08:42:52 +00:00
Baptiste Devessier
f1aee7fd18
Add a CARD layout to the Field widget ( #16995 )
...
Closes https://github.com/twentyhq/core-team-issues/issues/1943
## Demo
https://github.com/user-attachments/assets/ea86e1e6-6495-42b8-8dd3-e2bf7d295bab
---------
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-01-08 15:43:34 +00:00
Baptiste Devessier
30b3dd1d6f
Fix Field widget glitches ( #16866 )
...
## LinkedIn + Boolean bugs
https://github.com/user-attachments/assets/6520ed94-5f60-404c-a43e-50b175510cab
## Hide Pen button for boolean fields (& rating)
https://github.com/user-attachments/assets/89a6ca35-8797-4621-adf4-59d2dc7d4625
Closes https://github.com/twentyhq/core-team-issues/issues/2024
2026-01-05 11:23:31 +01:00
Paul Rastoin
4135a6473a
[BREAKING_CHANGE_DASHBOARDS][DASHBOARD_CACHE_FLUSH_REQUIRED] Refactor page layout widget configuration type (#16671 )
...
# Introduction
In this pull-request we're refactoring the page layout widget
configuration entity to be containing its discriminated key simplifying
underlying code and maintainability
- Made the configuration and title non nullable
- Introduced a generic predicate for the `widgetConfigurationType`
- Upgraded command to remove `graphType` and insert new
`configurationType` to existing entries
- Migrated frontend to new type system
---------
Co-authored-by: bosiraphael <raphael.bosi@gmail.com >
Co-authored-by: Raphaël Bosi <71827178+bosiraphael@users.noreply.github.com >
2025-12-29 15:46:59 +01:00
Baptiste Devessier
06d0ac13c4
Ensure record fields uniqueness across widgets ( #16781 )
...
This PR dissociates record inputs so that several inputs for the same
record field can live on the same page.
## Simple values demo
https://github.com/user-attachments/assets/a8c224d8-4cd6-4fe3-9cf8-01f6bdd2fca9
## Relations demo
https://github.com/user-attachments/assets/87267a8b-8ce5-41ce-8a78-cba2384828bb
## Doesn't break Record Table
https://github.com/user-attachments/assets/bcdd2b05-7cb4-4ed2-9093-58be3e04e43e
## Doesn't break Show Page
https://github.com/user-attachments/assets/f9ab9e14-012c-451e-a35f-01a165523f95
2025-12-24 17:01:10 +01:00
Baptiste Devessier
b5ebc44fee
Add field widget ( #16609 )
...
- Ability to display the details of a field
- The field can be edited (relations edition will be supported later)
- For now, the widget configuration stores the name of the field instead
of its fieldMetadataId. A hook resolves the fieldMetadataId from the
list of fields and the provided name. This will be replaced once we
migrate the configuration to the backend.
## Demo
https://github.com/user-attachments/assets/ab7efbda-66b2-46c1-b641-c350977c31dd
## Remaining to do
- Edition of relations
2025-12-18 17:25:51 +00:00
Raphaël Bosi
01ffca0cef
[DASHBOARDS] Add the ability to click to create a widget ( #16673 )
...
## Video QA
https://github.com/user-attachments/assets/813a2040-6ee9-418c-b7da-1126c9720446
2025-12-18 14:37:22 +00:00
nitin
44f0cfdd9e
[Dashboards] Rich text editor frontend ( #16437 )
...
closes https://github.com/twentyhq/core-team-issues/issues/1894
2025-12-12 23:06:59 +05:30
Baptiste Devessier
fd54a2af5c
Create fields widget ( #16403 )
...
https://github.com/user-attachments/assets/b150815a-5d54-4d4a-b984-20dcf7b29aa7
2025-12-10 10:31:36 +01:00
Baptiste Devessier
2466d81ace
[Record Page Layouts] Pin record header ( #16339 )
...
https://github.com/user-attachments/assets/df988bf2-d2d6-49a4-b062-bc7ec49e1fad
Closes https://github.com/twentyhq/core-team-issues/issues/1806
2025-12-05 16:10:08 +01:00
nitin
2f36c2e82e
[Dashboards] Server: Rich Text Widget ( #16296 )
...
closes https://github.com/twentyhq/core-team-issues/issues/1893
sync in the transformation layer -
with just the blocknote format -
<img width="1532" height="1058" alt="CleanShot 2025-12-04 at 16 43 27"
src="https://github.com/user-attachments/assets/081483fb-0bd0-4f14-81fc-8ea2261367a2 "
/>
with just the mardown format -
<img width="1534" height="1056" alt="CleanShot 2025-12-04 at 16 45 03"
src="https://github.com/user-attachments/assets/4eae513b-423d-4597-b79c-97d1f33ab994 "
/>
attaching response since in screen shot its getting cut -
```
{
"id": "7189a10a-177c-4cc2-8946-950b8c125913",
"pageLayoutTabId": "82ac56dd-4351-43ad-bf3d-49624c057e17",
"workspaceId": "20202020-1c25-4d02-bf25-6aeccf7ea419",
"title": "awdawd awdawdawd",
"type": "STANDALONE_RICH_TEXT",
"objectMetadataId": null,
"gridPosition": {
"row": 1,
"column": 1,
"rowSpan": 1,
"columnSpan": 1
},
"configuration": {
"body": {
"markdown": "# Hello World",
"blocknote": "[{\"id\":\"2e744f21-7c71-414d-b87f-fb48400c593c\",\"type\":\"heading\",\"props\":{\"textColor\":\"default\",\"backgroundColor\":\"default\",\"textAlignment\":\"left\",\"level\":1},\"content\":[{\"type\":\"text\",\"text\":\"Hello World\",\"styles\":{}}],\"children\":[]}]"
}
},
"createdAt": "2025-12-04T11:14:52.212Z",
"updatedAt": "2025-12-04T11:14:52.212Z",
"deletedAt": null
}
```
2025-12-04 18:28:33 +05:30
Raphaël Bosi
2b80d9e015
[DASHBOARDS] Widget duplication ( #15979 )
...
## Widget duplication
- Created a shared component for the option menu shared by the record
page, the dashboards and the workflows
- Fix arrow selection in the option menu in workflows, which wasn't
working
- Scroll to the new widget after creation and open the new widget
settings
https://github.com/user-attachments/assets/47b8dade-44bd-4ba2-a81c-01b09e8718d3
2025-11-24 14:38:18 +01:00
Baptiste Devessier
3e187b4ce3
[Page Layouts] Focus specific tabs on mobile and side panel ( #15984 )
...
## On mobile
https://github.com/user-attachments/assets/4a8017b2-56a9-4759-bc18-8d99fed9f80a
## In side panel
https://github.com/user-attachments/assets/f36f0827-699a-4f76-8e84-a8ceaeb71396
## Dashboards
Untouched, but keep working.
https://github.com/user-attachments/assets/fe583f80-ea8d-453e-95ea-6b99175d1899
## Other Record Page Layouts
Untouched, but keep working.
https://github.com/user-attachments/assets/c64f731f-5d28-4585-8cb5-c3940fb1ab6f
2025-11-21 13:39:17 +01:00
Baptiste Devessier
6209ba539b
Add icons to Record Page Layout tabs ( #15871 )
...
## Demo
https://github.com/user-attachments/assets/71ce776a-8d59-4b2c-8579-185fdd749f8f
Closes https://github.com/twentyhq/core-team-issues/issues/1812
2025-11-18 12:25:18 +01:00
Baptiste Devessier
e0d1f74648
Page layout conditional display ( #15802 )
...
- Allow widgets to be hidden based on device's type conditions: desktop
or mobile
- Create two widgets for rich text fields on tasks and notes. One widget
is displayed below fields on mobile (and in the right drawer); the other
is displayed on a separate tab on desktop
- In read mode, hide tabs if they contain no visible widgets. If there
is no tab left to display, display at least the first one with no
widgets.
- In edit mode, display all tabs and all widgets.
## Demo
https://github.com/user-attachments/assets/65ef1261-3902-4432-a420-48983b763b2c
Closes https://github.com/twentyhq/core-team-issues/issues/1811
2025-11-18 10:35:38 +01:00
nitin
5bc876e4b4
IFrame widget improvements ( #15483 )
...
changes -
- make iframe side panel to match others -- ie use SidePanelHeader for
title
- make url optional in configuration to match that of the other widgets
(allow partial saves) - render No data status when error or no url
- split widget sizes into two -- graph widget sizes and widget sizes
(graph widgets are a subset of chart widgets)
2025-11-03 17:30:06 +00:00
nitin
902eb2c5d2
Instant widget placeholder placement on drag end ( #15496 )
...
closes -
https://discord.com/channels/1130383047699738754/1430596561137700957
fixed a bug - where on chart type change in side panel -- wont update
the widgets minimum size
---------
Co-authored-by: Raphaël Bosi <71827178+bosiraphael@users.noreply.github.com >
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2025-11-03 17:08:13 +00:00
Baptiste Devessier
5f0d24798a
Support workflows in record page layouts ( #15471 )
...
https://github.com/user-attachments/assets/275a02a3-7054-45d1-9423-75bb5223a8ba
2025-10-31 18:45:58 +01:00
Raphaël Bosi
2d1a89c4c2
Update minimum chart sizes ( #15500 )
...
Update minimum chart sizes
2025-10-31 21:29:04 +05:30
Baptiste Devessier
b9bdb12b3c
Hide page layout tab bar when there are less than two tabs to display ( #15385 )
...
- DIsplay the tab bar only if more than 1 tabs can be displayed
- Remove the selfDisplayMode feature: the first tab is now considered to
be the pinned tab on record pages
https://github.com/user-attachments/assets/3f61931d-fde4-4065-b646-5b3a7bdebcc0
2025-10-28 17:20:32 +05:30
Baptiste Devessier
24349cb729
Enable records layouts for all records except workflows ( #15378 )
...
https://github.com/user-attachments/assets/3cb30486-3409-459e-9d60-7f6f31ebe00c
2025-10-27 17:34:21 +01:00
Baptiste Devessier
9b2a73d50a
Support more standard objects in Record Page Layout ( #15288 )
...
Used the `PageLayoutRenderer` for people, opportunities, tasks and
notes.
## Demo
https://github.com/user-attachments/assets/35e61702-f338-47b3-91b7-fd3951a0c967
2025-10-24 17:38:49 +02:00
Raphaël Bosi
f301f07e43
Convert number chart to aggregate chart allowing date aggregates ( #15294 )
...
- Convert number chart to aggregate chart
- Allow date aggregates on all charts
- Only allow `EARLIEST` and `LATEST` on Aggregate chart and Gauge chart
- Various design fixes
https://github.com/user-attachments/assets/b5a2239d-7b11-48b5-93e6-98ceffae5cab
2025-10-24 05:48:42 +13:00
Baptiste Devessier
c6addc2bb4
Implement basic edition for record page layouts ( #15237 )
...
1. Add actions for record page layouts to side panel
2. Support drag-and-drop of widgets
https://github.com/user-attachments/assets/c4cef7c5-08a8-4999-b8a5-e1831cc66709
2025-10-22 10:48:09 +02:00
Baptiste Devessier
f6d133f285
Scaffold all company cards as widgets ( #15149 )
...
This PR doesn't support mobile and side-panel modes. The fields tab will
be displayed in these cases.
## Demo
https://github.com/user-attachments/assets/0b2e699c-2b8e-4212-8c75-00d7d2e25237
---------
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
2025-10-18 22:26:27 +02:00
Baptiste Devessier
1b6c9e851f
Companies show page as record page ( #15132 )
...
Example showing two widgets positioned in a vertical list:
https://github.com/user-attachments/assets/cf3e9793-7d80-4cab-b708-aad9f2bca7d8
2025-10-16 16:45:06 +02:00
nitin
bd16c77fed
Dashboards followups 2 ( #15107 )
...
adding min height and widths on each chart
this Pr address this followups -
-
https://github.com/twentyhq/core-team-issues/issues/1710#issuecomment-3405312108
- <img width="843" height="38" alt="Screenshot 2025-10-15 at 15 19 27"
src="https://github.com/user-attachments/assets/f33da21f-a605-40f9-b7fa-02be9dff5908 "
/>
- <img width="830" height="42" alt="Screenshot 2025-10-15 at 15 19 40"
src="https://github.com/user-attachments/assets/bf6f3783-b5cc-44c0-94a2-029a489c852e "
/>
video QA
before:
https://github.com/user-attachments/assets/28262a7b-531f-4dcb-9047-c587fe3d8af6
after:
https://github.com/user-attachments/assets/b0fdbc18-3a7e-4c85-98b6-5799d7207bb4
2025-10-15 19:35:56 +05:30
Raphaël Bosi
e80c552ae7
Create the Dashboard record show page ( #14423 )
...
Closes https://github.com/twentyhq/core-team-issues/issues/1438
- Reorganized PageLayout module
- Created `DashboardRenderer` and `PageLayoutRenderer`
- Created stories for the `PageLayoutRenderer`
- Refactored the Widget components
https://github.com/user-attachments/assets/27e9ac8f-b237-4c21-8494-3fab6d65af3a
2025-09-11 18:26:26 +02:00