Commit Graph

1667 Commits

Author SHA1 Message Date
Weiko
3c7805c6d0
Add field isLabelSyncedWithName (#8829)
## Context
The recent addition of object renaming introduced issues with enum
names. Enum names should follow the pattern
`${schemaName}.${tableName}_${columnName}_enum`. To address this, and to
allow users to customize the API name (which is included in the enum
name, columnName), this PR implements behavior similar to object
renaming by introducing a `isLabelSyncedWithName` boolean.

<img width="624" alt="Screenshot 2024-12-02 at 11 58 49"
src="https://github.com/user-attachments/assets/690fb71c-83f0-4922-80c0-946c92dacc30">
<img width="596" alt="Screenshot 2024-12-02 at 11 58 39"
src="https://github.com/user-attachments/assets/af9a0037-7cf5-40c3-9ed5-d51b340c8087">
2024-12-03 13:22:12 +01:00
Raphaël Bosi
32194a88b3
Implement contextual actions for the workflows (#8814)
Implemented the following actions for the workflows:
- Test Workflow
- Discard Draft
- Activate Draft
- Activate Workflow Last Published Version
- Deactivate Workflow
- See Workflow Executions
- See Workflow Active Version
- See Workflow Versions History

And the following actions for the workflow versions:
- Use As Draft
- See Workflow Versions History
- See Workflow Executions

Video example:


https://github.com/user-attachments/assets/016956a6-6f2e-4de5-9605-d6e14526cbb3

A few of these actions are links to the relations of the workflow object
(link to a filtered table). To generalize this behavior, I will create
an hook named `useSeeRelationsActionSingleRecordAction` to automatically
generate links to a showPage if the relation is a Many To One or to a
filtered table if the relation is a One to Many for all the record
types.
I will also create actions which will allow to create a relation.

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-12-03 12:09:51 +01:00
martmull
d0ff1ffd5f
8723 workflow add editor in serverless function code step (#8805)
- create a serverless function when creating a new workflow code step
- add code editor in workflow code step
- move workflowVersion steps management from frontend to backend
  - add a custom resolver for workflow-version management
  - fix optimistic rendering on frontend
- fix css
- delete serverless function when deleting workflow code step

TODO
- Don't update serverlessFunction if no code change
- Factorize what can be between crud trigger and crud step
- Publish serverless version when activating workflow
- delete serverless functions when deleting workflow or workflowVersion
- fix optimistic rendering for code updates
- Unify CRUD types

<img width="1279" alt="image"
src="https://github.com/user-attachments/assets/3d97ee9f-4b96-4abc-9d36-5c0280058be4">
2024-12-03 08:41:13 +00:00
Nathaniel Brough
64500d07d3
Use builtin number validation (#8819)
The regex approach doesn't work great for the many different number
formats. Even a simple decimal failed e.g. '1.1' was considered invalid.
I've switched this over to use javascripts builtin conversion and
validation. This now supports other formats e.g. '-1.0e15' would now be
considered valid.

Closes: #8820
2024-12-02 15:03:49 +01:00
eliasylonen
b6701a81e1
Prefill workspace invitation email (#7174) (#8826)
Prefill workspace invitation email, fixes #7174

---------

Co-authored-by: ad-elias <elias@autodiligence.com>
Co-authored-by: Félix Malfait <felix@twenty.com>
Co-authored-by: Antoine Moreaux <moreaux.antoine@gmail.com>
2024-12-02 14:22:53 +01:00
Naifer
2b0f67191a
toggle Field on label between singular and plural based on relation type (#8817)
#7683 

![labelPlural](https://github.com/user-attachments/assets/3e620d7e-dd51-4e4e-a9ba-289f2685ddf3)

![labelSingular](https://github.com/user-attachments/assets/84739ac5-29b4-48c8-8a71-3f8f2816641b)
Hello,
I’ve implemented the logic for dynamically toggling the Field on label
between singular and plural based on the relation type selected by the
user. Here's an overview of the changes:

Added a variable selectedRelationType to store the user’s selected
relation type.
Based on this variable, I determine whether to use labelPlural or
labelSingular from the selectedObjectMetadataItem.
Please review my changes and let me know if there's anything that needs
improvement .

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-12-02 14:14:21 +01:00
Guillim
0527bc296e
Default address country 🗺️ & Phone prefix ☎️ (#8614)
# Default address 🗺️ country & Phone ☎️ country

We add the ability to add a Default address country and a default Phone
country for fields in the Data model.

fix #8081

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-12-02 12:34:05 +00:00
Charles Bochet
69f052e3ad
Fix activity target picker (#8812)
This PR is fixing the Task/Note Target picker.

## Issue

A few weeks ago, we have simplified the recordPicker logic. During this
refacto, we stopped making sure the selected records were fetched.
However, the optimistic update of the activity supposed that current
activityTargets are present in the selection in the picker in order to
filter out the removed items.

## Fix

In case we don't find the record in the picker selection, we don't
filter it out (it means the user cannot have removed it)

## Next step

@ijreilly I think we should put it back, as the selected records do not
appear on top anymore
2024-11-30 10:48:43 +01:00
Thomas Trompette
b542b43878
Add record picker with variables (#8813)
- Add update actions
- Create a folder for workflow actions
- Add a SingleRecordPicker with variables handler



https://github.com/user-attachments/assets/9fd57ce1-1b8d-424a-8aa1-69468d684fa1
2024-11-29 20:33:45 +01:00
Félix Malfait
29eb9fe77b
Don't show summary/fields on workflow record pages (#8804)
Hiding the left column on workflow pages


This raises additional questions: how do we edit the title then?
Probably need a significant refacto of PageHeader


<img width="1094" alt="Screenshot 2024-11-29 at 10 01 08"
src="https://github.com/user-attachments/assets/b98d55cb-5097-4e46-bac5-5570d9ca0ad8">
2024-11-29 18:11:44 +01:00
Félix Malfait
ebc381f009
Small text improvement to number field type (#8816)
Micro improvement to the number field type text
2024-11-29 18:06:00 +01:00
nitin
a7bbc9e00d
Render IconFolderOpen when folder is open (#8811)
closes #8809 


https://github.com/user-attachments/assets/519e03ea-ae5e-4e4b-b03f-cf60d61dea49
2024-11-29 16:13:22 +01:00
Baptiste Devessier
0136be65d1
Fix delete trigger node (#8806) 2024-11-29 13:58:23 +01:00
Jérémy M
a2d55a8694
feat: table record group (#8781)
Fix #8401 #8402

This PR is only taking care or displaying properly the record group on
the table.
Record-reorder within group has also been prepared.
Start of collapsible animation has been done, but not working for now.

<img width="1381" alt="Screenshot 2024-11-28 at 2 52 07 PM"
src="https://github.com/user-attachments/assets/514bb3e6-3475-4c47-a91c-64f7d20bbe73">
2024-11-29 13:04:27 +01:00
Raphaël Bosi
05149feb00
Do not mount the command menu when the user is logged out (#8808)
Fixes two bugs:
- The command menu contains hooks which were trying to execute queries
even when the user was logged out
- The command menu could be opened with the command + K shortcut even
when the user was logged out
2024-11-29 12:19:58 +01:00
eliasylonen
c878f09d72
Fix token expiration error loop (#6731) (#8802)
Fixes issue https://github.com/twentyhq/twenty/issues/6731

**Problem:** After access token token expires, scrolling down the
`RecordTable` component will put it to an infinite loop of trying to
fetch records and printing errors on every iteration.

**Solution:** Disable fetching until component remount if a `FORBIDDEN`
error is encountered.

---------

Co-authored-by: ad-elias <elias@autodiligence.com>
2024-11-29 10:59:19 +01:00
Thomas Trompette
83223eeae3
Upgrade relation picker (#8795)
- Rename all parts using the name "relation" to "record" when component
is only selecting record
- Remove the use of scope states in folder
- Rename entities to records

This PR prepares the use of the record picker in workflows
2024-11-28 18:08:39 +01:00
Baptiste Devessier
d73dc1a728
Create form field number (#8634)
- Refactor VariableTagInput to have a reusable low-level TipTap editor
- Create three primitive form fields:
  - Text
  - Number
  - Boolean

## Notes

- We should automatically recognize the placeholder to use for every
FormFieldInput, as it's done for FieldInputs.

## Design decisions

Our main challenge was for variables and inputs to be able to
communicate between each other. We chose an API that adds some
duplication but remains simple and doesn't rely on "hacks" to work.
Common styles are centralized.

## Demo

"Workflow" mode with variables:

![CleanShot 2024-11-26 at 10 43
25@2x](https://github.com/user-attachments/assets/cc17098a-ca27-4f97-b86a-bf88593e53db)

FormFieldInput mode, without variables:

![CleanShot 2024-11-26 at 10 44
26@2x](https://github.com/user-attachments/assets/fec07c36-5944-4a1d-a863-516fd77c8f55)

Behavior difference between fields that can contain variables and static
content, and inputs that can have either a variable value or a static
value:

![CleanShot 2024-11-26 at 10 47
13@2x](https://github.com/user-attachments/assets/1e562cd8-c362-46d0-b438-481215159da9)
2024-11-28 17:03:24 +00:00
Thomas Trompette
3573d89c3c
Add a few tests on workflow hooks (#8800)
As title
2024-11-28 16:54:41 +00:00
Baptiste Devessier
38b83f0866
Write more tests (#8799) 2024-11-28 17:43:15 +01:00
Raphaël Bosi
541bbb93cb
Fix: Put workflow run actions behind feature flag (#8798)
Fix: Put workflow run actions behind feature flag
2024-11-28 17:21:46 +01:00
Raphaël Bosi
33159e29b7
Put workflow run actions behind feature flag (#8796)
Put workflow run actions behind feature flag
2024-11-28 16:03:34 +01:00
Félix Malfait
fbe042db3b
Calendar event cursor flashes (#8792)
Fixes #4692 

This is not the most beautiful fix (I think the right fix is to add 1px
somewhere), but this issue is old and deserved to be closed quickly
without spending too much time as this will likely be refactored and is
not very important
2024-11-28 15:05:59 +01:00
Guillim
041b1f21bf
line breaks in tooltips & text (#8783)
This feature goal is to :

1 - clean variables not used any longer

2 - add line breaks for tooltips and text wrapped

<img width="329" alt="Screenshot 2024-11-27 at 18 37 18"
src="https://github.com/user-attachments/assets/b3d7ed76-df30-4377-9d73-08d55c0f5c49">
<img width="468" alt="Screenshot 2024-11-27 at 18 37 31"
src="https://github.com/user-attachments/assets/48ef343e-6071-4a89-a73f-fb271f8284c0">


Request From @Bonapara

---------

Co-authored-by: guillim <guillaume@twenty.com>
2024-11-28 14:30:23 +01:00
Charles Bochet
8aab063da3 Demo new onclick behavior 2024-11-28 14:17:01 +01:00
Jérémy M
812ed6ed69
feat: record board component state refactor (#8779)
Fix #8758 

This PR is migrating the recoil component state from v1 to v2 for board.
It also now share some states and logics between board and table,
further can be done later.
Lastly this PR fix an issue since the PR #8613 that was treating
no-value as a normal record-group.
2024-11-28 13:44:21 +01:00
nitin
e96ad9a1f2
Admin panel init (#8742)
WIP
Related issues - 
#7090 
#8547 
Master issue - 
#4499

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-11-28 13:43:11 +01:00
nitin
525a2c2bed
minor-fix: console errors (#8782) 2024-11-28 11:09:00 +01:00
Antoine Moreaux
2fab2266d5
feat(front): improve logo component (#8720) 2024-11-27 19:26:45 +01:00
Harsh Singh
3ad1113173
fix: scroll dropdown listing in hidden fields (#8738)
Fixes: #8716 

[Screencast from 2024-11-25
22-06-24.webm](https://github.com/user-attachments/assets/35bd66cc-942f-4903-abda-0d67a75b6582)

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
2024-11-27 18:06:11 +01:00
Raphaël Bosi
a9cb1e9b0d
Refactor actions (#8761)
Closes #8737 
- Refactored actions by creating hooks to add the possibility to
register actions programatically.
- Small fixes from #8610 review
- Fixed shortcuts display inside the command menu
- Removed `actionMenuEntriesComponentState` and introduced
`actionMenuEntriesComponentSelector`
2024-11-27 15:08:27 +01:00
Marie
149ce680d5
[Fix] Custom object icon update (#8762) 2024-11-26 18:03:19 +01:00
Guillim
315938215e
Fix Table text wrapping (#8683)
As discovered during the last release, text fields in the table were
wrapped. This PR fixes this unwanted behaviour

Current :
<img width="1077" alt="Screenshot 2024-11-22 at 14 17 42"
src="https://github.com/user-attachments/assets/080c5b1f-b793-46de-8733-9c69a4eb6b3b">

Wanted : 
One line ellipsed
<img width="244" alt="Screenshot 2024-11-22 at 14 20 46"
src="https://github.com/user-attachments/assets/c1d32859-4ffe-42e3-bfed-66db20c8c0c7">

---------

Co-authored-by: guillim <guillaume@twenty.com>
2024-11-26 17:58:05 +01:00
Khuddite
dfb966d47e
Treat no value view group as normal & enable hide/dnd for no value (#8613)
Fixes #8591 

1. Summary
We disabled hide/dnd(drag-and-drop) options for `No value` view group
intentionally in the first implementation. We want to change it to
behave like normal view groups, so enable hide/dnd for `No value` view
group as well.

2. Solution
I have removed the code that filters the `No value` group out of view
groups, so `No value` is stored in the same array as other view groups.
I have removed the `No value` flag check for `Hide` button on the
hamburger menu of the Kanban header. I had to update the code in
`packages/twenty-front/src/modules/views/utils/mapViewGroupsToRecordGroupDefinitions.ts`
because it was ignoring the visibility flag of the `No value` view group
and set it always to true. Also, it was always putting the `No value`
group last ignoring the previous position.
>**_I am not 100% confident in the changes I made in
`packages/twenty-front/src/modules/views/utils/mapViewGroupsToRecordGroupDefinitions.ts`.
I'd like to have a review from someone more familiar with that part._**

3. Recording

https://github.com/user-attachments/assets/e135e22e-6e3a-4f94-a898-aafc03bba060
2024-11-26 17:47:42 +01:00
nitin
a026cde46a
Fix folder deletion confirmation modal (#8744)
Scrollwrapper `navigationDrawer` is interfering with this particular
modal rendering
2024-11-26 10:58:07 +01:00
Marie
d85279c55e
Fix update of custom object icon (#8730)
Icon update was not triggering a save due to missing onBlur prop drill
2024-11-26 10:56:57 +01:00
ad-elias
eea2885cbd
Fix: open filter from column (#8747)
Column filter button (image below) was broken for all filter types, this
PR fixes it.

<img width="1053" alt="broken-filter-button"
src="https://github.com/user-attachments/assets/febd10a8-f360-4245-ba06-ef847c79fde1">

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-11-26 10:52:45 +01:00
Félix Malfait
9f2e774113
Fix Error field type rich text (#8739)
fix #8445

It seems linked to commandBar search where we filter tasks/notes by body
with ilike.
2024-11-26 10:11:41 +01:00
ad-elias
2e75fae3ad
Allow standard field default value and settings editing (#7104) (#8559)
Co-authored-by: Marie Stoppa <marie.stoppa@essec.edu>
2024-11-26 10:03:48 +01:00
Harsh Singh
49526937fa
fix: navigation drawer clip while making folder in favorites (#8619) 2024-11-25 19:49:22 +00:00
Harsh Singh
a19349bdae
fix: table deselect doesn't work with few selected records (#8692)
Fixes: #8665 

[Screencast from 2024-11-23
00-33-14.webm](https://github.com/user-attachments/assets/e3b86955-4e12-4d10-9c13-ee60d7695cb3)

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-11-24 17:59:49 +01:00
ad-elias
bad7ad464b
Add boolean filtering (#7190) (#8700)
<img width="956" alt="filter-icp-true"
src="https://github.com/user-attachments/assets/fc5fe18d-c7b6-463d-9ce7-8e5facb7352f">

Link to issue: https://github.com/twentyhq/twenty/issues/7190
2024-11-24 09:43:44 +01:00
Balaji Krishnamurthy
fd8e0d04a2
Fix array edit option (#8697)
Closes #8578 
There was no case to handle a FieldMetadataType.Array and thus an error
was thrown every time the edit button was clicked on an Array type.
It has been added now with an explicit break statement.
2024-11-23 13:13:15 +01:00
Thomas Trompette
5ec6cb0e6f
Make workflow step name editable (#8677)
- Use TextInput in header title
- add onTitleChange prop
- rename field name instead of label

To fix :
- padding right on title comes from current TextInput component. It
needs to be refactored


https://github.com/user-attachments/assets/535cd6d3-866b-4a61-9c5d-cdbe7710396a
2024-11-22 15:25:01 +00:00
Guillim
cb5a0c1cc6
fix-percentage (#8684)
Following previous release, a suggestion was noticed by @martmull . Here
is a suggested fix.

Before :

![image](https://github.com/user-attachments/assets/10a55daa-8c90-42fc-8d1b-e28fc03f1948)

After :
<img width="611" alt="Screenshot 2024-11-22 at 14 56 07"
src="https://github.com/user-attachments/assets/67298633-4513-41a4-90aa-5e2366d3cd88">

---------

Co-authored-by: guillim <guillaume@twenty.com>
2024-11-22 14:20:37 +00:00
Raphaël Bosi
f44e2935df
Fix filter multi select (#8682)
- Created a dropdown inside a dropdown for the
`ObjectFilterDropdownOperandDropdown` so the operand can be opened over
the selection with an offset
- Refactored dropdown component and introduced `DropdownUnmountEffect`
to close the dropdown when the component unmounts
- Removed old logic

Before:
<img width="216" alt="Capture d’écran 2024-11-22 à 14 03 58"
src="https://github.com/user-attachments/assets/3c1bba03-af03-4993-a070-f009b8dc876f">

After:
<img width="222" alt="Capture d’écran 2024-11-22 à 14 03 40"
src="https://github.com/user-attachments/assets/a8a784b4-8672-4b02-bb21-e4a749682f2e">
2024-11-22 14:08:29 +00:00
Weiko
ac9cf737fb
Fix RICH_TEXT display on cell (#8676)
## Context
We added a check of the field type in
[useTextFieldDisplay.ts](https://github.com/twentyhq/twenty/compare/c--fix-rich-text-display?expand=1#diff-8e53a2496b9faa67ac9aad3f7016efed19147557904da1bc44e895688513330d)
however this hook is also used for RICH_TEXT fields so it fails.
I'm removing this check since I don't think this is necessary, the
caller should already know its a TEXT or RICH_TEXT
2024-11-22 12:09:47 +01:00
martmull
76be1df66a
Fix array and links display (#8671)
## Before

![image](https://github.com/user-attachments/assets/ebecb45b-d3c1-4c80-9d90-726e37d2d417)

![image](https://github.com/user-attachments/assets/33e85593-9459-4790-9ae6-a79265f33b5a)

## After

![image](https://github.com/user-attachments/assets/a5174069-bed3-4e02-ae98-550a418243c5)

![image](https://github.com/user-attachments/assets/f2d0dd16-225c-4788-bb90-d47875d8b5f3)
2024-11-22 12:06:31 +01:00
Weiko
a41e563b9c
Bump 0.34.0-canary (#8675) 2024-11-22 11:53:33 +01:00
Khuddite
62df0f0445
Display a generic fallback component when initial config load fails (#8588)
Fixes: #8487 #5027 

1. Summary
The purpose of these changes is to elevate the dev/user experience when
the initial config load call fails for whatever reason by displaying a
fallback component.

2. Solution
I ended up making more changes than I initially planned. I had to update
the order of the contexts a bit because `GenericErrorFallback` is
dependent on `AppThemeProvider` for styling and `AppThemeProvider` is
dependent on `ObjectMetadataItemsProvider` for
[`useObjectMetadataItem`](ae2f193d68/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItem.ts (L22))
hook (`AppThemeProvider` -> `useColorScheme` -> `useUpdateOneRecord` ->
`useObjectMetadataItem`). I had to create a wrapper component for
`AppThemeProvider` and stylize it in a way that it looks responsive on
both mobile and desktop devices. Finally, I had to introduce the
`isErrored` flag to differentiate the loading and error states.

    There are some improvements we can make later - 
    - Display a loading state for the initial config load
    - Implement a refetch logic for the initial config loading failure
    
3. Recording



https://github.com/user-attachments/assets/c2f43573-8006-4118-8e18-8576099d78fd



https://github.com/user-attachments/assets/9c5853d3-539b-4880-aa38-c416c3e13594

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-11-22 09:45:23 +01:00