nitin
d6bfbcc5ab
add max widths on bars ( #15487 )
...
closes
https://discord.com/channels/1130383047699738754/1433444230176440560
before:
https://github.com/user-attachments/assets/db93c705-7c0a-407b-99d8-ecf8fd9eac1b
after:
https://github.com/user-attachments/assets/cb2a5e74-ea41-4381-9fbc-04efee12a50e
2025-10-31 11:15:53 +01:00
nitin
5211d6ac7e
fix: make $groupBy parameter required in group-by queries ( #15485 )
...
before:
<img width="953" height="692" alt="Screenshot 2025-10-31 at 12 16 22"
src="https://github.com/user-attachments/assets/d2ec2a49-256d-4f17-baa7-6fb541e6e691 "
/>
after:
<img width="960" height="718" alt="Screenshot 2025-10-31 at 12 16 34"
src="https://github.com/user-attachments/assets/39843363-8f77-40cc-8203-ed9895efa57e "
/>
2025-10-31 14:10:01 +05:30
Raphaël Bosi
769ce95cde
Data labels improvements ( #15475 )
...
Create custom total component and display the total instead of each
group separately
https://github.com/user-attachments/assets/4e3edde8-9675-4bb1-834a-98dbff016063
https://github.com/user-attachments/assets/294555cc-a64b-4148-b1b9-f1dc0f0322ae
---------
Co-authored-by: ehconitin <nitinkoche03@gmail.com >
2025-10-30 23:47:37 +05:30
nitin
4c35cf305f
Add support for negative bars on bar chart ( #15418 )
...
in app:
<img width="580" height="591" alt="Screenshot 2025-10-29 at 01 47 51"
src="https://github.com/user-attachments/assets/9e16a597-6367-454d-a726-668beac90e04 "
/>
<img width="747" height="582" alt="Screenshot 2025-10-29 at 02 30 15"
src="https://github.com/user-attachments/assets/d06eb443-16ac-4394-bf4f-e6063f1ac12f "
/>
new stories:
<img width="569" height="359" alt="Screenshot 2025-10-29 at 01 46 50"
src="https://github.com/user-attachments/assets/a4cd33e2-3f15-4b8d-8849-c2d990246dec "
/>
<img width="564" height="360" alt="Screenshot 2025-10-29 at 01 46 45"
src="https://github.com/user-attachments/assets/014a2110-53e4-4f99-afda-1d8c5412a815 "
/>
<img width="604" height="372" alt="Screenshot 2025-10-29 at 01 46 40"
src="https://github.com/user-attachments/assets/bf7a73b4-fe29-40b7-b1a0-2894d5cbeccf "
/>
<img width="635" height="395" alt="Screenshot 2025-10-29 at 01 46 34"
src="https://github.com/user-attachments/assets/3cdfd3b9-dc76-4cf2-98e5-8e2a74e02ac6 "
/>
<img width="652" height="408" alt="Screenshot 2025-10-29 at 01 46 30"
src="https://github.com/user-attachments/assets/c2837d8d-371f-44ac-b66b-8f41ba69245e "
/>
2025-10-30 17:40:34 +01:00
Ranjeet Baraik
0cbd1e8ec5
fix: login redirection to active objects ( #15366 )
...
Fixes - https://github.com/twentyhq/twenty/issues/15364
- Removed `activeNonSystemObjectMetadataItems` from the hook as it was
not necessary. Hook use `alphaSortedActiveNonSystemObjectMetadataItems`
now.
- Correctly check for read permissions.
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2025-10-30 17:31:26 +01:00
nitin
2510cbf614
Add lock on dashboard restricted charts ( #15476 )
...
closes
https://discord.com/channels/1130383047699738754/1433452994132840478
2025-10-30 14:59:34 +00:00
nitin
33eaa4f2a2
Fix bar chart X-axis labels when groupBy matches aggregate field ( #15473 )
...
closes -
https://discord.com/channels/1130383047699738754/1430899754728030309
2025-10-30 15:53:17 +01:00
nitin
28333815d5
update chart tooltip designs ( #15426 )
...
closes
https://discord.com/channels/1130383047699738754/1430845815634657320
~~TODO: add truncation~~
2025-10-30 19:07:59 +05:30
Raphaël Bosi
65a329e900
Fix grip size on widgets ( #15460 )
...
Fix grip size on widgets
---------
Co-authored-by: ehconitin <nitinkoche03@gmail.com >
2025-10-30 11:38:02 +01:00
Raphaël Bosi
198bf5a333
Complete color refactoring ( #15414 )
...
# Complete color refactoring
Closes https://github.com/twentyhq/core-team-issues/issues/1779
- Updated all colors to use Radix colors with P3 color space allowing
for brighter colors
- Created our own gray scale interpolated on Radix's scale to have the
same values for grays as the old ones in the app
- Introduced dark and light colors as well as there transparent versions
- Added many new colors from radix that can be used in the tags or in
the graphs
- Updated multiple color utilities to match new behaviors
- Changed the computation of Avatar colors to return only colors from
the theme (before it was random hsl)
These changes allow the user to use new colors in tags or charts, the
colors are brighter and with better contrast. We have a full range of
color variations from 1 to 12 where before we only had 4 adaptative
colors.
All these changes will allow us to develop custom themes for the user
soon, where users can choose their accent colors, background colors and
there contrast.
2025-10-29 18:08:51 +00:00
nitin
0fdf76560d
Widget cards ( #15387 )
...
figma -
https://www.figma.com/design/xt8O9mFeLl46C5InWwoMrN/Twenty?node-id=79795-372071&t=0Rg3h23G8F7v80cs-0
for the pinned tab column or the left column -- there is only one state
change! -- which, after talks with @Bonapara -- we should try to keep
the same if possible! -- right now, there is no way to test it -- so I
did not add the same
closes -
https://discord.com/channels/1130383047699738754/1430825706643918942 and
https://discord.com/channels/1130383047699738754/1430599763807436870
story QA -
<img width="1535" height="1239" alt="Screenshot 2025-10-28 at 00 46 23"
src="https://github.com/user-attachments/assets/9293983e-2d08-427b-971f-731e6f1517aa "
/>
2025-10-28 20:25:52 +05:30
Raphaël Bosi
01d8b99c38
Update bar chart design ( #15372 )
...
- Implement new dynamic color palettes
- Create custom bar component with rounded edges
https://github.com/user-attachments/assets/8246f16d-0239-4807-bb4a-9647367575f2
2025-10-27 16:46:06 +00: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
Raphaël Bosi
5e7bdd1e04
Create widget grip and update title color ( #15280 )
...
Changed grip size and stoped using IconButton
2025-10-23 09:10:25 +00:00
Raphaël Bosi
e9ab54766c
Remove blue border on hover on widgets when not in edit mode ( #15268 )
...
https://github.com/user-attachments/assets/5370e068-fc42-4f8c-9ce5-db88ee0f303d
2025-10-22 18:26:50 +02:00
Raphaël Bosi
95b405edac
Add a banner in the side panel to alert if the bar chart has too many bars ( #15267 )
...
Closes https://github.com/twentyhq/core-team-issues/issues/1714
- Created `SidePanelInformationBanner` component
- Created a component state `hasWidgetTooManyGroupsComponentState`
- Displayed the banner in the side panel if the state is true
https://github.com/user-attachments/assets/343a4053-f0d5-4e9b-935d-ead191d70eb2
2025-10-22 18:03:00 +02:00
Raphaël Bosi
1c27206b41
Use aggregate operations in the widget configuration instead of extended aggregate operations ( #15248 )
...
- Use aggregate operations in the widget configuration instead of
extended aggregate operations
- Use aggregate operation from generated graphql in the frontend
2025-10-22 14:19:02 +02:00
nitin
226cc9eb74
[Dashboards] - Min Max range on secondary axis bar charts ( #15118 )
...
video QA
https://github.com/user-attachments/assets/70c37188-2398-43de-bbf6-5882bb79940a
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2025-10-22 10:51:01 +02:00
Raphaël Bosi
c8fe805ea5
Connect the number chart to the backend ( #15229 )
...
https://github.com/user-attachments/assets/e8fecb5d-bc9b-425a-9c19-baca15f88b1c
2025-10-22 10:20:08 +02:00
Félix Malfait
f7421c5fc0
Add queue management dashboard ( #15202 )
...
Adds a comprehensive queue management interface to the admin panel for
viewing and managing background jobs.
**Features:**
- Queue detail pages showing paginated job lists (50 per page)
- Filter jobs by state: completed, failed, active, waiting, delayed,
paused
- Checkbox selection with bulk actions (delete jobs, retry failed jobs)
- Per-job dropdown menu for individual retry/delete
- Expandable rows showing error messages, stack traces, and job data
- Relative timestamps with hover tooltips
- Display attempt counts on failed jobs
- Dynamic retention policy info from backend
**Changes:**
- Backend: New AdminPanelQueueService with GraphQL endpoints for job
listing, retry, and delete
- Frontend: Queue detail page with QueueJobsTable component
- Updated retention policy: completed jobs kept 4 hours, failed jobs
kept 7 days (max 1000 each)
- Added JobState enum for type safety
<img width="634" height="696" alt="Screenshot_2025-10-20_at_11 45 25"
src="https://github.com/user-attachments/assets/c67bcd27-26cf-47f5-9575-3cd5684d006b "
/>
<img width="484" height="680" alt="Screenshot_2025-10-20_at_11 45 14"
src="https://github.com/user-attachments/assets/68725cc6-b3ec-4098-99ca-f9a717d6f8f1 "
/>
<img width="490" height="643" alt="Screenshot_2025-10-20_at_11 45 05"
src="https://github.com/user-attachments/assets/b68a5809-33ff-4452-b48b-741aff7f1dd6 "
/>
<img width="685" height="662" alt="Screenshot 2025-10-20 at 13 15 01"
src="https://github.com/user-attachments/assets/eeb5207b-de5c-4b18-bdde-392892053dab "
/>
2025-10-21 16:02:50 +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
Lucas Bordeau
59004306c9
Connect chart filters to backend ( #15133 )
...
This PR connects the chart filters settings page to the backend.
Both for persisting the filters in the chart's configuration and also
for querying with those filters.
I made sure that the filters configuration is reset in the draft if we
change the data source object.
2025-10-16 15:17:01 +00: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
246543912d
[Dashboards] - Omit zero values ( #15112 )
...
video QA
https://github.com/user-attachments/assets/6391afdd-0714-4202-8db0-f67388fb7582
---------
Co-authored-by: Marie <51697796+ijreilly@users.noreply.github.com >
2025-10-16 15:00:28 +05:30
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
Baptiste Devessier
41c970e163
Make page layouts less specific ( #15102 )
...
This PR makes some hooks/functions/components more generic. I untied
them from dashboards as they will be needed for any page layout type.
---------
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
2025-10-15 14:34:34 +02:00
Marie
f65783f900
[GroupBy] Allow sorting in bar chart ( #15097 )
...
Closes https://github.com/twentyhq/core-team-issues/issues/1628
From a technical perspective, we can add more ordering options, such as
the ability to combine two sorts on the X axis, e.g. sort by Close date
ASC and then by Sum ASC, which will sort groups that have the same close
date between themselves depending on their sum ASC. @Bonapara could you
provide design if you want this to be implemented (quite short on our
hand i think - maybe in V2 though)?
https://github.com/user-attachments/assets/6ef21fe1-9d8f-43c0-bfa2-f6fc6341cacf
---------
Co-authored-by: ehconitin <nitinkoche03@gmail.com >
2025-10-15 17:41:14 +05:30
nitin
436084f8f4
Split bar graph into two distinct horizontal and vertical bars ( #15061 )
...
### Summary
Split BAR into VERTICAL_BAR and HORIZONTAL_BAR as separate chart types.
### The Problem
Initially wanted a simple vertical/horizontal toggle for bar charts, but
ran into a GraphQL union type
constraint: union types can't have the same field name with different
nullability.
- Vertical bars need groupByFieldMetadataIdX as required (categories on
X)
- Horizontal bars need groupByFieldMetadataIdY as required (categories
on Y)
- GraphQL schema generation fails with this setup
### The Solution
Use semantic primaryAxis and secondaryAxis naming that's
orientation-agnostic:
- primaryAxisGroupByFieldMetadataId = main grouping field (e.g.,
"Company Name")
- secondaryAxisGroupByFieldMetadataId = optional secondary grouping
(e.g., "Stage")
These fields have consistent meaning regardless of orientation. The
visual mapping happens at the UI layer:
- Vertical bars: primary data renders on X-axis, secondary on Y-axis
- Horizontal bars: primary data renders on Y-axis, secondary on X-axis
Both chart types share the same DTO structure with consistent
nullability.
### What Changed
- Split GraphType.BAR → VERTICAL_BAR | HORIZONTAL_BAR
- Renamed fields: primaryAxisGroupByFieldMetadataId,
secondaryAxisGroupByFieldMetadataId (+ subfield
variants)
- useChartSettingsValues(): Maps semantic fields to setting values (no
swapping)
- getBarChartSettings(): Dynamically arranges settings panel based on
orientation
- transformGroupByDataToBarChartData(): Maps semantic fields to Nivo's
layout prop
video QA
https://github.com/user-attachments/assets/479061b5-712e-4ca6-9858-95273d1f16c1
2025-10-15 11:38:48 +02:00
nitin
5fec6a9afc
Fix group by y axis "stacked" behaviour ( #15081 )
...
also improved seeds
2025-10-14 15:06:50 +02:00
Raphaël Bosi
168e7b16ec
Design adjustments on Bar chart ( #15028 )
...
- Make the ticks dynamic when we resize the graph
- Fix formatting
- Fix gradient color not working when the index have a space in it
- Fix the maximum number of groups for a grouped by graph
- Update the tooltip design and display the group
Video:
https://github.com/user-attachments/assets/9f304b6c-3dec-4ce2-9127-41d27f393d90
---------
Co-authored-by: Marie Stoppa <marie.stoppa@essec.edu >
2025-10-13 09:43:06 +00:00
Raphaël Bosi
f84d0514b7
Remove edit widget button and add on click edition ( #15034 )
...
Remove edit widget button and add on click edition when in edit mode
Before:
https://github.com/user-attachments/assets/1579aa35-f67e-4ba5-9500-5999c7b2164b
After:
https://github.com/user-attachments/assets/3c7677ab-57f7-485d-b619-116ea9ec6c06
2025-10-10 16:13:21 +00:00
nitin
44f97058ac
Tidy up validation for configuration ( #14939 )
...
closes https://github.com/twentyhq/core-team-issues/issues/1605
TODO:
~~- add stories~~
~~- add base graph on companies when creating a new graph widget~~
2025-10-09 20:34:51 +00:00
Raphaël Bosi
875dc1a6b8
Connect the bar chart to the group by resolver ( #14885 )
...
Closes https://github.com/twentyhq/core-team-issues/issues/1535
Video QA:
https://github.com/user-attachments/assets/153fa3f1-08d9-4952-9456-635c602e1f57
https://github.com/user-attachments/assets/d3111afb-4c84-4f57-8a56-5cf666748c86
There are still some formatting and design issues (the labels which are
on top of each other and the values which should be formatted) that will
be fixed in a future PR
---------
Co-authored-by: ehconitin <nitinkoche03@gmail.com >
2025-10-09 14:54:33 +02:00
nitin
fced148724
Fix widget header shrink and make widget placeholder to change state on click ( #14999 )
...
closes closes https://github.com/twentyhq/core-team-issues/issues/1609
2025-10-09 17:06:53 +05:30
Raphaël Bosi
d10ab5f67c
Chart editor - Part 1 ( #14820 )
...
This PR is the first part of the creation of the Chart editor.
https://github.com/user-attachments/assets/8b0af8ea-be41-4506-84cb-e40f5521cbf0
Done:
- Bar chart settings (except filters)
- Line chart settings (except filters)
In progress:
- Pie chart settings
- Number chart settings
- Gauge chart settings
Left to do:
- Loosen the backend validation to allow the user to save a partial
configuration, validate the graph configuration in the frontend and
display a error friendly message in the graph if the config is not
completed yet
- Implement the filter edition
- Finish the other graph types settings
2025-10-03 10:25:45 +02:00
nitin
274f4333b4
Field level permission checks on widgets ( #14774 )
2025-09-30 16:00:09 +02:00
nitin
ea144c434b
Add configuration types for widgets ( #14717 )
...
closes https://github.com/twentyhq/core-team-issues/issues/1532
2025-09-29 11:41:26 +00:00
Raphaël Bosi
66a6190e3c
Create save dashboard record action ( #14665 )
...
Closes https://github.com/twentyhq/core-team-issues/issues/1502
- Created the save action
- Removed the temporary data attribute from the page layout widget since
we will connect widgets to real data soon
https://github.com/user-attachments/assets/2b46b511-f2c2-4e11-873c-a76fd31704e5
2025-09-24 12:03:27 +00:00
Antoine Moreaux
43e0cd5d05
feat(billing): refacto billing ( #14243 )
...
… prices for metered billing
---------
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
Co-authored-by: Félix Malfait <felix@twenty.com >
2025-09-19 11:25:53 +02:00
Ketan Mehta
dc26e48f6f
fixing Numbers formatting ( #14403 )
...
fix #13880
---------
Co-authored-by: Félix Malfait <felix@twenty.com >
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
2025-09-17 23:03:33 +02:00
Raphaël Bosi
0750bcaefc
Create edit dashboard action ( #14564 )
...
Closes https://github.com/twentyhq/core-team-issues/issues/1435
Introduced a new pattern to force to register an action or not.
Discussed this with @charlesBochet
2025-09-17 15:58:26 +00:00
nitin
bc471deaba
[Dashboards] - refactor - gauge and number chart ( #14550 )
...
This is the fourth and last PR from the split of
https://github.com/twentyhq/twenty/pull/14458 - refactoring PieChart and
NumberChart widgets.
2025-09-17 14:44:50 +00:00
nitin
ba3cbd1676
[Dashboards] - refactor - pie chart ( #14526 )
...
This is the third PR from the split of
https://github.com/twentyhq/twenty/pull/14458 - refactoring only the
PieChart widget.
Plus small performance improvements on already refactored widgets
2025-09-16 17:44:31 +02:00
Raphaël Bosi
3b868c3d2a
Page layout refactoring ( #14535 )
...
In this PR:
- Refactored the page layout renderer
- Converted all the states to component states
- Removed the page layout edition in settings
TODOs in next PRs:
- Fix bug with the drag selector not taking the scroll into account to
display the dragged area
- Readd the tab edition in edit mode
2025-09-16 15:42:51 +00:00
nitin
24b7075f60
[Dashboards] - refactor - line chart ( #14507 )
...
This is the second PR from the split of
https://github.com/twentyhq/twenty/pull/14458 - refactoring only the
LineChart widget.
2025-09-15 20:29:22 +05:30
nitin
d1cb046ebb
[Dashboards] - refactor - bar chart ( #14496 )
...
This is the first PR from the split of #14458 - refactoring only the
BarChart widget.
2025-09-15 17:52:40 +05:30
nitin
b5809096f8
Lazy load Nivo ( #14454 )
...
oops :p
2025-09-13 15:22:43 +02:00
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