7211730570
New field type: DATE ( #4876 )
...
### Description
New field type: DATE
### Refs
https://github.com/twentyhq/twenty/issues/4377
### Demo
https://jam.dev/c/d0b59883-593c-4ca3-966b-c12d5d2e1c32
Fixes #4377
---------
Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com >
Co-authored-by: v1b3m <vibenjamin6@gmail.com >
Co-authored-by: Toledodev <rafael.toledo@engenharia.ufjf.br >
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2024-04-11 17:29:29 +02:00
bf60227d67
feat: add SENTRY_RELEASE env ( #4912 )
...
Add support for a new SENTRY_RELEASE and SENTRY_ENVIRONMENT env.
It is optional and allows to init sentry with a Release version and an
env (used internally at Twenty).
Docker image have been updated do intergrate the new env as an Argument
2024-04-11 16:53:15 +02:00
f1cc1c60e0
Fix ID type being used in place of UUID in graphql and metadata queries ( #4905 )
...
We have recently discovered that we were using ID type in place of UUID
type in many place in the code.
We have merged #4895 but this introduced bugs as we forgot to replace it
everywhere
2024-04-10 11:33:17 +02:00
4f2c29dce0
uuid codegen update ( #4897 )
...
Following https://github.com/twentyhq/twenty/pull/4895/files
2024-04-09 18:06:39 +02:00
85caed3463
4702 rename calendareventattendee to calendareventparticipant ( #4761 )
...
Closes #4702
2024-04-04 14:00:10 +02:00
306ef1df9c
feat: schema version header check ( #4563 )
...
closes https://github.com/twentyhq/twenty/issues/4479
tried to catch the error inside various places including
https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/integrations/exception-handler/exception-handler.service.ts
but it seems like the error never reaches the GraphQL module 😮
any idea where we could intercept such an error `Cannot query field`?
---------
Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com >
2024-04-04 09:52:45 +02:00
d24d5a9a2e
feat: authorize screen ( #4687 )
...
* authorize screen
* lint fix
* add BlankLayout on Authorize route
* typo fix
* route decorator fix
* Unrelated fix
---------
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
2024-03-31 12:23:56 +02:00
3171d0c87b
feat: address composite field ( #4492 )
...
Added new Address field input type.
---------
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com >
2024-03-28 16:50:38 +01:00
d687523e22
4643 create a pre hook for calendar events ( #4666 )
...
* copy message pre hook
* add CalendarQueryHookModule to workspace-pre-query-hook.module
* use CalendarChannelVisibility enum
* add calendarEvent to workspace-pre-query-hook.config
* fix pre-hook
* fix findOne prehook in config
* rename fragments
* fix import
* update findOne prehook and create can-access-calendar-event.provider
* replace provider with service
* fix type
* renaming
* remove unnecessary eslint skip
---------
Co-authored-by: Weiko <corentin@twenty.com >
2024-03-27 19:44:35 +01:00
416eb1eafd
4506 change field labels and field type for calendarevent object metadata to match figma ( #4679 )
...
* update calendarEvent labels and description to match Figma
* modify conferenceUri to conferenceLink with LINK type
* update format-google-calendar-event.util to match new conferenceLink
* update CalendarEventDetails since overriding the fields is no longer needed
* fix mock metadata
* generate new uuid for field conferenceLink
2024-03-27 15:17:45 +01:00
d876b40056
Logs show page ( #4611 )
...
* Being implementing events on the frontend
* Rename JSON to RAW JSON
* Fix handling of json field on frontend
* Log user id
* Add frontend tests
* Update packages/twenty-server/src/engine/api/graphql/workspace-query-runner/jobs/save-event-to-db.job.ts
Co-authored-by: Weiko <corentin@twenty.com >
* Move db calls to a dedicated repository
* Add server-side tests
---------
Co-authored-by: Weiko <corentin@twenty.com >
2024-03-22 14:01:16 +01:00
8e4123e772
48 add yearly monthly sub switch ( #4577 )
2024-03-21 10:47:25 +01:00
da12710fe9
feat: multi-workspace (frontend) ( #4232 )
...
* select workspace component
* generateJWT mutation
* workspaces state and hooks
* requested changes
* mutation fix
* requested changes
* user workpsace delete call
* migration to drop and createt user workspace
* revert select props
* add DropdownMenu
* seperate multi-workspace dropdown as component
* Signup button displayed accurately
* update seed data for multi-workspace
* lint fix
* lint fix
* css fix
* lint fix
* state fix
* isDefined check
* refactor
* add default workspace constants for logo and name
* update migration
* lint fix
* isInviteMode check on sign-in/up
* removeWorkspaceMember mutation
* import fixes
* prop name fix
* backfill migration
* handle edge cases
* refactor
* remove migration query
* delete user on no-workspace found condition
* emit workspaceMember.deleted
* Fix event class and unrelated fix linked to a previously missing dependency
* Edit migration (I did it in prod manually)
* Revert changes
* Fix tests
* Fix conflicts
---------
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
2024-03-20 14:43:41 +01:00
35d41e38c8
Set optional checkout.session.url ( #4569 )
...
* Set optional checkout.session.url
* Lint
* Edit .env.example
* Vale CI
---------
Co-authored-by: Félix Malfait <felix.malfait@gmail.com >
2024-03-20 07:04:07 +01:00
4bfb90657f
Add JSON field type and Event object ( #4566 )
...
* Add JSON field type and Event object
* Simplify code
* Adress PR comments and add featureFlag
2024-03-19 21:54:08 +01:00
4ab426c52a
4485 create a custom resolver for calendar events ( #4568 )
...
* create timeline calendar event resolver
* working on getCalendarEventsFromPersonIds
* add count query
* add calendarEventVisibility and add typing
* update calendarEvent dto
* modify calendarEvent dto
* compute calendar event visibility
* fix types
* add FieldMetadata in timeline calendar dtos and create queries and fragments
* remove fieldMatadata
* fix naming
* update resolver
* add getCalendarEventsFromCompanyId
* fix queries
* refactor queries
* fix visibility
* fix calendar event attendees bug
* visibility is working
* remove @IDField
* update gql queries
* update dto
* add error
* add enum
* throw http exception
* modify error
* Refactor calendar event visibility check
* use enum
2024-03-19 18:34:00 +01:00
62d414ee66
40 remove self billing feature flag ( #4379 )
...
* Define quantity at checkout
* Remove billing submenu when not isBillingEnabled
* Remove feature flag
* Log warning when missing subscription active workspace add or remove member
* Display subscribe cta for free usage of twenty
* Authorize all settings when subscription canceled or unpaid
* Display subscribe cta for workspace with canceled subscription
* Replace OneToOne by OneToMany
* Add a currentBillingSubscriptionField
* Handle multiple subscriptions by workspace
* Fix redirection
* Fix test
* Fix billingState
2024-03-12 18:10:27 +01:00
5287b7c4ab
Add icon, position and key on View ( #4413 )
...
* Add view key field
* Update Prefill demo, seed dev, prefill new workspace
2024-03-11 17:00:19 +01:00
60239353a9
Create new type position ( #4336 )
...
* Create new type position
* Remove position filter type
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-03-06 14:41:51 +01:00
0b889ef089
43 add billing portal link ( #4318 )
...
* Add create billing portal session endpoint
* Rename checkout to checkoutSession
* Add billig portal query in twenty-front
* Add billing menu item
* WIP: add menu page
* Code review returns
* Rename request files
* Unwip: add menu page
* Add billing cover image
* Fix icon imports
* Rename parameter
* Add feature flag soon pill
2024-03-05 17:40:58 +01:00
28a093d495
42 add billing portal endpoint ( #4315 )
...
* Add create billing portal session endpoint
* Rename checkout to checkoutSession
* Code review returns
2024-03-05 15:28:45 +01:00
63d403454c
feat: multi-workspace followup ( #4197 )
...
* Seed UserWorkspace for existing demo/dev users
* add workspaces field to currentUser
* new token generation endpoint for switching workspace
* lint fix
* include dependency
* requested fixes
* resolver test pass
* changing defaultWorkspace and workspaceMember when switching workspaces
* tests fix
* requested changes
* delete user/workspace edge case handled
* after merge
* requested changes
* :wq!
* workspace manytoone relation
* lint fix / import fix
* gql codegen
* Fix migrations and generateJWT
* migration fix
* relations fix
---------
Co-authored-by: martmull <martmull@hotmail.fr >
2024-03-04 16:14:04 +01:00
9ca3dbeb70
39 create subscription and success modale ( #4208 )
...
* Init add choose your plan page component
* Update price format
* Add billing refund trial duration env variable
* Add billing benefits
* Add Button
* Call checkout endpoint
* Fix theme color
* Add Payment success modale
* Add loader to createWorkspace submit button
* Fix lint
* Fix dark mode
* Code review returns
* Use a resolver for front requests
* Fix 'create workspace' loader at sign up
* Fix 'create workspace' with enter key bug
2024-02-28 19:51:04 +01:00
0ee512a983
3959 create a activationstatus in coreworkspace and use it in front to redirect properly ( #3989 )
...
* Add computed field to workspace entity
* Add activationStatus to front requests
* Update Selector
* Use activation status
* Stop using selector for mock values
* Remove isCurrentWorkspaceActiveSelector
* Use activation status
* Fix typo
* Use activation status
* Create hook for sign in up navigate
* Update hook to handle profile creation
* Use varaible
* Use more readable boolean function
2024-02-16 16:00:39 +01:00
3cbf958a1c
GH-3652 Add forgot password on sign-in page ( #3789 )
...
* Remove auth guard from password reset email endpoint
* Add arg for GQL mutation and update its usage
* Add forgot password button on sign-in page
* Generate automated graphql queries
* Move utils to dedicated hook
* Remove useless hook function
* Split simple hook methods
* Split workspace hook
* Split signInWithGoogle hook
* Split useSignInUpForm
* Fix error in logs
* Add Link Button UI Component
* Add storybook doc
---------
Co-authored-by: martmull <martmull@hotmail.fr >
2024-02-09 17:37:44 +01:00
7425223f83
3628 timebox separate user creation from workspace creation ( #3737 )
...
* Remove workspace schema creation from signUp
* Set user workspaceMember nullable
* Remove workspace creation
* Handle null workspace in tokens
* Update onboarding status
* Generate types
* Move createWorkspace to workspace resolver
* Create workspace after signup
* Update createWorkspace return type
* Update createWorkspace return type
* Create core.workspace at signup
* WIP
* Fix create workspace
* Fix create workspace
* Clean code
* Remove useless recoil set
* Simplify create workspace request
* Set currentWorkspace at login
* Fix tests
* Create a recoil value for is workspaceSchema created
* Rename createWorkspace to createWorkspaceSchema
* Code review returns
* Use AppPath when possible
* Try without state
* Fix
* Fixes
* Rename createWorkspaceSchema to activateWorkspace
* Remove defaultAvatarUrl from user
* Add defaultAvatarUrl to core user
This reverts commit 1701c30eb18804558293cc42043aedf96ea888df.
* Add defaultAvatarUrl to core user
This reverts commit 1701c30eb18804558293cc42043aedf96ea888df.
* Fix ci
* Fix tests
* Fix storybook
* Fix test
* Remove useless query
* Fix test
* Fix test
* Fix mock data
* Fix test
* Clean Mock Requests
* Fix tentative
* Revert "Clean Mock Requests"
This reverts commit 8aa20a34363ffddfdee24f18fc80b27ea0ad5e1d.
* Fix
* Revert "Fix"
This reverts commit 2df7e9b6569b8bfb53f6a45391db725e28d16a18.
* Revert "Revert "Clean Mock Requests""
This reverts commit 3aefef8e9600d161434a047e845563d1b8e0692e.
* Revert "Fix tentative"
This reverts commit 13e7748d6f3b3858d30fb08adbc8ad347c5556ee.
* Update filename
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-02-09 12:06:11 +01:00
3831ddc002
3803 use email visibility to display only the shared information backend ( #3871 )
...
* update dto
* wip
* compute thread visibility
* fix bugs
* fix bug
* improve typing
* working
* update according to comments
* use string
2024-02-07 16:35:19 +01:00
a9349f9fea
Add deleteOneObject mutation ( #3682 )
...
* Add deleteOneObject mutation
* codegen
* move relationToDelete to dedicated file
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-01-30 09:47:58 +01:00
c5ea2dfe1e
3675 inbox count is wrong in emailthreads ( #3677 )
...
* add type
* query total number of threads
* graphql data generate
* wip
* wip
* Fix fetch more
* fix
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
2024-01-29 18:23:09 +01:00
6004969096
3263 modify timeline messagingservice to allow the frontend to get multiple participants in a thread ( #3611 )
...
* wip
* wip
* add pagination
* wip
* wip
* wip
* update resolver
* wip
* wip
* endpoint is working but there is still work to do
* merge main
* wip
* subject is now first subject
* number of messages is working
* improving query
* fix bug
* fix bug
* added parameter
* pagination introduced a bug
* pagination is working
* fix type
* improve typing
* improve typing
* fix bug
* add displayName
* display displayName in the frontend
* move entities
* fix
* generate metadata
* add avatarUrl
* modify after comments on PR
* updates
* remove email mocks
* remove console log
* move files
* remove mock
* use constant
* use constant
* use fragments
* remove console.log
* generate
* changes made
* update DTO
* generate
2024-01-25 17:04:51 +01:00
46f0eb522f
GH-3245 Change password from settings page ( #3538 )
...
* GH-3245 add passwordResetToken and passwordResetTokenExpiresAt column on user entity
* Add password reset token expiry delay env variable
* Add generatePasswordResetToken mutation resolver
* Update .env.sample file on server
* Add password reset token and expiry migration script
* Add validate password reset token query and a dummy password update (WIP) resolver
* Fix bug in password reset token generate
* add update password mutation
* Update name and add email password reset link
* Add change password UI on settings page
* Add reset password route on frontend
* Add reset password form UI
* sign in user on password reset
* format code
* make PASSWORD_RESET_TOKEN_EXPIRES_IN optional
* add email template for password reset
* Improve error message
* Rename methods and DTO to improve naming
* fix formatting of backend code
* Update change password component
* Update password reset via token component
* update graphql files
* spelling fix
* Make password-reset route authless on frontend
* show token generation wait time
* remove constant from .env.example
* Add PASSWORD_RESET_TOKEN_EXPIRES_IN in docs
* refactor emails module in reset password
* update Graphql generated file
* update email template of password reset
* add space between date and text
* update method name
* fix lint issues
* remove unused code, fix indentation, and email link color
* update test file for auth and token service
* Fix ci: build twenty-emails when running tests
---------
Co-authored-by: martmull <martmull@hotmail.fr >
2024-01-25 10:28:48 +01:00
f1b3d1537a
Load views on user load and read in cache ( #3552 )
...
* WIP
* Poc
* Use cached root query + remove proloaded views state
* Fix storybook test + fix codegen
* Return default schema if token is absent, unauthenticated if token is invalid
* Use enum instead of bool
---------
Co-authored-by: Thomas Trompette <thomast@twenty.com >
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-01-22 16:00:16 +01:00
c6ae480856
feat(signup): allow to block signup ( #3209 )
...
* feat(signup): allow to block signup
* feat(signup): update environment variable documentation
* test: update auth service tests
* feat(signup): prevent user from reaching out the sign up page
* Fix lint
* Fixes
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2024-01-11 11:48:14 +01:00
46ab88cb9c
GH-2829 Add Sentry on frontend ( #3111 )
...
* GH-2829 pass sentry dsn key from backend in ClientConfig
* GH-2829 add Sentry library on frontend
* GH-2829 fetch dsnKey in GQL and add a state
* GH-2829 initialize Sentry on frontend
* GH-2829 fix linting issues
* Update yarn.lock
* GH-2829 update graphql schema for clientConfig
* GH-2829 remove Sentry comments
* GH-2829 rename sentry state
* GH-2829 rename dsnKey to dsn
* GH-2829 refactor to use componentEffect for sentry initialization
* GH-2829 fix linting issues
* GH-2829 update Graphql types
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2023-12-21 23:50:24 +01:00
1b7580476d
2929 fetch emails from backend and display them in the UI ( #3092 )
...
* sending mock data from the resolver
* add sql raw query to the resolver
* improve query
* fix email component css
* fix query
* css adjustments
* create hard limit for mail display
* fix display name ellipsis
* add service
* fetching email on company page is working
* graphql generate
* move queries into separate files
* add types
* renaming
* add early return
* modified according to comments
* graphql data generate
* fix bug after renaming
* fix issue with mock data
2023-12-21 18:21:07 +01:00
a10f353a4c
feat: redirect to Plan Required page if subscription status is not active ( #2981 )
...
* feat: redirect to Plan Required page if subscription status is not active
Closes #2934
* feat: navigate to Plan Required in PageChangeEffect
* feat: add Twenty logo to Plan Required modal
* test: add Storybook story
* Fix lint
---------
Co-authored-by: Charles Bochet <charles@twenty.com >
2023-12-14 12:39:22 +01:00
5bdca9de6c
Migrate to a monorepo structure ( #2909 )
2023-12-10 18:10:54 +01:00