Commit Graph

2587 Commits

Author SHA1 Message Date
Jérémy M
fb0221b4c1
feat: default record group table (#8397)
This PR is preparing states to we'll be able to handle view groups
correctly with table data.
RowIds are now stores in 2 component states, one storing ids by view
group and another storing all the rowIds.
We're doing that because some other state like focus, or select must not
be scoped by view group id.
2024-11-18 15:36:40 +01:00
nitin
0125d58ba8
Favorite folders (#7998)
closes - #5755

---------

Co-authored-by: martmull <martmull@hotmail.fr>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2024-11-18 15:22:19 +01:00
Vardhaman Bhandari
5115022355
fix: Dropdown Overlapping Sidebar on Column Header Click in Horizontal Table When Scrolling (#8287)
fixes : #8272

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
2024-11-18 15:19:04 +01:00
shubham yadav
8b8b9fe55b
Add "type" to reserved keywords in object metadata validation (#8548)
This PR adds "type" to the reserved keywords list in
validate-object-metadata-input.util.ts. This prevents users from
creating objects with "type" as a key, which has caused issues in the
past .
issue solved #8543 

1.Updated the RESERVED_KEYWORDS array to include "type"

---------

Co-authored-by: Weiko <corentin@twenty.com>
2024-11-18 15:10:49 +01:00
Félix Malfait
d8626b1304
Fix 'Error in devtools while checking fields of object' (#8554)
Fixes https://github.com/twentyhq/twenty/issues/8298

---------

Co-authored-by: Devessier <baptiste@devessier.fr>
2024-11-18 14:59:50 +01:00
Antoine Moreaux
ba847292b6
refactor: add default fallback for session store secret (#8553)
**Description:**
- Add default fallback for session store secret.
- Updated SESSION_STORE_SECRET validation to be optional and of type
string.
2024-11-18 14:29:19 +01:00
Lucas Bordeau
6a977ad529
Created a temporary background transparent blue color for checkboxes (#8363)
Created a temporary background transparent blue color for checkboxes

Co-authored-by: Weiko <corentin@twenty.com>
2024-11-18 12:14:55 +01:00
Thomas Trompette
a0200e6d91
Fix workspace favorites in storybook (#8519)
- create mock page when user not logged in
- add mocks when user logged in

Reset password story
<img width="1073" alt="Capture d’écran 2024-11-15 à 16 49 31"
src="https://github.com/user-attachments/assets/5d70d587-8094-47ad-8029-d8c729bd298d">

Record Index page story
<img width="1073" alt="Capture d’écran 2024-11-15 à 16 49 58"
src="https://github.com/user-attachments/assets/421772a9-62ee-4563-b492-5158db31fb9b">

Reset password page
<img width="1031" alt="Capture d’écran 2024-11-15 à 16 50 18"
src="https://github.com/user-attachments/assets/2d1cb119-5e34-49d0-9cfa-2b856a96f39c">
2024-11-18 12:08:05 +01:00
Weiko
0f1cf0e4e9
Add composite fields to aggregation (#8518)
## Context
This PR introduces a first aggregation for a composite field

## Test
<img width="1074" alt="Screenshot 2024-11-15 at 15 37 05"
src="https://github.com/user-attachments/assets/db2563f9-26b7-421f-9431-48fc13bce49e">
2024-11-18 12:02:57 +01:00
nitin
2f5dc26545
Settings Option Card component (#8456)
fixes - #8195

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
2024-11-18 09:22:33 +00:00
Khuddite
ade1c57ff4
Fix remove redundant onClick event in favor of Link component (#8540)
Fixes: #8531 

1. Summary
There is `onClick` event handler defined for `NavigationDrawerItem`
component, and inside the handler, if `to` is not empty, we trigger
another navigation when it's already handled by `Link` component from
`react-router-dom`

2. Solution
Removed extra navigation logic from `NavigationDrawerItem`'s `onClick`
handler

3. Screen Recording


https://github.com/user-attachments/assets/cfefdd51-1663-4d96-acd2-57783ae9877f
2024-11-18 09:41:14 +01:00
ad-elias
ef5cc80440
Enable array filtering (#8538)
- Set array filtering always enabled
- Rename `IS_ARRAY_AND_JSON_FILTER_ENABLED ` TO
`IS_JSON_FILTER_ENABLED`.
2024-11-18 09:38:46 +01:00
Harsh Singh
9134ed8ce4
fix: prevent non-boolean 'active' prop from being forwarded to DOM (#8534)
Fixes: #8533
2024-11-17 20:11:13 +01:00
ad-elias
badebc513f
Fix multi select filtering (#5358) (#8452)
Allow filtering by multi-select fields.

<img width="1053" alt="Screenshot 2024-11-11 at 11 54 45"
src="https://github.com/user-attachments/assets/a79b2251-94e3-48f8-abda-e808103a6c39">

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-11-17 15:27:38 +01:00
ad-elias
ac1197afe1
Fix secondary links default value and types (#8532)
Fixes broken companies view
2024-11-17 15:18:02 +01:00
Harshit Singh
8c33e4cdae
fix: Checkbox column width should be fixed (#8489)
## Description

- This PR adds the functionality of fixed column width across all boards
- This PR fixes the issue 
#8463 
#8331

<img width="1167" alt="Screenshot 2024-11-14 at 12 19 02 PM"
src="https://github.com/user-attachments/assets/7c2b1016-2a59-4d08-8d29-9558648bcd67">

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-11-16 16:47:36 +01:00
Abstergo
859ce89e87
Fixed_Auth_Documentation (#8526)
Fixes #8525 

Fixed a small documentation API change:

AUTH_GOOGLE_APIS_CALLBACK_URL changed to
AUTH_MICROSOFT_APIS_CALLBACK_URL
2024-11-16 09:04:53 +01:00
Félix Malfait
4feb59a369
Fix Vite File does not exist (#8527)
This should fix #8491 

https://vite.dev/config/dep-optimization-options
2024-11-16 09:04:19 +01:00
Thomas des Francs
b733a2f3ec
changed multiItem Field Menu Item button to tertiary (#8517)
Think a simpler fix can fix
https://github.com/twentyhq/twenty/pull/8504/files#diff-13c19c3083bfe3172351cddbdd325960072496e9d50b73919fb35aa661bcdd52

https://github.com/twentyhq/twenty/issues/8492
2024-11-16 07:02:41 +01:00
Nicolas Rouanne
dc42315f12
fix(SingleEntitySelectMenuItems): extract Add New button from entitiesToSelect (#8474)
# Description
Closes #8169

Extract Add New button from entitiesToSelect and add it as a separate
element .
There doesn't seem to be a point in having Add New as part of a list, it
seems better off in its own component, apart from list items

## Rationale
There already is #8353 addressing the same issue, but it seems it
doesn't really remove the duplicate "Add New" in the list, leaving a
duplicate "Add New" in `SingleEntitySelect`

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-11-16 06:49:55 +01:00
martmull
9b2853bb01
Fix variable dropdown (#8521)
- fixed dropdown width
- add icons
- handle composite fields
## After

![image](https://github.com/user-attachments/assets/b9ac585e-2a39-4ab2-8620-739f83272b9b)

![image](https://github.com/user-attachments/assets/d9f7eabb-5693-4c1c-b81c-45a901479042)

![image](https://github.com/user-attachments/assets/9edced28-8a04-4951-913d-3e5561d4fcbe)
2024-11-15 18:08:03 +00:00
Thomas Trompette
54b28ff7ed
Enable workflow testing + fix header (#8512)
- clean execution header
- enable test on workflows + add snack bar
- display snack bar error if workflow cannot be tested

Behaviour still need to be validated by @Bonapara 
<img width="880" alt="Capture d’écran 2024-11-15 à 12 16 36"
src="https://github.com/user-attachments/assets/1dab0c3b-157c-449f-aee7-4c8cf2e369a6">
<img width="880" alt="Capture d’écran 2024-11-15 à 12 16 48"
src="https://github.com/user-attachments/assets/16279611-0a58-4fe6-b117-0192714a6d5c">
2024-11-15 18:38:39 +01:00
Khuddite
ac93d35538
Fix remove no result menu from relation picker (#8485)
Fixes: #8455 

1. Summary
Removed redundant `No result` menu from relation picker

2. Screenshot


https://github.com/user-attachments/assets/0bf457dc-57d6-4b38-8ef9-e985edd92396
2024-11-15 17:51:18 +01:00
Harshit Singh
9e7b90a551
fix: Added keyboard functionality for esc and Ctrl + a (#8282)
## Description

- This PR fixes 
#8247 
#8206 
- Adds keyboard functionality for esc (deselect all records) and Ctrl +
a (select records)

## Changes

https://github.com/user-attachments/assets/7b2718d6-dbe5-4cd8-8ead-b6baed1fc357

Merged during stream 🎉 

---------

Co-authored-by: Devessier <baptiste@devessier.fr>
2024-11-15 17:15:39 +01:00
Lucas Bordeau
77165a280e
Refactored query result getter handlers to support recursivity (#8497)
The `QueryResultGettersFactory` that is called on every query return to
was called only on the first level of relations because recursivity
wasn't implemented.

In this PR I implement recursivity and add some typing for the possible
forms a GraphQL query field can take.

This PR will fix any issue we have with pictures that were losing their
token (here for person.avatarUrl)

Fixes https://github.com/twentyhq/twenty/issues/8425
Fixes https://github.com/twentyhq/twenty/issues/8498

---------

Co-authored-by: Weiko <corentin@twenty.com>
2024-11-15 15:34:58 +00:00
Hitarth Sheth
4db0d0f8c1
Improve phone input UI (#8266)
[FIX] #8251 

Changes made as suggested by @Bonapara. 


![image](https://github.com/user-attachments/assets/4ba6db50-f122-4f66-9361-8a0a0da0b6a0)

![image](https://github.com/user-attachments/assets/f0f1e1f4-d354-4461-9929-cd171d95835e)

![image](https://github.com/user-attachments/assets/b6b9fdef-d6fa-4e4b-aa8b-c8c3ef8b8c57)

![image](https://github.com/user-attachments/assets/7e68bf25-aff9-428f-a084-0b0631eeecef)

For the `The country code should be Tertiary instead of Primary ` task,
the library "react-phone-number-input" doesn't provide any out of the
box functionality to style the country code.

If the feature **needs** to be implemented here are the possible
solution/workarounds:

1. Finding a more customizable library that allows to change the style
of the country code

OR 

2. Implement custom country selection (😰...)

OR

3. The lib allows a custom input element and a provides a function
(onCountryChange) that triggers whenever the country changes (a country
can be changed in two ways- 1. When the user deliberately chooses it
from dropdown OR 2. Changes the code in the input)

We'll have to get the length of the country code and then style the
first X digits in the custom input field...


![image](https://github.com/user-attachments/assets/21b09c4d-fb5b-4efe-8204-aea4c9040587)

![image](https://github.com/user-attachments/assets/007c2791-a640-4bc9-b852-0f9b597679f1)

Let me know if someone has a better approach.

---------

Co-authored-by: Thomas des Francs <tdesfrancs@gmail.com>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
2024-11-15 16:03:48 +01:00
Félix Malfait
c03b1ca7c6
Improve storybook test (#8516)
Just a quick fix
2024-11-15 14:49:07 +01:00
Félix Malfait
34a3a66451
Improve flaky storybook test (#8515)
I don't think that will solve the flaky test but at least it will
cleanup the error message to avoid confusion
2024-11-15 14:29:39 +01:00
Félix Malfait
bd18eb8b42
Add logging for scopeid error (#8513)
Can't figure out https://github.com/twentyhq/twenty/issues/8347 so I'm
adding logs, maybe it'll help debug in the future!
2024-11-15 14:16:09 +01:00
Thomas des Francs
30bcdda323
Modal Background & box shadow fixes (#8506)
# Before

![CleanShot 2024-11-14 at 19 20
59](https://github.com/user-attachments/assets/9a561416-a08c-4cc4-ac71-b3f4410950d8)

# After

![CleanShot 2024-11-14 at 19 21
34](https://github.com/user-attachments/assets/eaa78d94-a337-4d91-9c36-8ac0dd27d952)
2024-11-15 12:44:58 +01:00
martmull
4f99b8eea1
8495 workflow display relevant columns in workflow related tables (#8502)
## After
### Workflows

![image](https://github.com/user-attachments/assets/535e0ff5-1276-41b9-aa52-d66150cd85ae)
### WorkflowRuns

![image](https://github.com/user-attachments/assets/8a7e076b-53ec-4b72-97d8-41bd77ed59ac)
### WorkflowVersions

![image](https://github.com/user-attachments/assets/7d2566b2-e6ea-4a3a-8e88-0f6850203219)

## Change Created By into Executed By in workflowRuns

![image](https://github.com/user-attachments/assets/b90b7a07-a4bc-4bd2-b7f5-ab7d2ae6ee45)
2024-11-15 10:13:36 +00:00
Thomas Trompette
a2a272fed4
Add crud actions (#8500)
Adding update / delete / find actions

Update and delete are not really different than creation.

Find uses the same logique as for graphql filters.
Expected formats are:

Filter
```
{
  "and": [
    {
      "name": {
        "eq": "salut"
      }
    },
    {
      "employees": {
        "eq": "0"
      }
    }
  ]
}
```

Order
`[ { "name": 'AscNullsFirst' } ]`
2024-11-15 10:10:00 +01:00
Félix Malfait
736635a94b
Begin moving to postgres spilo + adding pgvector (#8309)
We will remove the `twenty-postgres` image that was used for local
development and only use `twenty-postgres-pilo` (which we use in prod),
bringing the development environment closer to prod and avoiding having
to maintain 2 images.


Instead of provisioning the super user after the db initialization, we
directly rely on the superuser provided by Spilo for simplicity. We also
introduce a change that tries to create the right database (`default` or
`test`) based on the context.
  

How to test:
```
docker build -t twentycrm/twenty-postgres-spilo:latest -f ./packages/twenty-docker/twenty-postgres-spilo/Dockerfile .
docker images --no-trunc | grep twenty-postgres-spilo
postgres-on-docker:
	docker run \
	--name twenty_pg \
	-e PGUSER_SUPERUSER=twenty \
	-e PGPASSWORD_SUPERUSER=twenty \
	-e ALLOW_NOSSL=true \
	-v twenty_db_data:/home/postgres/pgdata \
	-p 5432:5432 \
	REPLACE_WITH_IMAGE_ID
```
2024-11-15 09:38:30 +01:00
Weiko
cfe3515aa6
Set cache metadata version to infinite TTL (#8507)
## Context
To avoid having a corrupt metadata version, we want to remove TTL for
that key.

## Test
<img width="592" alt="Screenshot 2024-11-15 at 00 02 05"
src="https://github.com/user-attachments/assets/9da0ae33-26a8-4e7b-82d0-dd691135a08f">
2024-11-15 00:05:42 +01:00
Charles Bochet
5384b4aba5
Fix record board export not taking filters into account (#8505)
Fix Export CSV action not taking into account the filters applied on the
Kanban index view
2024-11-14 23:28:53 +01:00
Marie
a799370483
Aggregated queries #1 (#8345)
First step of https://github.com/twentyhq/twenty/issues/6868

Adds min.., max.. queries for DATETIME fields
adds min.., max.., avg.., sum.. queries for NUMBER fields 

(count distinct operation and composite fields such as CURRENCY handling
will be dealt with in a future PR)

<img width="1422" alt="Capture d’écran 2024-11-06 à 15 48 46"
src="https://github.com/user-attachments/assets/4bcdece0-ad3e-4536-9720-fe4044a36719">

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
Co-authored-by: Weiko <corentin@twenty.com>
2024-11-14 18:05:05 +01:00
Harsh Singh
c966533f26
fix: search error in filter & sort dropdowns (#8493)
Fixes: #8483

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-11-14 17:51:54 +01:00
Ketan Mehta
51c54d4c5b
validation on Select field (#8316)
fix #8204
I changed "API keys" to "API values".
Stopped inputting special characters in Select field option keys.

@lucasbordeau please check the changes and tell me if I need to do any
other changes. :)

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2024-11-14 17:46:18 +01:00
Guillim
15b8b9b158
Feature : Adding percentage option to Input Number (#8481)
fixing #7375

---------

Co-authored-by: guillim <guillaume@twenty.com>
2024-11-14 14:23:25 +01:00
martmull
090f612c4b
Fix open api specs for MULTI_SELECT (#8494)
## Before

![image](https://github.com/user-attachments/assets/b7384fb3-0f32-498b-99bb-27b8c15db00c)

## After

![image](https://github.com/user-attachments/assets/a8429849-559d-4494-8636-e5a6ddda7b47)
2024-11-14 12:07:31 +01:00
martmull
9ac949dec8
[Workflow] Add search in variable dropdown (#8479)
- fix Icon variable Plus
- add search input 
- fix dropdown height

## Before

![image](https://github.com/user-attachments/assets/49f73efd-21cc-4ecd-a494-f51edc34dc57)


## After

![image](https://github.com/user-attachments/assets/2af2c7ee-72fd-4dae-a1ef-19e75e1ac026)
2024-11-14 11:40:06 +01:00
BOHEUS
d72068eb99
Fix BullMQ deprecation warning (#8486)
Related to #8470
2024-11-13 19:38:29 +01:00
Harsh Singh
c98a8a2258
fix: dropdown toggle functionality (#8476)
Fixes: #8468
2024-11-13 19:36:21 +01:00
Khuddite
2fb920f68c
Fix typo in branch name (#8480)
Fixes #8471 

Updated `0.33.0-canaray` -> `0.33.0-canary`

![CleanShot 2024-11-13 at 09 45
36](https://github.com/user-attachments/assets/6a365542-9b4d-4279-9ef4-966d22863eba)
2024-11-13 19:35:15 +01:00
nitin
795cb12a12
minor fix - spacing on Data model title fixed (#8467) 2024-11-13 19:34:15 +01:00
Nicolas Rouanne
cde96cf526
Fix/validate access token user not found (#8484)
# Description
Closes #7244 

See details about implementation:
https://github.com/twentyhq/twenty/issues/7244#issuecomment-2473845859
and
https://github.com/twentyhq/twenty/issues/7244#issuecomment-2473905514

# Changes
- return a `USER_NOT_FOUND` error instead of `INVALID_INPUT` error
- tweak unit tests to correctly test `AuthExceptionCode`, as it wasn't
properly tested; it was actually a _false positive_. This is because
[`toThrow`](https://jestjs.io/docs/expect#tothrowerror) from jest only
checks the `message`, and not any other method / attributes from the
`Error`. It's a know behaviour and not considered a bug, see
https://github.com/jestjs/jest/issues/13232#issuecomment-1252392845
2024-11-13 18:50:30 +01:00
Baptiste Devessier
898006f89d
Prevent automatic zoom when focusing inputs on iOS (#8477)
This is the result of a long discussion we had here:
https://github.com/twentyhq/twenty/issues/8001.

The goal is to stop iOS from automatically zooming when the user focuses
on an input whose font size is less than 16px.

The options were:

1. Disable zoom for all devices
2. Disable zoom for devices detected as iOS devices, which doesn't
prevent users from zooming manually but fixes the auto-zoom bug
3. Set the font size of the inputs to be equal to or greater than
16px—this change would take a lot of time

To me, the second option is the best, as iOS prevents developers from
disabling zoom. They saw that it was overused and chose to restrict this
setting. Setting a `maximum-scale` doesn't prevent users from zooming,
but it fixes the initial bug we had.

My implementation can be seen as [progressive
enhancement](https://developer.mozilla.org/en-US/docs/Glossary/Progressive_Enhancement
): If we can detect that the user uses an iOS device, we'll set the
`maximum-scale` viewport property. Relying on the user agent is always
unstable, and the check might fail unpredictably. We might not disallow
auto-zoom for some iOS devices.

However, I think we can either:

- Invest some time to choose a more reliable user detection pattern if
the one I suggest is not sufficient ([we find many different checks on
the
internet](https://stackoverflow.com/questions/9038625/detect-if-device-is-ios),
I'm not sure which one is the best)
- Choose to apply the viewport setting to all devices and remove the JS
code. According to my tests, it doesn't prevent zooming on desktops.
However, it does on Android phones. I think it's not lovely to disallow
zoom, but if the team agrees that we should go this way, I won't
disagree.

I know my JavaScript code does not follow a pattern we want to spread in
the app. The synchronous script will run as soon as possible to ensure
the viewport is correctly set when the website launches. This shouldn't
be an example followed by others.

Thanks, @harshit078, for your help in thinking about the best option.

I'm tagging @lucasbordeau and @charlesBochet for a technical review.

I would appreciate if someone could test on a more recent iOS device
than mine.

Here is a demonstration of the behavior on iOS:


https://github.com/user-attachments/assets/d49fb65f-dd76-455c-9ac0-d4c002a7fe89
2024-11-13 15:34:20 +01:00
Thomas Trompette
faeea2b887
Create record action (#8460)
- Add create record action
- Migrate all step name => action in a common folder
- Separate types
2024-11-13 15:21:40 +01:00
martmull
ba79a1d324
Fix style (#8475)
## Before

![image](https://github.com/user-attachments/assets/1c96c30c-da06-4caa-a05d-1c58006dcfa5)

## After

![image](https://github.com/user-attachments/assets/523fac64-7521-4c0f-bfa8-457d48493628)
2024-11-13 13:32:40 +00:00
Thomas des Francs
d2af97276d
0.32 changelog (#8461)
<img width="800" alt="0 32-webhooks"
src="https://github.com/user-attachments/assets/0c91bda3-4a8d-4808-bb8c-3b351a186a21">

<img width="800" alt="0 32-improved-cmdk"
src="https://github.com/user-attachments/assets/ebb98c2e-4b79-4dad-8946-e9ecd6c51bbc">
2024-11-13 12:57:30 +01:00