Commit Graph
7980 Commits
Author SHA1 Message Date
Lucas BordeauandGitHub fc8a8dc575 Fixes to new table (#14506)
This PR brings fixes to the table after the div refactor.

There is still work to do to simplify and clean code, fix some left
bugs, but overall this PR brings a way cleaner experience already.

The table with groups still needs some work as it is often less tested,
thus it has more bugs and code to clean.

What this PR fixes : 
- Started refactoring hard-coded height and widths into constants (still
some work to do)
- Refactored TABLE_Z_INDEX and its consumer to separate into withGroups
and withoutGroups (still some refactoring to simplify this)
- Refactored common placeholder cells : add button, dynamic filling
cell, checkbox, drag and drop
- Fixed UI issues in table with groups action rows (load more and create
new)
- Started fixing z-index issues on record table with groups (some left
to do)
2025-09-15 16:28:28 +02:00
Paul RastoinandGitHub f13cbad5af View field creation through view creation unique id for migrated view (#14501) 2025-09-15 15:57:46 +02:00
c738ba54ad i18n - translations (#14503)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-15 15:38:21 +02:00
WeikoandGitHub 9853d6c095 Add fields selection in calendar view (#14500) 2025-09-15 15:28:05 +02:00
EggPuffandGitHub 0a0fb2e3b7 Fix: use <Img> instead of <object> for workspace logo in emails (#14435) 2025-09-15 15:16:14 +02:00
martmullandGitHub 57ff06f47c 1487 extensibility look into public domains to identify workspace (#14456)
- identify workspace based on public domains
- add cron job to validate public domains
- add endpoint to validate a public domain
2025-09-15 15:14:11 +02:00
c481fda0bd i18n - translations (#14499)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-15 14:43:24 +02:00
Paul RastoinandGitHub 579f704baa Plugging + improving the new orchestrator (#14430)
# Introduction
Initially this PR was about introducing integration coverage for view
field v2 tests
But feature itself wasn't finished, so ended up in a TDD style
devlopment

## The new orchestrator
Orchestrator will organize each flat entity diffing inferring either
validation errors or actions sequentially.
A new builder has been introduced when extended requires to define flat
entity validation utils and action generation for `delete` `update`
`create` operations. It's highly typed using generics

## View field integration testing
Introduce coverage on failing basic tests cases for view field
operations, successfull create is also covered. We could still add more
coverage, will be done later in following PRs

## Remaining tasks for upcoming PRs:
- [ ] rename builder methods names to add generate action in their names
- [x] refactor view validation to handle field and view uniqueness index
combination
- [ ] implem strict update validator on view and view field
- [ ] dynamic cache invalidation post run
- [ ] Add coverage to successful and failing view field operations
- [ ] error formatting summary computation
- [ ] extract types out of the workspace entity builder

## Some vision
Currently flat field metadata maps is nested in the flat object metadata
maps, making its build nested too. ( not extending the new generic
builder )
We will refactor this part for both to be stored extra flat such as the
other existing flat entities.
It will require a small refactor to the generic builder that will not
only have impact on the currently built flat entity optimistic cache but
to an other one ( for example when building a create object action it
will also have an impact flat field maps )
2025-09-15 14:32:57 +02:00
2aed7ba647 i18n - translations (#14498)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-15 14:22:53 +02:00
nitinandGitHub 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
EtienneandGitHub 06605b2f36 simplify gql schema gen (#14426)
closes https://github.com/twentyhq/core-team-issues/issues/1358
2025-09-15 14:01:53 +02:00
WeikoandGitHub 1cdfc0fd62 Add calendar view layout picker in view options menu (#14495)
<img width="234" height="303" alt="Screenshot 2025-09-15 at 12 55 20"
src="https://github.com/user-attachments/assets/ac9fe1b6-4f48-4d3c-82bf-e2044f437c2e"
/>
<img width="243" height="198" alt="Screenshot 2025-09-15 at 12 55 12"
src="https://github.com/user-attachments/assets/2c23d87d-2f0b-43cc-bf79-18618fbf74d6"
/>
<img width="256" height="267" alt="Screenshot 2025-09-15 at 12 55 08"
src="https://github.com/user-attachments/assets/6a0dfc2a-8cba-46ba-bc02-a79ca621b810"
/>
2025-09-15 13:58:06 +02:00
Charles BochetandGitHub 302dd01333 Introduce RecordCard (#14497)
<img width="1919" height="956" alt="image"
src="https://github.com/user-attachments/assets/5c55af89-49b1-4173-8b52-2f02b849bc5c"
/>
2025-09-15 13:49:36 +02:00
Charles BochetandGitHub 77b6a5b29d Load data into calendar view (#14494)
<img width="1919" height="956" alt="image"
src="https://github.com/user-attachments/assets/1389b1e9-63d5-4967-9587-681d8b151b07"
/>
2025-09-15 13:09:59 +02:00
53aa60baf4 i18n - translations (#14493)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-15 11:21:17 +02:00
Charles BochetandGitHub 22bc2712ab Implement Calendar Grid (#14487)
<img width="1512" height="876" alt="image"
src="https://github.com/user-attachments/assets/bb96bc86-8ae8-4a00-b31b-cc51c43b45ef"
/>
2025-09-15 10:58:41 +02:00
WeikoandGitHub b40de0fa07 Add calendar date field picker in view options menu (#14492)
<img width="612" height="352" alt="Screenshot 2025-09-15 at 10 36 02"
src="https://github.com/user-attachments/assets/d1da5ddf-cb9a-49f2-8407-e3d22cad808b"
/>
<img width="612" height="255" alt="Screenshot 2025-09-15 at 10 35 57"
src="https://github.com/user-attachments/assets/3fca9e04-6a61-42ce-96a8-4dcd93e06f66"
/>
2025-09-15 10:58:07 +02:00
Thomas TrompetteandGitHub 155aa4995e Handle edge deletion from loop (#14489)
Update delete edge endpoint. It should handles the deletion between the
iterator and the loop step ids
2025-09-15 10:20:33 +02:00
4d2c3b7431 i18n - translations (#14488)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-15 09:32:17 +02:00
WeikoandGitHub eada8e2567 Add calendar field metadata id to view table (#14478) 2025-09-15 09:17:17 +02:00
3b0aba77ac i18n - translations (#14483)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-14 21:18:01 +02:00
469e7165fd Feat/14410 move roles tab out of all roles (#14415)
# Move the roles tabs out of All Roles section #14410

**Description:**  
This is a **draft PR** opened for early feedback before final polishing.

fixes(#14410)

**Changes included:**  
- Moved the roles tabs out of the “All Roles” section as per the Figma
design.
- Added **search functionality** to the roles sections, following the
Figma specification.
- Updated layout and components to reflect the Figma design: [Figma
link](https://www.figma.com/design/xt8O9mFeLl46C5InWwoMrN/Twenty?node-id=67064-202200&t=Z27CkXdNfG1vJMzG-11)

**Notes for reviewers:**  
Please provide any **recommendations, feedback, or changes** before this
is ready for final review.

---

A **screen recording** demonstrating the functionality ->

[Screencast from 2025-09-11
17-39-35.webm](https://github.com/user-attachments/assets/b1a0376e-8d12-414f-899e-83f35dd14842)
 

This is my **first contribution**, so I opened a draft PR before
polishing. Please recommend any changes and review if needed.

---------

Co-authored-by: Abdul Rahman <ar5438376@gmail.com>
2025-09-15 00:43:52 +05:30
Charles BochetandGitHub e13db84f48 Create empty page for calendar table (#14479)
<img width="1512" height="876" alt="image"
src="https://github.com/user-attachments/assets/e845fb3a-9977-4ab7-9eb7-4e60e499165b"
/>
2025-09-14 18:03:38 +02:00
e3035bd4d7 i18n - translations (#14480)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-14 17:55:18 +02:00
WeikoandGitHub a81eb854d1 Add calendar view type in picker (#14477) 2025-09-14 17:46:42 +02:00
Charles BochetandGitHub 72da21217f Deprecate ViewSort typing (#14476)
Continuing the work to deprecate the old ViewSorts and leverage types
that are available in graphql.tsx codegen as we have migrated views to
codegen
2025-09-14 17:17:35 +02:00
WeikoandGitHub f46d67f9f3 Add calendar view type (#14475) 2025-09-14 16:34:10 +02:00
Arik ChakmaandGitHub 6a96c85eed chore: upgrade tiptap to v3 (#14467)
This PR upgrades Tiptap V2 packages into V3, following their [upgrade
guide](https://tiptap.dev/docs/guides/upgrade-tiptap-v2).
2025-09-13 17:06:21 +02:00
neo773andGitHub 0c28d853e4 fix merge records network race condition (#14466)
/closes #13643

<img width="1496" height="278" alt="image"
src="https://github.com/user-attachments/assets/b10d0e8a-ff66-4046-af6a-4ff594f7ed69"
/>
2025-09-13 15:24:22 +02:00
nitinandGitHub b5809096f8 Lazy load Nivo (#14454)
oops :p
2025-09-13 15:22:43 +02:00
Saurav JainandGitHub da5ecf35fa fix: remove unused framer-motion import causing lint errors in ci (#14465)
### Summary
This PR removes an unused `view` import from **framer-motion** in
`useUpdateView.ts`.

---

### Context
- The unused import was introduced in the recent commit to `main`.
- It causes ESLint to fail, which blocks all new PRs from passing CI.

### Changes
- Removed unused `view` import from `framer-motion`.

### Impact
- Lint and CI should now pass again.
- No runtime behavior is affected.
2025-09-13 14:14:44 +02:00
Charles Bochet e08a8764f2 Fix view update 2025-09-12 23:46:17 +02:00
e2823df62f i18n - translations (#14463)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-12 23:45:49 +02:00
Félix MalfaitandGitHub a0cfff6000 Remove Luxon from codebase (#14448)
Fixes #14444 

We shouldn't have 2 libraries to manage dates, one is enough
2025-09-12 23:25:05 +02:00
Charles BochetandGitHub 1e97ad48c0 Fix on view filters (#14462)
Fixes https://github.com/twentyhq/twenty/issues/14058
2025-09-12 22:45:26 +02:00
Charles BochetandGitHub 894e599173 Fix missing relation column on tasks / notes table (#14402)
Closes https://github.com/twentyhq/twenty/issues/13484



https://github.com/user-attachments/assets/4800b25b-956d-4681-beeb-23263041fccc
2025-09-12 20:24:14 +02:00
1f333503eb Fix Entering special character in object's field name crashes the app (#14455)
Fixes https://github.com/twentyhq/twenty/issues/14289.

We should leave the error management to the form validation, and only
throw in the frame of this validation where it will be properly handled.
This is enough to prevent form submission with an undesired value.
So we can use an empty metadata name everywhere else on the page to
prevent crash.
<img width="708" height="229" alt="Capture d’écran 2025-09-12 à 17 27
51"
src="https://github.com/user-attachments/assets/f257c220-674e-49fc-b560-5ad585ae6c5f"
/>

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2025-09-12 20:03:55 +02:00
Charles BochetandGitHub a4cf534130 Fix View picker dropdown placement (#14457)
Fixes https://github.com/twentyhq/twenty/issues/14445

## What

In the current `MenuItemWithOptionDropdown` component (which is a
MenuItem with the 3 dots dropdown), we used to have a position: static
on the 3 dots hovered.
This enabled the dropdown to not move when we scroll the MenuItems.

However, this is not playing well with the dropdown autoplacement.
I'm removing it as I think the right solution would actually to prevent
the scroll when the dropdown is open but this is non straight forward
and not really a big issue. I'm fine with the dropdown being "fixed" to
the scrollable content, it also makes sense

Before:


https://github.com/user-attachments/assets/8efec8fa-430a-408e-b549-fd7433b7a38d

After:


https://github.com/user-attachments/assets/b8ee4375-0944-4008-9ab6-f7f9f1d67e9c



## Testing

I was considering adding a story here but this is hard to test: hover +
scroll behavior are not well supported, I don't think it worth the
investment especially as I think the vision is to block the scroll

This componenent is used in ViewPicker and MultiItemsInput (ex.
PhonesFieldInput). I have check that both were still working well
2025-09-12 19:45:23 +02:00
MarieandGitHub 89254ea9e9 Limit rest api relations depth to 1 (#14453)
Until we tackle [Implement relations depth 2 for rest
api](https://github.com/twentyhq/twenty/issues/14452), let's remove the
depth 2 query parameter which is not working (times out all the time).
2025-09-12 15:57:16 +00:00
Thomas TrompetteandGitHub 12a5ee6bc4 Add connection options on edge creation (#14451)
Edge can now be linked to loop handle.
Renaming the existing options to connection.
2025-09-12 14:08:20 +00:00
MarieandGitHub 3270c64a96 [permissions] Deprecate ObjectsPermissionsDeprecated (2/3) (#14450)
Following https://github.com/twentyhq/twenty/pull/14306 , working on the
deprecation of objectRecordsPermissions + renaming of objectPermissions
-> objectsPermissions

In this PR
- Removal of objectRecordsPermissions (was not used in the FE any
longer)
- Addition of objectsPermissions, same as objectPermission but renamed.
objectPermission is no longer used in the FE.

Next step
- Remove unused objectPermissions
2025-09-12 16:02:42 +02:00
5b9cda3341 Refactor table resize behavior (#14447)
This PR refactors table resize with the new layout using flex-wrap to
manage all the table with divs.

Due to flex-wrap, we have to manually compute some filling divs like the
last column filler div or the empty table container, otherwise the
header can wrap and display on two lines, which is the only real issue
with this implementation with wrap.

Remember that **using flex-wrap is necessary** to handle z-index as we
want for the scrolling and hovered portal cell interaction UX. Otherwise
we lose the capacity to have z-index fine-tuning on very specific edge
cases.

To handle the resize, the most performant solution was to create CSS
variables for each column width on the table, creating a class for each
column, then assigning each class to all divs that are in the same
column, using the index of the array or the fixed known position index
for that.

This PR also refactors a lot of small details around the resizing, the
naming of the component and the DX.

It notably introduces a new hook : `useHTMLElementByIdWhenAvailable`,
that is very relies on MutationObserver API to get a native HTML element
as soon as it is rendered.

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2025-09-12 15:17:53 +02:00
nitinandGitHub 7c26b1cce3 [Dashboards] - Add seeds (#14404)
closes https://github.com/twentyhq/core-team-issues/issues/1440
2025-09-12 14:35:51 +02:00
Baptiste DevessierandGitHub fffff75156 Fix edge hovering and selection (#14416)
## Before



https://github.com/user-attachments/assets/416160bb-8289-43cb-bf0d-d2da053b2056



## After


https://github.com/user-attachments/assets/d1e3bcfc-e1cb-46d1-a7c8-9d0a32993f6d
2025-09-12 13:30:31 +02:00
MarieandGitHub e3c84f289e Fix Relation display (many side) (#14411)
Fixes https://github.com/twentyhq/twenty/issues/14280.

Imitated impementation of MultiSelectFieldDisplay.
2025-09-12 13:29:58 +02:00
martmullandGitHub b17da02ee9 Fix max-chunk-size error (#14441)
as title
2025-09-12 10:20:22 +02:00
cdaa4a0474 i18n - translations (#14440)
Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-12 09:45:57 +02:00
Thomas TrompetteandGitHub 231d1a98af Allow to insert into loop step ids (#14425)
- Create empty node on iterator creation
- Add options on step creation to insert in loop
- Handle properly when a step is removed from loop
- Remove loopNextStepIds from frontend action
- Add a frontend skeleton for empty action



https://github.com/user-attachments/assets/281a8c15-8062-4702-afb4-0d9a50902252
2025-09-12 07:30:28 +00:00
martmullandGitHub bdf60b1680 Fix env variable definition (#14434)
as title
2025-09-11 21:45:03 +02:00
378335a83f i18n - translations (#14432)
Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
2025-09-11 18:35:21 +02:00