Compare commits

..
Author SHA1 Message Date
Charles BochetandGitHub f8c057deea Fix sign up broken because of missing workspace schema (#6013)
Allow workspace datasource factory to return null if the workspace
schema has not been created yet
2024-06-25 10:59:07 +02:00
martmullandGitHub 7fb5c9b60f Remove useless api position parameter (#6010)
- remove buggy addition of position parameter
- check created records are in first position by default
2024-06-25 10:30:19 +02:00
Hanch HanandGitHub 797c2f4b6e Add calendar cron command on self-hosting-var.mdx (#6009)
To enable Google Calendar integration, you need to run `yarn
command:prod cron:calendar:google-calendar-sync` in the worker
container. However, currently, the self-hosting guide does not tell you
how to do it. If you just follow the guide, only Gmail integration will
be enabled. So I added the command for calendar sync cron on
self-hosting-var.mdx.
2024-06-25 08:59:31 +02:00
a001bf1514 5951 create a command to trigger the import of a single message (#5962)
Closes #5951

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-06-24 18:01:22 +02:00
bosiraphaelandGitHub f3701281e9 Create new sync statuses and stages for calendar (#5997)
Create fields:
- syncStatus
- syncStage
- syncStageStartedAt
2024-06-24 16:39:56 +02:00
Charles BochetandGitHub ad61efe6ed Remove multi select usage (#6004)
As per title!

Also, I'm removing an incorrect logic in the enum migration runner that
takes care of the case where we have no defaultValue but non nullable
which is not a valid business case.
2024-06-24 16:39:17 +02:00
24c31f9b39 Fix(view): Show Kanban View Creation (#5985)
# This PR
- Revise my previous work (PR #5969)
Because it would break the current logic and cause unexpected behavior.
(Issue #5979)
- Solve (Issue #5915) with another way

@lucasbordeau  What do you think about my current approach?
@JarWarren Please check it out—I'd love to get your feedback too!

---------

Co-authored-by: Achsan <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-24 16:05:40 +02:00
57bbd7c129 Add update chevron (#5988)
Fixes #5986 


1. Added right chevron to Fields Menu Item
<img width="735" alt="Screenshot 2024-06-21 at 5 59 46 PM"
src="https://github.com/twentyhq/twenty/assets/63531478/1515aba0-6732-424d-a0b3-5cc826a35b16">



2. Changed color of Hidden fields menu item chevron and stroke of left
chevron
<img width="735" alt="Screenshot 2024-06-21 at 6 21 30 PM"
src="https://github.com/twentyhq/twenty/assets/63531478/20952197-2f09-486c-a3bb-5b6c285a6996">

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-24 15:01:21 +02:00
901ef65545 feat: add australian dollar currency (#5990)
Hi Twenty team,
I'd love to have Australian dollar as an option in Twenty! Please let me
me know if I have missed anything I need to change to enable this.
Thanks for a a great product

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-24 14:55:37 +02:00
28c8f0df32 Turned on tooltip on kanban cards with shortDelay (#5991)
fixes: #5982 

Demo:


https://github.com/twentyhq/twenty/assets/58113282/6593381c-c01a-4259-9caa-8612247a9e95

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-24 14:51:18 +02:00
bosiraphaelandGitHub 77f9f6473b Create feature flag for calendar V2 (#5998)
Create feature flag for calendar V2
2024-06-24 13:54:52 +02:00
Charles BochetandGitHub 498e4ff6ba Refactor infiniteScoll to use debouncing (#5999)
Same as https://github.com/twentyhq/twenty/pull/5996 but with
useDebounced as asked in review
2024-06-24 13:45:07 +02:00
2e4ba9ca7b Remove Right-Edge Gap in Table Cell Display (#5992)
fixes #5941 

![Screenshot from 2024-06-23
17-24-24](https://github.com/twentyhq/twenty/assets/59247136/ae67603a-824d-4e6b-b873-2d58e6296341)

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-24 12:03:46 +02:00
Charles BochetandGitHub e8f386ce43 Fix infinite scroll issue on table (#5996)
We had an issue on infinite scroll on table view.
The fetch more logic was modifying isTableLastRowVisible state (which is
wrong, how could it know)? This was done to prevent loading too much
data at once. This was causing some race condition on
isTableLastRowVisible (as the table itself was also changing it
depending on the real visibility of the line)

I have remove this hacky usage of isTableLastRowVisible and replaced it
by a setTimeout to let the user some time to scroll and introduce a
throttle logic.
2024-06-24 11:20:16 +02:00
Charles BochetandGitHub 158e7a31f4 Improve tests (#5994)
Our tests on FE are red, which is a threat to code quality. I'm adding a
few unit tests to improve the coverage and lowering a bit the lines
coverage threshold
2024-06-23 20:12:18 +02:00
e13dc7a1fc [FlexibleSchema] Add IndexMetadata decorator (#5981)
## Context
Our Flexible Schema engine dynamically generates entities/tables/APIs
for us but was not flexible enough to build indexes in the DB. With more
and more features involving heavy queries such as Messaging, we are now
adding a new WorkspaceIndex() decorator for our standard objects (will
come later for custom objects). This decorator will give enough
information to the workspace sync metadata manager to generate the
proper migrations that will create or drop indexes on demand.
To be aligned with the rest of the engine, we are adding 2 new tables:
IndexMetadata and IndexFieldMetadata, that will store the info of our
indexes.

## Implementation

```typescript
@WorkspaceEntity({
  standardId: STANDARD_OBJECT_IDS.person,
  namePlural: 'people',
  labelSingular: 'Person',
  labelPlural: 'People',
  description: 'A person',
  icon: 'IconUser',
})
export class PersonWorkspaceEntity extends BaseWorkspaceEntity {
  @WorkspaceField({
    standardId: PERSON_STANDARD_FIELD_IDS.email,
    type: FieldMetadataType.EMAIL,
    label: 'Email',
    description: 'Contact’s Email',
    icon: 'IconMail',
  })
  @WorkspaceIndex()
  email: string;
```
By simply adding the WorkspaceIndex decorator, sync-metadata command
will create a new index for that column.
We can also add composite indexes, note that the order is important for
PSQL.
```typescript
@WorkspaceEntity({
  standardId: STANDARD_OBJECT_IDS.person,
  namePlural: 'people',
  labelSingular: 'Person',
  labelPlural: 'People',
  description: 'A person',
  icon: 'IconUser',
})
@WorkspaceIndex(['phone', 'email'])
export class PersonWorkspaceEntity extends BaseWorkspaceEntity {
```

Currently composite fields and relation fields are not handled by
@WorkspaceIndex() and you will need to use this notation instead
```typescript
@WorkspaceIndex(['companyId', 'nameFirstName'])
export class PersonWorkspaceEntity extends BaseWorkspaceEntity {
```
<img width="700" alt="Screenshot 2024-06-21 at 15 15 45"
src="https://github.com/twentyhq/twenty/assets/1834158/ac6da1d9-d315-40a4-9ba6-6ab9ae4709d4">

Next step: We might need to implement more complex index expressions,
this is why we have an expression column in IndexMetadata.
What I had in mind for the decorator, still open to discussion
```typescript
@WorkspaceIndex(['nameFirstName', 'nameLastName'], { expression: "$1 || ' ' || $2"})
export class PersonWorkspaceEntity extends BaseWorkspaceEntity {
```

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-06-22 12:39:57 +02:00
0b4bfce324 feat: drop calendar repository (#5824)
This PR is replacing and removing all the raw queries and repositories
with the new `TwentyORM` and injection system using
`@InjectWorkspaceRepository`.
Some logic that was contained inside repositories has been moved to the
services.
In this PR we're only replacing repositories for calendar feature.

---------

Co-authored-by: Weiko <[email protected]>
Co-authored-by: bosiraphael <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-06-22 09:26:58 +02:00
Vitor Hugo RodriguesandGitHub 91b0c2bb8e feat: add brazilian real currency (#5989)
Added support to Brazilian Real currency code, added the new code on
`CurrencyCode.ts` and on `SETTINGS_FIELD_CURRENCY_CODES`
2024-06-22 08:38:52 +02:00
d126b148a1 Navigation Panel UI Sizing Changes (#5964)
## Fixes #5902 :
- [x] Navigation items' height should be risen to 28px.
> For clarity:
- [x] Also increased the height of NavigationDrawerSectionTitle to 28px
to match navigation item.
- [x] The gap between sections should be reduced to 12px
> Was already completed it seems.
- [x] The workspace switcher should be aligned with the navigation items

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-21 16:49:48 +02:00
9a4a2e4ca9 Fix links chip design (#5963)
Fix https://github.com/twentyhq/twenty/issues/5938 and
https://github.com/twentyhq/twenty/issues/5655

- Make sure chip count is displayed
- Fix padding
- Fix background colors, border
- Add hover and active states

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-21 16:15:17 +02:00
Akilesh PraveenandGitHub 732653034e fix: background colors for record table (#5967)
# Summary
- Address issue #5959 
- Update background color on hover & click for record table

# Test Plan

![Kapture 2024-06-19 at 20 32
44](https://github.com/twentyhq/twenty/assets/10789158/18a58c09-040a-47e6-953d-aac6f3803486)
2024-06-21 16:01:27 +02:00
35b9b29f20 Fix: Selected Line Not Fully Highlighted in Blue (#5966)
Fixes: #5942

<img width="1517" alt="Screenshot 2024-06-19 at 5 07 35 PM"
src="https://github.com/twentyhq/twenty/assets/63531478/c88a98e9-7ce3-43fe-a496-1a5dfe796b81">

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-21 15:49:47 +02:00
JarWarrenandGitHub 51e3454d50 Update LOGGER_DRIVER env var description (#5968)
Update the docs to accurately reflect `LoggerDriverType`. Using `sentry`
throws an error on startup.

```
export enum LoggerDriverType {
  Console = 'console',
}
```

Happy to change the wording of course.
2024-06-21 14:52:36 +02:00
Thomas TrompetteandGitHub 68e20c0e87 Add disabled style on non-draggable menu items (#5974)
Closes https://github.com/twentyhq/twenty/issues/5653

<img width="256" alt="Capture d’écran 2024-06-20 à 17 19 44"
src="https://github.com/twentyhq/twenty/assets/22936103/c9d7e58f-818b-44f2-8aa4-4d85c8e1b6be">
<img width="231" alt="Capture d’écran 2024-06-20 à 17 20 03"
src="https://github.com/twentyhq/twenty/assets/22936103/5e981e93-9d59-403a-bb6b-0ff75151ace2">
2024-06-21 14:42:48 +02:00
7a0f097df4 Fix(view): Create Button is not visible when creating Kanban View (#5969)
Closes #5915 

This issue occurs only when there is no select field.

The user then creates a new one in settings and returns back to the view
picker.
And the bug arises, it because `viewPickerKanbanFieldMetadataId` is not
being set correctly.

When a user navigate to settings, the dirty state should be set to
false. As a result, after re-rendering the view picker component, it
triggers the effect to set `viewPickerKanbanFieldMetadataId`

---------

Co-authored-by: Achsan <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-21 12:13:27 +02:00
Pacifique LINJANJAandGitHub 9228667a57 Add the support of Empty and Non-Empty filter (#5773) 2024-06-20 18:18:12 +02:00
Lucas BordeauandGitHub 9e08445bff Fix date picker wrong on certain timezones (#5972)
Timezone with a negative offset weren't working good with date pickers.

I split the logic for display and parsing between date only and
datetime.

Date time is sending and displaying using timezone, and date only is
sending and displaying by forcing the date to take its UTC day and month
and 00:00:00 time.

This way its consistent across all timezones.
2024-06-20 17:13:30 +02:00
Aditya PimpalkarandGitHub 8c6e96c41b fix: Column header menu Filter button (#5973)
fixes: #5957



https://github.com/twentyhq/twenty/assets/13139771/51d42aa5-c774-4cbe-adca-b95ea6e17bbd
2024-06-20 16:44:28 +02:00
59b9ce689d add object id column to csv export (#5971)
closes: #5893

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-06-20 16:42:33 +02:00
bc8c895b0e Feat : Introduced Delay Options for Tooltip (#5766)
Fixes https://github.com/twentyhq/twenty/issues/5727

---------

Co-authored-by: Rushikesh Tarapure <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-19 16:37:44 +02:00
bosiraphaelandGitHub 86f95c0870 5898 Create a cron to monitor messageChannelSyncStatus (#5933)
Closes #5898
2024-06-19 16:04:01 +02:00
bosiraphaelandGitHub 016132ecf6 Fix reconnect google account bug (#5905)
Update syncStage to FULL_MESSAGE_LIST_FETCH_PENDING when reconnecting
the account to trigger a full sync on the next cron iteration.
2024-06-19 16:00:39 +02:00
d6fcb9cae8 5934 create alert banner component (#5950)
Closes #5934

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-19 15:41:57 +02:00
701059007b Data Skeleton Loading on Indexes (#5828)
### Description
Data Skeleton Loading on Indexes

### Refs
#4459

### Demo


https://github.com/twentyhq/twenty/assets/140154534/d9c9b0fa-2d8c-4b0d-8d48-cae09530622a


Fixes #4459

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-19 15:25:20 +02:00
Thomas TrompetteandGitHub ff21396bc6 [Bug] Put back subject is email right drawer (#5955)
Fix https://github.com/twentyhq/twenty/issues/5903
2024-06-19 14:48:09 +02:00
Joshua ZacekandGitHub 60b60bd4b3 (5943) Match country selector button's background to phone number input's background (#5956)
Fixes #5943

### Before
Light
<img width="218" alt="Screenshot 2024-06-19 at 12 37 22 PM"
src="https://github.com/twentyhq/twenty/assets/57673080/981d1877-be4e-4071-9a8d-9d0ed7e933ab">
Dark
<img width="223" alt="Screenshot 2024-06-19 at 12 39 42 PM"
src="https://github.com/twentyhq/twenty/assets/57673080/a3730ef5-21ba-4d90-998d-d330aec350ad">


### After
Light
<img width="216" alt="Screenshot 2024-06-19 at 12 39 00 PM"
src="https://github.com/twentyhq/twenty/assets/57673080/eef3b743-1b28-43a5-8c1c-bd944a4915c7">
Dark
<img width="228" alt="Screenshot 2024-06-19 at 12 39 29 PM"
src="https://github.com/twentyhq/twenty/assets/57673080/5bf10e51-5a07-4d55-99f1-734517b22781">
2024-06-19 14:46:47 +02:00
Atchyut Preetham PulavarthiandGitHub 1c685e8a31 fix(twenty-front): update DateTimeInput styles to apply top border radius to date picker (#5946)
update DateTimeInput styled components to prevent the StyledInput from
overflowing out of it's parent container

<img width="860" alt="Screenshot 2024-06-19 at 9 55 04 AM"
src="https://github.com/twentyhq/twenty/assets/19223383/8c5daf6a-9eb6-4ecd-a2e9-aa2ba8db3874">



Fixes #5940
2024-06-19 14:38:30 +02:00
Lucas BordeauandGitHub 76bcf31341 Added a mechanism to reset error boundary on page change. (#5913)
Previously the error boundary component was re-rendering with the same
state as long as we stayed in the same router, so for page change inside
an index container, it would stay on error state.

The fix is to memorize the location the error page is on during its
first render, and then to reset the error boundary if it gets
re-rendered with a different location even in the same index container.

Fixes : #3592
2024-06-19 14:34:11 +02:00
c7e6d6959f Add a ⏎ shortcut on Select options (#5641)
fixes #5540 

Added onkeyDown to 
1. Create new option and 
2. Move focus to it.

[screen-capture
(6).webm](https://github.com/twentyhq/twenty/assets/69167444/ede54ad8-22db-4b09-9617-4d999c6c08c7)

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-19 14:30:26 +02:00
64b456912a Favicons are being re-rendered on hover (#5849)
### Description

Favicons are being re-rendered on hover

### Refs

#3523

### Demo


https://www.loom.com/share/e3944d940a014283af8c26baac1fed57?sid=e3e96a81-3a54-4969-8602-99c64bb3ffe7

Fixes #3523

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-19 13:34:42 +02:00
Thomas TrompetteandGitHub 96da777107 Handle no concurrency option (#5952)
Fix error in local `teamConcurrency must be an integer between 1 and
1000`
2024-06-19 11:54:11 +02:00
Thomas TrompetteandGitHub d045bcbb94 Add http status to graphql errors (#5896)
Graphql errors are not properly filtered by our handler. We still
receive errors like `NOT_FOUND` in sentry while they should be filtered.
Example
[here](https://twenty-v7.sentry.io/issues/5490383016/?environment=prod&project=4507072499810304&query=is%3Aunresolved+issue.priority%3A%5Bhigh%2C+medium%5D&referrer=issue-stream&statsPeriod=7d&stream_index=6).

We associate statuses with errors in our map
`graphQLPredefinedExceptions` but we cannot retrieve the status from the
error.

This PR lists the codes that should be filtered.

To test:
- call `findDuplicates` with an invalid id
- before, server would breaks
- now the error is simply returned
2024-06-19 10:39:09 +02:00
6fd8dab552 5582 get httpsapitwentycomrestmetadata objects filters dont work (#5906)
- Remove filters from metadata rest api
- add limite before and after parameters for metadata
- remove update from metadata relations
- fix typing issue
- fix naming
- fix before parameter

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-06-18 18:55:13 +02:00
Félix MalfaitandGitHub dbaa787d19 website / Fix broken links, slow loading, and prod errors (#5932)
The code is in a bad state, this is just fixing it but not improving the
structure
2024-06-18 18:40:19 +02:00
Thomas TrompetteandGitHub 6b1548ebbe Add loader and transition for details page tabs (#5935)
Closes https://github.com/twentyhq/twenty/issues/5656



https://github.com/twentyhq/twenty/assets/22936103/3e4beea2-9aa9-4015-bb99-ee22adb53b63
2024-06-18 18:38:14 +02:00
martmullandGitHub cff8561597 Upgrade pg graphql version to 1.5.6 (#5937)
- update `pg_graphql` version doc
- update `pg_graphql` version to 1.5.6
2024-06-18 17:34:16 +02:00
Hanch HanandGitHub 38537a3967 Add South Korean won to currency codes (#5914)
Greetings from Seoul! I found this amazing project a few days ago, and
trying to introduce it to my team. However there is a tiny but
significant problem, that South Korean won is not available in twenty.

So I added `KRW` to the enum `CurrencyCode` and the constant
`SETTINGS_FIELD_CURRENCY_CODES`. I tested it locally and apparently
works fine.
2024-06-18 11:14:31 +02:00
Aditya PimpalkarandGitHub 14abd99bb7 add multiple filters of same FieldMetadataType (#5892)
fixes: #5378
2024-06-18 10:49:33 +02:00
Thomas TrompetteandGitHub de2b0527a3 Fix secondaryLinks field input (#5911)
PR https://github.com/twentyhq/twenty/pull/5785/files broke links
update.

Also, dropdown "Add link" will be displayed only if a link is already
added. Otherwise, it should be a normal input.
2024-06-17 18:09:46 +02:00
Lucas BordeauandGitHub e1bd3a4c5a Added and optimized missing RatingFieldDisplay component (#5904)
The display for Rating field type was missing, I just added it based on
RatingInput in readonly mode and optimized a bit for performance also.

Fixes https://github.com/twentyhq/twenty/issues/5900
2024-06-17 17:27:19 +02:00
Thomas TrompetteandGitHub dba0b28eae Fix verticale line timeline activity (#5894)
Before 

<img width="400" alt="Capture d’écran 2024-06-17 à 10 23 17"
src="https://github.com/twentyhq/twenty/assets/22936103/01408d7b-9a6c-4a21-9f08-c8cf304e2ea0">

After

<img width="400" alt="Capture d’écran 2024-06-17 à 10 05 39"
src="https://github.com/twentyhq/twenty/assets/22936103/df384726-bbf9-4828-ad47-d1c91724947d">
2024-06-17 11:54:04 +02:00
martmullandGitHub 1ba7037fdc 5581 get httpsapitwentycomrestmetadata relations not working (#5867)
Filtering relations is not allowed
(see`packages/twenty-server/src/engine/metadata-modules/relation-metadata/dtos/relation-metadata.dto.ts`)
so we remove filtering for find many relation

we also fixed some bug in result structure and metadata open-api schema
2024-06-17 10:59:29 +02:00
martmullandGitHub d8034b1f40 5236 expandable list leave options when editing (#5890)
Fixes https://github.com/twentyhq/twenty/issues/5236
## After

![image](https://github.com/twentyhq/twenty/assets/29927851/5f0f910c-11b0-40ce-9c59-34e7ce0c2741)
2024-06-17 10:17:31 +02:00
d99b9d1d6b feat: Enhancements to MessageQueue Module with Decorators (#5657)
### Overview

This PR introduces significant enhancements to the MessageQueue module
by integrating `@Processor`, `@Process`, and `@InjectMessageQueue`
decorators. These changes streamline the process of defining and
managing queue processors and job handlers, and also allow for
request-scoped handlers, improving compatibility with services that rely
on scoped providers like TwentyORM repositories.

### Key Features

1. **Decorator-based Job Handling**: Use `@Processor` and `@Process`
decorators to define job handlers declaratively.
2. **Request Scope Support**: Job handlers can be scoped per request,
enhancing integration with request-scoped services.

### Usage

#### Defining Processors and Job Handlers

The `@Processor` decorator is used to define a class that processes jobs
for a specific queue. The `@Process` decorator is applied to methods
within this class to define specific job handlers.

##### Example 1: Specific Job Handlers

```typescript
import { Processor, Process, InjectMessageQueue } from 'src/engine/integrations/message-queue';

@Processor('taskQueue')
export class TaskProcessor {

  @Process('taskA')
  async handleTaskA(job: { id: string, data: any }) {
    console.log(`Handling task A with data:`, job.data);
    // Logic for task A
  }

  @Process('taskB')
  async handleTaskB(job: { id: string, data: any }) {
    console.log(`Handling task B with data:`, job.data);
    // Logic for task B
  }
}
```

In the example above, `TaskProcessor` is responsible for processing jobs
in the `taskQueue`. The `handleTaskA` method will only be called for
jobs with the name `taskA`, while `handleTaskB` will be called for
`taskB` jobs.

##### Example 2: General Job Handler

```typescript
import { Processor, Process, InjectMessageQueue } from 'src/engine/integrations/message-queue';

@Processor('generalQueue')
export class GeneralProcessor {

  @Process()
  async handleAnyJob(job: { id: string, name: string, data: any }) {
    console.log(`Handling job ${job.name} with data:`, job.data);
    // Logic for any job
  }
}
```

In this example, `GeneralProcessor` handles all jobs in the
`generalQueue`, regardless of the job name. The `handleAnyJob` method
will be invoked for every job added to the `generalQueue`.

#### Adding Jobs to a Queue

You can use the `@InjectMessageQueue` decorator to inject a queue into a
service and add jobs to it.

##### Example:

```typescript
import { Injectable } from '@nestjs/common';
import { InjectMessageQueue, MessageQueue } from 'src/engine/integrations/message-queue';

@Injectable()
export class TaskService {
  constructor(
    @InjectMessageQueue('taskQueue') private readonly taskQueue: MessageQueue,
  ) {}

  async addTaskA(data: any) {
    await this.taskQueue.add('taskA', data);
  }

  async addTaskB(data: any) {
    await this.taskQueue.add('taskB', data);
  }
}
```

In this example, `TaskService` adds jobs to the `taskQueue`. The
`addTaskA` and `addTaskB` methods add jobs named `taskA` and `taskB`,
respectively, to the queue.

#### Using Scoped Job Handlers

To utilize request-scoped job handlers, specify the scope in the
`@Processor` decorator. This is particularly useful for services that
use scoped repositories like those in TwentyORM.

##### Example:

```typescript
import { Processor, Process, InjectMessageQueue, Scope } from 'src/engine/integrations/message-queue';

@Processor({ name: 'scopedQueue', scope: Scope.REQUEST })
export class ScopedTaskProcessor {

  @Process('scopedTask')
  async handleScopedTask(job: { id: string, data: any }) {
    console.log(`Handling scoped task with data:`, job.data);
    // Logic for scoped task, which might use request-scoped services
  }
}
```

Here, the `ScopedTaskProcessor` is associated with `scopedQueue` and
operates with request scope. This setup is essential when the job
handler relies on services that need to be instantiated per request,
such as scoped repositories.

### Migration Notes

- **Decorators**: Refactor job handlers to use `@Processor` and
`@Process` decorators.
- **Request Scope**: Utilize the scope option in `@Processor` if your
job handlers depend on request-scoped services.

Fix #5628

---------

Co-authored-by: Weiko <[email protected]>
2024-06-17 09:49:37 +02:00
YmirandGitHub 605945bd42 Added Thai Baht support (#5881)
Hey, saw Thai Baht support was
[requested](https://github.com/twentyhq/twenty/issues/5876) and thought
it was a cool first issue to get to know the project a little bit.
2024-06-16 09:39:16 +02:00
Félix MalfaitandGitHub 99f4a75b58 Fix website docs (#5873)
There was a 500 on the playground and the switch between core and
metadata
2024-06-14 19:05:48 +02:00
Thomas des FrancsandGitHub 9c8407c197 Wrote 0.20 changelog (#5870)
Created the changelog for 0.2
2024-06-14 16:59:42 +02:00
Michael GoldandGitHub 3d3cef0797 fix: 404 generate API key link (#5871)
- update api key link in the docs
2024-06-14 16:48:29 +02:00
dd2db083ce Record horizontal scrolling mobile (#5843)
I have fixed the scrolling the record container page on mobile making it
hidden.
This PR aims to fix #5745

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-14 16:27:16 +02:00
martmullandGitHub eaa2f83eb1 Fix overflow on notes (#5853)
##before

![image](https://github.com/twentyhq/twenty/assets/29927851/c1784340-0741-4701-b11f-d2cf50fab9fb)

##after

![image](https://github.com/twentyhq/twenty/assets/29927851/c095eaf1-15c4-4e68-8cff-c175f99856d0)
2024-06-14 13:11:15 +02:00
martmullandGitHub be18ee4d7d Fix sentry error (#5848)
Fixes
https://twenty-v7.sentry.io/issues/5363536663/?environment=prod&project=4507072499810304&query=is%3Aunresolved+issue.priority%3A%5Bhigh%2C+medium%5D&referrer=issue-stream&statsPeriod=7d&stream_index=0

- handle error properly in twenty-server
- display backend error message
2024-06-14 12:41:55 +02:00
bosiraphaelandGitHub 82741d3b04 Fix error log on message import (#5866)
Modify #5863 to log the connected account id rather than the message
channel id to be consistent with the other logs and stringify the error.
2024-06-14 12:38:35 +02:00
martmullandGitHub 28202cc9e0 Fix workspaceLogo in invite-email (#5865)
## Fixes wrong image url in email 

![image](https://github.com/twentyhq/twenty/assets/29927851/5fb1524b-874d-4723-8450-0284382bbeb3)

## Done
- duplicates and adapt `getImageAbsoluteURIOrBase64` from `twenty-front`
in `twenty-email`
- send `SERVER_URL` to email builder
2024-06-14 12:36:24 +02:00
Félix MalfaitandGitHub a2e89af6b2 Collapsible menu (#5846)
A mini PR to discuss with @Bonapara tomorrow

Separating remote objects from others and making the menu collapsible
(style to be changed)
<img width="225" alt="Screenshot 2024-06-12 at 23 25 59"
src="https://github.com/twentyhq/twenty/assets/6399865/b4b69d36-6770-43a2-a5e8-bfcdf0a629ea">

Biggest issue is we don't use local storage today so the collapsed state
gets lost.
I see we have localStorageEffect with recoil. Maybe store it there?
Seems easy but don't want to introduce a bad pattern.


Todo:
- style update
- collapsible favorites
- persistent storage
2024-06-14 12:35:23 +02:00
8d8bf1c128 fix: text field overflow beyond cell limits (#5834)
- fixes #5775 


https://github.com/twentyhq/twenty/assets/47355538/9e440018-ec1e-4faa-a9f3-7131615cf9f1

---------

Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-14 11:41:49 +02:00
4603999d1c Support orderBy as array (#5681)
closes: #4301

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-06-14 11:23:37 +02:00
Charles BochetandGitHub 85fd801480 Add log for errors on message import (#5863)
As per title :)
2024-06-14 09:36:39 +02:00
WeikoandGitHub 39af374de0 fix timeline activity pagination overflow (#5861)
## Before
<img width="250" alt="Screenshot 2024-06-13 at 18 51 56"
src="https://github.com/twentyhq/twenty/assets/1834158/d6c7f5fa-3cc7-48bc-a711-29345e93af92">


## After
<img width="284" alt="Screenshot 2024-06-13 at 18 51 41"
src="https://github.com/twentyhq/twenty/assets/1834158/25029e0a-c1b0-4458-b715-dbab217eeee0">
2024-06-13 19:04:53 +02:00
Thomas TrompetteandGitHub 00d2294728 Add label to mocked connections (#5858)
<img width="865" alt="Capture d’écran 2024-06-13 à 17 48 03"
src="https://github.com/twentyhq/twenty/assets/22936103/2d313448-fbd5-4ff1-a65b-afd4df86117a">
2024-06-13 18:56:55 +02:00
Lucas BordeauandGitHub 65fc83a763 Added a fallback default record chip generator (#5860)
The record chip generator context was missing a edge were a new field of
type relation is created and not yet in the metadata so no chip
generator function can be precomputed.

For now I added a fallback default chip generator, to prevent any bug,
but we might want to add a new chip generator function while creating
the new field ?
2024-06-13 18:28:02 +02:00
MarieandGitHub 582653f9df Bump to version 0.20.0 (#5857) 2024-06-13 17:39:46 +02:00
WeikoandGitHub 93c17a8a5b Remove timelineActivity featureFlag (#5856) 2024-06-13 17:39:31 +02:00
21dbd6441a feat: implement row re-ordering via drag and drop (#4846) (#5580)
# Context

Currently, the Twenty platform incorporates "positions" for rows on the
backend, which are functional within the Kanban view. However, this
advantageous feature has yet to be leveraged within list views.

# Feature Proposal

## Implement Row-Reordering via Drag-and-Drop on Frontend (#4846)

- This PR addresses the implementation of row reordering via
Drag-and-Drop on frontend. The objective is to enrich the list view
functionality by introducing a grip that dynamically appears upon
hovering over the left space preceding the checkbox container. This grip
empowers users to effortlessly reposition rows within the list.

#### Proposal Highlights:

- **Enhanced User Interaction**: Introduce a draggable grip to
facilitate intuitive row reordering, enhancing user experience and
productivity.
- **Preservation of Design Aesthetics**: By excluding the grip from the
first row and maintaining the left gap, we uphold design integrity while
providing enhanced functionality.
- **Consistency with Existing Features**: Align with existing
drag-and-drop functionalities within the platform, such as Favorites
re-ordering or Fields re-ordering in table options, ensuring a seamless
user experience.

## Implementation Strategy

### Grip Implementation:

- Add an extra column to the table (header + body) to accommodate the
grip cell, which displays the IconListViewGrip when its container is
hovered over.
- Ensure the preceding left-space is maintained by setting the
corresponding width for this column and removing padding from the table
container (while maintaining padding in other page elements and the
Kanban view for coherence).

### Row Drag and Drop:

- Implement row drag-and-drop functionality using draggableList and
draggableItem, based on the existing logic in the KanbanView for row
repositioning.
- Create a draggableTableBody and apply it to the current
RecordTableBody (including modal open triggering - if dragging while
sorting exists).
- Apply the draggableItem logic to RecordTableRow.

### Sorting Modal Implementation:

- Reuse the ConfirmationModel for the removeSortingModal.
- Create a new state to address the modal.
- Implement sorting removal logic in the corresponding modal file.

## Outcome

- The left-side margin is preserved.
- The grip appears upon hovering.
- Dragging a row gives it and maintains an aesthetic appearance.
- Dropping a row updates its position, and the table gets a new
configuration.
- If sorting is present, dropping a row activates a modal. Clicking on
the "Remove Sorting" button will deactivate any sorting (clicking on
"Cancel" will close the modal), and the table will revert to its default
configuration by position, allowing manual row reordering. Row
repositioning will not occur if sorting is not removed.
- The record table maintains its overall consistency.
- There are no conflicts with DragSelect functionality.


https://github.com/twentyhq/twenty/assets/92337535/73de96cc-4aac-41a9-b4ec-2b8d1c928d04

---------

Co-authored-by: Vasco Paisana <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-06-13 17:22:51 +02:00
WeikoandGitHub 81c4939812 Fix timeline activity missing updated fields (#5854)
## Before
<img width="883" alt="Screenshot 2024-06-13 at 14 48 05"
src="https://github.com/twentyhq/twenty/assets/1834158/0e72ead1-2d59-4ee3-af3b-dfdd593b7f2e">


## After
<img width="908" alt="Screenshot 2024-06-13 at 14 48 14"
src="https://github.com/twentyhq/twenty/assets/1834158/00e32ddf-e40d-4cc9-a80a-9f5b76bd377a">
2024-06-13 15:22:15 +02:00
Lucas BordeauandGitHub e072254555 Fixed new date time formatting util (#5852)
The new date time formatting util made for performance optimization
missed two things :
- Padding 0 for hours and minutes with 1 digit only.
- Correctly parsing the day of the month (now uses JS Date native
getDate() instead of slicing the ISO String)
2024-06-13 14:18:10 +02:00
Lucas BordeauandGitHub 6f65fa295b Added RecordValue use-context-selector to settings field's logic (#5851)
In the settings part of the app, where display fields are used as in
table cell and board cards, we didn't have the new context selector
logic implemented, due to the recent performance optimization.
2024-06-13 12:43:13 +02:00
martmullandGitHub b26fd00a40 5663 i should be able to accept an invite even if i have an inactive workspace (#5839)
- make invitation and reset password available on every page
- add a sleep after setKeyPair as tokens are sometimes not updated when
redirecting to Index
- refactor sleep
2024-06-13 11:47:00 +02:00
d93c2d6408 #5761 Add "No XXX found" title to filtered empty state (#5838)
Issue: #5761

Changes: 
- Use `useFindManyRecords` in `RecordTableWithWrappers.tsx` to determine
if any records exist for that object
- Add `hasUnfilteredRecords` prop to `RecordTableEmptyState.tsx`. 


This changes to empty state title, but I'm guessing that we'll need to
change the button text and subheading as well you guys can let me know
what you think. If this works I can go on to do those next, thanks!

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-06-13 11:30:13 +02:00
Lucas BordeauandGitHub 7c1d9aebb9 Removed unnecessary on mouse enter for soft focus (#5850)
In RecordTableCellContainer, I just removed onMouseEnter event handler
that was being triggered when we used keyboard soft focus move.

It's not necessary to have it because we already listen on mouse move
which is matching our use case where we only want soft focus to move
when mouse move and not when the cursor stays on top of a cell.
2024-06-13 11:17:17 +02:00
bosiraphaelandGitHub f825bea071 5629 update blocklist for messaging v2 (#5756)
Closes #5629 

- Add subdomain support in blocklist (if @example.com is blocked, every
subdomain will be blocked)
2024-06-13 07:53:28 +02:00
Félix MalfaitandGitHub 374237a988 Refacto rest api, fix graphl playground, improve analytics (#5844)
- Improve the rest api by introducing startingAfter/endingBefore (we
previously had lastCursor), and moving pageInfo/totalCount outside of
the data object.
- Fix broken GraphQL playground on website
- Improve analytics by sending server url
2024-06-12 21:54:33 +02:00
04edf2bf7b feat: add resolve absolute path util (#5836)
Add a new util called `resolveAbsolutePath` to allow providing absolute
path for environment variable like `STORAGE_LOCAL_PATH`.
If the path in the env start with `/` we'll not prefix it with
`process.cwd()`.

Also we're using a static path for the old `db_initialized` file now
named `db_status` and stop using the env variable for this file as this
one shouldn't ne stored in the `STORAGE_LOCAL_PATH`.

Fix #4794

---------

Co-authored-by: Quentin Galliano <[email protected]>
2024-06-12 21:17:31 +02:00
martmullandGitHub 3986824017 5623 add an inviteteam onboarding step (#5769)
## Changes
- add a new invite Team onboarding step
- update currentUser.state to currentUser.onboardingStep

## Edge cases
We will never display invite team onboarding step 
- if number of workspaceMember > 1
- if a workspaceMember as been deleted

## Important changes
Update typeorm package version to 0.3.20 because we needed a fix on
`indexPredicates` pushed in 0.3.20 version
(https://github.com/typeorm/typeorm/issues/10191)

## Result
<img width="844" alt="image"
src="https://github.com/twentyhq/twenty/assets/29927851/0dab54cf-7c66-4c64-b0c9-b0973889a148">



https://github.com/twentyhq/twenty/assets/29927851/13268d0a-cfa7-42a4-84c6-9e1fbbe48912
2024-06-12 21:13:18 +02:00
2fdd2f4949 Fix/release workflow (#5802)
Here is a fix for https://github.com/twentyhq/twenty/issues/5163

I tested it on another repo and should work as intended this time
arround.

I've created two workflows
- One that creates a PR
- The second that watch PR merge with specific labels
- I also check the author of the PR to make sure it was created by a bot

You can now disable the creation of the a draft release

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-06-12 21:11:58 +02:00
Charles Bochet 4a7a8c72ef Fix typing on main 2024-06-12 20:38:44 +02:00
Lucas BordeauandGitHub 03b3c8a67a Refactored all FieldDisplay types for performance optimization (#5768)
This PR is the second part of
https://github.com/twentyhq/twenty/pull/5693.

It optimizes all remaining field types.

The observed improvements are :
- x2 loading time improvement on table rows
- more consistent render time

Here's a summary of measured improvements, what's given here is the
average of hundreds of renders with a React Profiler component. (in our
Storybook performance stories)

| Component | Before (µs) | After (µs) |
| ----- | ------------- | --- |
| TextFieldDisplay | 127 | 83 |
| EmailFieldDisplay | 117 | 83 |
| NumberFieldDisplay | 97 | 56 |
| DateFieldDisplay | 240 | 52 |
| CurrencyFieldDisplay | 236 | 110 |
| FullNameFieldDisplay | 131 | 85 |
| AddressFieldDisplay | 118 | 81 |
| BooleanFieldDisplay | 130 | 100 |
| JSONFieldDisplay | 248 | 49 |
| LinksFieldDisplay | 1180 | 140 |
| LinkFieldDisplay | 140 | 78 |
| MultiSelectFieldDisplay | 770 | 130 |
| SelectFieldDisplay | 230 | 87 |
2024-06-12 18:36:25 +02:00
Thomas TrompetteandGitHub 007e0e8b0e Fix event value elipsis (#5840)
<img width="400" alt="Capture d’écran 2024-06-12 à 14 41 08"
src="https://github.com/twentyhq/twenty/assets/22936103/12d333a9-16ce-45f3-a1eb-060bf77bae96">
<img width="400" alt="Capture d’écran 2024-06-12 à 16 47 53"
src="https://github.com/twentyhq/twenty/assets/22936103/6e154936-82d6-4e19-af4c-e6036b01dd04">
<img width="400" alt="Capture d’écran 2024-06-12 à 16 52 48"
src="https://github.com/twentyhq/twenty/assets/22936103/6440af6b-ea40-4321-942a-a6e728a78104">
2024-06-12 17:30:59 +02:00
Lucas BordeauandGitHub 732e8912da Added Linaria for performance optimization (#5693)
- Added Linaria to have compiled CSS on our optimized field displays
- Refactored mocks for performance stories on fields
- Refactored generateRecordChipData into a global context, computed only
when we fetch object metadata items.
- Refactored ChipFieldDisplay 
- Refactored PhoneFieldDisplay
2024-06-12 16:31:07 +02:00
martmullandGitHub 30d3ebc68a Fix missing cursor on rest api (#5841)
## Before

![image](https://github.com/twentyhq/twenty/assets/29927851/fc3bad2d-5238-4afa-b528-409fbff3902c)

## After

![image](https://github.com/twentyhq/twenty/assets/29927851/418174c1-aafb-4ea2-a936-50c03ea17764)

![image](https://github.com/twentyhq/twenty/assets/29927851/03439033-db6b-44b0-9613-f766babc1d2d)

![image](https://github.com/twentyhq/twenty/assets/29927851/f0e5e998-3c61-437d-863f-7289609d0d30)
2024-06-12 16:25:04 +02:00
WeikoandGitHub ad6547948b Activity timeline refactoring followup (#5835)
Following https://github.com/twentyhq/twenty/pull/5697, addressing
review
2024-06-12 16:21:30 +02:00
Félix MalfaitandGitHub bd22bfce2e Push event for user signup (#5837)
Need to setup Twenty as a CRM for Twenty the Twenty team
2024-06-12 12:35:46 +02:00
5fe2fc2778 Add 8px margin to the left of the Tasks' tab list (#5833)
I implemented the margin requested on #5827

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-06-12 10:24:38 +02:00
Charles Bochet 5ec98b5ac3 Fix not possible to read message from other workspaceMember 2024-06-12 08:21:35 +02:00
Félix MalfaitandGitHub a0d9fdb3de Fix bugs and telemetry (#5832)
Bugfix 1:
<img width="491" alt="Screenshot 2024-06-12 at 07 19 42"
src="https://github.com/twentyhq/twenty/assets/6399865/e3ad2771-4edd-453d-9d85-f429177dfd15">

Bugfix 2:
<img width="259" alt="Screenshot 2024-06-12 at 07 47 02"
src="https://github.com/twentyhq/twenty/assets/6399865/2f82c90e-2180-4290-b12e-e72910fb108c">

Change 3:
I remove the "telemetry anonymization enabled" parameter as it was
misleading, we were anonymization ids but still forwarding the workspace
name which is imo more sensitive than an ID
2024-06-12 08:11:48 +02:00
Lucas BordeauandGitHub 7d068095cd Fix of board request fix PR (#5829)
Fix again board requests as first merged PR appears to have missing
commits / code. https://github.com/twentyhq/twenty/pull/5819
2024-06-11 22:30:38 +02:00
Charles BochetandGitHub a57e251208 Fix docs build in CI (#5826) 2024-06-11 19:06:37 +02:00
WeikoandGitHub be96c68416 POC timeline activity (#5697)
TODO: 
- remove WorkspaceIsNotAuditLogged decorators on activity/activityTarget
to log task/note creations
- handle attachments
-  fix css and remove unnecessary styled components or duplicates
2024-06-11 18:53:28 +02:00
bosiraphaelandGitHub 64b8e4ec4d Fix access token refresh (#5825)
In `messaging-gmail-messages-import.service`, we were refreshing the
access token before each query but we were passing the old access token
to `fetchAllMessages`.
I modified the function to query the updated connectedAccount with the
new access token.
This will solve the 401 errors we were getting in production.
2024-06-11 18:52:38 +02:00
RobertoSimonini1andGitHub 3328666308 Increased inline relation field hover surface (#5809)
I increased the inline relation of the relations fields, now the edit
pen is visible when hovering the icon and not only the label.
this aims to fix: #5662
2024-06-11 18:39:24 +02:00
6d7782eb5a Align field values with fixed width for field key. (#5821)
Made the alignment consistent with the field panel. This uses 90px as
the key label width.

**Issue:** #5730 

**Changes:**
- Add a label width of 90 to FieldContext Provider in useFieldContext
function
- Add a label width of 90 to ActivityTargetsInlineCell component

**Screen recording form local testing:**



https://github.com/twentyhq/twenty/assets/120792086/e150530b-4163-4a69-9bd5-119a2f202d4f

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-06-11 18:24:40 +02:00
RobertoSimonini1andGitHub 3440889ad0 made sidebar always visible on settings page (#5823)
I made the sidebar/menu always visible on settings page even if the
navigationDrawerOpen is false
This aims to fix #5811
2024-06-11 17:39:51 +02:00
MarieandGitHub b84042ddbb Display and update fields from fromManyObjects relations in Show card (#5801)
In this PR, we implement the display and update of fields from
fromManyObjects (e.g update Employees for a Company).

Product requirement
- update should be triggered at each box check/uncheck, not at lose of
focus

Left to do in upcoming PRs
- add the column in the table views (e.g. column "Employees" on
"Companies" table view)
- add "Add new" possibility when there is no records (as is currently
exists for "one" side of relations:)
<img width="374" alt="Capture d’écran 2024-06-10 à 17 38 02"
src="https://github.com/twentyhq/twenty/assets/51697796/6f0cc494-e44f-4620-a762-d7b438951eec">

- update cache after an update affecting other records (e.g "Listings"
have one "Person"; if listing A belonged to Person A but then we
attribute listing A to Person B, Person A is no longer owner of Listing
A. For the moment that would not be reflected immediatly leading, to
potential false information if information is accessed from cache)
- try to get rid of the glitch - we also have it on the task page
example. (probably) due to the fact that we are using a recoil state to
read, update then re-read


https://github.com/twentyhq/twenty/assets/51697796/54f71674-237a-4946-866e-b8d96353c458
2024-06-11 15:53:17 +02:00
4994a9c3a9 Api docs remove Relations from Post & Patch (#5817)
* Remove relations where they cannot be used
* Removed duplicated schema for findMany
* Reuse schema for Relation variant to reduce size of sent json object

closes #5778

---------

Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: martmull <[email protected]>
2024-06-11 15:31:48 +02:00
58fb86f2c3 Added support for Links filtering (#5785)
References #5741

---------

Co-authored-by: kiridarivaki <[email protected]>
2024-06-11 15:24:34 +02:00
Siddhant RaiandGitHub 63578e6480 fix: calendar tile fonts underlined (#5820)
- fixes #5797
2024-06-11 15:24:23 +02:00
martmullandGitHub 5c15fcd249 5805 typing issue in rest api (#5818)
Fixed types for:
- uuid
- email
- datetime
- date
- number
- currency.amountMicros
- select
- multiSelect

## Before

![image](https://github.com/twentyhq/twenty/assets/29927851/4bfa3a6d-a26f-47e4-a46f-7a5582825482)


## After

![image](https://github.com/twentyhq/twenty/assets/29927851/0bbab32f-4172-4525-91d1-76c37f299ac0)
2024-06-11 14:54:02 +02:00
710291238e Inline link chips cropped (#5810)
Issue: [#5654](https://github.com/twentyhq/twenty/issues/5654)

Changed chip vertical padding from 3px to 1px. This resulted in vertical
size changing from 24px to 20px.

![image](https://github.com/twentyhq/twenty/assets/124464818/aaed1e57-91e3-4d98-91b5-5dd10b857c9f)



![image](https://github.com/twentyhq/twenty/assets/124464818/c16223b5-35f4-40b0-b0ad-828973bb47a2)

---------

Co-authored-by: ktang520 <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: Sage Bain <[email protected]>
Co-authored-by: Shyesta <[email protected]>
2024-06-11 13:54:19 +02:00
07d07ff876 Fixed: Select fields now selects on pressing the enter key (#5576)
Now while pressing the `Enter` button, the select field selects the
relevant option.

- Added a `handleKeyDown` function to set the `persistField` with the
selected option.
- Added an `onKeyDown` event on `DropdownMenuSearchInput` component, to
trigger `handleKeyDown` when `Enter` is pressed.
- Fixes: #5556

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-06-11 12:59:31 +02:00
Lucas BordeauandGitHub 8a88bf41dd Fixed soft focus stuck (#5639)
Soft focus could be stuck when exiting edit mode, in some cases it would
prevent to have soft focus if just moving the mouse into a cell.
2024-06-11 12:31:50 +02:00
Lucas BordeauandGitHub 25a38dc693 Added one request per column on board. (#5819)
- Changed to one find many request per column on board.
2024-06-11 12:29:33 +02:00
martmullandGitHub 9307d206c5 Add authentication optional api url parameter (#5803) 2024-06-11 12:08:21 +02:00
Félix MalfaitandGitHub af8c637355 Temporary fix README (#5814)
Emergency fix for broken readme images
2024-06-11 10:18:08 +02:00
ff1bca1816 Docs modifications (#5804)
- Fixes #5504
- Fixes #5503
- Return 404 when the page does not exist
- Modified the footer in order to align it properly
- Removed "noticed something to change" in each table of content
- Fixed the URLs of the edit module 
- Added the edit module to Developers
- Fixed header style on the REST API page.
- Edited the README to point to Developers
- Fixed selected state when clicking on sidebar elements

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-06-11 09:45:17 +02:00
Charles BochetandGitHub 3c5a4ba692 Handle Network errors in messaging sync (#5795)
In this PR, I'm doing 2 things:
- refresh connectedAccount token on message-list-fetch. It's currently
only refresh while doing the messages-import. However messages-import
stage are only triggered if new messages are detected (which could take
days or week depending of the messageChannel activity). We should also
refresh it while trying to fetch the list
- handle Unhandled Gmail error code 500 with reason "backendError".
These can occur on gmail side. In this case, we just retry later.
2024-06-09 22:46:11 +02:00
Charles Bochet 01c0378b7a Handle Network errors in messaging sync 2024-06-09 09:59:55 +02:00
Charles Bochet e4a4499b79 Fix messaging sharing inconsitency 2024-06-09 01:27:43 +02:00
Charles Bochet 9ebf7a61ab Remove threadId defined assertion as it could not be in messaging sync 2024-06-09 00:56:59 +02:00
Charles BochetandGitHub f2cd65557e Remove messageId defined assertion as it could not be in messaging sync (#5784)
Instead, we will log but ignore the message
2024-06-09 00:15:12 +02:00
Lucas BordeauandGitHub d4610774fa Fix unclosable cell (#5776)
In some cases we couldn't open a table cell if the soft focus was still
on another.
2024-06-09 00:10:18 +02:00
Félix MalfaitandGitHub 32804ec296 Disable prefetching on contributors page (website) (#5783)
Disable prefetching on contributors list as it spams the server
2024-06-09 00:06:44 +02:00
Charles Bochet d7ce42cff7 Throw exception when error code is not defined in messaging import 2024-06-08 23:46:52 +02:00
Charles Bochet a79b256409 Throw exception when error code is not defined in messaging import 2024-06-08 23:18:17 +02:00
Charles BochetandGitHub afac4de679 Throw exception when an unknown error is caught on messaging sync (#5782)
As per title for this one ;)
2024-06-08 22:59:59 +02:00
Charles BochetandGitHub 7f9fdf3ff6 Fix performance issue mail (#5780)
In this PR, I'm mainly doing two things:
- uniformizing messaging-messages-import and
messaging-message-list-fetch behaviors (cron.job and job)
- improving performances of these cron.jobs by not triggering the jobs
if the stage is not relevant
- making sure these jobs have same signature (workspaceId +
messageChannelId)
2024-06-08 11:07:36 +02:00
Pacifique LINJANJAandGitHub 520a883c73 Fix the "Delete" action on the Kaban view (#5646)
# This PR

- Fixes #5520 
- Created a shared confirmation modal component for the `ContextMenu`
and the `ActionBar` components to avoid code repetition - with its
storybook file

Looking forward to getting feedback @charlesBochet
2024-06-07 17:23:32 +02:00
e9cf449706 Search dialog fullscreen on mobile (#5765)
I changed the visibility of the search dialog to make it full screen on
mobile, this should already be ok but I couldn't try it on mobile, so I
just used devtools, if I need to do something else on this PR just tell
me :)
This PR aims to fix: #5746

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-06-07 17:09:09 +02:00
brendanlaschkeandGitHub 908990315d Datamodel overview improvements (#5771)
closes #5586
<img width="707" alt="Bildschirmfoto 2024-06-07 um 14 05 39"
src="https://github.com/twentyhq/twenty/assets/48770548/af5fa200-d71b-41ed-9478-35becfc306a3">
2024-06-07 14:53:12 +02:00
Thomas TrompetteandGitHub 1208fed7b3 Add endpoint to create postgres credentials (#5767)
First step for creating credentials for database proxy.

In next PRs:
- When calling endpoint, create database Postgres on proxy server 
- Setup user on database using postgresCredentials
- Build remote server on DB to access workspace data
2024-06-07 14:45:24 +02:00
e478c68734 Switched current Sort Button with same used for filters and options ones (#5764)
I changed the Sort button used in the Header using
StyledHeaderDropdownButton component (the same used for Filter and
Options') instead of LightButton.
This PR aims to fix the issue: #5743

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-06-07 11:23:33 +02:00
c76bc4729d [4725] Inverted Variants of buttons (#5671)
Resolves #4725

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-06-06 16:41:22 +02:00
Thomas TrompetteandGitHub 9567103d5f Remove check unique position (#5760)
Currently position can be the same for records displayed in a board
view.
Removing unicity check until we find a new startegy.
2024-06-06 11:00:46 +02:00
martmullandGitHub 9f6a6c3282 5622 add a syncemail onboarding step (#5689)
- add sync email onboarding step
- refactor calendar and email visibility enums
- add a new table `keyValuePair` in `core` schema
- add a new resolved boolean field `skipSyncEmail` in current user




https://github.com/twentyhq/twenty/assets/29927851/de791475-5bfe-47f9-8e90-76c349fba56f
2024-06-05 18:16:53 +02:00
WeikoandGitHub fda0d2a170 Fix edit button missing in activity editor (#5757)
## Context
Fixing `setIsFocused is not a function` and the fact that edit buttons
were not showing up anymore.
A new FieldFocusContextProvider has been introduced and added to
RecordInlineCell but not ActivityTargetsInlineCell. This should fix the
issue.

<img width="523" alt="Screenshot 2024-06-05 at 17 42 07"
src="https://github.com/twentyhq/twenty/assets/1834158/1c1f919e-3829-4e40-b573-3b1b75b7c16f">
2024-06-05 18:14:09 +02:00
Félix MalfaitandGitHub 89f914ebf8 Improve csv import (#5753)
This is a small PR to improve the design of our CSV import.

I noticed the back button that was implemented in a recent PR #5625 was
broken and would need to be fixed (e.g. try to come back to the very
first upload step from the sheet selection step). cc @shashankvish0010
if you want to give a stab at fixing your PR that'd be amazing, thanks!
2024-06-05 17:01:13 +02:00
martmullandGitHub e9d3ed99ca 5078 ability to invite team members (#5750)
## Added features
- update team member setting page
- add a section to send invitation by email
- add a new invitation email
- update email font to 'Trebuchet MS' as Google Inter font is not
working, we need to use a web safe font
https://templates.mailchimp.com/design/typography/

## Demo

https://github.com/twentyhq/twenty/assets/29927851/c731d883-1599-4281-87e3-0671f36994ae

## Invitation Email

![image](https://github.com/twentyhq/twenty/assets/29927851/d569fc64-fa0c-4769-a3dd-1193a12b495c)
2024-06-05 16:35:14 +02:00
Leo157andGitHub 3c4b497846 fix:person head photo (#5749)
before:


https://github.com/twentyhq/twenty/assets/76474110/2d9d3e60-886e-4ad3-a1a3-b9484e49791c

after:


https://github.com/twentyhq/twenty/assets/76474110/877a15e6-ca72-450a-b25c-b4b323656d7f
2024-06-05 16:15:00 +02:00
WeikoandGitHub 126d9ef2e6 Bump versions to 0.12.2 (#5751) 2024-06-05 15:26:27 +02:00
Félix MalfaitandGitHub 5164c7fd3c Update icon and fix relation creation (#5742)
A minor fix (update icon and fix relation creation when creating a
relation in right drawer)
2024-06-05 11:07:48 +02:00
MarieandGitHub 6d869297b5 Fix select field options update (#5736)
Update of select fields options was failing if we deleted an option that
was used for at least one row: former code would not update the value to
null but leave it to the no-longer-allowed value.
2024-06-05 11:06:22 +02:00
MarieandGitHub 1bbfc0b715 Add unicity constraint between object nameSingular and namePlural (#5737) 2024-06-04 22:27:27 +02:00
bb7d94a455 Create ESLint rule to discourage usage of navigate() and prefer Link (#5642)
### Description
Create ESLint rule to discourage usage of navigate() and prefer Link


### Refs
#5468 

### Demo

![Capture-2024-05-29-112852](https://github.com/twentyhq/twenty/assets/140154534/28378c09-86bb-49d3-9e9a-49aa1c07ad11)

![Capture-2024-05-29-112843](https://github.com/twentyhq/twenty/assets/140154534/2c05ea92-e19b-49ae-acb9-07f6ec9182ab)

Fixes #5468

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-06-04 17:04:57 +02:00
bosiraphaelandGitHub 234e062232 Refactor sync sub status and throttle (#5734)
- Rename syncSubStatus to syncStage
- Rename ongoingSyncStartedAt to syncStageStartedAt
- Remove throttlePauseUntil from db and compute it with
syncStageStartedAt and throttleFailureCount
2024-06-04 16:52:57 +02:00
ce1469cf0c [ Fix ] [ Issue - 5701 ] Mouse down and drag is selecting records, while file import modal is open (#5716)
## Changes Made

- Prevent mouse event propagation outside modal 
- Prevent text selection inside the modal during drag event

## Related Issue

https://github.com/twentyhq/twenty/issues/5701

## Evidence

### Before


https://github.com/twentyhq/twenty/assets/87609792/c15c2a1d-5e3b-4fc5-a98a-638615e8d7b9

### After

Actual drag operation is done, but not visible in the video



https://github.com/twentyhq/twenty/assets/87609792/f2e68e67-1eb1-4a15-83c8-8cb4313bcaa1

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-06-04 15:55:02 +02:00
fa70f9cfc7 Fix: Reduce spacing gap between Task title and subtitle (#5711)
Fixes: #5669

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-06-04 15:17:46 +02:00
Lucas BordeauandGitHub 5e32cb215e Fix 5598 - View field creation (#5732)
- Fix duplicate view field creation
- Fix redirect to proper settings data model page
- Refetch view fields after field creation (temporary solution)

Fixes  https://github.com/twentyhq/twenty/issues/5598
2024-06-04 15:10:56 +02:00
Thomas TrompetteandGitHub c5d5d18347 Remove checkbox padding (#5733)
Regression has been introduced by this PR
https://github.com/twentyhq/twenty/pull/4883

Production

<img width="885" alt="Capture d’écran 2024-06-04 à 14 51 19"
src="https://github.com/twentyhq/twenty/assets/22936103/ad6d8490-815c-485a-b9c0-945aa7fba45c">

After fix

<img width="885" alt="Capture d’écran 2024-06-04 à 14 51 41"
src="https://github.com/twentyhq/twenty/assets/22936103/72fd6094-21c2-4737-bd20-0faf9adceb38">
2024-06-04 15:02:19 +02:00
Thomas TrompetteandGitHub 25f4e44aec Add backfill position job by workspace (#5725)
- Removing existing listener that was backfilling created records
without position
- Switch to a job that backfill all objects within workspace
- Adapting `FIND_BY_POSITION` so it can fetch objects without position.
Currently we needed to input a number
2024-06-04 14:10:58 +02:00
Thomas TrompetteandGitHub b1f12d7257 Fix input position backfill (#5731)
Some objects do not have position field so they should not be backfilled
2024-06-04 13:26:40 +02:00
MarieandGitHub a4e5e486f5 Fix boolean field in table view (#5728)
Boolean field was not working in display (unfocused) mode.

Before fix
<img width="269" alt="Capture d’écran 2024-06-04 à 11 50 55"
src="https://github.com/twentyhq/twenty/assets/51697796/9140f71c-41e4-44b4-9514-933edab33dd6">

https://github.com/twentyhq/twenty/assets/51697796/831c34a7-b91c-4df9-81d8-ced01cc7b9b6

After fix
<img width="284" alt="Capture d’écran 2024-06-04 à 11 51 01"
src="https://github.com/twentyhq/twenty/assets/51697796/7e4a089d-0c55-4624-a5d3-44c00681c6ca">

https://github.com/twentyhq/twenty/assets/51697796/b5103f39-64c1-4ace-ab32-353aba364471
2024-06-04 13:02:38 +02:00
Félix MalfaitandGitHub 719cce1ea2 Improve design of fields menu (#5729)
Improve design of field options menu and redirect to the right object
edit page



<img width="215" alt="Screenshot 2024-06-04 at 12 15 43"
src="https://github.com/twentyhq/twenty/assets/6399865/a8da18a1-49d4-40e3-b2cd-3a1a384366b2">
2024-06-04 12:16:47 +02:00
Félix MalfaitandGitHub d964f656f9 Fix field input offset (#5726)
Fix issue introduced in https://github.com/twentyhq/twenty/pull/5426

It's not a beautiful solution. Maybe one day we should have a dedicated
component for title but it also comes with downsides (lot of code to
copy paste, such as "esc" to leave field, copy button, etc.). This one
doesn't create less debt in my opinion. Once we have the layout/widget
system we might have a dedicated widget type and the right abstraction
layers
2024-06-04 11:44:54 +02:00
cd9ac529a5 Add storybook tests for User & Metadata loading (#5650)
### Description
Add storybook tests for User & Metadata loading

### Refs
#5590

### Demo



https://github.com/twentyhq/twenty/assets/140154534/2434fc50-8d95-420b-9f62-6fbdf43ce9e5


Fixes #5590

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2024-06-04 10:51:33 +02:00
bosiraphaelandGitHub 3f9f2c3ba6 5620 implement throttle logic for message and calendar sync (#5718)
Closes #5620 and improve messages filters
2024-06-04 10:29:05 +02:00
Indrakant DandGitHub 32d4b37d37 Change Navigation Font Weight (#5704)
fixes [#5665](https://github.com/twentyhq/twenty/issues/5665).


| Before | After |
| --- | --- |
| <img width="257" alt="Screenshot 2024-06-02 at 1 22 09 AM"
src="https://github.com/twentyhq/twenty/assets/60315832/b78da8fa-cea8-45af-b32c-864d6bce050a">
| <img width="248" alt="Screenshot 2024-06-02 at 1 21 01 AM"
src="https://github.com/twentyhq/twenty/assets/60315832/793c3d16-3ed7-408f-acdd-6f7f4ec92ca2">
|
2024-06-04 10:03:07 +02:00
59c7bcd705 Fix 4363 modify kanban menu (#5337)
**Changes:**

- Changed -/+ to eye and eye off icons
- Changed menu width to 200px
- Created separate menu for hidden fields
- Added Edit Fields option to hidden fields menu
- Added test file MenuItemSelectTag (wasn't included in the issue)

As this is my first pr, feedback is very welcome!
**Note:** 
These changes cover most of #4363 . I left out the implementation of the
RightIcon in the "Hidden Fields" menu item.

---------

Co-authored-by: kiridarivaki <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-06-03 22:17:37 +02:00
rostakleinandGitHub dcd769f20f spreadsheet import utf8 emoji support (#5720)
fixes https://github.com/twentyhq/twenty/issues/5476

took some time to find the right spot, but ChatGPT was helpful enough in
this case 😄

<img width="311" alt="Screenshot 2024-06-03 at 20 24 26"
src="https://github.com/twentyhq/twenty/assets/19856731/4ea0188b-bee5-4a4f-a8af-2630e3b1c373">
2024-06-03 21:26:08 +02:00
671de4170f Migrated Developer Docs (#5683)
- Migrated developer docs to Twenty website

- Modified User Guide and Docs layout to include sections and
subsections

**Section Example:**
<img width="549" alt="Screenshot 2024-05-30 at 15 44 42"
src="https://github.com/twentyhq/twenty/assets/102751374/41bd4037-4b76-48e6-bc79-48d3d6be9ab8">

**Subsection Example:**
<img width="557" alt="Screenshot 2024-05-30 at 15 44 55"
src="https://github.com/twentyhq/twenty/assets/102751374/f14c65a9-ab0c-4530-b624-5b20fc00511a">


- Created different components (Tabs, Tables, Editors etc.) for the mdx
files

**Tabs & Editor**

<img width="665" alt="Screenshot 2024-05-30 at 15 47 39"
src="https://github.com/twentyhq/twenty/assets/102751374/5166b5c7-b6cf-417d-9f29-b1f674c1c531">

**Tables**

<img width="698" alt="Screenshot 2024-05-30 at 15 57 39"
src="https://github.com/twentyhq/twenty/assets/102751374/2bbfe937-ec19-4004-ab00-f7a56e96db4a">

<img width="661" alt="Screenshot 2024-05-30 at 16 03 32"
src="https://github.com/twentyhq/twenty/assets/102751374/ae95b47c-dd92-44f9-b535-ccdc953f71ff">

- Created a crawler for Twenty Developers (now that it will be on the
twenty website). Once this PR is merged and the website is re-deployed,
we need to start crawling and make sure the index name is
‘twenty-developer’
- Added a dropdown menu in the header to access User Guide and
Developers + added Developers to footer


https://github.com/twentyhq/twenty/assets/102751374/1bd1fbbd-1e65-4461-b18b-84d4ddbb8ea1

- Made new layout responsive

Please fill in the information for each mdx file so that it can appear
on its card, as well as in the ‘In this article’ section. Example with
‘Getting Started’ in the User Guide:

<img width="786" alt="Screenshot 2024-05-30 at 16 29 39"
src="https://github.com/twentyhq/twenty/assets/102751374/2714b01d-a664-4ddc-9291-528632ee12ea">

Example with info and sectionInfo filled in for 'Getting Started':

<img width="620" alt="Screenshot 2024-05-30 at 16 33 57"
src="https://github.com/twentyhq/twenty/assets/102751374/bc69e880-da6a-4b7e-bace-1effea866c11">


Please keep in mind that the images that are being used for Developers
are the same as those found in User Guide and may not match the article.

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-06-03 18:52:43 +02:00
MarieandGitHub f7cdd14c75 Use same overlay background for field inputs (#5719)
Fixes #5593
2024-06-03 17:17:25 +02:00
Félix MalfaitandGitHub 09bfb617b2 Right drawer to edit records (#5551)
This PR introduces a new side panel to edit records and the ability to
minimize the side panel.

The goal is leverage this sidepanel to be able to create records while
being in another show page.

I'm opening the PR for feedback since it involved refactoring and
therefore already touches a lot of files, even though it was quick to
implement.

<img width="1503" alt="Screenshot 2024-05-23 at 17 41 37"
src="https://github.com/twentyhq/twenty/assets/6399865/6f17e7a8-f4e9-4eb4-b392-c756db7198ac">
2024-06-03 17:15:05 +02:00
8e8078d596 fix remove favorite on opportunity delete (#5686)
- fix : #5521

When we deleted an opportunity that had been added to the favorites
list, the opportunity was removed correctly, but it still remained in
the favorites list. The issue was due to not accounting for the removal
of the opportunity from the favorites during the deletion process.

This problem has now been fixed : 



https://github.com/twentyhq/twenty/assets/78202522/3d3cb689-3228-43fc-bf50-e824370582a7

Co-authored-by: Jeff Gasparini <[email protected]>
2024-06-03 16:09:27 +02:00
Shashank VishwakarmaandGitHub 04dcbffe75 Fixed: Inconsistent Field Label Display on Task Side Panel (#5687)
Now all the required fields are displayed with the respective labels.

- Added a `FieldContextProvider` for the field `Reminder` in the
`ActivityEditorFields`.
- Fixed the missing label values, by adding a missed optional
`showLabel` within the `fieldDefinition` in the `useFieldContext`.

fixes: #5667 

![Screenshot
(342)](https://github.com/twentyhq/twenty/assets/140178357/adf9563a-6cab-4809-8616-1c256abab717)
2024-06-03 15:58:58 +02:00
Thomas TrompetteandGitHub 2886664b62 Backfill position when not input (#5696)
- refactor record position factory and record position query factory
- override position if not present during createMany

To avoid overriding the same positions for all data in createMany, the
logic is:
- if inserted last, use last position + arg index + 1
- if inserted first, use first position - arg index - 1
2024-06-03 15:18:01 +02:00
a6b8beed68 Fixed: Fields Disappear on Drag and Drop (#5703)
Now the fields don't disappear on drag and drop.

- After reviewing the codebase, I checked that when `inView` is true the
`RecordInlineCell` is rendered otherwise the
`StyledRecordInlineCellPlaceholder` will render which causes the fields
get disappear.
- So, I added the condition to check if `isDragSelectionStartEnabled` is
false then `StyledRecordInlineCellPlaceholder` will be rendered
otherwise `RecordInlineCell`.

fixes: #5651 



https://github.com/twentyhq/twenty/assets/140178357/022195ca-fec2-43a7-8808-f4974dbe66cf

---------

Co-authored-by: martmull <[email protected]>
2024-06-03 15:15:32 +02:00
rostakleinandGitHub e49db63f30 accounts page loader as skeleton (#5702)
fixes https://github.com/twentyhq/twenty/issues/5659



https://github.com/twentyhq/twenty/assets/19856731/aeae6f08-bc6e-4d71-9067-39b6382ebf15
2024-06-03 15:14:08 +02:00
spiderman3000andGitHub 24941c66b7 [Improvement] LeftPanel skeleton loader (#5705)
This change solves #5664 
This modifies the left-side panel skeleton loader in accordance with the
default view.

![old-loading-ui](https://github.com/twentyhq/twenty/assets/171416711/83fe8a06-6f49-4581-bb84-00d2a0291f37)

![new-loading-ui](https://github.com/twentyhq/twenty/assets/171416711/4ba45fc0-8932-4ee9-b558-9f810d7891bd)

![default-loaded-view](https://github.com/twentyhq/twenty/assets/171416711/40c301d2-1015-4a2c-9458-0d2fb9d7de75)
2024-06-03 14:49:57 +02:00
WeikoandGitHub e2dc660d18 Fix exception handler capturing graphql errors (#5714)
Our exception handler has to filter out some errors/exceptions so they
are not caught by the ExceptionHandlerDriver (Logged or Sentry for
example). This is done for Http errors in the range of 4xx and also
makes sure they are converted back to Graphql validation errors.
However, graphql validation errors that are already managed by Yoga
(with Schema validation) should also be filtered out, this PR should fix
that behaviour
2024-06-03 14:36:03 +02:00
bosiraphaelandGitHub 2d12984db4 5613 add throttlepauseuntil and throttlefailurecount fields to messagechannel and calendarchannel (#5713)
Closes #5613
2024-06-03 13:22:49 +02:00
7fa05bf539 feat (improvement): update the createOneObjectMetaItem (#5673)
# This PR

- Fix #5278 
- Updates the implementation of the `createOneObjectMataItem` hook to
reduce the number of api calls
- Users can now navigate to the newly created object first and the
graphql api calls to cache data are happening in the background - this
will improve the user experience and reduce the create object api call
time by >2
<img width="1508" alt="Screenshot 2024-05-30 at 12 00 15"
src="https://github.com/twentyhq/twenty/assets/61581306/46513fd1-d46e-40bc-a036-07e3acdf2870">

In the issue description, it also suggested to have a loading indicator
while creating the object, it seems like on #5352 we adopted to disable
it while creating the object - which looks good to me and it works, let
me know if we still need the loading indicator instead @Bonapara

Looking forward to getting your feedback
cc: @charlesBochet

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-06-03 12:12:04 +02:00
52864889da Updated Snackbar as shown in Figma Fixes #5666 (#5700)
<img width="282" alt="Screenshot 2024-06-01 at 1 07 16 AM"
src="https://github.com/twentyhq/twenty/assets/10000167/0b1cd2f5-9036-4a31-8dfa-b90972ebe1aa">


Updated the font weight and added Cancel label on the left of the icon
as shown in figma design.
Also, didn't increased the gap because it's already like the figma
design!
Let me know if you want more gap between title and description.

Closes https://github.com/twentyhq/twenty/issues/5666

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-06-03 12:05:04 +02:00
Charles BochetandGitHub eab8deb211 Rework messaging modules (#5710)
In this PR, I'm refactoring the messaging module into smaller pieces
that have **ONE** responsibility: import messages, clean messages,
handle message participant creation, instead of having ~30 modules (1
per service, jobs, cron, ...). This is mandatory to start introducing
drivers (gmails, office365, ...) IMO. It is too difficult to enforce
common interfaces as we have too many interfaces (30 modules...). All
modules should not be exposed

Right now, we have services that are almost functions:
do-that-and-this.service.ts / do-that-and-this.module.ts
I believe we should have something more organized at a high level and it
does not matter that much if we have a bit of code duplicates.

Note that the proposal is not fully implemented in the current PR that
has only focused on messaging folder (biggest part)

Here is the high level proposal:
- connected-account: token-refresher
- blocklist
- messaging: message-importer, message-cleaner, message-participants,
... (right now I'm keeping a big messaging-common but this will
disappear see below)
- calendar: calendar-importer, calendar-cleaner, ...

Consequences:
1) It's OK to re-implement several times some things. Example:
- error handling in connected-account, messaging, and calendar instead
of trying to unify. They are actually different error handling. The only
things that might be in common is the GmailError => CommonError parsing
and I'm not even sure it makes a lot of sense as these 3 apis might have
different format actually
- auto-creation. Calendar and Messaging could actually have different
rules

2) **We should not have circular dependencies:** 
- I believe this was the reason why we had so many modules, to be able
to cherry pick the one we wanted to avoid circular deps. This is not the
right approach IMO, we need architect the whole messaging by defining
high level blocks that won't have circular dependencies by design. If we
encounter one, we should rethink and break the block in a way that makes
sense.
- ex: connected-account.resolver is not in the same module as
token-refresher. ==> connected-account.resolver => message-importer (as
we trigger full sync job when we connect an account) => token-refresher
(as we refresh token on message import).

connected-account.resolver and token-refresher both in connected-account
folder but should be in different modules. Otherwise it's a circular
dependency. It does not mean that we should create 1 module per service
as it was done before

In a nutshell: The code needs to be thought in term of reponsibilities
and in a way that enforce high level interfaces (and avoid circular
dependencies)

Bonus: As you can see, this code is also removing a lot of code because
of the removal of many .module.ts (also because I'm removing the sync
scripts v2 feature flag end removing old code)
Bonus: I have prefixed services name with Messaging to improve dev xp.
GmailErrorHandler could be different between MessagingGmailErrorHandler
and CalendarGmailErrorHandler for instance
2024-06-03 11:16:05 +02:00
Charles Bochet c4b6b1e076 Fix thread cleaner forgetting to clean some thread and messages 2024-06-01 16:51:20 +02:00
Charles Bochet 182ab66eef Fix messaging import issue when all batch messages are excluded 2024-05-31 23:58:33 +02:00
e0103bbcdc 5015 make gmail filters work for partial sync (#5695)
Closes #5015

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-05-31 23:20:57 +02:00
SudarshandGitHub c960d2e8ef Incorrect Icon Width on Menu Items #5678 (#5688)
Fixes https://github.com/twentyhq/twenty/issues/5678
2024-05-31 18:40:23 +02:00
Thomas des FrancsandGitHub 22a0e400f4 updated user-guide images (#5682)
Added a box-shadow on each to unify with the homepage design
2024-05-31 18:12:04 +02:00
Charles BochetandGitHub 99dff43579 Add new enum options to messageChannel syncStatus (#5694)
As per title!
This command will enable smooth migrations between 0.12 and 0.20
2024-05-31 18:02:52 +02:00
Thomas TrompetteandGitHub 9fd761dd10 Remove else if on position calculation (#5691)
As title
2024-05-31 14:31:37 +02:00
Thomas TrompetteandGitHub fbd8714c76 Make positions possibly negatives (#5690)
Closes https://github.com/twentyhq/twenty/issues/5427
2024-05-31 14:17:49 +02:00
f166171a1c 5531 update gmail full sync to v2 (#5674)
Closes #5531

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-05-31 13:29:58 +02:00
Thomas TrompetteandGitHub fe941c64be Build empty state for remote tables (#5652)
Remote tables could be in an empty state because:
- either we do not have data, which is normal
- either the connexion is broken (issue with the server, table requires
updates...)

Apollo throws errors but these will quickly disappear and do not provide
any tips to the user on how handle those.

This PR adds a new empty state placeholder for remote objects, that will
be display when the record list is empty. It will provide a link to the
settings page.

<img width="1512" alt="Capture d’écran 2024-05-30 à 11 49 33"
src="https://github.com/twentyhq/twenty/assets/22936103/fc2dd3cc-e90b-4033-b023-83ac9ff2a70b">
2024-05-31 11:24:42 +02:00
Thomas TrompetteandGitHub c60a3e49cd Catch query timeout exceptions (#5680)
Query read timeouts happen when a remote server is not available. It
breaks:
- the remote server show page
- the record table page of imported remote tables

This PR will catch the exception so it does not go to Sentry in both
cases.

Also did 2 renaming.
2024-05-31 10:39:35 +02:00
MarieandGitHub 5e1dfde3e4 After createOneDbConnection mutation, update cache manually instead of using refetchQuery (#5684)
Closes #5057.

RefetchQuery is unreliable - [it won't be executed if the component is
unmounted](https://github.com/apollographql/apollo-client/issues/5419),
which is the case here because of the redirection that occurs after the
mutation.
We want to avoid using refetchQuery as much as possible, and write
directly in the cache instead.
2024-05-31 10:28:44 +02:00
c7f2150ac7 Fixed: In CSV import now users are able to come back to the previous step. (#5625)
Users now can make a back transition from the current step state.

- Added a `BackButton` component to `spreadsheet-import` in order to use
it within the step state components.
- Used the prebuilt `prevStep` from `useStepBar` and passed it as a prop
to the `Uploadflow` to get the previous state as activestep.
- Added a `previousState` to set the previous state with the required
key data.
- Added a `handleOnBack` function in `Uploadflow` to set the correct
state and call the `prevStep` function to make the transition.
- Added a callback function `onBack` and passed it as props to each step
state component.

fixes: #5564 



https://github.com/twentyhq/twenty/assets/140178357/be7e1a0a-0fb8-41f2-a207-dfc3208ca6f0

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-05-30 18:43:56 +02:00
Aditya PimpalkarandGitHub a12c1aad5e fix: user has to login every time chrome sidepanel is opened (#5544)
We can pass the auth tokens to our front app via post message, which
will also allow us to pass route names to navigate on it
2024-05-30 12:58:45 +02:00
d770e56e31 fix: Poor contrast on SlashMenu (#5342)
fixes
[#5304](https://github.com/twentyhq/twenty/issues/5304#issue-2280984063)

dark mode
<img width="1425" alt="Screenshot 2024-05-09 at 1 59 56 AM"
src="https://github.com/twentyhq/twenty/assets/60315832/70230f9e-607a-462a-8823-db8350d86bc4">


<br>
<br>
Light mode
<img width="1448" alt="Screenshot 2024-05-09 at 2 01 06 AM"
src="https://github.com/twentyhq/twenty/assets/60315832/523488a5-21de-4911-b11b-e28fba9adae6">

Co-authored-by: Lucas Bordeau <[email protected]>
2024-05-30 11:00:23 +02:00
MarieandGitHub 339aee6dbb Run queries within queryRunner transaction sequentially (#5668)
Within a queryRunner transaction, it is important that migrations are
run subsequently and not concurrently: otherwise if an error is thrown
by one of the query, it will abort the transaction; any subsequent query
running on the same queryRunner will cause the error _current
transaction is aborted, commands ignored until end of transaction
block_.

Using an async function in a map as below does not guarantee that each
query terminates before iterating over the next one, which can be an
issue as described above, and which seems to cause [this
sentry](https://twenty-v7.sentry.io/issues/5258406553/?environment=prod&project=4507072499810304&query=is%3Aunresolved+issue.priority%3A%5Bhigh%2C+medium%5D&referrer=issue-stream&statsPeriod=7d&stream_index=4).
2024-05-30 10:45:46 +02:00
martmullandGitHub 9a23f9b322 4699 update the onboarding app placeholder (#5616)
## Before

![image](https://github.com/twentyhq/twenty/assets/29927851/e9055c16-eed3-48f1-a4e2-df115a6c2247)

## After

![image](https://github.com/twentyhq/twenty/assets/29927851/254c7573-81c7-487e-b653-5b0ba311cf9e)
2024-05-29 23:35:32 +02:00
Lucas BordeauandGitHub bcb582ffa0 Fixed button icon bug (#5670)
There was a bug with the isEmpty variable actually being a function from
lodash instead of the result of `isFieldEmpty()`.
2024-05-29 21:29:33 +02:00
Aditya PimpalkarandGitHub 008813f194 fix: twenty-chrome-extension:"graphql:generate" (#5649)
fixes: #5645
2024-05-29 14:45:32 +02:00
df2b76ff6c 4848 - Update Checkbox component (#4883)
# Summary
* Add hover state which defaults to **false**
* Add disable state


![chrome_KV2AltSmBK](https://github.com/twentyhq/twenty/assets/54629307/976fba28-b975-4acc-9d06-c14c4fe339d8)


closes #4848

---------

Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-05-29 13:34:29 +02:00
Lucas BordeauandGitHub ecff27f90c Improved hotkey scopes docs (#5647)
We have a lot of contributors that are not aware of our method for
implementing hotkey listeners.

I updated the documentation to provide clear examples so that users can
refer to it and maintainers and reviewers can point to it when they see
onKeyDown implementations.
2024-05-29 12:45:29 +02:00
MarieandGitHub 5bb205bd6a Fix update remote field metadata (#5638)
Closes #5610.

& update fetch-policy when fetching database on the remote databases
show page to get freshest status.
2024-05-28 18:01:05 +02:00
Thomas TrompetteandGitHub ebb1aa0377 Add label to remote server (#5637)
Added label on remote server entity. 

Also added the possibility to update schema. 

<img width="688" alt="Capture d’écran 2024-05-28 à 15 36 31"
src="https://github.com/twentyhq/twenty/assets/22936103/c9786122-8459-4876-833e-c9a1d7d27829">
2024-05-28 15:54:57 +02:00
Thomas TrompetteandGitHub ae6d5afdfc Add missing stripe tables (#5621)
As title

Still adding not working tables / columns commented so we know why these
are not available.
2024-05-28 11:32:57 +02:00
443fb53158 Updated Past Events Font-Color to Primary for Visibility (#5572)
Issue: [#5164](https://github.com/twentyhq/twenty/issues/5164)

Updated font-color of the title of past calendar events to be primary to
improve visibility. Calendar event time font-color remains unchanged.

Before:

![image](https://github.com/twentyhq/twenty/assets/47053579/8556eefb-d79e-4924-a15b-1609c0720aa3)

After:

![image](https://github.com/twentyhq/twenty/assets/47053579/a2d3639c-0a04-4db6-998e-f76b01e1e392)

The year in month-year at the top of these screenshots also appears to
be in tertiary font-color which can be adjusted too if that feels not
visible enough.

---------

Co-authored-by: ktang520 <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-05-27 22:18:12 +02:00
Piyush YadavandGitHub ef64911e45 fix: Requests for new captcha token after a wrong password is entered. (#5614)
Fix issue where captcha did not reset after an incorrect password was
entered and invalid token error was thrown, ensuring users receive a new
captcha token on each attempt.

before:
![Screenshot 2024-05-27
191707](https://github.com/twentyhq/twenty/assets/72244570/7530c569-a3b5-46b9-96aa-b03c21f1e99a)

after: user can try again with a new captcha token and login smoothly
without encountering the invalid token error.
2024-05-27 18:06:34 +02:00
Félix MalfaitandGitHub 9df3b406fb Fix search public api key (#5609)
It was the wrong API key since we changed the index
2024-05-27 16:08:00 +02:00
MarieandGitHub 930237e778 Bump to version v0.12.1 (#5608) 2024-05-27 16:07:38 +02:00
MarieandGitHub f58c961d98 Remove feature flag for Links field (#5606) 2024-05-27 16:05:22 +02:00
MarieandGitHub 857971458a Bump version to v0.12.0 (#5604) 2024-05-27 15:16:50 +02:00
bosiraphaelandGitHub 1715aa8465 Remove hasCalendarEventStarted flaky test (#5603)
Remove hasCalendarEventStarted flaky test
2024-05-27 15:16:21 +02:00
martmullandGitHub 2f52e0fdb6 5505 forgot password feature broken (#5602)
- add missing `excludedOperations` in
`packages/twenty-server/src/engine/middlewares/graphql-hydrate-request-from-token.middleware.ts`
- update generated graphql file
- Add missing redirection to index after password update
2024-05-27 15:13:11 +02:00
Lucas BordeauandGitHub 113dfba994 Disable perf stories in chromatic (#5597)
Disabled chromatic for performance stories.
2024-05-27 14:43:39 +02:00
Charles BochetandGitHub 56ef8fcff3 Fix missing avatar on People table (#5601)
As per title!
2024-05-27 14:42:45 +02:00
Lucas BordeauandGitHub 2c009afd36 Added RecordFieldValueSelectorContext (#5596)
Added RecordFieldValueSelectorContext on mock container so that new
record value using use-context-selector can work properly in fields
module.
2024-05-27 14:02:38 +02:00
Lucas BordeauandGitHub 3051f3a790 Fixed new record value context selector sync in activity drawer (#5594)
Forgot to add `<RecordValueSetterEffect recordId={...} />` effect
component for activity drawer during refactor.
2024-05-27 13:58:31 +02:00
Lucas BordeauandGitHub 8ee98e0fda Fixed pending row edit mode (#5592)
This PR fixes creation on table.

With the recent optimization refactor, we now use a custom event to
trigger edit and soft focus mode on a table cell.

There's a specific case when we create a pending row to allow creating a
new record, where the custom event gets triggered before the cell
exists, so it cannot listen and put itself in edit mode.

The fix is passing down a new isPendingRow in the context, so the
identifier cell on a pending row can put itself in edit mode during its
first render.
2024-05-27 13:40:53 +02:00
MarieandGitHub 2a1ea326d2 Fix SnackBar visual (#5569)
cf https://discord.com/channels/1130383047699738754/1243478998810497054
2024-05-27 12:15:57 +02:00
martmullandGitHub bcb5cf7ad7 Remove flash after create workspace (#5589)
## Before


https://github.com/twentyhq/twenty/assets/29927851/a6b4f580-4f01-4f5b-a023-f9fa0d9f9c28


## After


https://github.com/twentyhq/twenty/assets/29927851/2a1feb44-27ce-457d-86a2-eea46a313f98
2024-05-27 12:14:50 +02:00
Charles BochetandGitHub 1f9c340bc6 Fix record board broken position (#5588)
Position were not queries anymore while populating kanban board,
breaking the drag and drop feature
2024-05-27 11:50:19 +02:00
Lucas BordeauandGitHub 446c5564d6 Fixed entity chip navigate (#5587)
Fixed EntityChip, navigate had been removed during performance
optimization, I put it back.
2024-05-27 11:30:01 +02:00
10abd7f0ad User & Metadata Loading (#5347)
### Description
User & Metadata Loading

### Refs
#4456

### Demo


https://github.com/twentyhq/twenty/assets/140154534/4c20fca6-feaf-45f6-ac50-6532d2ebf050


Fixes #4456

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-05-27 10:38:37 +02:00
74d7479c8c Added Data Model Diagram to 0.12 changelog (#5585)
# Data Model Diagram

Introduced an "Data Model Diagram" feature that allows users to
visualize the relationships between different objects within the CRM.


![image](https://github.com/twentyhq/twenty/assets/19412894/70f81a93-9166-4036-bb21-f332a42bd850)

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-27 09:56:33 +02:00
9c046dcfdb Prefetch Skeleton Loading on Indexes and Shows (#5545)
### Description
Prefetch Skeleton Loading on Indexes and Shows

### Refs
#4458

### Demo

https://jam.dev/c/a1ad04e1-80b6-4b2a-b7df-373f52f4b169

https://jam.dev/c/c5038b97-2f18-4c29-8dee-18c09376e5ee

Fixes: #4458

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-05-27 09:56:08 +02:00
AbdullahandGitHub cfd83d6b8e [UI] Remove theme constants from twenty-front and use the ones exported from twenty-ui. (#5558)
Some parts of the Frontend used theme constants exported from
`modules/ui` while other parts used theme constants exported from
`twenty-ui`.

This PR centralizes theme constants by removing them from `modules/ui`
completely.
2024-05-25 16:09:25 +02:00
Charles BochetandGitHub 9c325eb0ef Fix opportunities board and CI (#5573)
RelationFieldDisplay was estabilishing a dependency on
RecordTableContext which is not right as FieldDisplay can be loaded
outside of RecordTable context

I'm using an util directly but understand this is a bit heavier than
before in term of performance. If we want to pre-compute this, we will
need to be a bit smarter.

Also the previous code based on fieldName was not right, we should check
relationObjectMetadataItem instead
2024-05-25 12:29:20 +02:00
1c867d49a1 Add Object Alternative view (#5356)
Current state:

<img width="704" alt="Bildschirmfoto 2024-05-11 um 17 57 33"
src="https://github.com/twentyhq/twenty/assets/48770548/c979f6fd-083e-40d3-8dbb-c572229e0da3">



I have some things im not really happy with right now:

* If I have different connections it would be weird to display a one_one
or many_one connection differently
* The edges overlay always at one hand at the source/target (also being
a problem with the 3 dots vs 1 dot)
* I would have to do 4 versions of the 3 dot marker variant as an svg
with exactly the same width as the edges wich is not as easy as it seems
:)
* The initial layout is not really great - I know dagre or elkjs could
solve this but maybe there is a better solution ...


If someone has a good idea for one or more of the problems im happy to
integrate them ;)

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-25 10:38:27 +02:00
martmullandGitHub 9080981990 5509 remove flash on intermediate verify step when sign in with sso (#5526)
- remove flash on /verify
- remove flash on signInUp
- remove useless redirections and hooks
- Remove DefaultHomePage component
- Move redirections to /objects/companies in PageChangeEffect
- add useShowAuthModal hooks and tests
- add usePageChangeEffectNaviteLocation hooks and tests
- fix refresh token expired produces blank screen
2024-05-25 10:36:59 +02:00
Thomas des FrancsandGitHub f455ad4001 0.12 changelog (#5560)
Added the changelog items for:
- Skeleton loading
- Blocklist
- Notification new design
2024-05-25 10:29:30 +02:00
MarieandGitHub def1774bf0 [Fix] Object names should be camel cased (#5571)
as per title
2024-05-25 10:29:00 +02:00
bosiraphaelandGitHub 936ac4027a Introduce a new feature flag for contact creation (#5570)
Introduce new feature flag
`IS_CONTACT_CREATION_FOR_SENT_AND_RECEIVED_EMAILS_ENABLED` to allow
contacts to be created for sent and received emails.
2024-05-24 18:55:21 +02:00
Lucas BordeauandGitHub a0178478d4 Feat/performance-refactor-styled-component (#5516)
In this PR I'm optimizing a whole RecordTableCell in real conditions
with a complex RelationFieldDisplay component :
- Broke down getObjectRecordIdentifier into multiple utils
- Precompute memoized function for getting chip data per field with
useRecordChipDataGenerator()
- Refactored RelationFieldDisplay
- Use CSS modules where performance is needed instead of styled
components
- Create a CSS theme with global CSS variables to be used by CSS modules
2024-05-24 18:53:37 +02:00
bosiraphaelandGitHub 3680647c9a Fix sync token is no longer valid in calendar sync (#5563)
Fix sync token is no longer valid in calendar sync.


https://developers.google.com/apps-script/add-ons/calendar/conferencing/sync-calendar-changes#implement_a_sync_trigger_function
_Caution: Occasionally sync tokens are invalidated by the server,
resulting in a Sync token is no longer valid error. When this happens,
your code should conduct a full sync and replace any stored sync tokens
you have._
2024-05-24 18:33:44 +02:00
bosiraphaelandGitHub 87465b13ee 5507 modify the partial sync cron to work with the new statuses (#5512)
Closes #5507
2024-05-24 18:27:54 +02:00
Shashank VishwakarmaandGitHub 3de5ed3427 Added: The support for CZK Currency (#5561)
Added the Czech Koruna currency support.
- Added the CZK to the currency code.
- Set the desired CZK icon to `TablerIcons` to use it within the
`twenty-ui`

fixes: #5530 

![Screenshot
(335)](https://github.com/twentyhq/twenty/assets/140178357/a19a60b8-2261-44b3-9ed2-5c35424631a1)
![Screenshot
(336)](https://github.com/twentyhq/twenty/assets/140178357/20944e43-901c-4dda-b986-a47763fb5f9b)
2024-05-24 18:11:08 +02:00
ThaïsandGitHub c7d61e183a feat: simplify field preview logic in Settings (#5541)
Closes #5382

TODO:

- [x] Test all field previews in app
- [x] Fix tests
- [x] Fix JSON preview
2024-05-24 18:06:57 +02:00
Peter WandGitHub 1ae7fbe90d docs: replace 'he' with 'they' (#5562)
Why:
* allows for approximate doubling of the user base ;-)
2024-05-24 18:03:55 +02:00
ThaïsandGitHub 736c79afde fix: Links field fixes (#5565)
Related issue: #3607
2024-05-24 17:59:08 +02:00
Félix MalfaitandGitHub fa3443c05b Improve autoload (#5566)
Set a 1000px margin to start fetching more records before we hit the
bottom of the page, makes the scrolling experience a lot smoother :)
2024-05-24 17:58:37 +02:00
ThaïsandGitHub 9ad3fb96b7 feat: move Snackbar to top of screen on mobile (#5567)
... and change SnackBar blur to medium.

@Bonapara Following
https://github.com/twentyhq/twenty/pull/5515#discussion_r1609618980

Related issue: https://github.com/twentyhq/twenty/issues/5383

<img width="386" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/de2f0be4-9d9c-4013-bed2-774e0599ce49">
2024-05-24 17:58:12 +02:00
Lucas BordeauandGitHub de9321dcd9 Fixed sync between record value context selector and record store (#5517)
This PR introduces many improvements over the new profiling story
feature, with new tests and some refactor with main :
- Added use-context-selector for getting value faster in display fields
and created useRecordFieldValue() hook and RecordValueSetterEffect to
synchronize states
- Added performance test command in CI
- Refactored ExpandableList drill-downs with FieldFocusContext
- Refactored field button icon logic into getFieldButtonIcon util
- Added RelationFieldDisplay perf story
- Added RecordTableCell perf story
- First split test of useField.. hook with useRelationFieldDisplay()
- Fixed problem with set cell soft focus
- Isolated logic between display / soft focus and edit mode in the
related components to optimize performances for display mode.
- Added warmupRound config for performance story decorator
- Added variance in test reporting
2024-05-24 16:52:05 +02:00
Charles BochetandGitHub 82ec30c957 Expandable list remove anchor (#5559)
Deprecate anchorElement on ExpandableList to avoid props drilling. The
anchorElement should be the ExpandableList container itself
2024-05-24 12:26:42 +02:00
ThaïsandGitHub 7f7ea59b51 refactor: reset field default value on type change in Settings (#5534)
Related issue: #5412

See https://github.com/twentyhq/twenty/pull/5436#discussion_r1609470484
for context.
2024-05-24 12:15:17 +02:00
Thomas TrompetteandGitHub 18fafbdeb5 Rename findAvailableTables endpoint (#5557)
As title
2024-05-24 10:57:46 +02:00
MarieandGitHub 4bd0aafb8e [fix] Update remote table sync status in cache after schema update (#5553)
Upon schema update, sync status can change from synced to non_synced in
case the update regards a table that was deleted. Let's update the sync
status too to avoid displaying the table as still synchronized.


https://github.com/twentyhq/twenty/assets/51697796/7ff2342b-ce9f-4179-9b76-940617cf1292
2024-05-24 10:20:08 +02:00
Aditya PimpalkarandGitHub f9a3d5fd15 chore: remove OAuth from chrome extension (#5528)
Since we can access the tokens directly from cookies of our front app,
we don't require the OAuth process to fetch tokens anymore
2024-05-24 00:01:47 +02:00
Thomas TrompetteandGitHub fede721ba8 Add sorter for distant tables (#5546)
As title
2024-05-23 22:36:50 +02:00
Jeet DesaiandGitHub e00b19e4cc Change email tab placeholder illustration (#5550)
Fixes #5502 


![image](https://github.com/twentyhq/twenty/assets/52026385/ca73add9-101a-4517-96d7-c8fde883c066)

![image](https://github.com/twentyhq/twenty/assets/52026385/120f495b-db07-49c8-a058-5b77b2e06c1c)
2024-05-23 18:26:08 +02:00
MarieandGitHub fe5b558477 [FE] Update remote table schema + refactor Tables list (#5548)
Closes #5062.

Refactoring tables list to avoid rendering all toggles on each sync or
schema update while using fresh data:
- introducing id for RemoteTables in apollo cache
- manually updating the cache for the record that was updated after a
sync or schema update instead of fetching all tables again
2024-05-23 17:00:24 +02:00
Thomas TrompetteandGitHub 0d6fe7b2b4 Handle relations separately for remotes (#5538)
Remote object id columns are not removed anymore when a remote object is
unsynced.
This is because we do not use relations anymore. We only created the id
field. So the current behavior that was implemented for custom objects,
to retrieve the fields to deleted, does not work.

Since remote object relations are really different, I extracted the
logic from `objectMetadataService`. It now handles only the relations
for custom objects creation and deletion (this part should be extracted
as well).

I create a new remote table relation service that will:
- fetch objects metadata linked to remotes (favorites,
activityTargets...)
- look for columns based on remote object name
- delete the fields and columns
2024-05-23 14:59:34 +02:00
ThaïsandGitHub 8019ba8782 feat: implement new SnackBar design (#5515)
Closes #5383

## Light theme

<img width="905" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/ab0683c5-ded3-420c-ace6-684d38794a2d">

## Dark theme

<img width="903" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/4e43ca35-438d-4ba0-8388-1f061c6ccfb0">
2024-05-23 12:19:50 +02:00
Jérémy MandGitHub 453525ca25 fix: workspace health showing error for multi select (#5547)
Fix `workspace:health` command not working properly with `MULTI_SELECT`
field metadata type.
2024-05-23 12:02:40 +02:00
Charles Bochet 7b1bea3a8a Release patch v0.11.3 2024-05-23 08:41:37 +02:00
AbdullahandGitHub b8eef21343 [UI] Extract our ColorSample and Tag components from twenty-front to twenty-ui. (#5543)
Two more components extracted out of twenty-front: `ColorSample` and
`Tag`.
2024-05-23 07:46:31 +02:00
MarieandGitHub 6b1d4e0744 [Fix] Do not allow names with whitespaces (#5542)
As per title
2024-05-23 07:43:09 +02:00
ThaïsandGitHub 04bf697b25 feat: add feature flag to activate Links field creation (#5535)
Related issue: #3607
2024-05-22 18:06:32 +02:00
WeikoandGitHub 4e533bf2ef fix pgGraphqlQuery with concurent search path (#5537) 2024-05-22 17:14:33 +02:00
Thomas TrompetteandGitHub 5448512bdc Add quotes for table name (#5533)
As title
2024-05-22 14:21:32 +02:00
Ady BeraudandGitHub 4b251812bd Fixed congratulations bot (#5532)
- Fixed bot
- Added list of team members
2024-05-22 14:02:54 +02:00
40bd42efc4 Added Algolia Search (#5524)
-Added Algolia Search Box :

<img width="707" alt="Screenshot 2024-05-22 at 10 05 13"
src="https://github.com/twentyhq/twenty/assets/102751374/d26f9748-2a80-4690-88ca-16b078c52915">

-Added Algolia Search Bar:

<img width="294" alt="Screenshot 2024-05-22 at 10 05 56"
src="https://github.com/twentyhq/twenty/assets/102751374/ad503894-4ae1-41e4-bd4b-6241f7679142">

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-22 12:06:00 +02:00
2e79bcc70b Sync stripe tables (#5475)
Stripe tables do not support `hasNextPage` and `totalCount`. This may be
because of stripe wrapper do not properly support `COUNT` request.
Waiting on pg_graphql answer
[here](https://github.com/supabase/pg_graphql/issues/519).

This PR:
- removes `totalCount` and `hasNextPage` form queries for remote
objects. Even if it works for postgres, this may really be inefficient
- adapt the `fetchMore` functions so it works despite `hasNextPage`
missing
- remove `totalCount` display for remotes
- fix `orderBy`

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-05-22 11:20:44 +02:00
ThaïsandGitHub 35c1f97511 perf: use Nx cache for Chromatic script (#5457)
Makes sure the `twenty-front:chromatic:ci` task in the CI job
`front-chromatic-deployment` reuses the cache of the Storybook built in
the CI job `front-sb-build` instead of re-building Storybook so
Chromatic is deployed faster in the CI.
2024-05-22 11:18:16 +02:00
Jérémy MandGitHub bb6df43d17 fix: twentyORM datasource configuration for ssl (#5529)
We need to specify ssl configuration for TwentyORM datasources when
needed, otherwise connection will be broken.
2024-05-22 11:11:05 +02:00
ThaïsandGitHub 474dfd7bd8 fix: fix Apollo client cache update error for Links field (#5473)
Fixes #5437
2024-05-22 10:55:24 +02:00
d1cbd709bd Extract typography components from twenty-front to twenty-ui. (#5466)
Removed the following components from twenty-front and moved them to
twenty-ui.
- H1Title.
- H2Title.
- H3Title.

Moving components in smaller chunks to ease the process of resolving
conflicts.

<img width="1255" alt="image"
src="https://github.com/twentyhq/twenty/assets/125115953/a3953659-5dfd-4d03-a6de-50b064129d55">

Co-authored-by: Charles Bochet <[email protected]>
2024-05-22 10:52:35 +02:00
ThaïsandGitHub e2b48e2c4e feat: edit link in Links field (#5447)
Closes #5376
2024-05-22 10:42:08 +02:00
ThaïsandGitHub 47a6146dd0 feat: set primary link in Links field (#5429)
Closes #5375

<img width="381" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/d87773df-c685-466b-ae35-a8349f79df48">

_____

~~Note that I ugraded `@apollo/client` to v3.10.4 because current
version is causing an error when trying to write the Links field in the
cache in `updateRecordFromCache` (`TypeError: Cannot convert object to
primitive value`). After upgrade, the error is gone but console still
prints a warning (here the custom object name is `Listing` and the Links
field name is `website`):~~

<img width="964" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/834b8909-e8dc-464a-8c5a-6b7e4c964a7f">

~~It might be because the Links field seems to somehow have a
`__typename` property in Apollo's cache, so Apollo considers it as a
record and tries to match the object's cache with an id, but the Links
field value has no id so it can't find it.
We might want to find where this `__typename` is added and remove it
from the Links object in the cache.~~

Edit: will fix this in another PR as upgrading `@apollo/client` +
`apollo-upload-client` seems to break types and/or tests. Related issue:
[#5437](https://github.com/twentyhq/twenty/issues/5437)
2024-05-22 10:32:37 +02:00
martmullandGitHub 2386191d8e Fix missing logo at sign-in-up (#5525)
### Before

![image](https://github.com/twentyhq/twenty/assets/29927851/91f94c5f-e337-4163-b858-3358032a12bd)

### After

![image](https://github.com/twentyhq/twenty/assets/29927851/77b88ea1-514a-4471-a28d-4c989cc5d9c4)
2024-05-22 09:55:29 +02:00
ThaïsandGitHub 944b2b0254 fix: reset default value on field type switch in Settings/Data Model … (#5436)
…field form

Closes #5412
2024-05-22 09:53:15 +02:00
48003887ce feat: remove a link from a Links field (#5313)
Closes #5117

TO FIX in another PR: right now, the "Vertical Dots" LightIconButton
inside the Dropdown menu sometimes needs to be clicked twice to open the
nested dropdown, not sure why 🤔 Maybe an `event.preventDefault()` is
needed somewhere?

<img width="369" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/dd0c771a-c18d-4eb2-8ed6-b107f56711e9">

---------

Co-authored-by: Jérémy Magrin <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-05-22 09:39:21 +02:00
bosiraphaelandGitHub beaaf33544 5498 create a feature flag is gmail sync v2 enabled (#5501)
Closes #5498
2024-05-22 09:25:06 +02:00
5ad59b5845 Create congratulations bot (#5404)
- Created congratulations bot :
<img width="939" alt="Screenshot 2024-05-14 at 12 47 13"
src="https://github.com/twentyhq/twenty/assets/102751374/5138515f-fe4d-4c6d-9c7a-0240accbfca9">

- Modified OG image

- Added png extension to OG image route

To be noted: The bot will not work until the new API route is not
deployed. Please check OG image with Cloudflare cache.

---------

Co-authored-by: Ady Beraud <[email protected]>
2024-05-21 22:56:25 +02:00
MarieandGitHub 3deda2f29a Update foreign table to distant table schema (#5508)
Closes #5069 back-end part

And:
- do not display schemaPendingUpdates status on remote server lists as
this call will become too costly if there are dozens of servers
- (refacto) create foreignTableService

After this is merged we will be able to delete remoteTable's
availableTables column
2024-05-21 21:25:38 +02:00
Charles Bochet 29c27800fb Fix vite.config duplicate cache configuration 2024-05-21 20:36:25 +02:00
36b467d301 Fix storybook tests (#5487)
Fixes #5486

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-05-21 20:24:08 +02:00
bosiraphaelandGitHub e47101e08b 5483 modify messagechannel syncstatus (#5484)
- Closes #5483
- Fix seeds
- Add default value to syncSubStatus
2024-05-21 13:31:39 +02:00
Jérémy MandGitHub 66a23a852f fix: unwanted change moving back datetime to date (#5499)
Moving back datetime to date, due to an unwanted change.
2024-05-21 13:29:59 +02:00
martmullandGitHub ec248f8605 Remove dumb code placement (#5494)
Fix a bug introduced in [this
PR](https://github.com/twentyhq/twenty/pull/5254/files)

When a subscription is created, we need to create the subscription,
#5254 return if no subscription is created so the sub can never be
created at all

This PR fixes that
2024-05-21 12:08:51 +02:00
martmullandGitHub 4fcdfbff7d Fix unhandled exception (#5474)
Solves exception.getStatus is not a function error logs in twenty-server

Catch all errors in order to have no error log at all
2024-05-21 11:31:03 +02:00
MarieandGitHub 0d16051ded [fix] Re-introduce beforeUpdateOneObject hook (#5495)
... and disable name edition in object edition form. This feature will
be introduced by #5491
2024-05-21 10:46:49 +02:00
eb78be6c61 feat: replace iframe with chrome sidepanel (#5197)
fixes - #5201


https://github.com/twentyhq/twenty/assets/13139771/871019c6-6456-46b4-95dd-07ffb33eb4fd

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-05-21 10:39:43 +02:00
Félix MalfaitandGitHub 4907ae5a74 Improve docs (#5492)
Fix #4382 and remove useless pages to make docs more readable
2024-05-21 09:09:19 +02:00
a9813447f3 feat: fetch and parse full gmail message (#5160)
first part of https://github.com/twentyhq/twenty/issues/4108
related PR https://github.com/twentyhq/twenty/pull/5081

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-05-20 17:29:35 +02:00
bosiraphaelandGitHub b5d3396ea9 5477 - Introduce syncsubstatus in db to refactor gmail sync behavior (#5479)
Closes #5477
2024-05-20 17:19:21 +02:00
737fffefbd Fix: danger font color values & acc. to design specs (#5344)
fixes: #5325

changes done (commits in order):

1. **Fixed fontLight & fontDark 'danger' color as per design spec**:
changed theme.font.color.danger to match the disabled color theme (for
light and dark) as followed by the BorderDark and BorderLight. Use the
updated colors for Buttons

2. **Replace theme.font.color.danger with theme.color.red (5 changed
files)**: Since `theme.font.color.danger` has now been updated to
contain the disabled button color values, we use the `theme.color.red`
color in all the places using `theme.font.color.danger` as it contains
same value that was used to be of `theme.font.color.danger` before.

3. **fixed hover color of StyledConfirmationButton in
ConfirmationModal**: issue can be seen when going to /settings/workspace
and trying to hover on delete the workspace button in dark mode. fixed
with this commit.

**Important Note**: The files
`/twenty-front/src/modules/ui/theme/constants/FontLight.ts` and
`/twenty-front/src/modules/ui/theme/constants/FontDark.ts` **are of no
use** as theme for the entire 'twenty-front' and
'twenty-chrome-extension' packages use the same files from '@/ui/theme'
(twenty-ui package)

dark mode :
<img width="987" alt="Screenshot 2024-05-09 at 9 14 35 PM"
src="https://github.com/twentyhq/twenty/assets/60315832/75fe3972-0e8a-41f6-90a1-09bfcd013e72">

when disabled:
<img width="1098" alt="Screenshot 2024-05-09 at 9 13 46 PM"
src="https://github.com/twentyhq/twenty/assets/60315832/5caab8b5-47ba-43e5-90cd-a41a1f690ca0">

on hover:
<img width="1052" alt="Screenshot 2024-05-09 at 9 14 05 PM"
src="https://github.com/twentyhq/twenty/assets/60315832/58de3df6-ed77-4aad-84fc-67b01154b493">

<br>

<br>

light mode (when disabled):
<img width="918" alt="Screenshot 2024-05-09 at 9 13 14 PM"
src="https://github.com/twentyhq/twenty/assets/60315832/18228783-d6c7-44a6-9fce-00053bb35ef2">

on hover:
<img width="983" alt="Screenshot 2024-05-09 at 9 14 18 PM"
src="https://github.com/twentyhq/twenty/assets/60315832/6df99f12-5767-4136-80c9-5d8883ac8e00">

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-20 16:59:01 +02:00
4d479ee8ea Remove relations for remotes (#5455)
For remotes, we will only create the foreign key, without the relation
metadata. Expected behavior will be:
- possible to create an activity. But the remote object will not be
displayed in the relations of the activity
- the remote objects should not be available in the search for relations

Also switched the number settings to an enum, since we now have to
handle `BigInt` case.

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-05-20 16:37:35 +02:00
WeikoandGitHub b098027174 Fix graphql prep query (#5478) 2024-05-20 15:53:13 +02:00
martmullandGitHub 88f5eb669e 4689 multi workspace i should be able to accept an invite if im already logged in (#5454)
- split signInUp to separate Invitation from signInUp
- update redirection logic
- add a resolver for userWorkspace
- add a mutation to add a user to a workspace
- authorize /invite/hash while loggedIn
- add a button to join a workspace

### Base functionnality

https://github.com/twentyhq/twenty/assets/29927851/a1075a4e-a2af-4184-aa3e-e163711277a1

### Error handling

https://github.com/twentyhq/twenty/assets/29927851/1bdd78ce-933a-4860-a87a-3f1f7bda389e
2024-05-20 12:11:38 +02:00
1ceeb68da8 Changed record chip functionality from onClick to anchor tag (#5462)
[#4422](https://github.com/twentyhq/twenty/issues/4422)

Demo:



https://github.com/twentyhq/twenty/assets/155670906/f8027ab2-c579-45f7-9f08-f4441a346ae7



Within the demo, we show the various areas in which the Command/CTRL +
Click functionality works. The table cells within the People and
Companies tab open within both the current tab and new tab due to
unchanged functionality within RecordTableCell. We did this to ensure we
could get a PR within by the end of the week.

In this commit, we ONLY edited EntityChip.tsx. We did this by:

- Removing useNavigate() and handleLinkClick/onClick functionality

- Wrapping InnerEntityChip in an anchor tag

This allowed for Command/CTRL + Click functionality to work. Clickable
left cells on tables, left side menu, and data model navigation
files/areas DID NOT get updated.

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-20 11:31:39 +02:00
Jérémy MandGitHub 8b5f79ddbf fix: multiple twenty orm issues & show an example of use (#5439)
This PR is fixing some issues and adding enhancement in TwentyORM:

- [x] Composite fields in nested relations are not formatted properly
- [x] Passing operators like `Any` in `where` condition is breaking the
query
- [x] Ability to auto load workspace-entities based on a regex path

I've also introduced an example of use for `CalendarEventService`:


https://github.com/twentyhq/twenty/pull/5439/files#diff-3a7dffc0dea57345d10e70c648e911f98fe237248bcea124dafa9c8deb1db748R15
2024-05-20 11:01:47 +02:00
81e8f49033 Feat : Change title color of release page in dark mode (#5467)
## Issue

- close #5459 

## Work Detail

Change title color of release page in dark mode.

I worked using the useColorScheme and useSystemColorSheme hooks, but if
there is a better way, please recommend it.

## Before
<img width="606" alt="image"
src="https://github.com/twentyhq/twenty/assets/116232939/f5c05360-f1d5-4701-b17d-e3e8a1db65fa">


## After
<img width="565" alt="image"
src="https://github.com/twentyhq/twenty/assets/116232939/5f9460d3-db62-461f-b7c2-659a4b687ba9">

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-19 17:26:29 +02:00
WeikoandGitHub 66637a3770 Add more details to mutation limit exception message and fix update many query (#5460)
## Context
Since we rely on PgGraphql to query the DB, we have to map its errors to
more comprehensible errors before sending them back to the FE. This has
already been done for unicity constraint and mutation maximum records
but for the last one the message wasn't clear enough. This PR introduces
a new pgGraphqlConfig param to the util to pass down the 'atMost' config
that we are actually overwriting with an
'MUTATION_MAXIMUM_RECORD_AFFECTED' env variable. See how atMost works in
this doc (https://supabase.github.io/pg_graphql/api/#delete)

Also adding the same message for the update since this mutation is also
affected. Create is not though.

Lastly, this PR introduces a fix on the updateMany. Since the current FE
is not using updateMany, this was missed for a few weeks but a
regression has been introduced when we started checking if the id is a
valid UUID however for updateMany this was checking the data object
instead of the filter object. Actually, the data object should never
contain id because it wouldn't make sense to allow the update of the id
and even more for multiple records since the id should be unique.

## Test
locally with MUTATION_MAXIMUM_RECORD_AFFECTED=5

<img width="1408" alt="Screenshot 2024-05-18 at 02 11 59"
src="https://github.com/twentyhq/twenty/assets/1834158/06bf25ce-4a44-4851-8456-aed7689bb33e">
<img width="1250" alt="Screenshot 2024-05-18 at 02 12 10"
src="https://github.com/twentyhq/twenty/assets/1834158/06fc4329-147b-4bb4-9223-c3bce340a8d2">
<img width="1222" alt="Screenshot 2024-05-18 at 02 12 36"
src="https://github.com/twentyhq/twenty/assets/1834158/0674546e-73e2-4e5c-918f-9825f2ee5967">
<img width="1228" alt="Screenshot 2024-05-18 at 02 13 01"
src="https://github.com/twentyhq/twenty/assets/1834158/f50df435-1fd4-45df-a953-8fefa8f36e75">
<img width="1174" alt="Screenshot 2024-05-18 at 02 13 09"
src="https://github.com/twentyhq/twenty/assets/1834158/707b9300-2779-43df-8177-9658b8965b49">


<img width="1393" alt="Screenshot 2024-05-18 at 02 19 11"
src="https://github.com/twentyhq/twenty/assets/1834158/2cd167b6-1261-4914-a4db-36f792d810c0">
2024-05-18 08:00:00 +02:00
0e525caf01 Implement <ScrollRestoration /> (#5086)
### Description

Implement &lt;ScrollRestoration /&gt;

### Refs


[https://github.com/twentyhq/twenty/issues/4357](https://github.com/twentyhq/twenty/issues/4183)

### Demo


https://github.com/twentyhq/twenty/assets/140154534/321242e1-4751-4204-8c86-e9b921c1733e

Fixes #4357

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2024-05-17 16:36:28 +02:00
ThaïsandGitHub 992602b307 fix: fix storybook build cache not being used by tests in CI (#5451)
TL;DR:
- removed `--configuration={args.scope}` from `storybook:static:test`
for the `storybook:static` part, as it was making `front-sb-test` jobs
in CI not reuse the cache from the `front-sb-build` job and re-build
storybook every time.
- replaced it with a new `test` configuration which optimizes storybook
build for tests and builds storybook 2x faster.

## Fix storybook:build cache usage in CI

`storybook:static:test` executes two scripts in parallel:
1. `storybook:static`, which depends on `storybook:build`
1.a. it builds storybook first with `storybook:build`, the output
directory is `storybook-static`.
1.b. then it launches an `http-server`, using what has been built in
`storybook-static`
2. `storybook:test` to execute tests (needs the storybook http-server to
be running)

When passing `--configuration=pages` or `--configuration=modules` to
`storybook:static` from step 1, those configurations are passed to the
`storybook:build` script from step 1.a as well.

But for Nx `storybook:build` and `storybook:build --configuration=pages`
(or `modules`) are not the same command, therefore one does not reuse
the cache of the other because they could output completely different
things.

As `front-sb-test` jobs are passing `--configuration={args.scope}` to
`storybook:static`, the cache of the previously executed
`storybook:build` (from `front-sb-build`) is not reused and therefore
each job re-builds Storybook with its own scope, which increases CI
time.

### Solution

- Removed scope configurations from `storybook:static` and
`storybook:build` scripts to avoid confusion.
- `storybook:test` and `storybook:dev` can keep scope configurations as
they can be useful and this doesn't impact storybook build cache in CI.

### Improve Storybook build time for testing

Added the `test` configuration to `storybook:build` and
`storybook:static` which makes Storybook build time 2x faster. It
disables addons that slow down build time and are not used in tests.
2024-05-17 16:05:31 +02:00
36e54119a3 Enable remotes with existing name (#5433)
- Check if a table with the same name already exists
- If yes, add a number suffix, and check again

Co-authored-by: Thomas Trompette <[email protected]>
2024-05-17 10:38:17 +02:00
Félix MalfaitandGitHub 58f8c31669 Fixes typo in docs #5076 (#5450)
Micro fix

Fixes #5076
2024-05-17 09:10:59 +02:00
MarieandGitHub 1694e0cccd Fix missing name validation on object names at update (#5434)
## Context
as per title

## How was it tested? 
local (/metadata + in product)
2024-05-16 18:15:56 +02:00
MarieandGitHub d741f4a5bd Minor refacto and fixes on Remotes updates (#5438)
In this PR

- Code refactoring
- v0 of adding "updates available" info in Connection sync status
<img width="835" alt="Capture d’écran 2024-05-16 à 17 02 07"
src="https://github.com/twentyhq/twenty/assets/51697796/9674d3ca-bed2-4520-a5a6-ba37bc242d06">

- fix distant table columns with not-camel case names are always
considered as new
2024-05-16 17:31:34 +02:00
9bc9513845 Edit opacity from 0.8 to 0.5 and remove forBackdropFilter (#5291)
Update for #4836 

- edit primary and secondary transparency opacities from 0.8 to 0.5
- remove forBackdropFilter from themes
- update components referencing transparency/primary and
transparency/secondary to have the following backdrop-filter: blur(12px)
saturate(200%) contrast(50%) brightness(130%)

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-16 17:19:27 +02:00
a75eb0a569 feat: add creation date to notes panel (#5432)
## Description

Adds a view for creation date and author to notes and tasks panel. Here
is a preview of the new `ActivityCreationDate` component:


![image](https://github.com/twentyhq/twenty/assets/36916632/8adfa584-5f0c-464a-9d69-753f89c19c28)

Closes #5424

### Type of change

<!-- Please delete options that are not relevant. -->

- [x] New feature (non-breaking change which adds functionality)

## Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published in downstream
modules

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-16 17:09:46 +02:00
Charles BochetandGitHub f31b2c2963 Fix turnstile captcha invalid (#5442)
Signing in is a two steps process:
- Checking if the user email is already used
- Checking if the email + password is correct

Those two steps need a captchaToken to be valid. Unfortunately, from
Cloudflare Turnstile doc:
`A token can only be validated once and cannot be consumed twice. Once a
token has been issued, it can be validated within the next 300 seconds.
After 300 seconds, the token is no longer valid and another challenge
needs to be solved`

So we need to generate a new token at each step instead of re-using the
same
2024-05-16 16:30:10 +02:00
Ady BeraudandGitHub 9125e958dc Modified HTML for Algolia Crawler (#5441)
* Modified HTML for Algolia Crawler
* Added anchor tags within user-guide headers

To implement Algolia correctly, my changes would need to be deployed
first, as it cannot run on localhost. In the meantime, I simulated
Algolia crawling locally using Cheerio, and it worked successfully on my
end.
2024-05-16 16:24:48 +02:00
martmullandGitHub afad993bb3 Fix main (#5435)
- fix lint issue
- fix Apply Cors exception handler (do not work when logged out)
2024-05-16 15:29:27 +02:00
martmullandGitHub fdf10f17e2 4655 batch endpoints on the rest api (#5411)
- add POST rest/batch/<OBJECT> endpoint
- rearrange rest api code with Twenty quality standard
- unify REST API error format
- Added PATCH verb to update objects
- In openapi schema, we replaced PUT with PATCH verb to comply with REST
standard
- fix openApi schema to match the REST api

### Batch Create

![image](https://github.com/twentyhq/twenty/assets/29927851/fe8cd91d-7b35-477f-9077-3477b57b054c)

### Replace PUT by PATCH in open Api

![image](https://github.com/twentyhq/twenty/assets/29927851/9a95060d-0b21-4a04-a3fa-c53390897b5b)

### Error format unification

![image](https://github.com/twentyhq/twenty/assets/29927851/f47dfcef-a4f8-4f93-8504-22f82a8d8057)

![image](https://github.com/twentyhq/twenty/assets/29927851/d76a87e2-2bf6-4ed9-a142-71ad7c123beb)

![image](https://github.com/twentyhq/twenty/assets/29927851/6db59ad3-0ba7-4390-a02d-be15884e2516)
2024-05-16 14:15:49 +02:00
Aditya PimpalkarandGitHub ea5a7ba70e feat: add renew token query for apollo client (chrome-extension) (#5200)
fixes - #5203
2024-05-16 10:21:16 +02:00
Charles Bochet 6bde0ae258 Disable chromatic for performance stories 2024-05-15 23:09:17 +02:00
Charles BochetandGitHub 040ec9165d Try fix tests (#5431)
As per title!
2024-05-15 22:54:51 +02:00
63387424c3 Fix transliteration for metadata + transliterate select options (#5430)
## Context 
Fixes #5403

Transliteration is now integrated to form validation through the schema.
While it does not impede inputting an invalid value, it impedes
submitting a form that will fail as the transliteration is not possible.
Until then we were only performing the transliteration at save time in
the front-end, but it's best to provide the information as soon as
possible. Later we will add helpers to guide the user (eg "This name is
not valid": https://github.com/twentyhq/twenty/issues/5428).

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-05-15 21:43:58 +02:00
e9a7a8a4a3 Fix missing team member images in calendar event (#5414)
### Work
Fixed issue: #5308 
### Before
Team member images are absent from Calendar events participant chips.

![Before](https://github.com/twentyhq/twenty/assets/100703401/bd3408ad-4a07-430e-ba23-83cd0775492a)
### After
<img width="383" alt="Screenshot 2024-05-14 at 10 53 24"
src="https://github.com/twentyhq/twenty/assets/100703401/b65efe8a-64de-4214-a60a-ee87d235953a">

### Fix explained
Redefined recordGqlField to fech Person and WorkspaceMember

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-05-15 19:14:57 +02:00
de228be5ca AAU I want to re-order my views with drag & drop (#5002)
### Description
I want to re-order my views with drag & drop

### Refs
#4782 

### Demo
https://jam.dev/c/699ece8a-0467-494a-b9a3-faf666ee9c93

Fixes #4782

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-05-15 17:57:17 +02:00
e1eead56c6 Alter comment on foreign key deletion (#5406)
We do not update the comment on the local table when a foreign table key
is deleted.
This was not breaking, which is why we did not see it. But comments
should be kept up to date.

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-05-15 17:05:30 +02:00
f0383e3147 feat: twenty orm sync (#5266)
This PR is updating all object metadata entities with the new
decorators, and deleting the old ones.
This way we can use the new TwentyORM with all the standard objects.

---------

Co-authored-by: Weiko <[email protected]>
2024-05-15 16:58:47 +02:00
Fabio NettisandGitHub 6898c1e4d8 fix: resolve issues with edit input offset (#5426)
## Description

This PR fixes a display issue when editing the company name or the name
of a person where the edit input would be offset to the left instead of
being in the middle.


![image](https://github.com/twentyhq/twenty/assets/36916632/beb91dc1-2d3c-46a5-93aa-f8189913fece)

Fixes #5416

### Type of change

<!-- Please delete options that are not relevant. -->

- [x] Bug fix (non-breaking change which fixes an issue)

## Checklist

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published in downstream
modules
2024-05-15 16:26:14 +02:00
ThaïsandGitHub 602d5422a2 feat: display Links field as Expandable List (#5374)
Closes #5114
2024-05-15 15:52:23 +02:00
MarieandGitHub 38eb293b3c Compare distant tables schema with remote tables schema (#5413)
Closes #4532 and part of #5062
2024-05-15 15:47:54 +02:00
Ady BeraudandGitHub 815b849968 Added infinite scroll (#5418)
- Added an infinite scroll to the changelog to avoid overloading the DOM
2024-05-15 15:29:04 +02:00
Lucas BordeauandGitHub cfacdfce60 Generic Profiling story to wrap any component (#5341)
This PR introduces a Profiling feature for our story book tests.

It also implements a new CI job : front-sb-test-performance, that only
runs stories suffixed with `.perf.stories.tsx`

## How it works 

It allows to wrap any component into an array of React Profiler
components that will run tests many times to have the most replicable
average render time possible.

It is simply used by calling the new `getProfilingStory` util.

Internally it creates a defined number of tests, separated by an
arbitrary waiting time to allow the CPU to give more stable results.

It will do 3 warm-up and 3 finishing runs of tests because the first and
last renders are always a bit erratic, so we want to measure only the
runs in-between.

On the UI side it gives a table of results : 

<img width="515" alt="image"
src="https://github.com/twentyhq/twenty/assets/26528466/273d2d91-26da-437a-890e-778cb6c1f993">

On the programmatic side, it stores the result in a div that can then be
parsed by the play fonction of storybook, to expect a defined threshold.

```tsx
play: async ({ canvasElement }) => {
    await findByTestId(
      canvasElement,
      'profiling-session-finished',
      {},
      { timeout: 60000 },
    );

    const profilingReport = getProfilingReportFromDocument(canvasElement);

    if (!isDefined(profilingReport)) {
      return;
    }

    const p95result = profilingReport?.total.p95;

    expect(
      p95result,
      `Component render time is more than p95 threshold (${p95ThresholdInMs}ms)`,
    ).toBeLessThan(p95ThresholdInMs);
  },
```
2024-05-15 13:50:02 +02:00
Ady BeraudandGitHub dc32f65906 Fixed user guide layout (#5422)
- Added border-radius to image cards in User Guide:
Before: 
<img width="376" alt="Screenshot 2024-05-15 at 11 05 35"
src="https://github.com/twentyhq/twenty/assets/102751374/88e63152-2a50-49d5-89cb-522d94c26d3f">

After: 
<img width="366" alt="Screenshot 2024-05-15 at 11 08 20"
src="https://github.com/twentyhq/twenty/assets/102751374/f21b39d8-74eb-4520-8357-78409d7c8598">

- Centered and aligned index and article pages
2024-05-15 10:24:24 +02:00
Rob LukeandGitHub 0af86eafff docs: fix calendar enable environmental variable (#5417)
Hi twenty team,
Thanks for making such a great product, it's a pleasure to use and see
the rapid development.
@charlesBochet helped me find this error in my setup
2024-05-15 02:52:33 +02:00
8842292196 Fixed left padding for switcher icon on the table checkboxes #4351 (#4963)
Closes #4351  - Fixed spacing issue in TopBar file.

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-14 18:28:13 +02:00
Ady BeraudandGitHub 0b1f646b72 Added loader to Download Image + modified GitHub stars (#5407)
- Added loader to download image in contributor page:


https://github.com/twentyhq/twenty/assets/102751374/a6db1d80-01ed-4b07-9a57-e533012f5aa9

- Modified GitHub stars - rounded to the nearest integer
2024-05-14 17:59:48 +02:00
1a61405491 User guide images (#5410)
Updated 2 illustrations & added colors on filter illustration

---------

Co-authored-by: Weiko <[email protected]>
2024-05-14 17:36:00 +02:00
Thomas des FrancsandGitHub 53b9505792 Added the illustrations for the user guide (#5409)
Added illustrations for all user-guide articles
2024-05-14 17:23:54 +02:00
ce195826f5 4599-feat(front): Add Copy Button to Floating Inputs (#4789)
Closes #4599 

**Changes:**
- Added copy button to floating inputs of Text, Number, Phone, Link and
Email fields.

---------

Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Weiko <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-05-14 17:02:53 +02:00
Félix MalfaitandGitHub a53ce1c488 Track backend events (#5405)
Add tracking to backend events, we might disable frontend tracking which
doesn't bring much value to improve the product
2024-05-14 16:42:28 +02:00
martmullandGitHub ffdd3a7d4e Return graphql errors when exists (#5389)
- throw badRequest with graphql error messages when graphql request
fails
- clean some code

Before
<img width="1470" alt="image"
src="https://github.com/twentyhq/twenty/assets/29927851/0b700d9a-2bbe-41f7-84a9-981dc7dd5344">

After

![image](https://github.com/twentyhq/twenty/assets/29927851/6bbaaf7c-1244-473d-9ae5-4fefc6a1b994)
2024-05-14 13:21:55 +02:00
1bc9b780e5 Show Data Skeleton Loading (#5328)
### Description

Show Data Skeleton loading

### Refs

#4460

### Demo

Figma:
https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twenty?type=design&node-id=25429-70096&mode=design&t=VRxtgYCKnJkl2zpt-0

https://jam.dev/c/178878cb-e600-4370-94d5-c8c12c8fe0d5

Fixes #4460

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
2024-05-14 11:58:30 +02:00
de438b0171 Add stripe connection option (#5372)
- Refactor creation and edition form so it handles stripe integration
and not only postgres
- Add a hook `useIsSettingsIntegrationEnabled` to avoid checking feature
flags everywhere
- Add zod schema for stripe

<img width="250" alt="Capture d’écran 2024-05-13 à 12 41 52"
src="https://github.com/twentyhq/twenty/assets/22936103/a77e7278-5d79-4f95-bddb-ae9ddd1426eb">
<img width="250" alt="Capture d’écran 2024-05-13 à 12 41 59"
src="https://github.com/twentyhq/twenty/assets/22936103/d617dc6a-31a4-43c8-8192-dbfb7157de1c">
<img width="250" alt="Capture d’écran 2024-05-13 à 12 42 08"
src="https://github.com/twentyhq/twenty/assets/22936103/c4e2d0e4-f826-436d-89be-4d1679a27861">

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-05-13 18:00:13 +02:00
MarieandGitHub b9154f315e Enable deletion of relation fields (#5338)
In this PR
1. Enable deletion of relation fields in the product and via the api
(migration part was missing in the api)
3. Change wording, only use "deactivate" and "delete" everywhere (and
not a mix of the two + "disable", "erase")
2024-05-13 17:43:51 +02:00
martmullandGitHub 0018ec78b0 4840 multi workspace update user userworkspace inconsistent on delete set null constraint (#5373) 2024-05-13 14:50:27 +02:00
martmullandGitHub 8576127b47 Add migration to restrict users without workspaces (#5369)
- update set null ON DELETE constraint to RESTRICT
- update missing updates
2024-05-13 14:18:45 +02:00
martmullandGitHub 1ac8abb118 5188 bug some canceled subscriptions are billed (#5254)
When user is deleting its account on a specific workspace, we remove it
as if it was a workspaceMember, and if no workspaceMember remains, we
delete the workspace and the associated stripe subscription
2024-05-13 10:23:32 +02:00
92acfe57a1 feat: Currencies NOK and SEK (#5359)
Related to #5351 and #5353 

Adding both currencies NOK and SEK, using icon
https://tabler.io/icons/icon/currency-krone-swedish

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-05-13 09:55:57 +02:00
4a7aabd060 Added GitHub init (#5317)
- Added github:init to allow full import, as opposed to gitHub:sync
which allows partial sync and therefore respecting Github API Limit
quota.

---------

Co-authored-by: Ady Beraud <[email protected]>
2024-05-13 09:55:30 +02:00
Mohamed MuhsinandGitHub 321ce72ec7 Add new Currencies with Corresponding Icons (#5353)
### **Description**
Add 3 new currencies

### **Refs**
https://github.com/twentyhq/twenty/issues/5351

### **Demo** 
<img width="678" alt="Screenshot 2024-05-11 at 1 30 55 AM"
src="https://github.com/twentyhq/twenty/assets/62111075/cc88ba46-cc5a-41d6-baf8-c28851c629ae">
2024-05-13 08:16:51 +02:00
brendanlaschkeandGitHub eb2b89694a Releases page (#5346)
closes #4103 

<img width="696" alt="Bildschirmfoto 2024-05-10 um 08 16 19"
src="https://github.com/twentyhq/twenty/assets/48770548/e34cd348-2522-408c-886c-636595292e0f">
2024-05-13 08:14:47 +02:00
Brandon YeeandGitHub 86caf00fb8 Update README.md (#5345)
Fixed Grammar
2024-05-11 09:30:03 +02:00
ThaïsandGitHub 0fb416d17c fix: fix field select options positions after option removal (#5350)
- Adds an util `toSpliced`. We cannot used the native Javascript
`Array.prototype.toSpliced` method as Chromatic servers don't support
it.
- Makes sure Select field options have sequential positions after
removing an option (form validation schema checks that positions are
sequential and considers options invalid otherwise).
2024-05-10 18:31:22 +02:00
MarieandGitHub 72521d5554 Disable save button while submitting form in settings (#5352)
as per title
2024-05-10 18:18:39 +02:00
MarieandGitHub ae0e31abc7 Bump versions to 0.11.2 (#5349) 2024-05-10 13:56:41 +02:00
MarieandGitHub 999a66882d [fix] Do not stringify json field value if null (#5348)
as per title 


https://github.com/twentyhq/twenty/assets/51697796/74ff0185-f20c-4ff1-9d89-3078063f23e1
2024-05-10 13:00:24 +02:00
8590bd7227 Refactor default value for select (#5343)
In this PR, we are refactoring two things:
- leverage field.defaultValue for Select and MultiSelect settings form
(instead of option.isDefault)
- use quoted string (ex: "'USD'") for string default values to embrace
backend format

---------

Co-authored-by: Thaïs Guigon <[email protected]>
2024-05-10 10:26:46 +02:00
ThaïsandGitHub 7728c09dba fix: fix several field bugs (#5339)
After discussing with @charlesBochet, several fixes are needed on
fields:
- [x] Disable Boolean field `defaultValue` edition for now (On
`defaultValue` update, newly created records are not taking the updated
`defaultValue` into account. Setting the `defaultValue` on creation is
fine.)
- [x] Disable Phone field creation for now
- [x] For the Person object, display the "Phone" field as a field of
type Phone (right now its type is Text; later we'll migrate it to a
proper Phone field).
- [x] Fix RawJson field display (displaying `[object Object]` in Record
Table cells).
- [x] In Settings/Data Model, on Relation field creation/edition,
"Object destination" select is not working properly if an object was not
manually selected (displays Companies by default but creates a relation
to another random object than Companies).
2024-05-09 01:56:15 +02:00
ThaïsandGitHub 005045c596 fix: fix Settings field form validation for certain field types (#5335)
Related to #4295

Following #5326, field types other than:
- `FieldMetadataType.Boolean`
- `FieldMetadataType.Currency`
- `FieldMetadataType.Relation`
- `FieldMetadataType.Select`
- `FieldMetadataType.MultiSelect`

Cannot be saved as they are not included in the form validation schema.
This PR makes sure they are included and can therefore be
created/edited.
2024-05-08 12:13:34 +02:00
ThaïsandGitHub 8c85e7bf61 fix: fix storybook:build cache output path (#5336) 2024-05-08 11:51:09 +02:00
Charles BochetandGitHub 863554bb13 Fix storybook (#5334)
Fixing the last broken stories, tests should be back to green!
2024-05-08 09:28:28 +02:00
Indrakant DandGitHub 770ee11b9c fix: Blue Button Secondary Color Issue in Dark Mode (#5333)
fixes
[#5305](https://github.com/twentyhq/twenty/issues/5305#issue-2280997523)

light mode:

<img width="738" alt="Screenshot 2024-05-08 at 2 24 41 AM"
src="https://github.com/twentyhq/twenty/assets/60315832/de01bbfa-6b54-4149-9930-b38840483ddf">

<br>
<br>

dark mode

<img width="735" alt="Screenshot 2024-05-08 at 2 24 55 AM"
src="https://github.com/twentyhq/twenty/assets/60315832/7c2bbc3e-e999-42ff-a320-8bf84bce8384">
2024-05-08 08:53:26 +02:00
Charles BochetandGitHub eef497cb57 Fix front jest tests (#5331) 2024-05-08 01:49:49 +02:00
ThaïsandGitHub bb995d5488 refactor: use react-hook-form for Field type config forms (#5326)
Closes #4295

Note: for the sake of an easier code review, I did not rename/move some
files and added "todo" comments instead so Github is able to match those
files with their previous version.
2024-05-07 21:07:56 +02:00
ThaïsandGitHub b7a2e72c32 fix: fix storybook pages tests coverage (#5319) 2024-05-07 21:05:45 +02:00
Charles BochetandGitHub ce4e78aa85 Fix Rest API id UUID error (#5321)
A user has reported an issue with REST API.
We have recently migrated the graphql IDs from UUID to ID type. As Rest
API is leveraging the graphql API under the hood, the Rest API query
builder should be updated accordingly
2024-05-07 21:04:45 +02:00
WeikoandGitHub b691894254 Fix query runner throwing 500 when pg_graphql detects unique constraint (#5323)
## Context
Since pg_graphql does not return specific error/exception, we have to
map the error message and throw validation errors when needed
This PR adds a check on unicity constraint error returned by pg_graphql
when we are trying to insert duplicate records and returns a 400 instead
of being handled by the exceptionHandler as a 500.
2024-05-07 21:03:15 +02:00
WeikoandGitHub e802cef8f1 Fix 400 yoga errors being sent to exception handlers (#5322)
## Context
Yoga can catch its own errors and we don't want to convert them again.
Moreover those errors don't have an "originalError" property and should
be schema related only (400 validation) so we only want to send them
back to the API caller without going through the exception handler.

Also fixed an issue in the createMany which was throwing a 500 when id
was missing from the creation payload. It seems the FE is always sending
an ID but it should actually be optional since the DB can generate one.
This is a regression from the new UUID validation introduced a few weeks
ago.
2024-05-07 20:54:10 +02:00
Jeet DesaiandGitHub 6edecf72a0 Fix: Icon position alignment right to left in chip (#5330)
Fixes #5298 


![image](https://github.com/twentyhq/twenty/assets/52026385/6cfcc380-bdd1-4d7b-a0c7-58434d610ace)
2024-05-07 20:52:25 +02:00
MarieandGitHub 7c3e82870c [fix] Increment cache version after object/field/relation update (#5316)
Fixes #5276.

Updates were not triggering a cache version incrementation because they
do not trigger migrations while that is where the caching version logic
was.
We have decided to move the cache incrementation logic to the services.
2024-05-07 16:30:25 +02:00
b0d1cc9dcb feat: add links to Links field (#5223)
Closes #5115, Closes #5116

<img width="242" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/ab78495a-4216-4243-8de3-53720818a09b">

---------

Co-authored-by: Jérémy Magrin <[email protected]>
2024-05-07 15:05:18 +02:00
WeikoandGitHub 8074aae449 Split job modules (#5318)
## Context
JobsModule is hard to maintain because we provide all the jobs there,
including their dependencies. This PR aims to split jobs in dedicated
modules.
2024-05-07 14:08:20 +02:00
d10efb15d5 Add unit tests on object record mutation and query hooks (#5014)
### Description
Add unit tests on object record mutation and query hooks

### Refs
#4884

### Demo
![Screenshot 2024-04-18 at 15 16
19](https://github.com/twentyhq/twenty/assets/140154534/c75f716a-725e-43eb-a703-3db29065fb18)

Fixes #4884

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-05-07 14:04:55 +02:00
ThaïsandGitHub d0759ad7cc refactor: use react-hook-form to validate Settings/DataModel/Field (#4916)
Closes #4295
2024-05-07 11:44:46 +02:00
Thomas des FrancsandGitHub 9c25c1beae Added the 0.11 release changelog (#5300)
Added illustrations & descriptions
2024-05-07 11:08:25 +02:00
Sean HellwigandGitHub a10290ecee Adds no-debugger rule to root eslint config file (#5312) 2024-05-07 11:07:51 +02:00
WeikoandGitHub ffd804d04b Fix convertRecordPositionsToIntegers command for camelCase tables (#5315)
## Context
Per title, postgresql will use lowercase if not surrounded by quotes
2024-05-07 11:07:20 +02:00
3052b49031 Fixed incomplete GitHub sync (#5310)
- Added await when fetching Github data to prevent the process from
exiting before saving to database

Co-authored-by: Ady Beraud <[email protected]>
2024-05-07 08:59:56 +02:00
43cd8cc451 Modified URLs and added button to share on LinkedIn (#5306)
- Removed the env variable and added the current URL in contributor's
page
- Added button to share on LinkedIn on contributor's profile
- Fixed absolute image URL for release API

---------

Co-authored-by: Ady Beraud <[email protected]>
2024-05-07 08:59:03 +02:00
b438fc2754 Fix github stars endpoint (#5301)
- Encapsulated GitHub star response in an object
- Fixed rounding of Github stars to align with Github convention
- Fixed CORS issue so that endpoint can be called from twenty.com and
app.twenty.com

Co-authored-by: Ady Beraud <[email protected]>
2024-05-07 08:35:54 +02:00
Charles BochetandGitHub a2017eaeb7 Improve messaging/calendar create contact performance (#5314)
In this PR, I'm refactoring the way we associate messageParticipant post
person/company creation. Instead of looking a all person without
participant, we are passing the one that were just created.

Also, I'm making sure the message and messageParticipant creation
transaction is commited before creating person/company creation (and
then messageParticipant association)
2024-05-06 23:43:18 +02:00
5f467ab5ca Removes erroneous debugger call in twenty-front (#5311)
Erroneous debugger call throws an error in twenty-front app console

---------

Co-authored-by: Weiko <[email protected]>
2024-05-06 19:45:14 +02:00
ThaïsandGitHub 16ae34dfd1 fix: fix Chromatic script memory allocation in CI (#5299) 2024-05-06 17:49:53 +02:00
Charles BochetandGitHub 2c9f50ecb1 Fix enum defaultValue issues (#5307)
This PR fixes several issues:
- enum naming should be: {tableName}_{fieldName}_enum and respecting the
case
- defaultValue format handled in the FE should respect the one in the BE

In my opinion we should refactor the defaultValue:
- we should respect backend format: "'myDefault'" for constant default
and "0" for float, "now" for expressions, "true" for booleans. we can
rename it to defaultValueExpression if it is more clear but we should
not maintain a parallel system
- we should deprecate option: isDefaultValue which is confusing
- we should re-work backend to have a more unified approach between
fields and avoid having if everywhere about select, multiselect, and
currency cases. one unified "computeDefaultValue" function should do the
job

What is still broken:
- currency default Value on creation. I think we should do the refactor
first
- select default value edition.
These cases do not break the schema but are ignored currently
2024-05-06 17:00:38 +02:00
ff77a4ee21 Feat/migrate password reset token to app token table (#5051)
# This PR

- Fix #5021 
- Migrates `passwordResetToken` and `passwordResetTokenExpiresAt` fields
from `core.users` to `core.appToken`
- Marks those fields as `deprecated` so we can remove them later if we
are happy with the transition -- I took this decision on my own,
@FellipeMTX let me know what you think about it, we can also remove them
straight away if you think it's better
- Fixed the `database:migration` script from the `twenty-server` to:
```json
    "database:migrate": {
      "executor": "nx:run-commands",
      "dependsOn": ["build"], // added this line
      "options": {
        "cwd": "packages/twenty-server",
        "commands": [
          "nx typeorm -- migration:run -d src/database/typeorm/metadata/metadata.datasource",
          "nx typeorm -- migration:run -d src/database/typeorm/core/core.datasource"
        ],
        "parallel": false
      }
    },
```
The migration script wasn't running because the builds were not executed
- [x] Added unit tests for the token.service file's changes

Looking forward to hearing feedback from you

cc: @charlesBochet

---------

Co-authored-by: Weiko <[email protected]>
2024-05-06 15:30:03 +02:00
Jérémy MandGitHub b207d10312 feat: extend twenty orm (#5238)
This PR is a follow up of PR #5153.
This one introduce some changes on how we're querying composite fields.
We can do:

```typescript
export class CompanyService {
  constructor(
    @InjectWorkspaceRepository(CompanyObjectMetadata)
    private readonly companyObjectMetadataRepository: WorkspaceRepository<CompanyObjectMetadata>,
  ) {}

  async companies(): Promise<CompanyObjectMetadata[]> {
    // Old way
    // const companiesFilteredByLinkLabel = await this.companyObjectMetadataRepository.find({
    //   where: { xLinkLabel: 'MyLabel' },
    // });
    // Result will return xLinkLabel property

    // New way
    const companiesFilteredByLinkLabel = await this.companyObjectMetadataRepository.find({
      where: { xLink: { label:  'MyLabel' } },
    });
    // Result will return { xLink: { label: 'MyLabel' } } property instead of  { xLinkLabel: 'MyLabel' }

    return companiesFilteredByLinkLabel;
  }
}
```

Also we can now inject `TwentyORMManage` class to manually create a
repository based on a given `workspaceId` using
`getRepositoryForWorkspace` function that way:

```typescript
export class CompanyService {
  constructor(
    // TwentyORMModule should be initialized
    private readonly twentyORMManager,
  ) {}

  async companies(): Promise<CompanyObjectMetadata[]> {
    const repository = await this.twentyORMManager.getRepositoryForWorkspace(
      '8bb6e872-a71f-4341-82b5-6b56fa81cd77',
      CompanyObjectMetadata,
    );

    const companies = await repository.find();

    return companies;
  }
}
```
2024-05-06 14:12:11 +02:00
WeikoandGitHub 154ae99ed3 [flexible-schema] Add reserved keyword check on object creation (#5303)
## Context
Because creating an object in metadata also generates a graphql type and
because graphql does not allow 2 types with the same name, we have to
manage a list of reserved keywords that can't be used as object names.

Currently we were maintaining a list of the core objects but we also
have to introduce composite fields that are also generated as gql types.
2024-05-06 13:44:40 +02:00
2828492945 chore: add nx/project.json to twenty-chrome-extension (#5217)
Fix for `build` CI on `twenty-chrome-extension`

---------

Co-authored-by: Thaïs Guigon <[email protected]>
2024-05-06 11:33:48 +02:00
Orinami OlatunjiandGitHub a1c95b92ab feat: add sign out and book a call buttons to "Choose your plan" page (#5292)
Resolves #5281

<img width="399" alt="buttions-light"
src="https://github.com/twentyhq/twenty/assets/16918891/d1a0ba4e-696e-476b-a792-01ae19a06a55">
<img width="390" alt="buttons-dark"
src="https://github.com/twentyhq/twenty/assets/16918891/40bea83b-bc32-45ea-a522-ecf8239cfe51">
2024-05-06 10:48:34 +02:00
martmullandGitHub 77c0dee846 Add missing info from verify mutation (#5283)
Fix wrong error billing message
2024-05-04 15:21:37 +02:00
ThaïsandGitHub fc87a51acf fix: fix storybook:build memory allocation error in CI (#5284) 2024-05-03 19:19:21 +02:00
Charles BochetandGitHub 839a7e2a10 Bump versions to 0.11 (#5289)
As per title! 
Bumping to 0.11.1 as we have already merged a few minor upgrades on top
of 0.11
2024-05-03 19:11:03 +02:00
Charles BochetandGitHub 6fda55609f Fix Filtered index view infinite re-render (#5286)
The whole viewBar component was re-rendered on view changes which was
introducing performance issue. The need was to compute page title, this
should be done in a lower level component
2024-05-03 19:10:55 +02:00
Charles BochetandGitHub a750901582 Remove Feature Flag on Calendar (#5288)
Remove Calendar feature Flag!
2024-05-03 19:10:33 +02:00
381bf0fc8d Create convert record positions to integers command (#5287)
## Context
Positions are used within a view to display and sort the different
records of standard/custom object.
When we add a new record and want to put it before the existing first
record, we have to use float values to insert them in the DB and respect
the desired order. We are adding a new command that can be executed to
flatten those positions.

---------

Co-authored-by: bosiraphael <[email protected]>
2024-05-03 19:05:56 +02:00
abf0f4664d Fix yoga patch user id cache (#5285)
Co-authored-by: Charles Bochet <[email protected]>
2024-05-03 18:47:31 +02:00
20670695d6 Added OG Image (#5251)
- Added dynamic OG Image to share and download in contributors page

<img width="1176" alt="Screenshot 2024-05-02 at 16 24 00"
src="https://github.com/twentyhq/twenty/assets/102751374/0579454b-ccc7-46ba-9875-52458f06ee82">

- Added dynamic metadata 

- Added design to contributor page

- Added a NEXT_PUBLIC_HOST_URL in the .env file

Co-authored-by: Ady Beraud <[email protected]>
2024-05-03 16:38:41 +02:00
a5a9e0e238 Remove isMultiSelect feature flag (#5280)
As title

Co-authored-by: Thomas Trompette <[email protected]>
2024-05-03 16:30:58 +02:00
5285a428d1 Fix export with relations (#5279)
As title. Only relations are exported right now

Co-authored-by: Thomas Trompette <[email protected]>
2024-05-03 16:14:37 +02:00
Charles BochetandGitHub 1d9cd234ea Fix white screen on token expire (#5271)
While using middleware (executed pre-graphql) for graphql endpoint, we
need to swallow exception and return errors with a 200. Otherwise it's
not a valid graphql response
2024-05-03 15:35:49 +02:00
WeikoandGitHub 2a0c74ab0f [calendar] Fix calendar sync status (#5272)
## Context
There is no calendarChannel syncStatus column compared to the
messageChannel table. In the meantime, we are trying to infer its status
based on the fact that the connection hasn't failed and the sync is
enabled
2024-05-03 15:32:34 +02:00
martmullandGitHub 87994c26ff 4900 multi select field front implement expanded cells (#5151)
Add expanded cell


https://github.com/twentyhq/twenty/assets/29927851/363f2b44-7b3c-4771-a651-dfc4014da6ac


![image](https://github.com/twentyhq/twenty/assets/29927851/741bb0f9-fd1e-4a38-8b0e-71e144376876)
2024-05-03 15:03:06 +02:00
ThaïsandGitHub 1351a95754 fix: fix storybook coverage task (#5256)
- Fixes storybook coverage command: the coverage directory path was
incorrect, but instead of failing `storybook:test --configuration=ci`,
it was hanging indefinitely.
- Switches back to `concurrently` to launch `storybook:static` and
`storybook:test` in parallel, which allows to use options to explicitly
kill `storybook:static` when `storybook:test` fails.
- Moves `storybook:test --configuration=ci` to its own command
`storybook:static:test`: used in the CI, and can be used locally to run
storybook tests without having to launch `storybook:dev` first.
- Creates command `storybook:coverage` and enables cache for this
command.
- Fixes Jest tests that were failing.
- Improves caching conditions for some tasks (for instance, no need to
invalidate Jest test cache if only Storybook story files were modified).
2024-05-03 14:59:09 +02:00
WeikoandGitHub 50421863d4 Fix filter transform with logic operators (#5269)
Various fixes

- Remote objects are read-only for now, we already hide and block most
of the write actions but the button that allows you to add a new record
in an empty collection was still visible.
- CreatedAt is not mandatory on remote objects (at least for now) so it
was breaking the show page, it now checks if createdAt exists and is not
null before trying to display the human readable format `Added x days
ago`
- The filters are overwritten in query-runner-args.factory.ts to handle
NUMBER field type, this was only working with filters like
```
      {
        "id": {
          "in": [
            1
          ]
        }
```
but not with more depth such as 
```
    "and": [
      {},
      {
        "id": {
          "in": [
            1
          ]
        }
      }
    ]
 ```
- Fixes CREATE FOREIGN TABLE raw query which was missing ",".
2024-05-03 14:52:20 +02:00
WeikoandGitHub 30ffe0160e Fix token validation on graphql IntrospectionQuery (#5255)
## Context
We recently introduced a change that now throws a 401 if the token is
invalid or expired.
The first implementation is using an allow list and 'IntrospectionQuery'
was missing so the playground was broken.

The check has been updated and we now only check the excludedOperations
list if a token is not present. This is because some operations can be
both used as loggedIn and loggedOut so we want to validate the token for
those sometimes (and set the workspace, user, cache version, etc). Still
not a very clean solution imho.
2024-05-03 10:30:47 +02:00
Félix MalfaitandGitHub 1430a6745c Quick job update (#5265) 2024-05-03 09:38:03 +02:00
WeikoandGitHub fe758e193f fix workspace-member deletion with existing attachments/documents (#5232)
## Context
We have a non-nullable constraint on authorId in attachments and
documents, until we have soft-deletion we need to handle deletion of
workspace-members and their attachments/documents.
This PR introduces pre-hooks to deleteOne/deleteMany
This is called when a user deletes a workspace-member from the members
page

Next: needs to be done on user level as well. This is called when users
try to delete their own accounts. I've seen other issues such as
re-creating a user with a previously used email failing.
2024-05-02 17:36:57 +02:00
f9c19c839b Build stripe integration on backend side (#5246)
Adding stripe integration by making the server logic independent of the
input fields:
- query factories (remote server, foreign data wrapper, foreign table)
to loop on fields and values without hardcoding the names of the fields
- adding stripe input and type
- add the logic to handle static schema. Simply creating a big object to
store into the server

Additional work:
- rename username field to user. This is the input intended for postgres
user mapping and we now need a matching by name

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-05-02 17:13:15 +02:00
ThaïsandGitHub 5128ea3ffb fix: fix storybook build script not found by Chromatic (#5235) 2024-05-02 16:15:36 +02:00
Charles Bochet f802964de4 Bump to 0.10.6 2024-05-02 15:55:11 +02:00
Charles BochetandGitHub 3015f4ce31 Fix sync metadata script (#5253)
While troubleshooting self-hosting migration, we run into issues with
sync-metadata script introduced by recent changes
2024-05-02 15:50:40 +02:00
WeikoandGitHub 8d90c60ada [calendar] hide calendar settings until implemented (#5252)
## Context
Those settings are not implemented yet, we would like to move them to a
different page as well.
In the meantime, we are hiding them since we plan to launch calendar in
the next release and this won't be implemented before.

We will implement it in this
https://github.com/twentyhq/twenty/issues/5140
2024-05-02 15:47:43 +02:00
MarieandGitHub 1da64c7715 [feat] Minor updates to the edit db connection page (#5250)
- Add placeholders in db connection edit page
- Fix icon alignement and size (should not change) in Info banner
2024-05-02 15:25:54 +02:00
brendanlaschkeandGitHub 05a90d6153 Constant api version (#5248)
closes #5206
2024-05-02 14:21:19 +02:00
WeikoandGitHub 9a116b08a4 User workspace middleware throws 401 if token is invalid (#5245)
## Context
Currently, this middleware validates the token and stores the user,
workspace and cacheversion in the request object.
It only does so when a token is provided and ignores the middleware
logic if not. If the token is invalid or expired, the exception is
swallowed.

This PR removes the try/catch and adds an allowlist to skip the token
validation for operations executed while not signed-in.
I don't know a better way to do that with Nestjs. We can't easily add
the middleware per resolver without refactoring the flexible schema
engine so I'm doing it the other way around.

Fixes https://github.com/twentyhq/twenty/issues/5224
2024-05-02 12:54:01 +02:00
Charles Bochet 27a3d7ec27 Bump to 0.10.5 2024-05-02 11:00:24 +02:00
268c6b44d9 Enable phone field type (#5052)
### Description

 Enable phone field type

### Refs

https://github.com/twentyhq/twenty/issues/2700

### Demo


https://github.com/twentyhq/twenty/assets/140154534/e9810718-9916-4ad4-a080-4d718777de15

Fixes #2700

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-05-01 15:47:19 +02:00
485670c823 Add relation in CSV exports (#5085)
### Description

Add Relation Id to Table in CSV exports

### Demo

Before:


<https://www.loom.com/share/c853cf32767947dcb23a91363bff52c4?sid=0295b6ee-4510-47f8-8ba9-b81b5182985a>

After:


<https://www.loom.com/share/5aa4f87a266c4d96881170a38e063fc0?sid=44eed60c-01a2-406f-9bac-af162e39b66e>

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Chiazokam <[email protected]>
2024-05-01 15:24:23 +02:00
0d023e5e77 feat: update links field (#5212)
Closes #5113

---------

Co-authored-by: Jérémy Magrin <[email protected]>
2024-05-01 14:56:55 +02:00
8853226d17 feat: add Links field type (#5176)
Closes #5113

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-05-01 11:56:14 +02:00
e0ece3c917 Rename types for UserMappingOptions (#5230)
Following #5210

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-05-01 11:46:47 +02:00
0bc3b6f179 Modifications user guide (#5207)
- Modified layout and responsive
- Added remaining user guide cards
- Added new table of content:


https://github.com/twentyhq/twenty/assets/102751374/007118e5-60f2-4572-90cf-339c134f23c4

-Added fade-in:


https://github.com/twentyhq/twenty/assets/102751374/0669c06d-3eab-484c-a5b5-3857c68f42b5

---------

Co-authored-by: Ady Beraud <[email protected]>
2024-05-01 08:55:57 +02:00
df5cb9a904 Smart changelog (#5205)
Added a smart Changelog :

- Publish the Changelog before the app release. If the release has not
yet been pushed to production, do not display it.
- When the app release is done, make the Changelog available with the
correct date.
- If the Changelog writing is delayed because the release has already
been made, publish it immediately.
- Display everything locally to be able to iterate on the changelog and
have a preview

Added an endpoint for the Changelog

---------

Co-authored-by: Ady Beraud <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-05-01 08:35:11 +02:00
Charles Bochet bf7c4a5a89 Fix restrictive javascript heap memory 2024-04-30 19:17:12 +02:00
Charles BochetandGitHub b7c2f83abf Fix sign up (#5231)
Sign up was broken by #5199
2024-04-30 18:48:07 +02:00
Charles Bochet 3fc48feefb Re-add chromatic CI to github workflow 2024-04-30 18:26:08 +02:00
Charles Bochet 7dad6e3b5e Re-add chromatic CI 2024-04-30 18:21:08 +02:00
Charles BochetandGitHub ccd1100773 Fix tests (#5228)
Fixing typecheck + storybook:modules!
2024-04-30 17:54:07 +02:00
MarieandGitHub 1b2ed80c1c [feat][Remote objects] Edit a connection (for pg) (#5210)
## Context
#4774 

## How was it tested
Locally

## In further PRs
- Update connection status upon page change
- Adapt Info banner to dark mode
- placeholders for form
2024-04-30 17:46:30 +02:00
3bf9045990 Fix record position on contact creation (#5227)
Fix record position on contact creation

---------

Co-authored-by: Weiko <[email protected]>
2024-04-30 17:09:29 +02:00
9ad68ffe84 Favorites should be user-level not workspace-level (#5186)
### Description
Favorites should be user-level not workspace-level

### Refs
#3374

### Demo


https://github.com/twentyhq/twenty/assets/140154534/38a34cc7-ac58-494f-92d5-e15c43ae542e

Fixes #3374

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-30 16:42:44 +02:00
WeikoandGitHub bc0d30f28b [flexible-backend] handle object already exists error (#5225)
## Context
Currently we have an unicity constraint in the DB but we don't return a
clear error to the frontend before reaching the DB (which then throws a
500). This PR adds a validation check similar to what we have with field
creation
2024-04-30 16:36:02 +02:00
ThaïsandGitHub c193663a71 chore: use Nx affected tasks in CI (#5110)
Closes #5097

- Uses "nx affected" to detect what projects need to be checked in the
current PR (for now, `ci-front` and `ci-server` workflows only).
- Caches results of certain tasks (`lint`, `typecheck`, `test`,
`storybook:build`) when a PR pipeline runs. The next runs of the same
PR's pipeline will then be able to reuse the PR's task cache to execute
tasks faster.
- Caches Yarn's cache folder to install dependencies faster in CI jobs.
- Rewrites the node modules cache/install steps as a custom, reusable
Github action.
- Distributes `ci-front` jobs with a "matrix" strategy.
- Sets common tasks config at the root `nx.json`. For instance, to
activate the `typecheck` task in a project, add `typecheck: {}` to its
`project.json` and it'll use the default config set in `nx.json` for the
`typecheck` task. Options can be overridden in each individual
`project.json` if needed.
- Adds "scope" tags to some projects: `scope:frontend`, `scope:backend`,
`scope:shared`. An eslint rule ensures that `scope:frontend` only
depends on `scope:frontent` or `scope:shared` projects, same for
`scope:backend`. These tags are used by `nx affected` to filter projects
by scope and generates different task cache keys according to the
requested scope.
- Enables checks for twenty-emails in the `ci-server` workflow.
2024-04-30 16:28:25 +02:00
WeikoandGitHub a77cb023c0 Flush cache when reset db (#5214)
Now that we have persistent cache for schemas, we want to be able to
reset its state when users run the database:reset db otherwise schemas
won't be synced with the new DB state.

Note: In an upcoming PR, we want to be able to invalidate the cache on a
workspace level when we change the metadata schema through twenty
version upgrade
2024-04-30 15:03:24 +02:00
WeikoandGitHub f512049381 [messaging/calendar] cron jobs can run regardless of sub status if billing is disabled (#5218)
## Context
Messaging and calendar cron jobs are only working for workspace that
have sub status different than incomplete, this is because currently
this is the simplest way to know if a user is onboarded. This should not
be the source of truth and this will be updated in a later version. In
the meantime, to make self-hosting easier, we are adding an extra check
on IS_BILLING_ENABLED env var since sub status is not relevant for
people not using billing.
2024-04-30 15:01:22 +02:00
bosiraphaelandGitHub 7c605fc2f9 4002 prevent user from creating twice the same blocklist item (#5213)
Closes #4002
2024-04-30 14:36:33 +02:00
3a61c922f1 Import full distant schema and store in remote server (#5211)
We should not depend on the foreign data wrapper type to manage distant
table. The remote server should be enough to handle the table creation.

Here is the new flow to fetch available tables:
- check if the remote server have available tables already stored
- if not, import full schema in a temporary schema
- copy the tables into the available tables field 
- delete the schema

Left todo:
- update remote server input for postgres so we receive the schema

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-30 14:18:33 +02:00
bosiraphaelandGitHub 907f0a1ea6 Add feature flag gate on calendar settings dropdown and fix queries (#5221)
- Add feature flag gate on calendar settings dropdown
- Fix find many messages
- Fix connected accounts settings
2024-04-30 14:12:48 +02:00
WeikoandGitHub 95d80af0c6 Remove debounce on filter search bar (#5215)
A search bar has been introduced in the filter dropdown menu however we
don't want to apply debounce since the search has no side-effect and is
purely FE (it's not querying the DB compared to other search bars). Also
adding autofocus on the search bar when the dropdown is open.
2024-04-30 10:44:32 +02:00
Charles Bochet fab385179b Fix Favorites issue 2024-04-30 00:38:22 +02:00
Charles Bochet dd366dba47 Bump version to 0.10.4 2024-04-29 23:48:15 +02:00
Charles BochetandGitHub 6a14b1c6d6 Fix tasks (#5199)
## Query depth deprecation

I'm deprecating depth parameter in our graphql query / cache tooling.
They were obsolete since we introduce the possibility to provide
RecordGqlFields

## Refactor combinedFindManyRecordHook

The hook can now take an array of operationSignatures

## Fix tasks issues

Fix optimistic rendering issue. Note that we still haven't handle
optimisticEffect on creation properly
2024-04-29 23:33:23 +02:00
c946572fde TWNTY-4203 - Improve Email Thread Visibility with Collapse/Expansion Rules (#5202)
### Description

Improve Email Thread Visibility with Collapse/Expansion Rules

### Refs
#4203

### Demo


https://github.com/twentyhq/twenty/assets/140154534/ece1d783-57ef-45c9-9895-3b4b0e02b9e2


Fixes #4203

---------

Co-authored-by: gitstart-twenty <[email protected]>
2024-04-29 18:10:42 +02:00
Vinod RathodandGitHub 6065201acd Implemented Search Feature in Filter Menu (#5068)
Closes #4367
2024-04-29 17:59:26 +02:00
Quentin GandGitHub c1740e3395 Feat/add postgres spilo (#5049)
This is a new Docker image that extends the Zalando Spilo image in order
to install the extensions needed by Twenty : pg_graphql, wrappers,
mysql_fdw
2024-04-29 17:09:41 +02:00
e2185448ed Feat/twenty orm (#5153)
## Introduction

This PR introduces "TwentyORM," a custom ORM module designed to
streamline database interactions within our workspace schema, reducing
the need for raw SQL queries. The API mirrors TypeORM's to provide a
familiar interface while integrating enhancements specific to our
project's needs.

To facilitate this integration, new decorators prefixed with `Workspace`
have been implemented. These decorators are used to define entity
metadata more explicitly and are critical in constructing our schema
dynamically.

## New Features

- **Custom ORM System**: Named "TwentyORM," which aligns closely with
TypeORM for ease of use but is tailored to our application's specific
requirements.
- **Decorator-Driven Configuration**: Entities are now configured with
`Workspace`-prefixed decorators that clearly define schema mappings and
relationships directly within the entity classes.
- **Injectable Repositories**: Repositories can be injected similarly to
TypeORM, allowing for flexible and straightforward data management.

## Example Implementations

### Decorated Entity Definitions

Entities are defined with new decorators that outline table and field
metadata, relationships, and constraints. Here are examples of these
implementations:

#### Company Metadata Object

```typescript
@WorkspaceObject({
  standardId: STANDARD_OBJECT_IDS.company,
  namePlural: 'companies',
  labelSingular: 'Company',
  labelPlural: 'Companies',
  description: 'A company',
  icon: 'IconBuildingSkyscraper',
})
export class CompanyObjectMetadata extends BaseObjectMetadata {
  @WorkspaceField({
    standardId: COMPANY_STANDARD_FIELD_IDS.name,
    type: FieldMetadataType.TEXT,
    label: 'Name',
    description: 'The company name',
    icon: 'IconBuildingSkyscraper',
  })
  name: string;

  @WorkspaceField({
    standardId: COMPANY_STANDARD_FIELD_IDS.xLink,
    type: FieldMetadataType.LINK,
    label: 'X',
    description: 'The company Twitter/X account',
    icon: 'IconBrandX',
  })
  @WorkspaceIsNullable()
  xLink: LinkMetadata;

  @WorkspaceField({
    standardId: COMPANY_STANDARD_FIELD_IDS.position,
    type: FieldMetadataType.POSITION,
    label: 'Position',
    description: 'Company record position',
    icon: 'IconHierarchy2',
  })
  @WorkspaceIsSystem()
  @WorkspaceIsNullable()
  position: number;

  @WorkspaceRelation({
    standardId: COMPANY_STANDARD_FIELD_IDS.accountOwner,
    label: 'Account Owner',
    description: 'Your team member responsible for managing the company account',
    type: RelationMetadataType.MANY_TO_ONE,
    inverseSideTarget: () => WorkspaceMemberObjectMetadata,
    inverseSideFieldKey: 'accountOwnerForCompanies',
    onDelete: RelationOnDeleteAction.SET_NULL,
  })
  @WorkspaceIsNullable()
  accountOwner: WorkspaceMemberObjectMetadata;
}
```

#### Workspace Member Metadata Object

```typescript
@WorkspaceObject({
  standardId: STANDARD_OBJECT_IDS.workspaceMember,
  namePlural: 'workspaceMembers',
  labelSingular: 'Workspace Member',
  labelPlural: 'Workspace Members',
  description: 'A workspace member',
  icon: 'IconUserCircle',
})
@WorkspaceIsSystem()
@WorkspaceIsNotAuditLogged()
export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
  @WorkspaceField({
    standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.name,
    type: FieldMetadataType.FULL_NAME,
    label: 'Name',
    description: 'Workspace member name',
    icon: 'IconCircleUser',
  })
  name: FullNameMetadata;

  @WorkspaceRelation({
    standardId: WORKSPACE_MEMBER_STANDARD_FIELD_IDS.accountOwnerForCompanies,
    label: 'Account Owner For Companies',
    description: 'Account owner for companies',
    icon: 'IconBriefcase',
    type: RelationMetadataType.ONE_TO_MANY,
    inverseSideTarget: () => CompanyObjectMetadata,
    inverseSideFieldKey: 'accountOwner',
    onDelete: RelationOnDeleteAction.SET_NULL,
  })
  accountOwnerForCompanies: Relation

<CompanyObjectMetadata[]>;
}
```

### Injectable Repository Usage

Repositories can be directly injected into services, allowing for
streamlined query operations:

```typescript
export class CompanyService {
  constructor(
    @InjectWorkspaceRepository(CompanyObjectMetadata)
    private readonly companyObjectMetadataRepository: WorkspaceRepository<CompanyObjectMetadata>,
  ) {}

  async companies(): Promise<CompanyObjectMetadata[]> {
    // Example queries demonstrating simple and relation-loaded operations
    const simpleCompanies = await this.companyObjectMetadataRepository.find({});
    const companiesWithOwners = await this.companyObjectMetadataRepository.find({
      relations: ['accountOwner'],
    });
    const companiesFilteredByLinkLabel = await this.companyObjectMetadataRepository.find({
      where: { xLinkLabel: 'MyLabel' },
    });

    return companiesFilteredByLinkLabel;
  }
}
```

## Conclusions

This PR sets the foundation for a decorator-driven ORM layer that
simplifies data interactions and supports complex entity relationships
while maintaining clean and manageable code architecture. This is not
finished yet, and should be extended.
All the standard objects needs to be migrated and all the module using
the old decorators too.

---------

Co-authored-by: Weiko <[email protected]>
2024-04-29 16:47:42 +02:00
6e87554445 updated: removed gradient from onboarding buttons (#5178)
Fixes #5168

- Added primaryInverted and primaryInvertedHover to design system.
- Changed primary button background with a gradient to inverted-flat for
both light and dark themes.
- Hover added to go lighter (consistent with tertiary color of +5 step
on GRAY_SCALE).
- Font color changed from primary to inverted.
- Modified button border from light to strong.

Two components are still utilizing the button with gradient background -
email and chrome extension.
Figma design guidelines show them to be inverted and flat (not
gradient).

- Should I change those as well?
- Should the gradient style be removed altogether after this has been
completed?

Co-authored-by: Henry Kim <[email protected]>
2024-04-29 16:11:42 +02:00
Shubham KumarandGitHub a064708d8b chore: add sentry captureException for global error logging (#5198)
I have added error logging to Sentry using Sentry.captureException. The
_info object which includes the componentStack will be sent in extra
data along with the exception.
2024-04-29 15:53:57 +02:00
bosiraphaelandGitHub 6cafd25c97 Fix duplicated calendar events (#5209)
Fix duplicated calendar events when two workspace members participate to
the same event.
2024-04-29 15:23:40 +02:00
Félix MalfaitandGitHub 9809298753 Add jobs (#5208)
Adding job descs for intern + senior software eng role!
2024-04-29 14:41:16 +02:00
brendanlaschkeandGitHub adf64f0a4c Add known sources dropdown to api docs (#5204)
closes #5156
2024-04-29 10:39:40 +02:00
Charles BochetandGitHub e976a1bdfc Uniformize datasources (#5196)
## Context

We recently enabled the option to bypass SSL certificate authority
validation when establishing a connection to PostgreSQL. Previously, if
this validation failed, the server would revert to unencrypted traffic.
Now, it maintains encryption even if the SSL certificate check fails. In
the process, we overlooked a few DataSource setups, prompting a review
of DataSource creation within our code.

## Current State

Our DataSource initialization is distributed as follows:
- **Database folder**: Contains 'core', 'metadata', and 'raw'
DataSources. The 'core' and 'metadata' DataSources manage migrations and
static resolver calls to the database. The 'raw' DataSource is utilized
in scripts and commands that require handling both aspects.
- **typeorm.service.ts script**: These DataSources facilitate
multi-schema connections.

## Vision for Discussion
- **SystemSchema (formerly core) DataSource**: Manages system schema
migrations and system resolvers/repos. The 'core' schema will be renamed
to 'system' as the Core API will include parts of the system and
workspace schemas.
- **MetadataSchema DataSource**: Handles metadata schema migrations and
metadata API resolvers/repos.
- **(Dynamic) WorkspaceSchema DataSource**: Will be used in the Twenty
ORM to access a specific workspace schema.

We currently do not support cross-schema joins, so maintaining these
DataSources separately should be feasible. Core API resolvers will
select the appropriate DataSource based on the field context.
- **To be discussed**: The potential need for an AdminDataSource (akin
to 'Raw'), which would be used in commands, setup scripts, and the admin
panel to connect to any database schema without loading any model. This
DataSource should be reserved for cases where utilizing metadata,
system, or workspace entities is impractical.

## In This PR
- Ensuring all existing DataSources are compliant with the SSL update.
- Introducing RawDataSource to eliminate the need for declaring new
DataSource() instances in commands.
2024-04-27 11:43:44 +02:00
WeikoandGitHub ebc25c8695 Add redis to useMetadataCache yoga plugin (#5194)
## Context
@lucasbordeau introduced a new Yoga plugin that allows us to cache our
requests (👏), see https://github.com/twentyhq/twenty/pull/5189
I'm simply updating the implementation to allow us to use different
cache storage types such as redis
Also adding a check so it does not use cache for other operations than
ObjectMetadataItems

## Test
locally, first call takes 340ms, 2nd takes 30ms with 'redis' and 13ms
with 'memory'
2024-04-26 19:27:09 +02:00
bosiraphaelandGitHub 5e143f1f49 5187 delete all emails and events from a blocklisted domain name (#5190)
Closes #5187
2024-04-26 18:24:02 +02:00
Charles Bochet 27cd577dbb Fix login by email blocked 2024-04-26 18:22:36 +02:00
MarieandGitHub 76d4188ba8 [feat] Add updateRemoteServer endpoint (#5148)
## Context
#4765 

Following investigations
([#5083](https://github.com/twentyhq/twenty/issues/5083)) we decided to
restrict updates of server from which zero tables have been synchronized
only

## How was it tested
Locally with /metadata
1. Updating a database that already has synchronized tables
<img width="1072" alt="Capture d’écran 2024-04-24 à 16 16 05"
src="https://github.com/twentyhq/twenty/assets/51697796/f9a84c34-2dcd-4f3c-b0bc-b710abae5021">

2. Updating a database that has no synchronized tables
<img width="843" alt="Capture d’écran 2024-04-24 à 16 17 28"
src="https://github.com/twentyhq/twenty/assets/51697796/f320fe03-a6bc-4724-bcd0-4e89d3ac31f5">
+ tested that the connection works well
2024-04-26 18:12:08 +02:00
Charles Bochet b15533e4b3 Bump version to 0.10.3 2024-04-26 17:52:13 +02:00
Lucas BordeauandGitHub 77eece77ea Add a cache on /metadata (#5189)
In this PR I'm introducing a simple custom graphql-yoga plugin to create
a caching mechanism specific to our metadata.

The cache key is made of : workspace id + workspace cache version, with
this the cache is automatically invalidated each time a change is made
on the workspace metadata.
2024-04-26 17:31:40 +02:00
8beec03762 fix: fix SignInUpForm Continue button being disabled (#5185)
Co-authored-by: Charles Bochet <[email protected]>
2024-04-26 16:27:40 +02:00
e1d0b26cf9 5180 - does not call debounced update for invalid names (#5181)
fix: #5180 

Previously, clearing your name would kick you to the profile creation
page.


https://github.com/twentyhq/twenty/assets/68029599/8c0087da-6b03-4b6e-b202-eabe8ebcee18


Fixed so it checks your name is valid before calling the debounced
update


https://github.com/twentyhq/twenty/assets/68029599/4bc71d8f-e4f4-49ae-9cb8-497bd971be94

---------

Co-authored-by: Weiko <[email protected]>
2024-04-26 15:23:03 +02:00
224c8d361b Setup relations for remote objects (#5149)
New strategy:
- add settings field on FieldMetadata. Contains a boolean isIdField and
for numbers, a precision
- if idField, the graphql scalar returned will be a GraphQL id. This
will allow the app to work even for ids that are not uuid
- remove globals dateScalar and numberScalar modes. These were not used
- set limit as Integer
- check manually in query runner mutations that we send a valid id

Todo left:
- remove WorkspaceBuildSchemaOptions since this is not used anymore.
Will do in another PR

---------

Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Weiko <[email protected]>
2024-04-26 14:37:34 +02:00
dc576d0818 GH-3546 Recaptcha on login form (#4626)
## Description

This PR adds recaptcha on login form. One can add any one of three
recaptcha vendor -
1. Google Recaptcha -
https://developers.google.com/recaptcha/docs/v3#programmatically_invoke_the_challenge
2. HCaptcha -
https://docs.hcaptcha.com/invisible#programmatically-invoke-the-challenge
3. Turnstile -
https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/#execution-modes

### Issue
- #3546 

### Environment variables - 
1. `CAPTCHA_DRIVER` - `google-recaptcha` | `hcaptcha` | `turnstile`
2. `CAPTCHA_SITE_KEY` - site key
3. `CAPTCHA_SECRET_KEY` - secret key

### Engineering choices
1. If some of the above env variable provided, then, backend generates
an error -
<img width="990" alt="image"
src="https://github.com/twentyhq/twenty/assets/60139930/9fb00fab-9261-4ff3-b23e-2c2e06f1bf89">
    Please note that login/signup form will keep working as expected.
2. I'm using a Captcha guard that intercepts the request. If
"captchaToken" is present in the body and all env is set, then, the
captcha token is verified by backend through the service.
3. One can use this guard on any resolver to protect it by the captcha.
4. On frontend, two hooks `useGenerateCaptchaToken` and
`useInsertCaptchaScript` is created. `useInsertCaptchaScript` adds the
respective captcha JS script on frontend. `useGenerateCaptchaToken`
returns a function that one can use to trigger captcha token generation
programatically. This allows one to generate token keeping recaptcha
invisible.

### Note
This PR contains some changes in unrelated files like indentation,
spacing, inverted comma etc. I ran "yarn nx fmt:fix twenty-front" and
"yarn nx lint twenty-front -- --fix".

### Screenshots

<img width="869" alt="image"
src="https://github.com/twentyhq/twenty/assets/60139930/a75f5677-9b66-47f7-9730-4ec916073f8c">

---------

Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-04-25 23:52:28 +02:00
martmullandGitHub 44855f0317 Fix broken billing portal when subscription canceled (#5082)
Fix billing portal link for canceled subscription
2024-04-25 18:33:49 +02:00
bosiraphaelandGitHub 9f1818aef7 4748 create updated listener on blocklist (#5145)
Closes #4748
2024-04-25 17:39:56 +02:00
6e8c6c8e58 fixed twenty website build (#5174)
Made code compile during build even when then environment variable is
not yet available

Co-authored-by: Ady Beraud <[email protected]>
2024-04-25 15:54:54 +02:00
bosiraphaelandGitHub d23e02adca 4001 add validation for blocklist (#5172)
Closes #4001
2024-04-25 15:32:55 +02:00
4af2c5f298 Added a search box in sort menu (#5045)
Closes #4368

---------

Co-authored-by: Weiko <[email protected]>
2024-04-25 15:31:41 +02:00
Quentin GandGitHub 806666d909 feat: allow self signed certificates with postgres connections (#5143) 2024-04-25 15:29:07 +02:00
Charles BochetandGitHub 11a7db5672 Fix workspace schema caching when user is not logged in (#5173)
In this PR:
- Follow up on #5170 as we did not take into account not logged in users
- only apply throttler on root fields to avoid performance overhead
2024-04-25 14:45:14 +02:00
Lucas BordeauandGitHub 52f4c34cd6 Cache yoga conditional schema (#5170)
In this PR I'm introducing a new patch on @graphql-yoga/nestjs package.

This patch overrides a previous patch that was made to compute the
conditionnal schema on each request,

Here we use a cache map to compute only once per schema workspace cache
version.

This allows us to have sub 100ms query time.
2024-04-25 14:01:32 +02:00
0ccbdacb5a feat: Status tags can show loader to complement displayed text (#5137)
Resolves #5134 



https://github.com/twentyhq/twenty/assets/16918891/48475f1b-a61f-4b87-8b9b-1271a183ac4b

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-04-25 10:27:17 +02:00
Hinson ChanandGitHub a283a3deed 5161 - fix workspace icon is missing on multi-workspace (#5165)
Fixes #5161

<img width="179" alt="image"
src="https://github.com/twentyhq/twenty/assets/68029599/5a7a5b11-c6ec-4f1f-b94d-37be470a7f79">

detail: before this PR, the icon would display as normal for the default
data:// icons, but not for uploaded files
(`workspace-logo/original/{}.png` for example). This PR fixes this by
calling the getImageAbsoluteURIOrBase64 function to resolve the missing
path.
2024-04-25 10:01:44 +02:00
Orinami OlatunjiandGitHub 2b8116f57f fix: Calendar events participated in should be displayed in red (#5146)
Resolves #5131
2024-04-25 09:56:23 +02:00
Charles BochetandGitHub 07c8779411 Fix broken sync-metadata (#5154)
An error has been recently introduced in the sync of fieldMetadata. This
PR fixes it

Additionnally, we are enabling email for trialing and past_due
workspaces. There is an ongoing work to introduce a more robust
activationStatus on workspace.
2024-04-24 17:45:17 +02:00
5d2d6bae08 Remove SQLite from twenty-website (#5142)
Removed SQLite from twenty-website

---------

Co-authored-by: Ady Beraud <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-04-24 17:02:02 +02:00
bosiraphaelandGitHub 0f47426d19 4747 create deleted listener on blocklist (#5067)
Closes #4747
2024-04-24 16:10:56 +02:00
adbc8ab96f #5073 - fix datepicker styling in dark mode (#5074)
This PR fixes three issues with the datepicker in dark mode. The
following UI elements now appear in light colors when the theme is set
to dark mode:

- The selected date.
- The clock icon.
- The date time input component.

Before:
<img width="1003" alt="theming bug"
src="https://github.com/twentyhq/twenty/assets/16918891/914b7043-e692-4de8-8440-ddd89cbf3973">

After:
<img width="374" alt="dark_theme_calendar_after"
src="https://github.com/twentyhq/twenty/assets/16918891/346fd950-1ef8-405e-9486-59abb81f92db">
<img width="347" alt="light_theme_calendar_after"
src="https://github.com/twentyhq/twenty/assets/16918891/17463094-53e5-4bc4-8812-a53a37cd08ed">

#5073

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-24 15:18:26 +02:00
bosiraphaelandGitHub d130b78166 5044 Dispatch createcontact job instead of emitting an event (#5135)
Closes #5044
2024-04-24 15:01:13 +02:00
87a9ecee28 D gamer007/add microsoft oauth (#5103)
Need to create a new branch because original branch name is `main` and
we cannot push additional commits
Linked to https://github.com/twentyhq/twenty/pull/4718


![image](https://github.com/twentyhq/twenty/assets/29927851/52b220e7-770a-4ffe-b6e9-468605c2b8fa)

![image](https://github.com/twentyhq/twenty/assets/29927851/7a7a4737-f09f-4d9b-8962-5a9b8c71edc1)

---------

Co-authored-by: DGamer007 <[email protected]>
2024-04-24 14:56:02 +02:00
Charles BochetandGitHub b3e1d6becf Fix default value fixer script (#5144)
While trying to migrate a workspace from 0.3.3 to 0.10.0, we've faced an
issue with the script to migrate default-values format.
This PR fixes it.

We really need to add tests on this part ;)
2024-04-24 14:50:57 +02:00
b634057fdd Fix ellipsis overflow causing edit icon to be hidden on links (#5071)
Fixes #5064 

### Demo


https://github.com/twentyhq/twenty/assets/21654351/28ab7374-c57e-4f7e-9720-05138c53a33d

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-04-24 13:27:59 +02:00
Hinson ChanandGitHub 3b0f81e7e1 5125 - fix npx nx start does not exit gracefully (#5133)
Fixes: https://github.com/twentyhq/twenty/issues/5125

Updated nx version that includes fix (see fix PR:
https://github.com/nrwl/nx/pull/22895, release confirming fix:
https://github.com/nrwl/nx/releases/tag/18.3.3)

<img width="291" alt="image"
src="https://github.com/twentyhq/twenty/assets/68029599/b72b4a5c-9957-445d-b8b2-8352122cade8">
2024-04-24 11:53:53 +02:00
c63ee519ea feat: oauth for chrome extension (#4870)
Previously we had to create a separate API key to give access to chrome
extension so we can make calls to the DB. This PR includes logic to
initiate a oauth flow with PKCE method which redirects to the
`Authorise` screen to give access to server tokens.

Implemented in this PR- 
1. make `redirectUrl` a non-nullable parameter 
2. Add `NODE_ENV` to environment variable service
3. new env variable `CHROME_EXTENSION_REDIRECT_URL` on server side
4. strict checks for redirectUrl
5. try catch blocks on utils db query methods
6. refactor Apollo Client to handle `unauthorized` condition
7. input field to enter server url (for self-hosting)
8. state to show user if its already connected
9. show error if oauth flow is cancelled by user

Follow up PR -
Renew token logic

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-04-24 11:45:16 +02:00
0a7f82333b Make Github stars dynamic and improve database init (#5000)
I extracted the init database logic into its own file. 
You can now run it with yarn database:init.
Added database entry for GitHub stars. 

Do you want me to remove the init route or is it used for something else
?

---------

Co-authored-by: Ady Beraud <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-04-24 09:44:44 +02:00
fda0c3c93c Added SEO to website pages (#5106)
Added SEO to Contributors, Contributor, User Guide (+ each of it's
pages), Changelog, OSS friends: titles, descriptions

Co-authored-by: Ady Beraud <[email protected]>
2024-04-24 08:13:59 +02:00
dc82ff56b8 Update oss friends (#5108)
Modified OSS friends to fit figma (fonts, colors, margins etc. ) and
made it responsive.

---------

Co-authored-by: Ady Beraud <[email protected]>
2024-04-24 08:03:15 +02:00
Charles BochetandGitHub fafa56411c Fix email sync (#5132) 2024-04-23 18:50:37 +02:00
444e97fa3e Fixed date picker UI that was too overloaded (#5039)
Date picker UI was off because of the recent refactor with new field
types Date and DateTime. We had to allow the date picker to edit both.

In this PR we come back to the previous design and we only use the input
to modify time.

Also we use our Select component instead of the ones from the library
`react-datepicker`

---------

Co-authored-by: Weiko <[email protected]>
2024-04-23 18:45:32 +02:00
2dc89b8f1d Added releases to navbar (#5124)
-Added "Releases" to mobile/desktop navbar

Co-authored-by: Ady Beraud <[email protected]>
2024-04-23 15:49:18 +02:00
ff39ba5a15 [fix] Support non latin characters in schema names (#5063)
Fixes #4943

## How was it tested?
Local (front + /metadata)
Unit tests for utils

---------

Co-authored-by: Weiko <[email protected]>
2024-04-23 13:37:29 +02:00
bosiraphaelandGitHub 824786ff04 4746 create created listener on blocklist for calendar (#5046)
Follows #5031.
Closes #4746
2024-04-23 11:46:27 +02:00
8f6460bec5 #4976 fix dark mode for multi-select picker in activity target chips (#5111)
#4976 - Fixed the dark mode for multi-select picker in
ActivityTargetChips.

Bug:

![image](https://github.com/twentyhq/twenty/assets/16918891/53f55bba-f692-4dc9-a6b6-440d4ff5b278)

Fix:


https://github.com/twentyhq/twenty/assets/16918891/8e72cd02-0956-468d-b898-a10313448f62

---------

Co-authored-by: Weiko <[email protected]>
2024-04-23 11:46:05 +02:00
DevandGitHub bd2a6cbbd3 Add company to default opportunity fields (#5075)
Fixes #4484 

<img width="1904" alt="Screenshot 2024-04-21 at 6 58 10 AM"
src="https://github.com/twentyhq/twenty/assets/21654351/dd1dcd3b-3bbe-48d9-8576-dc6e885fc11e">
2024-04-23 11:43:27 +02:00
Ikko Eltociear AshimineandGitHub 0db35c9a5f Fix typo in config/index.ts (#5109)
seperate -> separate
2024-04-23 11:22:31 +02:00
fa4670b14d chore: extend root eslint config in twenty-server (#5101)
Reopening @thaisguigon work from
https://github.com/twentyhq/twenty/pull/4781

---------

Co-authored-by: Thaïs Guigon <[email protected]>
2024-04-22 17:34:24 +02:00
b9a7eb5a98 User guide layout (#5016)
- Modified CSS: font-size, colors, margins...

- Added an ArticleContent Component that will be used for the changelog
and user guide articles, which contains the styles for each titles,
paragraphs, images etc.

- Added link to User Guide in footer

- Added a UserGuideWarning Component: 

<img width="332" alt="Screenshot 2024-04-17 at 18 14 48"
src="https://github.com/twentyhq/twenty/assets/102751374/0f5c601b-a2c0-4c63-baeb-1990d65fc332">

- Added a UserGuideEditContent Component:

<img width="394" alt="Screenshot 2024-04-17 at 18 16 24"
src="https://github.com/twentyhq/twenty/assets/102751374/6c7c3bd4-c5bb-4d02-8f93-bd99bc30ce7b">

- Added a UserGuideLink Component (for usage in MDX to allow links to
open in new tab)

- Fixed table of content

- Made responsive

---------

Co-authored-by: Ady Beraud <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-04-22 17:04:26 +02:00
68662fa543 [refacto] Introduce stateless TextInputV2 (#5013)
## Context
As discussed with @lucasbordeau and @charlesBochet we are looking at
making low level UI components stateless when possible.
Therefore TextInput should not handle a hotkey state. Instead hotkeys
should be defined in the parent component (as done here in
CreateProfile).

Introducing here TextInputV2 that is stateless and that can already
replace TextInput without any behaviour change everywhere it is used
with `disableHotkey` prop.

## How was it tested?
Locally + Storybook

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-22 11:19:41 +02:00
Charles Bochet 3e8d42f2ed Fix standard field ids of timelineActivities relations 2024-04-20 19:29:42 +02:00
Charles Bochet 72b7d41cac Fix syncing of old event models 2024-04-20 18:12:27 +02:00
Charles Bochet d77ad1052c Fix demo workspace seed 2024-04-20 00:11:04 +02:00
Charles BochetandGitHub 4bd2cdd580 Load all data on record boards (#5070)
## Context

For users with many records, only the first n*60 records were loaded on
board views (n being the number of visible columns). This was because of
the following behavior:
- watch for end of column visibility changes. If an end of column is
visible, try to fetch more. However, watching for visbility changes is
not reliable enough.

## What we want

If an end of column is visible, try to fetch more. If no more records is
availble in pagination, do not fetch more
2024-04-19 23:39:19 +02:00
ThaïsandGitHub d3170fc1ea fix: fix root start script (#5032)
Fixes #5022

See https://nx.dev/recipes/running-tasks/root-level-scripts#setup
2024-04-19 18:28:02 +02:00
martmullandGitHub 43f0b11aab Fix playground (#5043)
Some code quality updates on the doc api playgrounds
2024-04-19 18:18:08 +02:00
Aditya PimpalkarandGitHub 14f97e2e80 fix: "Add to Twenty" button render fix (chrome-extension) (#5048)
fix - #5047
2024-04-19 18:13:53 +02:00
Félix MalfaitandGitHub d145684966 New Timeline (#4936)
Refactored the code to introduce two different concepts:
- AuditLogs (immutable, raw data)
- TimelineActivities (user-friendly, transformed data)

Still some work needed:
- Add message, files, calendar events to timeline (~2 hours if done
naively)
- Refactor repository to try to abstract concept when we can (tbd, wait
for Twenty ORM)
- Introduce ability to display child timelines on parent timeline with
filtering (~2 days)
- Improve UI: add links to open note/task, improve diff display, etc
(half a day)
- Decide the path forward for Task vs Notes: either introduce a new
field type "Record Type" and start going into that direction ; or split
in two objects?
- Trigger updates when a field is changed (will be solved by real-time /
websockets: 2 weeks)
- Integrate behavioral events (1 day for POC, 1 week for
clean/documented)

<img width="1248" alt="Screenshot 2024-04-12 at 09 24 49"
src="https://github.com/twentyhq/twenty/assets/6399865/9428db1a-ab2b-492c-8b0b-d4d9a36e81fa">
2024-04-19 17:52:57 +02:00
Quentin GandGitHub 9c8cb52952 fix: release workflow (#5053)
Couple fixes to the release workflow in order to make it work as
intended
2024-04-19 15:16:48 +02:00
WeikoandGitHub 3a959248f9 Fix billing check for trial sub status (#5054)
## Context
Sub status is not binary as you can also be in trial mode and still
should be able to share invite link. This PR should fix this issue
2024-04-19 15:16:08 +02:00
martmullandGitHub 36d4c38c3d Check password in signinup only when email/password signInUp (#5042)
- disable password check when signInUp from google (sso)
- check password when signInUp with email password
2024-04-18 17:52:01 +02:00
Arun KumarandGitHub e0efa358de Fixes #5024: Update local recoil state when workspace name changes (#5033)
This PR fixes #5024.

Local recoil state was not updated when workspace name is changed. This
PR updates local recoil state so that dropdown (and other parts of the
app) correctly shows the workspace name without reload.
2024-04-18 16:54:32 +02:00
Charles BochetandGitHub d07dc11124 Fix activity Target picker not being displayed (#5040)
<img width="1025" alt="image"
src="https://github.com/twentyhq/twenty/assets/12035771/3f37ed27-661e-43ea-bc15-f59efa12bfca">
2024-04-18 16:16:12 +02:00
martmullandGitHub 1c1a055c94 Improve multi word filtering (#5034)
improve multi word search

closes #4212 
closes #3386
2024-04-18 15:46:59 +02:00
Lucas BordeauandGitHub 88c14b7e52 Fix Record Inline Cell position on Edit mode (#5038)
Fixed 0.5 offset of inline cell edit mode
2024-04-18 15:46:40 +02:00
WeikoandGitHub 220a0e91d2 [messaging/calendar] fix missing authFailedAt reset once refreshToken is updated (#5037) 2024-04-18 15:43:35 +02:00
Lucas BordeauandGitHub dc91d06e1b Fixed position in query fields (#5036)
Position was not passed to the request query fields so it changed every
time we updated a field.
2024-04-18 15:24:28 +02:00
Lucas BordeauandGitHub df49575c3e Fix component id to scope id (#5035)
This pull request fixes the component id to scope id in the
useUpsertRecordV2 function.
2024-04-18 15:24:15 +02:00
bosiraphaelandGitHub 8702c71d45 4746 create created listener on blocklist (#5031)
Closes #4746 for messaging.

I will create another PR to implement the listener on calendar.
2024-04-18 15:06:13 +02:00
Charles Bochet c42fcf435a Improve performance on TableBody but disable shadow on first column freeze 2024-04-18 14:45:45 +02:00
Zoltán VölcseyandGitHub c402631067 fix: Added isDisplayModeContentEmpty to the showEditButton's check (#5025)
Closes #5011 

Hi! I added isDisplayModeContentEmpty to the showEditButton's check.


https://github.com/twentyhq/twenty/assets/41576384/54a87c16-b58a-4a46-8373-f6c924201113
2024-04-18 13:47:12 +02:00
168358a327 Implement a masked currency input (#5010)
### Description
Implement a masked currency input

### Refs
#4358 

### Demo
https://jam.dev/c/93da117c-b193-488f-b9f9-906b33ac5190

Fixes #4358

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-04-18 13:44:07 +02:00
b08e95494c Move id column check before foreign table creation (#5029)
When distant table does not have an id column, syncing does not work.
Today the check is only made after creating the foreign table locally.
We should do it first, so we avoid having a foreign table created and
failing right after.

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-18 11:34:21 +02:00
Lucas BordeauandGitHub bc5cfd046c Fixed default currency code in currency field (#5028)
Default currency logic was not handling a specific case where the
default currency is empty in the field metadata.

I fixed the ternary cascade and made it more explicit, thus also
avoiding falling into having an empty currency code being persisted.
2024-04-18 11:25:17 +02:00
ThaïsandGitHub 7065495223 fix: attempt to fix Dockerfile front build (#5020) 2024-04-18 11:24:39 +02:00
Lucas BordeauandGitHub 86afc34e61 Speed up RecordTableCell by 5x (#5023)
Improved table cell performances by putting all hooks from
RecordTableCell in RecordTableContext and RecordTable component, so that
each cell now only subscribes to a reference to those hooks' returned
function.

We couldn't do memoization here since the problem is not to memoize
between re-renders but to share the same function reference between
hundreds of different components, so a context it the fastest way for
this.

I had to refactor the hooks a little bit so that they take as arguments
what was previously taken from the cell's context.
2024-04-18 10:44:00 +02:00
MarieandGitHub 3e60c0050c [fix] Fix white screen when error handled by AppErrorBoundary (#5017)
[In a previous PR](https://github.com/twentyhq/twenty/pull/5008) I was
fixing dark mode by calling useTheme in AppErrorBoundary while there was
actually no parent ThemeProvider. This was causing a bug when an error
was actually intercepted by AppErrorBoundary because theme was empty.

Now I am providing the error theme in GenericErrorFallback, fallbacking
to THEME_LIGHT as it can be called from outside a ThemeProvider (as it
is the case today), but also reading into ThemeProvider in case we end
up using this component in a part of the application where it is
available, not to necessarily use THEME_LIGHT.

## How was it tested?
with @thaisguigon 
Locally (dark mode works + error mode works (throwing an error in
RecoilDebugObserver))
2024-04-18 10:42:30 +02:00
Charles BochetandGitHub 03e0fd2a65 Fix storybook tests 2 (#5026) 2024-04-18 10:41:11 +02:00
5c30509d21 GH-4362 Add syncing status (#4950)
This PR adds a `syncing` status on frontend.

Issue
- #4362

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-04-17 22:06:52 +02:00
Charles BochetandGitHub a52f2e5bd9 Fix Storybook stories (Datamodel edition / preview / signOut) (#5019)
As per title ; some small changes on broken stories
2024-04-17 18:48:41 +02:00
627a6bda29 Update twenty-front commands (#4667)
# This PR

- Moves dev and ci scripts to the `project.json` file in the
twenty-front package
- Adds a project.json file in the root of the project with the main
start command that start both twenty-server and twenty-front
applications concurrently
- Updates the script command of the root project with the start:prod
command (replacing the start command which will be used in dev with the
help of nx)
- Add a start:prod command in the twenty-front app, replacing the start
command (now used for dev purpose)

Issue ref #4645 

@charlesBochet @FelixMalfait please let me know how can I improve it

---------

Co-authored-by: Thaïs Guigon <[email protected]>
2024-04-17 18:06:02 +02:00
Charles BochetandGitHub 977927af04 Disable audit log on system objects (#5018)
## Context

We have recently added an event listener to create audit logs on objects
update. However, we have only created the structure (relations on event
standard objects) for Company, Person, Opportunity and custom objects.
There is a larger effort in #4936 to refactor this.
For now, we are disabling log auditing on all other objects

## How
Add @IsNotAuditLogged() annotation on all standard objects except
Company, Person, Opportunity
2024-04-17 17:52:39 +02:00
1ab31f4cac 4798-feat(front): Add calendar settings option in settings account dropdown (#4997)
Closes #4798 


![image](https://github.com/twentyhq/twenty/assets/22574091/cbdd941a-47bf-4bf4-982d-cc9538586e85)

---------

Co-authored-by: bosiraphael <[email protected]>
2024-04-17 17:41:24 +02:00
d54e690f0d Fix explicit boolean predicates rule not working with boolean constants (#5009)
### Description
Fix explicit boolean predicates rule not working with boolean constants

### Refs
#4881

### Demo

Fixes #4881

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
2024-04-17 17:06:37 +02:00
6cf3ade300 Make id available in remote table output (#5003)
Wrongly use `PrimaryGeneratedColumn` typeOrm decorator instead of the
nest query one.

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-17 17:05:47 +02:00
WeikoandGitHub 979b8d29cc UpdateSubscriptionJob should not be enqueued if billing is not enabled (#5007)
## Context
Adding this check to avoid enqueuing this job and following return-early
good practice

## Test
Without IS_BILLING_ENABLED env set

<img width="565" alt="Screenshot 2024-04-17 at 15 31 12"
src="https://github.com/twentyhq/twenty/assets/1834158/fcc43ce0-4455-4c4a-9889-02d99f0cd519">

With IS_BILLING_ENABLED env set
<img width="581" alt="Screenshot 2024-04-17 at 15 32 28"
src="https://github.com/twentyhq/twenty/assets/1834158/dc9756bd-2f6b-49bd-8897-84b6d8e09d56">
2024-04-17 17:04:48 +02:00
Charles BochetandGitHub d02509b1b6 Fix chromatic tests (#5012) 2024-04-17 16:56:39 +02:00
MarieandGitHub ac9ccbc2b5 [fix] Fix dark mode (#5008)
## Context
Fixing broken dark mode
<img width="826" alt="Capture d’écran 2024-04-17 à 15 50 39"
src="https://github.com/twentyhq/twenty/assets/51697796/94df50bd-5b43-4def-a39d-268a10ac560a">

## How was it tested
Locally
Test of dark mode on storybook is added on another PR
2024-04-17 16:54:03 +02:00
Charles BochetandGitHub 75fd430149 Increase storybook pages coverage (#4885)
On FE:
- refreshing metadata mocks
- updating jest tests
- fixing storybook pages coverage
- fixing storybook modules coverage
2024-04-17 16:24:04 +02:00
WeikoandGitHub 6804a90f2f Fix invite link sign-up with workspace without subcription and billing not enabled (#5006)
## Context

We recently introduced this verification but we didn't take into account
self-hosting that might not use billing.

## Test
tested locally with
- new workspace and new account
- existing workspace with new account and billing not enabled and status
incomplete => OK
- existing workspace with new account and billing enabled and status
incomplete => NOK
- existing workspace with new account and billing enabled and status
active => OK
2024-04-17 15:09:51 +02:00
martmullandGitHub 64cc6ecc3b Fix relation field type (#4992) 2024-04-17 14:56:27 +02:00
cf50391b00 fix: Display hidden columns and separator conditionally (#4982)
Closes #4979 

Hi! `RecordTableHeaderPlusButtonContent.tsx` component displays hidden
columns and separator, only if length of `hiddenTableColumns` array is
greater than zero.

The top right corner looked good.

![add-field1](https://github.com/twentyhq/twenty/assets/41576384/0b75ce42-d524-42ba-a76d-66c3d15d523e)

![add-field2](https://github.com/twentyhq/twenty/assets/41576384/44cf3910-2f99-4e99-8130-5cafa58c5828)

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-17 14:51:57 +02:00
bosiraphaelandGitHub 3024e04a1c 4971 add issyncenabled toggle in messaging settings (#4995)
- Closes #4971
- Fix calendar import to take isSyncEnabled into account
2024-04-17 13:35:23 +02:00
Charles BochetandGitHub 67db7d85c0 Proposal Date picker overflow (#4996)
Unfortunately, it is not possible in CSS to have an overflow:visible
over x-axis while having an overflow:hidden over y-axis, leading to the
following issue:

<img width="1512" alt="image"
src="https://github.com/twentyhq/twenty/assets/12035771/9b84cbbb-c6c4-4fd6-a630-a24f01eccf73">

I'm refactoring the RecordInlineCell and RecordTableCell to use
useFloating + createPortal to open the cell.
2024-04-17 11:35:45 +02:00
340af9a244 fix: Auto Reset Opportunity Creation Search Field (#4951)
## Description

In the previous implementation, we saved the user's search field input.
However, I have introduced a new prop called `clearOnOpen`, which allows
us to reset the search field upon loading.

Closes: #4923 



https://github.com/twentyhq/twenty/assets/95065270/dd2cab30-ea47-444e-b356-d5c98087bcc6

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-04-17 11:31:33 +02:00
WeikoandGitHub 6211f84de8 block invite link if workspace subscription is not active (#4991)
Fixes https://github.com/twentyhq/twenty/issues/4980

## Test
tested locally with incomplete and active
2024-04-17 10:55:47 +02:00
6fa2aee624 Introduce remote table entity (#4994)
We will require remote table entity to map distant table name and local
foreign table name.
Introducing the entity:
- new source of truth to know if a table is sync or not
- created synchronously at the same time as metadata and foreign table

Adding a few more changes:
- exception rather than errors so the user can see these
- `pluralize` library that will allow to stop adding `Remote` suffix on
names

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-17 10:52:10 +02:00
MarieandGitHub 17422b7690 fix: I should be able to use "enter" key to create profile (#4978)
## Context
Fixes #4808 

TL;DR
Introducing pure stateless modal component ("UI modal") for our auth
modal not to have default hotkeyScope overriding our create-profile
hotkeyScope
+ we dont want the shortcut to be available for all the modal content, only for the input that should not be using a hotkeyscope, so we are using onKeyDown for the specific issue on create profile.

Explanation
create-profile hotkey scope is set by PageChangeEffect; CreateProfile
component adds enter key shortcut; but this scope is overwritten by the
default scope by the Modal component that expects a hotkeyScope to reset
to (and defaults to the default hotkeyScope if none indicated).
In the auth flow we were using that Modal component to give a modal look
to the flow but it is not a modal per say, it's a set of pages contained
within a modal look.
By creating this UI component we are escaping that hotkeyScope
overriding that does not make sense in our context.

## How was it tested
Locally
Storybook
2024-04-17 10:45:02 +02:00
5ecc4ad378 Modify UI website and fix navbar issue on small devices (#4961)
-Fixed scroll issue on navbar:


https://github.com/twentyhq/twenty/assets/102751374/19f609f0-637d-483f-a695-f4a276155f2c

-Modified various UI elements, including design and layout adjustments
Example: 
**Before:**

<img width="279" alt="Screenshot 2024-04-14 at 18 45 04"
src="https://github.com/twentyhq/twenty/assets/102751374/c0f58aa6-440b-475a-bc85-69fef564f693">

**After:** 
<img width="312" alt="Screenshot 2024-04-14 at 18 45 17"
src="https://github.com/twentyhq/twenty/assets/102751374/2da4c2e8-e482-4d36-b6dc-02a51dde1950">

---------

Co-authored-by: Ady Beraud <[email protected]>
2024-04-17 10:18:18 +02:00
WeikoandGitHub 2efc794b43 [messaging] Add message deletion during partial sync (#4972)
## Context

- Rename remaining V2 services.
- Delete messages in DB when gmail history tells us they've been
deleted. I removed the logic where we store those in a cache since it's
a bit overkill because we don't need to query gmail and can use those
ids directly. The strategy is to delete the message channel message
association of the current channel, not the message or the thread since
they can still be linked to other channels. However, we will need to
call the threadCleaner service on the workspace to remove orphan
threads/non-associated messages.

Note: deletion for full-sync is a bit tricky because we need the full
list of message ids to compare with the DB and make sure we don't
over-delete. Currently, to keep memory, we don't have a variable that
holds all ids as we flush it after each page. Easier solution would be
to wipe everything before each full sync but it's probably not great for
the user experience if they are currently manipulating messages since
full-sync can happen without a user intervention (if a partial sync
fails due to historyId being invalidated by google for some reason)
2024-04-16 17:18:06 +02:00
19a3be7b1b Date picker for Date and DateTime field input (#4981)
- Implemented correct mask for Date and DateTime field in
InternalDatePicker
- Use only keyDown event and click outside in InternalDatePicker and
DateInput
- Refactored InternalDatePicker UI to have month and year displayed
- Fixed bug and synchronized date value between the different inputs
that can change it

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
2024-04-16 16:58:08 +02:00
bosiraphaelandGitHub d63937ec6f 4988 dont import emails with ics attachments (#4990)
- Closes #4988 
- Fix parenthesis error in filter
2024-04-16 15:45:31 +02:00
WeikoandGitHub 4bf23780a1 [calendar/messaging] fix google refresh token transaction (#4989)
## Context
The full-sync job was enqueued within a transaction, which means it
could be executed before the transaction was commit and
connected-account was not created yet.
This PR re-arrange the code a bit to avoid this

cc @bosiraphael thx for flagging this!
2024-04-16 15:06:37 +02:00
WeikoandGitHub cd6ed867be fix google oauth guard (#4987)
## Context
Recent PR introduced a verifyTransientToken inside the
GoogleAPIsProviderEnabledGuard guard. This is used to extract the
workspaceId from the token. This is working fine for the first call sent
to google however the callback is calling the same guard which is
causing an issue because the transientToken is missing from the
callback.
Imho, the same guard shouldn't be used by the callback but for the time
being I'm adding a check to prevent using feature flag when
transientToken is absent. In fact, it is present in the request but not
in the same key. Because the scope is only relevant for the first call,
I'm simply adding a check there.
2024-04-16 12:47:59 +02:00
WeikoandGitHub 0376a9b38f [calendar] enabled calendar scope if feature flag enabled (#4984)
## Context
Currently the calendar scope is bound to an env variable. We want to
rollout this feature to some users so this PR adds a check on the
existing IS_CALENDAR_ENABLED flag
2024-04-16 11:07:37 +02:00
Thomas des FrancsandGitHub 30d91f3427 Removed Remote Objects from 0.10 changelog (#4983)
Will be announced later
2024-04-16 09:45:18 +02:00
Quentin GandGitHub c9ae9e183d feat(ci): add release drafter (#4970)
Add release drafter to the Release CI.
This should create a draft release automatically !
2024-04-15 20:09:06 +02:00
martmullandGitHub 0ad9e94318 Fix google account login (#4969)
- Fixes Google account login 
- Fixes security issue
2024-04-15 20:08:19 +02:00
martmullandGitHub 1c3775e4a0 Fix Never api key expiration dates (#4965)
closes #4714 

We cannot set null expiration dates for api keys. So we will set to 100
years instead of null. If apiKey expires in more that 10 years, it is
displayed as "Never expires"
2024-04-15 20:05:59 +02:00
bosiraphaelandGitHub 691454ef3b 4745 move common logic between messaging and calendar in packagestwenty serversrcmodulesconnected account (#4962)
Closes #4745
2024-04-15 18:10:12 +02:00
bosiraphaelandGitHub d7d9f0c16b Fix ParticipantChip and stories imports (#4974)
- Fix ParticipantChip
- Fix stories imports after some component have been moved to twenty UI
2024-04-15 18:09:05 +02:00
WeikoandGitHub db2935b877 [message-queue] Add job auto-removal (#4973)
## Context

With the addition of cronjobs, the app is building a lot of jobs and
stores them indefinitely. There is no real point to keep all of them in
the queue once they have been processed (completed or failed) so we are
adding a new default option to the bull-mq driver

## Implementation
See bull-mq JobsOption doc
```typescript
    /**
     * If true, removes the job when it successfully completes
     * When given a number, it specifies the maximum amount of
     * jobs to keep, or you can provide an object specifying max
     * age and/or count to keep. It overrides whatever setting is used in the worker.
     * Default behavior is to keep the job in the completed set.
     */
    removeOnComplete?: boolean | number | KeepJobs;
    /**
     * If true, removes the job when it fails after all attempts.
     * When given a number, it specifies the maximum amount of
     * jobs to keep, or you can provide an object specifying max
     * age and/or count to keep. It overrides whatever setting is used in the worker.
     * Default behavior is to keep the job in the failed set.
     */
    removeOnFail?: boolean | number | KeepJobs;
```

removeOnFail should be a bit higher since they are the ones we are most
likely looking at when needed.
2024-04-15 17:33:27 +02:00
bosiraphaelandGitHub 11d928baa3 Seed calendar events (#4967)
Added seeds for: 
- `calendar-event-participants`
- `calendar-channel`
- `calendar-channel-event-association`
2024-04-15 15:47:23 +02:00
bosiraphaelandGitHub 764a3ebfde 4501 improve filters for emails imports (#4966)
- Reduce gmailSearchFilterNonPersonalEmails to the essential
- Filter out promotions, social media and forums emails
2024-04-15 15:45:38 +02:00
42e50cb818 fix: record object chip background color when idle (not hovered) (#4662)
Fixes #4651 


https://github.com/twentyhq/twenty/assets/50639499/c4b604a1-4e73-422a-bc13-a2764f564a75

---------

Co-authored-by: Marie Stoppa <[email protected]>
2024-04-15 15:40:27 +02:00
Félix MalfaitandGitHub 9d992143ff Improve phone input display (#4968)
Small UI improvements to border / display on phone input field
2024-04-15 15:31:22 +02:00
5477665e5d feat: Improved Page and History names (#4908)
Improved page and history names. 
Closes #4684 

---------

Co-authored-by: Marie Stoppa <[email protected]>
2024-04-15 14:40:30 +02:00
756de8a31b Add connection failed status (#4939)
1/ When the user inputs wrong connection informations, we do not inform
him. He will only see that no tables are available.
We will display a connection failed status if an error is raised testing
the connection

2/ If the connection fails, it should still be possible to delete the
server. Today, since we try first to delete the tables, the connection
failure throws an error that will prevent server deletion. Using the
foreign tables instead of calling the distant DB.

3/ Redirect to connection show page instead of connection list after
creation

4/ Today, foreign tables are fetched without the server name. This is a
mistake because we need to know which foreign table is linked with which
server. Updating the associated query.

<img width="632" alt="Capture d’écran 2024-04-12 à 10 52 49"
src="https://github.com/twentyhq/twenty/assets/22936103/9e8406b8-75d0-494c-ac1f-5e9fa7100f5c">

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-15 14:09:01 +02:00
Aditya PimpalkarandGitHub 3e65fbd3d5 bug: update revokedAt on PKCE flow (#4918)
The authorization token has an expiry of 5 minutes, we already have
checks in place to verify this and throw a Forbidden exception. We need
to revoke the token once it's used otherwise it could be used multiple
times to gain access to tokens till it expires.
2024-04-15 12:49:05 +02:00
ThaïsandGitHub 56b7c84116 chore: add incremental typecheck to twenty-ui (#4947)
Part of #4766
2024-04-15 12:15:29 +02:00
Quentin GandGitHub 96bd5f1803 feat: add sourcemap generation for front (#4949)
This PR changes the vite config to enable the generation of sourcemaps
with the help of an Env.
It also adds a new script to run the build with the said env as well as
more memory (the dafault 2go leads to an OOM)
2024-04-15 12:12:59 +02:00
ThaïsandGitHub b6d0b8a895 refactor: move Checkmark, Avatar, Chip and Tooltip to twenty-ui (#4946)
Split from https://github.com/twentyhq/twenty/pull/4518

Part of #4766
2024-04-15 12:05:06 +02:00
Félix MalfaitandGitHub acc2092b95 Disable audit logs on WorkspaceMember (#4960)
Having audit logs on workspace member causes a conflict on column name
2024-04-14 11:49:20 +02:00
Félix MalfaitandGitHub 9aa24ed803 Compile with swc on twenty-server (#4863)
Experiment using swc instead of tsc (as we did the switch on
twenty-front)

It's **much** faster (at least 5x) but has stricter requirements.
I fixed the build but there's still an error while starting the server,
opening this PR for discussion.

Checkout the branch and try `nx build:swc twenty-server`

Read: https://docs.nestjs.com/recipes/swc#common-pitfalls
2024-04-14 09:09:51 +02:00
Félix MalfaitandGitHub f82b1ff9ef Fix duplicate imports by VSCode (#4959)
Fixes  #3819
This was annoying. 
It was caused by a duplicate rule in VS Code config.
2024-04-14 08:48:03 +02:00
efcb5dc6d4 New Datetime field picker (#4907)
### Description
New Datetime field picker

### Refs
https://github.com/twentyhq/twenty/issues/4376

### Demo


https://github.com/twentyhq/twenty/assets/140154534/32656323-972c-413a-9986-a78efffae1b4


Fixes #4376

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-04-13 19:07:51 +02:00
Thomas des FrancsandGitHub 464a2d5998 add 0.10 Changelog Updates (#4945)
![CleanShot 2024-04-12 at 17 38
01@2x](https://github.com/twentyhq/twenty/assets/19412894/09803b55-8e8b-456e-8235-0cd77a163da3)
![CleanShot 2024-04-12 at 17 38
21@2x](https://github.com/twentyhq/twenty/assets/19412894/b171f8e2-b786-4a41-8669-146fd2a26b6e)
![CleanShot 2024-04-12 at 17 38
36@2x](https://github.com/twentyhq/twenty/assets/19412894/5cc79c44-ff4d-43f3-992e-bc1dce9ec83a)
![CleanShot 2024-04-12 at 17 38
56@2x](https://github.com/twentyhq/twenty/assets/19412894/36721bd8-b082-40aa-ac59-2cf496499cfd)
2024-04-13 18:43:53 +02:00
martmullandGitHub 7799d0efd8 Fix Google Login Invitation link (#4942)
close #4925

Before, for google-auth, if the user exists, we would simply returns a
login token, without checking the InvitationLink
Now, we just call the `authService.signUp` function that handle all
use-cases for us (user exists or not, invitationLink exists or not)
2024-04-12 17:22:38 +02:00
ThaïsandGitHub 9f83cc1426 refactor: move @/ui/display/icon to twenty-ui (#4820)
Split from https://github.com/twentyhq/twenty/pull/4518

Part of https://github.com/twentyhq/twenty/issues/4766
2024-04-12 15:30:48 +02:00
280229bad6 Added isAuditLogged column to object-metadata-entity (#4898)
Added isAuditLogged column to object-metadata-entity.ts

This is my first open source pull request. Please do let me know if made
any mistake. I will be greatfull. Thank u

---------

Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-04-12 15:28:07 +02:00
WeikoandGitHub f4fda221b7 Fix cron module structure (#4933)
This PR introduces a new folder structure for business modules.
Cron commands and jobs are now stored within the same module/folder at
the root of the business module
e.g: /modules/messaging/crons/commands instead of
/modules/messaging/commands/crons
Patterns are now inside their own cron-command files since they don't
need to be exported
Ideally cronJobs and cronCommands should have their logic within the
same class but it's a bit harder than expected due to how commanderjs
and our worker need both some class heritage check, hence the first
approach is to move them in the same folder

Also Messaging fullsync/partialsync V2 has been dropped since this is
the only used version => Breaking change for ongoing jobs and crons.
Jobs can be dropped but we will need to re-run our crons (only
cron:messaging:gmail-fetch-messages-from-cache)
2024-04-12 14:43:03 +02:00
Quentin GandGitHub a6b38d76ce fix: sentry init is using the wrong environment (#4940)
In the previous PR #4912 it seems that I forgot to pass the environment
on the backend.
Here is a quick fix!

I also added some "doc" in the the .env.example
2024-04-12 12:27:35 +02:00
Thomas des FrancsandGitHub f47fe62742 Fix last broken image in User-guide "Tips" (#4941)
Uploaded a new visual and corrected the file path.
2024-04-12 12:17:11 +02:00
bosiraphaelandGitHub c0b3a8715f 4810 display participants in the right drawer of the calendar event (#4896)
Closes #4810

- Introduces a new component `ExpandableList` which uses intersection
observers to display the maximum number of elements possible
2024-04-12 10:33:46 +02:00
432d041203 Added loader and counter animations (#4931)
Added loader animation: 


https://github.com/twentyhq/twenty/assets/102751374/c569762a-f512-4995-ac4d-47570bacdcaa

Added counter animation: 


https://github.com/twentyhq/twenty/assets/102751374/7d96c625-b56a-4ef6-8042-8e71455caf67

Co-authored-by: Ady Beraud <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-04-12 10:27:32 +02:00
138fcbf45f fixed react-error with mdx on mobile (#4919)
Extracted mdx compilation logic to the server component to prevent
hydration bugs

<img width="538" alt="Screenshot 2024-04-11 at 14 03 36"
src="https://github.com/twentyhq/twenty/assets/102751374/53383da5-2e5d-4ab6-829c-550b8af2ca25">

Co-authored-by: Ady Beraud <[email protected]>
2024-04-12 10:20:11 +02:00
990f9aeff4 Make <Background /> component responsive (#4767)
- Adjusted the height of the background image to fit every possible
screen
- Added the proper rotation degree to the background
- Refactored gradient colour stop into CONST to make sure each
background image starts at the same level

**To be noted :** 
I had to use Javascript and useEffect to make the div take the entire
height of the page (turn it into a "use client" component). This was
necessary because absolute positioning by default makes the element's
sizing relative to its nearest positioned ancestor, not the entire
document.

---------

Co-authored-by: Ady Beraud <[email protected]>
2024-04-12 10:16:45 +02:00
b42a892c7b modified UI and activity log in website (#4935)
-Small fixes in UI 
-Added extra columns in contributor activity log when necessary (ex: few
contributions):

**Before:** 

<img width="809" alt="Screenshot 2024-04-11 at 20 37 40"
src="https://github.com/twentyhq/twenty/assets/102751374/d58cebe5-4128-43bb-a649-3c9ac0276c53">

**After:** 

<img width="897" alt="Screenshot 2024-04-11 at 20 37 53"
src="https://github.com/twentyhq/twenty/assets/102751374/7e112f8f-b257-4397-96fa-79e605daab37">

---------

Co-authored-by: Ady Beraud <[email protected]>
2024-04-12 10:15:23 +02:00
Thomas des FrancsandGitHub 743c3c2c17 User-guide broken images fix (#4932)
# Before

Some images were broken because of an uppercase folder name:

![CleanShot 2024-04-11 at 18 08
21](https://github.com/twentyhq/twenty/assets/19412894/bd5b9f67-2fe1-4bb5-9c4d-2f914e54d714)

# After fix

![CleanShot 2024-04-11 at 18 07
30](https://github.com/twentyhq/twenty/assets/19412894/396eb6ed-f229-4e13-b1dd-b875670858db)
2024-04-11 19:26:59 +02:00
WeikoandGitHub dc542a395e fix default value for message channel enums (#4934) 2024-04-11 18:42:31 +02:00
martmullandGitHub e6a5a63acf Provide initialSnapshot to logout recoil state update snapshot (#4929) 2024-04-11 18:26:55 +02:00
bosiraphaelandGitHub bc3930911e Fix calendar preview avatar display (#4930)
- Fix avatar preview
- Fix border radius
2024-04-11 18:02:08 +02:00
f332213e0d Fix remote object read-only + remove relations (#4921)
- Set `readOnly` boolean in table row context. Preventing updates and
deletion
- Show page is null for remote objects. No need for complicated design
since this is temporary?
- Relation creations are now behind a feature flag for remote objects
- Refetch objects and views after syncing objects

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-11 17:58:02 +02:00
WeikoandGitHub fc56775c2a [calendar/messaging] fix connected account auth failed should skip sync (#4920)
- AuthFailedAt is set when a refreshToken is not valid and an
accessToken can't be generated, meaning it will need a manual action
from the user to provide a new refresh token.
- Calendar/messaging jobs should not be executed if authFailedAt is not
null.
2024-04-11 17:57:48 +02:00
bosiraphaelandGitHub 8853408264 4736 add listener on calendarchannel isautocontactcreationenabled (#4913)
Closes #4736
2024-04-11 17:57:19 +02:00
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 <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-11 17:29:29 +02:00
brendanlaschkeandGitHub ca9cc86742 Storybook fix dark mode (#4865)
preview has now also a dark background & added a one click change theme
button

<img width="994" alt="Bildschirmfoto 2024-04-06 um 18 27 45"
src="https://github.com/twentyhq/twenty/assets/48770548/95f12617-e48f-4492-9b51-13410aff43ee">
2024-04-11 17:28:12 +02:00
ArturandGitHub ffda4058e0 4809 - disable double signup with mouse click / enter (#4878)
Fixing #4809 

The form has a button with a disabled condition, unfortunately there was
an error in checking the condition.
```
disabled={
       SignInUpStep.Init
                ? false
                ...
```
SignInUpStep.Init is always equal to true, so the first arm was
returning false and button was never disabled. Fixing this check fixes
the double mouse click bug as expected.
```
disabled={
              signInUpStep === SignInUpStep.Init
```

Still, the enter keypress is handled a little bit differently. There is
a handleKeyDown event that was ignoring if the form is submitting or
not. I added the check for that, and now pressing enter multiple times
does not result in any errors
2024-04-11 17:08:23 +02:00
Quentin GandGitHub 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
c69a3f01da Use defaultValue in currency input (#4911)
- Fix default value sent to backend, using single quotes by default
- Use default value in field definition and column definition so that
field inputs can access it
- Used currency default value in CurrencyFieldInput

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-04-11 16:49:00 +02:00
Quentin GandGitHub e48960afbe chore: remove old deployments (#4922)
We migrated all Twenty's env to the new Twenty docker image. We can now
remove old deployments of front and back.
This PR takes care of that!
2024-04-11 16:35:11 +02:00
martmullandGitHub ee64576e5f Fix phone cell display (#4924)
Closes #4796 

## What has been done
- fix phone number value detection
- Update formatting from International format to National format

## Before
phone were formatted as text field type

![image](https://github.com/twentyhq/twenty/assets/29927851/27d87522-5b02-4131-8b83-6bce7501fb1b)

## After
phone are properly formatted in National format

![image](https://github.com/twentyhq/twenty/assets/29927851/72f71b0f-4fd7-4060-afe3-feb87bddab0d)

## FYI
Phones in International format look like

![image](https://github.com/twentyhq/twenty/assets/29927851/6bd47dc1-6350-46b9-b5fd-94f4344bffac)
2024-04-11 16:30:49 +02:00
martmullandGitHub a7fcc5d47e 4778 multi select field front implement multi select type (#4887) 2024-04-11 12:57:08 +02:00
aecf8783a0 Sync table from frontend (#4894)
This PR:
- separates the existing updateSyncStatus endpoint into 2 endpoints
- creates mutations and hooks that will call those endpoints
- trigger the hook on toggle
- removes form logic and add a separated component for toggling

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-11 11:51:49 +02:00
Om Jee MishraandGitHub bea6d4173c Fix postgres 15 & 16 conflict (#4860)
@charlesBochet
2024-04-11 11:42:48 +02:00
584d90ec89 Create new field type JSON (#4729)
### Description
Create new field type JSON

### Refs
https://github.com/twentyhq/twenty/issues/3900

### Demo


https://github.com/twentyhq/twenty/assets/140154534/9ebdf4d4-f332-4940-b9d8-d9cf91935b67

Fixes #3900

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Marie Stoppa <[email protected]>
2024-04-11 11:41:36 +02:00
f25d58b0d9 [feat][FE] Stop persisting new empty records (#4853)
## Context
Closes [#4773](https://github.com/twentyhq/twenty/issues/4773)
Persisting of new records is delayed to cell escape and not performed
for empty records.

## How was it tested?
Locally tested + jest

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-04-10 19:16:34 +02:00
martmullandGitHub 01991fe717 4902 bug fix fix api filter for enum (#4909)
- Handle NUMERIC, SELECT, PROBABILITY, RATING FieldMetadataTypes

Those filters now works:
- http://localhost:3000/rest/opportunities?filter=stage[eq]:MEETING
-
http://localhost:3000/rest/opportunities?filter=stage[in]:[MEETING,NEW]

When providing wrong enum values, the following error messages are
returned:
- http://localhost:3000/rest/opportunities?filter=stage[eq]:MEETINGG
> BadRequestException: 'filter' enum value 'MEETINGG' not available in
'stage' enum. Available enum values are ['NEW', 'SCREENING', 'MEETING',
'PROPOSAL', 'CUSTOMER']
-
http://localhost:3000/rest/opportunities?filter=stage[in]:[MEETING,NEWW]
> BadRequestException: 'filter' enum value 'NEWW' not available in
'stage' enum. Available enum values are ['NEW', 'SCREENING', 'MEETING',
'PROPOSAL', 'CUSTOMER']
2024-04-10 18:54:55 +02:00
Quentin GandGitHub cfcc93dee1 feat: add release workflow (#4904)
This workflow deploys a new release of Twenty.
- It bumps projects version
- Create a tag
- Push the changes

Then a tag pipeline will be automatically run triggering the deployment
of new Dockerhub images

Deployment to Twenty prod will be a manual action
2024-04-10 18:49:05 +02:00
bosiraphaelandGitHub e7d146363c 4710 implement google calendar incremental sync (#4822)
Closes #4710
2024-04-10 15:53:14 +02:00
Charles BochetandGitHub 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
WeikoandGitHub 4f2c29dce0 uuid codegen update (#4897)
Following https://github.com/twentyhq/twenty/pull/4895/files
2024-04-09 18:06:39 +02:00
ee5aaae796 Implemented dataloader for relation metadata (#4891)
- Implemented dataloader package on metadata graphql server
- Implemented a dataloader for relation metadata module

---------

Co-authored-by: Jérémy M <[email protected]>
2024-04-09 17:09:02 +02:00
Charles BochetandGitHub b724c5e610 Fix graphql API accepting malformed UUIDs (#4895)
We have discovered that GraphQL inputs for fields of type ids in create
/ update input where using a more permissive ID type than the type used
in FilterInput in queries.

This PRs fixes it and make sure that all Input are using UUID graphql
scalar types
2024-04-09 16:44:52 +02:00
704f7f6d8e feat: fetch database connection tables in Settings/Integrations/Datab… (#4882)
…ase/Connection

Closes #4758

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-09 14:22:15 +02:00
WeikoandGitHub 19df43156e [calendar] change api scope (#4888)
## Context
Calendar scope was too broad, this PR updates it to events only.
Also changing "Cannot connect Google account to demo workspace" error to
a 404 to avoid having a 500 for something expected
2024-04-09 11:18:48 +02:00
Jérémy MandGitHub 35717fce8b feat: sync command missing ability to rename standard object (#4819)
We've introduced in PR #4373 standard ids to be able to rename standard
fields and objects.
Fields part was working properly, but objects part was not yet
implemented.
This PR is adding the missing parts to make it work.
2024-04-09 10:20:34 +02:00
Lucas BordeauandGitHub b1242bb850 4087 refactor object metadata item hooks and utils (#4861)
- Extracted each exported element from useObjectMetadataItem into its
own hook.
2024-04-09 09:19:52 +02:00
651af1c0e1 Use migrations for remote tables (#4877)
Foreign tables should be created using migrations, as we do for standard
tables.
Since those are not really generated from the object metadata but from
the remote table, those migrations won't live in the object metadata
service.

This PR:
- creates new types of migration : create_foreign_table and
drop_foreign_table
- triggers those migrations rather than raw queries directly
- moves the logic to fetch current foreign tables into the remote table
service since this is not directly linked to postgres data wrapper
- adds logic to unsync all tables before deleting

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-08 18:21:29 +02:00
d4a9a26069 Delete connection from frontend (#4880)
This PR:
- creates the query to delete a connection
- creates the hook that triggers the query
- triggers the hook function when clicking on remove + get back to
connection page

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-08 17:27:14 +02:00
Lucas BordeauandGitHub 97f9fc3f81 Fixed hotkey bug with Select component and added debug logs for hotkeys (#4879)
- Select component was adding a duplicate useListenClickOutside already
present in useDropdown for closing dropdown.
- Added debug logs for hotkeys scopes
2024-04-08 17:08:30 +02:00
bosiraphaelandGitHub 038b2c0efc 4738 add listeners on person creation and workspacemember creation to update participants (#4854)
Closes #4738

- Added the logic to unmatch a participant when the email of a person or
a workspace member is updated
2024-04-08 17:03:42 +02:00
5019b5febc feat: drop target column map (#4670)
This PR is dropping the column `targetColumnMap` of fieldMetadata
entities.
The goal of this column was to properly map field to their respecting
column in the table.
We decide to drop it and instead compute the column name on the fly when
we need it, as it's more easier to support.
Some parts of the code has been refactored to try making implementation
of composite type more easier to understand and maintain.

Fix #3760

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-04-08 16:00:28 +02:00
84f8c14e52 Implement context specific icon in breadcrumb navigation (#4839)
fixes #4834 

<img width="447" alt="Screenshot 2024-04-05 at 4 13 21 PM"
src="https://github.com/twentyhq/twenty/assets/44577841/036f6c51-c6c5-4e15-a895-e356ca230e5c">

<img width="437" alt="Screenshot 2024-04-05 at 4 13 35 PM"
src="https://github.com/twentyhq/twenty/assets/44577841/335d0317-43b2-4827-9cf7-42373b3953f5">

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-08 15:44:01 +02:00
bosiraphaelandGitHub 018b9efc2c 4743 use auth google apis callback url instead of messaging provider gmail callback url (#4838)
Closes #4743
2024-04-08 14:56:12 +02:00
WeikoandGitHub ab60b8be65 [messaging]Add temporary capture to gmail refresh token exceptions (#4875)
## Context
This exception is currently caught since this is expected but it seems
to be rejected more than it should so we want to have more visibility on
it

## Test
<img width="562" alt="Screenshot 2024-04-08 at 11 32 28"
src="https://github.com/twentyhq/twenty/assets/1834158/43bb6de9-191a-42d4-911b-6e83c7d8aa18">
2024-04-08 13:23:31 +02:00
Anoop PandGitHub fbd7c34478 Basic github ci workflow for twenty website (#4869)
Creates a basic github workflow for this issue #4832
2024-04-08 12:47:52 +02:00
ThaïsandGitHub 1cbbb1600c feat: add Remove menu option to Settings/Integrations/Database/Connec… (#4874)
…tion page

Closes #4872
2024-04-08 11:28:04 +02:00
2890a7a44a Fix get available tables (#4873)
Endpoint is broken since we now use `Remote` as a suffix for remote
table names.

This PR:
- creates a common function to calculate the name of the remote table
- use it in the `findAvailableRemotePostgresTables` to know if a table
has been synced or not

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-08 11:11:24 +02:00
3eef4a8938 #4852 - Remove margin left on Record Board (Kanban) (#4862)
https://github.com/twentyhq/twenty/issues/4852

Hey, I'm very new to React! Also, this is my first try at contributing
to open source.

Hoping to learn React and Nestjs, I look forward to contributing more in
the future!

Looking forward to your feedback and guidance!

**Edit:**
![Group
9](https://github.com/twentyhq/twenty/assets/47709410/210a0b9e-0a26-4e3e-8e1b-a88837c90f10)

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-04-07 21:44:18 +02:00
Darek DesuandGitHub 9d77f1247d Typo in docker compose up hint (#4866) 2024-04-07 11:14:20 +02:00
Charles Bochet 4713ba0279 Fix sign-up bug because currentCacheVersion does not exist yet 2024-04-06 00:47:23 +02:00
Charles Bochet 0a9c79b3b3 Fix userload on signout 2024-04-05 21:01:03 +02:00
Charles BochetandGitHub 9f2c9ee76e Remove repetitive query of ClientConfig and CurrentWorkspace member (#4859)
## Removing repetitive queries (impacting performance on page load)

We have recently introduced the capability to detect schema version
mismatch. To do that, we add a new header in all our queries. On page
load, this header is added once we know the currentUser and especially
its currentWorkspace and related schema version.
However, applying this header to apollo client will re-trigger all
queries that have been already performed (GetClientConfig and
GetCurrentUser). To avoid re-triggering them, I'm introducing two new
"isLoaded" states and skip the query if the query has already been
performed

## Fixing Relation Detail not displaying data on show page

Small bug introduced in a previous PR
2024-04-05 20:33:02 +02:00
Lucas BordeauandGitHub a3184dcc2f Used query fields for record table and record board (#4857)
- Added two hooks for computing query keys for index table and index
board.
- Using query keys for findManyRecords on index table and index board
2024-04-05 20:30:16 +02:00
a95972f808 refactor(chore):3896-replace-lodash-debounce-to-useDebounce (#4814)
Close: #3896 

## PR Details

Changed `lodash.debounce` to `useDebounce`.

Co-authored-by: VoitovychDM <[email protected]>
2024-04-05 19:07:44 +02:00
Charles BochetandGitHub 7774ef68a2 Release 0.4.0 (#4856)
0.4.0 Release!
2024-04-05 18:35:48 +02:00
Félix MalfaitandGitHub bffd73e391 Fix environment variable casting (#4855)
Fixes #4628
2024-04-05 18:15:47 +02:00
ThaïsandGitHub bbdb926687 feat: add Tables settings to Settings/Integrations/Database/Connectio… (#4851)
…n page

Closes #4560
2024-04-05 18:12:54 +02:00
Charles BochetandGitHub f4017119ab Various cosmetic fixes for 0.4.0 (#4844)
In this PR:
- fix empty list placeholder positionning
- prevent user from erasing custom address field as composite types
removal is not supported yet @ijreilly FYI
- fix show page relation error
- Implement address filter
2024-04-05 17:32:14 +02:00
WeikoandGitHub f8da8f9805 [messaging] remove v2 feature flag (#4845)
## Context
We are now removing Messaging V2 feature flag to use it everywhere.

## Implementation
- renaming FetchWorkspaceMessagesCommandsModule to
MessagingCommandModule to make it more generic since it it hosts all
commands related to the messaging module
- creating a crons folder inside commands and jobs crons should be named
with xxx.cron.command.ts instead of xxx.command.ts. Same for jobs, jobs
should be named with xxx.cron.job.ts. In a future PR we should make sure
those CronJobs implement a CronJob interface since it's a bit different
(a CronJob does not contain a payload compared to a Job)
- Cron commands have been renamed to "cron:$module:command" so
`fetch-all-workspaces-messages-from-cache:cron:start` has been renamed
to `cron:messaging:gmail-fetch-messages-from-cache`. Also having to
create a command to stop the cron is a bit painful to maintain so I
removed them for now, this can be easily done manually with pg-boss or
bull-mq
- Removing full-sync and partial-sync commands as they were there for
testing only, we might put them back at some point but we will have to
adapt the code anyway.
- Feature flag has been removed from the MessageChannel standard object
to make sure those new columns are created during the next sync-metadata
2024-04-05 16:59:48 +02:00
WeikoandGitHub e0918c89c1 Fix contact creation when calendar is not enabled (#4843)
## Context
Calendar tables are behind a featureFlag, they do not exist if the
feature flag is off which means we should not use them for the same
reason. I'm adding a check on the featureFlag before calling the
repository.

```
Error executing raw query for workspace 20202020-1c25-4d02-bf25-6aeccf7ea419: relation "workspace_1wgvd1injqtife6y4rvfbu3h5.calendarEventParticipant" does not exist
```
## Test
locally with and without featureflag
2024-04-05 15:55:12 +02:00
8b52f06326 fixed eslint build issue (#4842)
**Fixed the following build issue:**

```
./src/app/contributors/api/fetch-issues-prs.tsx
12:3  Error: Type boolean trivially inferred from a boolean literal, remove type annotation.  @typescript-eslint/no-inferrable-types

./src/app/contributors/api/search-issues-prs.tsx
12:3  Error: Type boolean trivially inferred from a boolean literal, remove type annotation.  @typescript-eslint/no-inferrable-types
```

Co-authored-by: Ady Beraud <[email protected]>
2024-04-05 15:45:54 +02:00
4b34e7bf1e Add new database connection (#4837)
Closes https://github.com/twentyhq/twenty/issues/4555

<img width="593" alt="Capture d’écran 2024-04-05 à 11 54 28"
src="https://github.com/twentyhq/twenty/assets/22936103/e6021417-bc78-460b-adf6-834330bbd894">

Connect the existing for with the backend so we can now create database
connections.

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-05 15:36:57 +02:00
Aditya PimpalkarandGitHub ed8ecb154d feat: traditional Oauth alongside PKCE (#4697)
ref: #4437
2024-04-05 13:09:41 +02:00
Félix MalfaitandGitHub 3df4b78e38 Fix dropdown menu header (#4835)
Fix an issue I add introduced by removing "position:static" and an other
regression from https://github.com/twentyhq/twenty/issues/4366
2024-04-05 10:31:08 +02:00
b82519301c Website UI design (#4829)
**Fixed different issues** :
 
- Multiple CSS fixes: font-size, colors, margins, z-index ...
- Fixed hover on contributor avatars
- Added link to contributors in footer
- Made the year in the footer dynamic (2023 --> 2024)
- Added name of contributor in "Thank you" section of Contributor page
- Added footer in small screens
- Made Activity Log Responsive 
- Fixed bug in "saving issues to DB", title was null everywhere. I
needed to implement an "upsert" behaviour to update the existing
database on init

**To be noted :** 

There is the following bug on production happening on mobile when you
refresh a second time :

<img width="1440" alt="Screenshot 2024-04-05 at 01 30 58"
src="https://github.com/twentyhq/twenty/assets/102751374/b935b07a-63dc-463d-8dcb-070ad4ef6db0">


It seems to be related to the following issue on mdx :
[https://github.com/hashicorp/next-mdx-remote/issues/350](https://github.com/hashicorp/next-mdx-remote/issues/350)

I added the following code that fixed this bug for me in development
(this needs to be tested in production) :

```
const serialized = await serialize(content, {
    mdxOptions: {
      development: process.env.NODE_ENV === 'development',
    }
  })
```

---------

Co-authored-by: Ady Beraud <[email protected]>
2024-04-05 08:41:08 +02:00
Charles BochetandGitHub e8c58ae541 Make field input transparency consistent (#4828)
Minor fix until for the release 0.4.0 until we properly fix all input
background and backdrop-filters
2024-04-04 20:51:41 +02:00
Charles BochetandGitHub 499e1a09e3 Fix ScrollWrapper inner elements padding (#4827)
Closes https://github.com/twentyhq/twenty/issues/4824 and
https://github.com/twentyhq/twenty/issues/4788
2024-04-04 19:19:26 +02:00
Félix MalfaitandGitHub 65e665c74c Add Sentry types to dependencies (#4825)
Someone reported an error during install that might be due to missing
types import.
2024-04-04 19:09:49 +02:00
Quentin GandGitHub 5d6094dfa3 fix: update build script for twenty-emails (#4823)
Fix an issue with the build of the server in docker failing to find vite
2024-04-04 18:37:35 +02:00
ThaïsandGitHub e784dc8a98 chore: enable no-console eslint rule for tests and stories (#4816)
Re-enables no-console eslint rule in stories and tests files:
- In stories, use `action` from '@storybook/addon-actions' or `fn` from
'@storybook/test' instead of console.
- In tests, console methods can be mocked like this:
`global.console.error = jest.fn()`.
2024-04-04 18:36:39 +02:00
Charles BochetandGitHub 48b1be9917 Fix ViewPicker create mode: view type switcher (#4821)
In this PR, I'm fixing two things on the ViewPicker in Create mode:
- if the Dropdown has no max height, it should not be scrollable (which
is causing issue with inner dropdowns being cut by overflow: hidden
- if the user has changed the icon, the type or the name of the view,
consider the create form as isDirty and prevent its value to be
overriden by re-renders (cache updates for example)
2024-04-04 18:32:55 +02:00
1f98bc899d feat: fetch database connections (#4813)
Closes #4757

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-04 17:27:36 +02:00
WeikoandGitHub f8edb6652e Gracefully close Redis connection when cacheStorageModule is destroyed (#4812)
## Context
When running a command, the process should end normally however it stays
hanging due to the open connection with redis client (when
CACHE_STORAGE_TYPE=redis)
This PR adds the necessary logic to gracefully close the connection once
the module is destroyed. Thanks to that, the command process now
properly ends once executed.
2024-04-04 16:15:22 +02:00
f184541293 feat: add Database Connection Summary Card to Settings/Integrations/D… (#4791)
…atabase/Connection page

Closes #4558

<img width="542" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/16d7d8ce-57db-4e48-ba72-a2318a2d34a4">

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-04 15:56:52 +02:00
9d45f7811e adjust window size for scroll (#4792)
related to #4749. 

Adjusted the max height for window so that it cuts the last option a
little.

I wanted to test the menu from the second pic in the issue with the
multi select option but could not figure out where it was in the
application.

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-04 15:55:39 +02:00
18072d2935 Fixed attachment field type (#4811)
updatedAt and deletedAt field changed to string like createdAt field. On
file upload updatedAt field will be given date same as createdAt.

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-04 15:51:45 +02:00
2e419091cc Prevent remote object updates (#4804)
Backend: Adding a new util function that throw an error if the
objectMetadata is remote

Frontend: hiding the save button when remote

Also renaming `useObjectMetadataItemForSettings` since this hook is used
in other places than settings and is not in the settings repo. Name can
definitely be challenged!

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-04 15:47:08 +02:00
c5349291c8 chore: setup twenty-ui absolute path alias (#4732)
Split from https://github.com/twentyhq/twenty/pull/4518

- Setup `@ui/*` as an internal alias to reference `twenty-ui/src`.
- Configures twenty-front to understand the `@ui/*` alias on development
mode, so twenty-ui can be hot reloaded.
- When building on production mode, twenty-front needs twenty-ui to be
built beforehand (which is automatic with the `dependsOn` option).
- Configures twenty-front to understand the `@ui/*` alias when launching
tests, so there is no need to re-build twenty-ui for tests.

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-04 15:38:01 +02:00
41960f3593 Remote objects: Fix comment override - id typing - label (#4784)
Several fixes for remote objects:
- labels are now displayed in title case. Added an util for this.
- Ids are often integers but the foreign keys on the relations were
uuid. Sending the id type to the object metadata service so it can
creates the foreign key accordingly
- Graphql comments are override when several remote objects are
imported. Building a function that fetch the existing comment and update
it

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-04 15:35:49 +02:00
Kanav AroraandGitHub f8ec40dbfb Fix: File Upload (#4806)
File upload issue fixed.
There was a type mismatch and isDate was returning false
2024-04-04 15:33:17 +02:00
Jérémy MandGitHub 04c06e3f91 fix: isIconDisplayedOnHoverOnly marked as required (#4805)
Fix PR #4676, `isIconDisplayedOnHoverOnly` should be provided or not
marked as required
2024-04-04 14:38:54 +02:00
9d2bb33646 fix: Add isIconStatic prop item to allow the icons to be always rendered statically ignoring hover behaviour (#4676)
Fix #4653

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-04-04 14:05:56 +02:00
bosiraphaelandGitHub 85caed3463 4702 rename calendareventattendee to calendareventparticipant (#4761)
Closes #4702
2024-04-04 14:00:10 +02:00
MarieandGitHub 357882c395 [feat][FE] Enable deletion of custom fields in workspace (#4802)
**Context**
Fixes https://github.com/twentyhq/twenty/issues/4597
Enables deletion of custom fields that aren't active nor of type
relation ([BE PR](https://github.com/twentyhq/twenty/pull/4780))

**How was it tested?**
Locally tested

<img width="541" alt="Capture d’écran 2024-04-04 à 13 33 18"
src="https://github.com/twentyhq/twenty/assets/51697796/bc462b86-b494-409e-9836-69bdaeb812cb">
<img width="661" alt="Capture d’écran 2024-04-04 à 13 34 25"
src="https://github.com/twentyhq/twenty/assets/51697796/8fe47114-545e-48b5-a107-34be531b7ea5">
2024-04-04 13:45:15 +02:00
Charles BochetandGitHub b1a586d324 Fix View creation, view fields re-ordering, view filters and view sorts erratic behaviors (#4800)
We used to not type properly the return of getRecordFromCache before the
work from last week.
The getViewFromCache function was patching this temporarily in a "dirty"
way.

Now that this is cleaner, I'm removing the typescript patch. This fixing
several behaviors on viewBar
2024-04-04 13:24:58 +02:00
eef1211463 chore: include react components in twenty-ui test config (#4709)
Split from https://github.com/twentyhq/twenty/pull/4518

Part of https://github.com/twentyhq/twenty/issues/4766

- Re-generates some of the twenty-ui test and storybook config with Nx
- Includes tsx files in twenty-ui tests and compiles them with swc

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-04 12:30:49 +02:00
932a8d68f5 chore: add script to generate twenty-ui barrels before build (#4707)
Split from https://github.com/twentyhq/twenty/pull/4518

Part of #4766 

Adds a script to auto-generate twenty-ui exports in `index.ts` files.

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-04 12:14:20 +02:00
ThaïsandGitHub bf8ee99ebb chore: use common eslint config for most packages (#4705)
Split from https://github.com/twentyhq/twenty/pull/4518

Related to #4766 

Mutualizes eslint config between projects.
I didn't include `twenty-server` in this PR as this was causing too many
lint errors.
2024-04-04 12:05:26 +02:00
ff0db8d716 fix: linked records redirection (#4312)
Closes: #4093 
---------

Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-04 11:01:33 +02:00
f58d855097 feat: add Settings/Integrations/Database/New Connection form (#4787)
Closes #4554

<img width="556" alt="image"
src="https://github.com/twentyhq/twenty/assets/3098428/56738254-aa43-4bfd-b7c5-29a9e1b7258f">

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-04 10:03:40 +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 <[email protected]>
2024-04-04 09:52:45 +02:00
Quentin GandGitHub eab65f34f9 feat(ci): use concurrency.group to cancel previous jobs (#4795)
As recommended on the repo of the action we were using
https://github.com/styfle/cancel-workflow-action, we should use
`concurrency.group` rather than a dedicated action.

Here is a PR to use it on all our workflows
2024-04-04 09:30:55 +02:00
bcf5268f7f 3886 - Shortcut Sort/Filter (#3901)
Closes #3886

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-04 00:43:44 +02:00
Félix MalfaitandGitHub b65d82c274 Force explicit deletion behavior for relations (#4775)
We've seen a few cascading errors (e.g. comment.activityId would be non
nullable but cascade behavior is set to "set null"). I think it's safer
if we have to explicitly chose the deletion behavior it every time.

Especially since Postgres default to "No action" while we defaulted to
"Set Null", which is confusing.

In the future we will most likely introduce a second param
`onSoftDelete` in the decorator
2024-04-03 18:30:12 +02:00
Quentin GandGitHub ccd02fe58c feat: init docker compose test (#4730)
Job testing if docker compose is working. It triggers on pull_requests.
2024-04-03 18:08:21 +02:00
martmullandGitHub 6d23642d28 4777 multi select field backend implement multi select type (#4790)
- fix default value for multi select field metadata
2024-04-03 17:19:24 +02:00
ff6abacc86 [feat] Enable deletion of custom fields in workspace (#4780)
**Context**
cf. feature request
[#4597](https://github.com/twentyhq/twenty/issues/4597)
Enables deletion of custom fields that aren't active nor of type
relation

Also 
1. renamed a misnamed file
2. deleted redundant hook BeforeDeleteOneField as it seemed best to move
the logic to the resolver instead

**How was it tested?**
Did not write unit tests as code is to be migrated (discussed with
@Weiko).
Locally tested.

---------

Co-authored-by: Marie Stoppa <[email protected]>
2024-04-03 17:17:23 +02:00
martmullandGitHub 358269c60e Add IS_MULTI_SELECT_ENABLED feature flag (#4779)
closes #4776
2024-04-03 17:15:38 +02:00
ThaïsandGitHub 5c3e5a0d8a feat: create Settings/Integrations/Database/Connection page (#4785)
Closes #4556

- Renames some pages and components after discussion about terminology
with @thomtrp.
- Creates the Settings/Integrations/Database/Connection page.
2024-04-03 17:15:02 +02:00
Félix MalfaitandGitHub 7a34dc4910 Simplify docs and remove Docker local setup (#4783)
Having 2 different dev setups caused confusion, let's remove the Docker
local setup and recommend people install yarn locally.

Also simplified some docs by merging pages together, the recommend
self-hosting option is now the docker-compose / to adapt the
docker-compose.
2024-04-03 16:38:28 +02:00
1c6f0eb577 Integrate relations for remote objects (#4754)
Foreign table id cannot be a foreign key of a base table. But the
current code use foreign keys to link object metadata with activities,
events... So we will:
- create a column without creating a foreign key
- add a comment on the table schema so pg_graphql sees it as a foreign
key

This PR:
- refactor a bit object metadata service so the mutation creation is
separated into an util
- adds the mutation creation for remote object relations
- add a new type of mutation to create a comment

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-04-03 14:56:51 +02:00
Félix MalfaitandGitHub 3b72eed2dc Fix issue caused by a merge conflict (#4768) 2024-04-03 09:18:33 +02:00
Aditya PimpalkarandGitHub 6ed0a5e2d6 feat: Redirect to previous page after login (#4731)
fix: #4721
2024-04-03 08:05:18 +02:00
Thomas des FrancsandGitHub 5f6109bb53 Changelog for 0.4.0 (#4693)
**Wait for 0.4.0 to be deployed!**

![CleanShot 2024-03-28 at 15 53
31@2x](https://github.com/twentyhq/twenty/assets/19412894/f22eb1d5-bf91-413b-8dc8-8631ff48a89d)

![CleanShot 2024-03-28 at 15 53
46@2x](https://github.com/twentyhq/twenty/assets/19412894/5f91d0ae-ce90-41b1-b4bb-94c917bab42e)
2024-04-02 19:09:32 +02:00
martmullandGitHub 7dc053c576 Add back export all action button (#4750)
![image](https://github.com/twentyhq/twenty/assets/29927851/e78186bf-c6ab-4ae6-8041-eb9ac2e86f90)

![image](https://github.com/twentyhq/twenty/assets/29927851/048dc9b3-c6e5-4049-8344-16b6fee48059)
2024-04-02 19:08:48 +02:00
WeikoandGitHub 35ddb9acb5 [messaging] rename syncExternalId to syncCursor (#4752)
## Context

SyncExternalId should be renamed because this won't always represent an
id. For example, microsoft API does not use ids but dates for their
sync. Also we think external is a bit redundant so we are removing it.

Note: this field is not used by the front-end (and will probably never
be)
2024-04-02 18:18:43 +02:00
kikoleitaoandGitHub 9364a58477 Fix #4160: fix upload image bug (#4734)
# Context
This PR addresses the solving of the upload image issue.
(Fixes #4160)

# Cause
The `<StyledBlockNoteStyledContainer onClick={() => editor.focus()}>`
handler was the origin of the problem, after removing it the issue
disappeared, maintaining all the other functionalities.

# Outcome
_Videos before and after removal:_


https://github.com/twentyhq/twenty/assets/92337535/9d8eb635-4164-4fea-a763-19becabf44ac


https://github.com/twentyhq/twenty/assets/92337535/8fedb50f-5306-42ad-be21-58d89ff7d1c7
2024-04-02 16:31:18 +02:00
bc6db2d8b0 fix panel opening wrapping glitch (#4204) (#4673)
Fix: (#4204)

The issue was that when that panel was opened its content would wrap
instead of maintaining its desired structure. I fixed this bug by adding
a minimum width to the panel's contents so that they would stay
correctly formatted throughout the opening transition.

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-04-02 16:20:08 +02:00
bbffde1ca0 New field currency (#4338)
Closes #4122 
---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-02 15:29:57 +02:00
Jeet DesaiandGitHub d694ab1b16 Fix: Update Icon Button Color and Menu Transparency with Icons (#4704)
Fixes: #4654
2024-04-02 12:32:17 +02:00
Charles BochetandGitHub 514417245a Add JsDom to server dependencies (#4740)
We were missing `JsDom` dependencies in the package.json generated by nx
while running `twenty-server`: `yarn nx build:packageJson`

Detailed explanation: 
- we are currently using nx paradigm which is to put dependencies of all
projets at root, which enables global package migrations for the whole
monorepo
- for production containers, we only want specific project dependency to
be added. This is done by running `yarn nx build:packageJson` on
`twenty-server`. Nx is statically analyzing twenty-server dependencies
and generating a tailored package.json that production containers can
later use.
- However, `nx` static analysis is not flawless and is missing some
packages. We are going to stop using it as the value is not there yet
but the burden for developers is high. The guideline is to put back
project dependencies into specific package `package.json`
- Therefore, I'm adding `jsdom` to twenty-server `package.json`
2024-04-02 12:07:12 +02:00
bosiraphaelandGitHub ffb1733f39 Fix invalid token after credentials change (#4717)
- If sync fails we set authFailedAt
- This information is displayed in the frontend in accounts with a `Sync
Failed` pill
- The user can reconnect his account in the dropdown menu
- A new OAuth flow is triggered
- The account is synced
2024-04-02 11:32:27 +02:00
WeikoandGitHub a3a15957f4 Revert company address field type (#4737)
## Context
A new ADDRESS field type has been introduced and the company object has
been updated to use this new type however this introduced a few
regressions.
The good strategy would be to introduce a new field and rename the old
one.

This PR revert that change to fix the issue.
2024-04-02 11:11:14 +02:00
ThaïsandGitHub dc8ab5d95a feat: expand relation record cards on click in Record Show page (#4570)
Closes #3126
2024-04-02 09:42:57 +02:00
Charles BochetandGitHub 746747ba2b Fix jest tests broken with apollo metadata client (#4728)
The tests were broken. It turns out that it is not easy to mock two
apolloClients as apollo only provides "MockedProvider" component to mock
apollo in tests.
MockedProvider Api does not allow us to mock on client level.

For now, I'm defaulting to the base ApolloClient in test mode to avoid
the issue
2024-04-01 14:55:28 +02:00
8ae6af6bd7 refactor: move createState to twenty-ui (#4716)
Split from https://github.com/twentyhq/twenty/pull/4518

Co-authored-by: Charles Bochet <[email protected]>
2024-04-01 13:22:51 +02:00
ThaïsandGitHub a3e5cf37b0 chore: upgrade Nx to v18.1.3 (#4706)
Split from https://github.com/twentyhq/twenty/pull/4518

- Upgrades dependencies and applies automatic config migrations with the
command: `npx nx migrate nx` (see
https://nx.dev/nx-api/nx/documents/migrate)
- Fixes lint errors after upgrading `@typescript-eslint`

Note: it was not possible (for now) to migrate Nx to the latest stable
version (v18.2.1) because it upgrades Typescript to v5.4.3, which seems
to cause a bug on install when Yarn tries to apply its native patches.
Might be a bug on the Yarn side.
2024-04-01 13:16:50 +02:00
ThaïsandGitHub 5d07b6347e refactor: move Tabler Icon exports to twenty-ui (#4727)
Split from https://github.com/twentyhq/twenty/pull/4518
2024-04-01 13:15:47 +02:00
02673a82af Feat/put target object identifier on use activities (#4682)
When writing to the normalized cache (record), it's crucial to use _refs
for relationships to avoid many problems. Essentially, we only deal with
level 0 and generate all fields to be comfortable with their defaults.

When writing in queries (which should be very rare, the only cases are
prefetch and the case of activities due to the nested query; I've
reduced this to a single file for activities
usePrepareFindManyActivitiesQuery 🙂), it's important to use queryFields
to avoid bugs. I've implemented them on the side of query generation and
record generation.

When doing an updateOne / createOne, etc., it's necessary to distinguish
between optimistic writing (which we actually want to do with _refs) and
the server response without refs. This allows for a clean write in the
optimistic cache without worrying about nesting (as the first point).

To simplify the whole activities part, write to the normalized cache
first. Then, base queries on it in an idempotent manner. This way,
there's no need to worry about the current page or action. The
normalized cache is up-to-date, so I update the queries. Same idea as
for optimisticEffects, actually.

Finally, I've triggered optimisticEffects rather than the manual update
of many queries.

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-04-01 13:12:37 +02:00
Félix MalfaitandGitHub 4e109c9a38 Fix Vale CI and change vision (#4724) 2024-04-01 11:39:04 +02:00
pereira0xandGitHub 8b133e147e fix search active hit styling #4719 (#4720) 2024-04-01 11:38:43 +02:00
ThaïsandGitHub 3f102b2934 fix: fix Settings/Developers page error (#4722)
Closes #4669
2024-04-01 11:36:36 +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 <[email protected]>
2024-03-31 12:23:56 +02:00
aacb3763e7 Fix overlay scroll gaps (#4512)
* fix overlay scroll leaving gap

* fixed tests

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-31 10:53:37 +02:00
da8f1b0a66 Fix display empty value if boolean instead of false on show page (#4468)
* default value boolean fixed

* fixed creation, fixed updating a value to false

* fixed default value for default value if boolean

* fixed tests

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-30 11:38:08 +01:00
1d351a29b8 Sync remote object (#4713)
* Sync objects

* Generate data for isRemote

* Add cache version update

* Add label identifier + fix field metadata input

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-29 18:23:58 +01:00
7f3623239a 4410-feat(front): Implement Confirmation Prompt for Multiple Record Deletion (#4514)
* feat: implement confirmation prompt

* feat: remove prop drilling and introduce recoil state

* chore: fix eslint issues

* feat: set record text according to length of records

* chore: fix eslint issues

* refactor: made changes according to code review

* fix: show delete according to singular and plural records.

* fix: eslint issues

* feat: show number of selected records

* style: fix positioning of actionbar

* feat: display ConfirmationModal seperately

* chore: remove recoil state and use usestate instead

* chore: minor change

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-29 18:18:21 +01:00
aaf429a907 fix: impossible to unselect all check box (#4471)
* fix: impossible to unselect all check box

* fix: newly loaded records adopts select/unselect status

* Fix

* Fixes

* Fixed naming

* Used better naming

* Fixed naming

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-29 18:02:22 +01:00
Thomas des FrancsandGitHub 09e77db74c User guide update (#4715)
* adding back new navbar structure

* adding back new home

* adding back objects

* adding back 4 pages

* adding back some  pages

* added 3 videos for api, webhook and tasks
2024-03-29 17:30:15 +01:00
Quentin GandGitHub 35fb77d9a8 feat: reinforce one liner experience (#4688)
* feat: add more dependencies check, randomize postgres admin password, tail logs of server container

* feat: improve retro compatibility

* feat: comment POSTGRES_ADMIN_PASSWORD as it will be generated by the one liner
2024-03-29 15:25:41 +01:00
Simão SanguinhoandGitHub 743e203bc7 fix icon search menu (#4565) (#4712) 2024-03-29 15:20:32 +01:00
62ed1893c9 Created the user-guide content (Text and illustrations) (#4683)
* Second attempt

* Small image optimizations

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-29 10:07:25 +01:00
bosiraphaelandGitHub 68977dc675 Calendar event fixes and improvements (#4690)
* fixes

* saving workspaceMemberId and personId when saving attendees

* add typing

* use Map

* improve saveMessageParticipants

* fix role type

* move logic in a service

* create new service

* use new service in calendar-event-attendee.service

* modify service to include more common logic

* add defaumt value to isOrganizer in calendar-event-attendee.object-metadata

* rename folder

* renaming
2024-03-29 10:03:00 +01:00
WeikoandGitHub 1829f4d009 Switch timestamp to timestamptz (#4696)
* Switch timestamps to timestamptz

* update standard/custom objects logic to use timestamptz

* fix test
2024-03-28 22:39:41 +01:00
martmullandGitHub 27fdb00d07 4586 fix workspace member feature (#4680)
* Fix import

* Handle delete workspace member consequences

* Add a patch to request deleted workspace member's userId

* Remove useless relations

* Handle delete workspace + refactor

* Add missing migration

* Fix test

* Code review returns

* Add missing operation in migration file

* Fix code review return update

* Fix workspaceMember<>ConnectedAccount relation
2024-03-28 17:59:48 +01:00
Kanav AroraandGitHub 00eee3158e 4698-Renamed to inbox (#4701)
Renamed to inbox
2024-03-28 17:11:13 +01:00
3171d0c87b feat: address composite field (#4492)
Added new Address field input type.

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-28 16:50:38 +01:00
WeikoandGitHub 22d4af2e0c Fix events being created for system objects (#4694)
* Fix events being created for system objects

* move the condition above to avoid unnecessary db calls
2024-03-28 16:15:14 +01:00
martmullandGitHub 0cc0929bd0 Rename refreshToken to appToken and add fields (#4691) 2024-03-28 14:07:12 +01:00
Jeet DesaiandGitHub a28ffee80f Fix: Save view by clicking outside popup while editing (#4678)
* fix: #4657 Save view by clicking outside popup while editing

* made changes on save view

* resolved comment
2024-03-28 10:52:42 +01:00
Quentin GandGitHub 538ed9026d fix(one-liner): some echo are missing -e (#4686) 2024-03-27 21:43:50 +01:00
d6de380e02 feat: add one liner install command (#4613)
* feat: add one liner

* fix: interactive issue & add support for both linux & mac

* feat: move quick start documentation

* feat: catch errors

* feat: check if directory exists

* feat: default to yes for prompt

* feat: open in browser

* fix: format

* feat: do not expose STORAGE_LOCAL_PATH env but handle the case where it would be set

* fix: db reset command wasn't working out of the box

* Update install.sh

Co-authored-by: Darek Desu <[email protected]>

* feat: harden the whole UX with one-liner

* fix: small logical order adjustment

* Update packages/twenty-docs/docs/start/self-hosting/docker-compose.mdx

---------

Co-authored-by: Darek Desu <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-03-27 21:28:03 +01:00
Aditya PimpalkarandGitHub 0391bf65f2 feat: Oauth with PKCE (#4648)
* authorizeApp and exchangeAuthcode methods

* module rename

* import fix

* lint fix

* fix import
2024-03-27 21:18:07 +01:00
arnavsaxena17andGitHub f00b9f229a fixed view switcher by changing zindex of TopBar (#4685) 2024-03-27 21:15:29 +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 <[email protected]>
2024-03-27 19:44:35 +01:00
ThaïsandGitHub c3cc0f651c feat: add remote object integration databases list card (#4621)
* feat: add remote object integration databases list card

Closes #4549

* fix: fixes after rebase
2024-03-27 18:59:40 +01:00
ThaïsandGitHub 6637ae586f feat: add Integrations/Integration Details/New Database page (#4593)
Closes #4553
2024-03-27 16:28:40 +01:00
bosiraphaelandGitHub 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
ThaïsandGitHub 2ffe519478 feat: add date format calendar setting (#4600)
Closes #4184
2024-03-27 15:17:31 +01:00
bosiraphaelandGitHub 77e08daa79 4486 connect settingsaccountscalendars to backend (#4605)
* add useFindOneRecord and useUpdateOneRecord

* remove mock

* use calendar channel information in display

* renaming

* refactoring

* handleSyncEventsToggle

* improve typing using generics

* modifications after review

* rename components

* renaming
2024-03-27 15:01:00 +01:00
WeikoandGitHub 5c40e3608b [messaing] improve messaging import (#4650)
* [messaging] improve full-sync fetching strategy

* fix

* rebase

* fix

* fix

* fix rebase

* fix

* fix

* fix

* fix

* fix

* remove deletion

* fix setPop with memory storage

* fix pgBoss and remove unnecessary job

* fix throw

* fix

* add timeout to ongoing sync
2024-03-27 12:44:03 +01:00
Jérémy MandGitHub 5c0b65eecb feat: simplification of default-value specification in FieldMetadata (#4592)
* feat: wip refactor default-value

* feat: health check to migrate default value

* fix: tests

* fix: refactor defaultValue to make it more clean

* fix: unit tests

* fix: front-end default value
2024-03-27 10:56:04 +01:00
Quentin GandGitHub 90ce7709dd fix: update docker-compose database volumes (#4677) 2024-03-27 08:47:58 +01:00
f08dfec00a Fix encryption logic (#4672)
Co-authored-by: Thomas Trompette <[email protected]>
2024-03-26 17:43:32 +01:00
d4eb75abff Add isRemote field on object metadata (#4668)
Add isRemote field

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-26 16:49:18 +01:00
Jérémy MandGitHub 3acec7731c Fix/enum bug (#4659)
* fix: sever not throwing when enum contains two identical values

* fix: enum column name cannot be change

* fix: put field create/update inside transactions

* fix: check for options duplicate values front-end

* fix: missing commit transaction
2024-03-26 16:16:29 +01:00
martmullandGitHub ab028b8c22 60 fix svg xcc vulnerability (#4660)
* Add domPurify

* Sanitize svg files

* Add is-svg package

* Use isSvg package

* Revert "Use isSvg package"

This reverts commit 05014b5107.

* Revert "Add is-svg package"

This reverts commit ad3e206ea6.

* Code review returns
2024-03-26 16:10:45 +01:00
279d99487c Fetch available remote tables (#4665)
* Build remote table module

* Use transactions

* Export url builder in util

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-26 15:50:41 +01:00
bosiraphaelandGitHub fefa37b300 4488 connect calendar tab to backend (#4624)
* create states and hooks

* implement fetch more records

* add empty state

* update types

* fix error

* add fetchmoreloader and add scroll to container

* fix visibility in calendarEventFragment

* fix fetchMoreRecords

* update TIMELINE_CALENDAR_EVENTS_DEFAULT_PAGE_SIZE

* add test

* modify empty state subtitle

* replace entity by activityTargetableObject

* create useCustomResolver hook

* refactor

* refactoring

* use generic component

* rename FetchMoreLoader

* remove deprecated states and hooks

* fix typing

* update typing

* update error message

* renaming

* improve typing

* fix bug on contact creation from same company
2024-03-26 14:50:32 +01:00
Aditya PimpalkarandGitHub 5c5dcf5cb5 feat: check if company/person saved (chrome-extension) (#4280)
* add twenty icon

* rest api calls for company

* check if company exists

* refacto

* person/company saved call

* gql codegen init

* type defs

* build fix

* DB calls with gql codegen and apollo integration
2024-03-26 14:37:36 +01:00
Charles BochetandGitHub c54acb35b6 Update Dev Seeds to use Ids (#4663) 2024-03-26 14:19:40 +01:00
Darek DesuandGitHub 22d17d855c File token chores (#4664)
* Missing file token chores

* Make whole idea folder ignored
2024-03-26 13:42:09 +01:00
Quentin GandGitHub ef8867e552 chore: debug Twenty dockerfile failing to build on Github Actions (#4658)
* chore: debug Twenty dockerfile failing to build on Github Actions

* fix: remove commented code
2024-03-26 12:32:53 +01:00
Darek DesuandGitHub 0549313c43 Update .env.example (#4661)
Added missing FILE_TOKEN_SECRET variable
2024-03-26 12:31:57 +01:00
ThaïsandGitHub 17bf315a1d feat: add remote object integration preview (#4614)
Closes #4548
2024-03-26 10:02:25 +01:00
d4f6ffdf62 feat(ci): automate CI tags and pass github context (#4652)
* feat(ci): automate CI tags and pass github context

* Update .github/workflows/cd-deploy-tag.yaml

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-26 09:01:39 +01:00
d1ab063000 feat: use ApolloFactory for metadata client (#4608)
Co-authored-by: Charles Bochet <[email protected]>
2024-03-25 19:15:46 +01:00
d2b237ebf2 #4298 Add emails seed data for demo and dev seeds (#4513)
* Add message seed data

* Change order of attributes

* add personIds

* fix messageParticipants attributes

* add imports in data-seed-dev-workspace

* Update messageParticipant.ts

Delete comments

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-03-25 19:06:05 +01:00
9dda6a8fa1 4162-Sticky-Header (#4627)
* initial commit

* functionality added

* Suggested changes fixed

* Fix broken shadow

* Unrelated fix (input stuck under container)

* Performance improvement

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-25 19:05:56 +01:00
ThaïsandGitHub 8baa59b6f4 feat: add Active and Add integration card displays (#4591)
* feat: add Active and Add integration card displays

Closes #4541

* docs: add PaymentSuccess page stories

* refactor: move page components
2024-03-25 18:53:30 +01:00
ThaïsandGitHub 6ab43c608f feat: create Integrations/IntegrationDetail page (#4574)
* feat: create Integrations/IntegrationDetail page

Closes #4546

* docs: add Settings/Integrations/Integration Detail page stories

* docs: add Settings/Billing page stories

* refactor: move some Settings components to @/settings

* refactor: move some Settings integrations components to @/settings/integrations
2024-03-25 18:06:46 +01:00
e126c5c7f3 TWNTY-4602 - Increase coverage for coverage for twenty-front:storybook:modules (#4649)
* Increase coverage for coverage for  `twenty-front:storybook:modules`

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Chiazokam <[email protected]>

* Increase code coverage threshold

* Increase code coverage threshold

* Increase code coverage threshold

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Chiazokam <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-03-25 18:03:55 +01:00
Jérémy MandGitHub 04c5d066f8 fix: create deterministic uuids for standards relation on custom object (#4642)
* fix: create deterministic uuids for standards relation on custom object

* fix: remove check if standardId already exist to override old ones
2024-03-25 16:58:58 +01:00
ThaïsandGitHub 61e5d5bcb9 fix: fix Select field preview (#4507)
* fix: fix Select field preview

Closes #4084

* fix: fix field preview utils tests
2024-03-25 16:37:41 +01:00
Charles Bochet 2ae59a801f Fix missing lodash type dependency breaking front container build 2024-03-25 16:26:28 +01:00
ThaïsandGitHub b77d589497 refactor: merge FieldType and FieldMetadataType (#4504)
* refactor: merge FieldType and FieldMetadataType

* fix: fix args passed to assertFieldMetadata

* fix: omit RawJson from supported types in settings
2024-03-25 15:45:28 +01:00
9e70f5b650 Add endpoints to create and delete remote server (#4606)
* Build remote server

* Add getters

* Migrate to json inputs

* Use extendable type

* Use regex validation

* Remove acronymes

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-25 15:21:23 +01:00
martmullandGitHub e2af5b8628 4525 upgrade pg graphql (#4646)
* TO remove: add multiple workspace with command

* TO remove: update build script

* Update script and add doc

* TO remove: add more seed workspaces

* Build pg_graphql files for 1.5.1

* Build pg_graphql files for 1.5.1 macos arm

* Remove 600 seed workspaces

* Build pg_graphql files for 1.5.1 macos intel
2024-03-25 15:08:17 +01:00
Charles BochetandGitHub e576fe0d67 Update yarn commands (#4644)
* Simplify commands

* Simplify commands

* Migrate all dev commands to project.json

* Fix tests
2024-03-25 12:31:18 +01:00
ThaïsandGitHub 1639b2ad0e refactor: improve Settings supported field types validation (#4496)
* refactor: improve Settings supported field types validation

Related to: #4084, #4295

* fix: fix wrong import
2024-03-25 12:27:00 +01:00
WeikoandGitHub a560746fcd Add worker run step to server cli (#4619)
* Add worker run step to server cli

* add build step

* fix
2024-03-25 11:00:11 +01:00
brendanlaschkeandGitHub 922d632607 Basic log styling (#4634)
* basic log styling

* fixed mobile wrap and changed default event icon

* add group by test
2024-03-25 10:15:39 +01:00
Charles Bochet 0a15994695 Allow usage of multiple select fields on Kanban board 2024-03-23 20:36:14 +01:00
Charles Bochet bd8718269a Improve performances on main 2024-03-23 16:12:07 +01:00
0315f35979 Replace Terms & Conditions with Sign Up Link on Sign In #4502 (#4617)
* Replace Terms & Conditions with Sign Up Link on Sign In #4502

* terms replaced with signup link

* begin fix (incomplete / do not merge)

* Revert

* Introduce welcome page

* Update Twenty website

---------

Co-authored-by: Mamatha Yarramaneni <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2024-03-22 22:40:01 +01:00
Charles Bochet 3ea8589c0d Fix event relation with custom objects 2024-03-22 20:21:02 +01:00
Charles BochetandGitHub 161137e87a Add events on Custom objects (#4625) 2024-03-22 20:02:00 +01:00
bosiraphaelandGitHub 96cad2accd 4398 decouple contacts and companies creation from messages import (#4590)
* emit event

* create queue and listener

* filter participants with role 'from'

* create job

* Add job to job module

* Refactoring

* Refactor contact creation in CreateCompanyAndContactService

* update job

* wip

* add getByHandlesWithoutPersonIdAndWorkspaceMemberId to calendar event attendee repository

* refactoring

* refactoring

* Revert "refactoring"

This reverts commit e5434f0b87.

* fix nest imports

* add await

* fix contact creation condition

* emit contact creation event after calendar-full-sync

* add await

* add missing transactionManager

* calendar event attendees personId update is working

* messageParticipant and calendarEventAttendee update is working as intended

* rename module

* fix lodash import

* add test

* update package.json
2024-03-22 18:44:14 +01:00
Charles Bochet 1a763263c9 Add workspaceId option on standard-id migration script 2024-03-22 18:20:49 +01:00
bosiraphaelandGitHub 5665656b05 4489 timebox finish google calendar full sync (#4615)
* add lodash differenceWith

* add awaits

* update sync cursor is working

* add logs

* use isSyncEnabled information to enqueue jobs

* add decorator InjectObjectMetadataRepository

* fix gmail-full-sync
2024-03-22 18:10:55 +01:00
Charles Bochet 41aae5bd20 Fix authentication resolver 2024-03-22 17:47:51 +01:00
Charles BochetandGitHub 3c5c9c2f31 Release 0.3.3 (#4622)
* Release 0.3.3

* Fix tests
2024-03-22 17:28:53 +01:00
Félix MalfaitandGitHub 4ae67318ab Fix broken worker (#4618) 2024-03-22 16:43:13 +01:00
Charles Bochet 6713ac589d Object creation triggers view creation 2024-03-22 16:39:55 +01:00
Charles BochetandGitHub 4a493b6ecf New view picker (#4610)
* Implement new view picker

* Complete feature

* Fixes according to review
2024-03-22 15:04:17 +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 <[email protected]>

* Move db calls to a dedicated repository

* Add server-side tests

---------

Co-authored-by: Weiko <[email protected]>
2024-03-22 14:01:16 +01:00
Quentin GandGitHub aee6d49ea9 feat: add a docker-compose file for production (#4609)
* feat: add a docker-compose file for production

* fix: remove unused user filed

* fix: do not provide default token secrets
2024-03-22 09:16:39 +01:00
Quentin GandGitHub 1aa48d3bf7 feat: merge front and server dockerfiles and optimize build (#4589)
* feat: merge front and server dockerfiles and optimize build

* fix: update image label

* fix: bring back support for REACT_APP_SERVER_BASE_URL injection at runtime

* fix: remove old entries & add nx cache in dockerignore

* feat: generate frontend config at runtime using Nest

* fix: format and filename

* feat: use the EnvironmentService and leave default blank

* feat: add support for DB migrations
2024-03-21 19:22:21 +01:00
Charles BochetandGitHub 3fa8c4bace Add KanbanFieldMetadataId on View standard object (#4604)
* Add KanbanFieldMetadataId on View standard object

* Deprecate Pipeline step

* Fix

* Use Constants instead of raw ids

* Fix

* Fix query runner

* Fix according to review

* Fix tests

* Fix tests

* Fix tests
2024-03-21 18:08:27 +01:00
Lucas BordeauandGitHub cc0e3c8a9a Fixed TS error with blocknote/react package (#4601) 2024-03-21 12:10:09 +01:00
martmullandGitHub 8e4123e772 48 add yearly monthly sub switch (#4577) 2024-03-21 10:47:25 +01:00
db25d331c1 update example docker-compose to bitnami postgres path (#4491)
* update example docker-compose to bitnami postgres path

* leave a note that Postgres needs configuration

* Revert example docker-compose

* Edit text

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-21 10:17:06 +01:00
b089b93e67 feat: modified DoubleTextInput to split First and Last name accordingly (#4598)
* feat: modified DoubleTextInput to split First and Last name accordingly

* Fix Linter

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-21 09:50:11 +01:00
Jérémy MandGitHub e5c1309e8c feat: wip server folder structure (#4573)
* feat: wip server folder structure

* fix: merge

* fix: wrong merge

* fix: remove unused file

* fix: comment

* fix: lint

* fix: merge

* fix: remove console.log

* fix: metadata graphql arguments broken
2024-03-20 16:23:46 +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 <[email protected]>
2024-03-20 14:43:41 +01:00
Anoop PandGitHub 352192a63f fix: add missing package lodash.groupby (#4579)
* fix: add missing package

* fix: typo in case
2024-03-20 14:25:05 +01:00
Charles BochetandGitHub cfb0cce9b8 Refactor Views by cleaning the code, relying on apolloCache and improving performances (#4516)
* Wip refactoring view

* Post merge conflicts

* Fix review

* Add create view capability

* Fix create object missing view

* Fix tests
2024-03-20 14:21:58 +01:00
ThaïsandGitHub 20e14cb455 fix: fix typings in calendar utils tests (#4572)
* fix: fix typings in calendar utils tests

* fix: remove unstable test
2024-03-20 10:07:01 +01:00
brendanlaschkeandGitHub 017b09ba35 Blocknote custom slash menu (#4517)
blocknote v12, cleaned up blockschema & specs, added custom slash menu
2024-03-20 08:38:05 +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 <[email protected]>
2024-03-20 07:04:07 +01:00
c90e379fc4 Release updates (#4571)
* Adding 0.3.0 first content & introducing the new images folder

* adding changelog from 0.2.3 to 0.3.3

* tracking new files

* removing unwanted file

* Improving Copy & adding Gmail integration to 0.3.3

* micro fix

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-19 22:39:52 +01:00
Félix MalfaitandGitHub b6e8bb1a6c Delete auth/file front variables (#4455) 2024-03-19 22:19:40 +01:00
Félix MalfaitandGitHub 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
bosiraphaelandGitHub 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
e579554d47 Add getters factory for attachements (#4567)
* Add getter factory for attachements

* Override guard in test

* Add secret in env variables

* Return custom message on expiration

* Rename to signPayload

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-19 16:39:53 +01:00
Lucas BordeauandGitHub 9f6c578a46 Added context (#4557) 2024-03-18 17:13:32 +01:00
872fb2bd49 TWNTY-4450 - Add tests for /modules/activities/emails (#4520)
* Add tests for `/modules/activities/emails`

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Remove temporary changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2024-03-18 17:10:07 +01:00
Félix MalfaitandGitHub bdbd77c696 Cleanup default values and leftover methods in environmentService (#4550)
* Cleanup default values and leftover methods in environmentService

* Adress remainings configService calls
2024-03-18 17:09:39 +01:00
Sébastien HOUZETandGitHub 1cc8bdd3e9 Update docker-compose.mdx (#4545)
The name of docker instance now use - and not _ for the name.
2024-03-18 16:30:26 +01:00
WeikoandGitHub 8fb1ab8933 [backend] rename repository services and replace repository modules by dynamicModule (#4536)
* rename database services to repository

* refactor more repositories

* more refactoring

* followup

* remove unused imports

* fix

* fix

* Fix calendar listener being called when flag is off

* remove folders
2024-03-18 16:26:23 +01:00
2aa6bcdb70 Action bar add delete count (#4470)
Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-18 16:11:02 +01:00
411aac5efc Remove demo guard for mail api (#4527)
Co-authored-by: Thomas Trompette <[email protected]>
2024-03-18 14:05:35 +01:00
Charles Bochet 7294d5aedc Add migrate prod command 2024-03-15 23:33:25 +01:00
Charles Bochet eb07b373a7 Fix storage s3 endpoint not being optional 2024-03-15 23:08:30 +01:00
Charles BochetandGitHub feebc45d31 Fix storybook tests on IconPicker (#4510) 2024-03-15 21:47:07 +01:00
Charles Bochet 5e5ae0b2ca Fix server container build 2024-03-15 21:38:40 +01:00
Charles BochetandGitHub e0ae12ffa1 Fix server deploy (#4509)
* Fix server deployment broken by nx

* Fix server deployment broken by nx

* Fix server deployment broken by nx

* Fix

* Fix

* Fix

* Fix
2024-03-15 21:15:14 +01:00
AbdullahandGitHub dc9b84114a Server fix: Update EnvironmentService import path in File Module. (#4508)
fix: update the import path for environment service inside the file.module.ts file to get the server up again
2024-03-15 20:05:35 +01:00
Charles Bochet cd9f402bc2 Fix calendar broken tests 2024-03-15 19:40:48 +01:00
8980cc576c Prevent file upload in demo workspaces (#4503)
* Build demo env guard

* Put guard for auth

* Add todo

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-15 19:15:22 +01:00
Charles Bochet 1cc8edd016 Fix tests and linter 2024-03-15 19:14:57 +01:00
2c09096edd Refactor backend folder structure (#4505)
* Refactor backend folder structure

Co-authored-by: Charles Bochet <[email protected]>

* fix tests

* fix

* move yoga hooks

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-03-15 18:37:09 +01:00
afb9b3e375 Prefetching views and favorites (#4421)
* wip

* Push

* Complete work on prefetch

* Add comment

* Fix

* Fix

* Fix

* Fix

* Remove dead code

* Simplify

* Fix tests

* Fix tests

* Fix according to review

* Fix according to review

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-15 18:35:40 +01:00
ThaïsandGitHub 38f28de4a6 feat: open event details drawer on event row click (#4464)
* feat: open event details drawer on event row click

Closes #4294

* feat: review - display Calendar Event details Inline Cells in readonly mode

* fix: fix calendar event field values not being set

* chore: review - reactivate no-extra-boolean-cast eslint rule
2024-03-15 17:37:36 +01:00
RavanandGitHub 680bb11f19 Changed Filter/sort labels font weight to medium instead of bold. (#4500)
* changed font weight to 500 for filter/sort labels

* Removed isSort prop and StyledChipProps type
2024-03-15 17:36:11 +01:00
235e71ca02 Update backdrop-filter in OverlayBackground.ts (#4436)
* Update backdrop-filter in OverlayBackground.ts

* Fix backdrop-filter in OverlayBackground.ts

* Update opacity of menu item, to be constantly 0

* Fixes

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-15 17:19:27 +01:00
638a12c571 feat: iframe addition (chrome-extension) (#4418)
* toggle iframe addition

* React UI init

* remove files

* loading state files

* render iframe logic

* remove event

* build fix

* WIP

* Ok

* Cleaned

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-15 16:36:53 +01:00
c083bb15cd First batch of modules/activities tests (#4446)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2024-03-15 16:32:06 +01:00
7b83c84fa5 TWNTY-4447 - Add tests for /modules/activities/hooks (#4475)
Add tests for `/modules/activities/hooks`

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-03-15 16:30:42 +01:00
14a3fc1ba6 Increase test coverage for /modules/activities/timeline (#4494)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-03-15 16:26:45 +01:00
683f1f1f33 Add tests for /modules/activities/tasks/hooks (#4495)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-03-15 16:25:13 +01:00
21cd38d6fb Add command to stop demo seed cron (#4480)
Rename start cron + add stop cron

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-15 15:23:07 +01:00
WeikoandGitHub 7555e7aad5 [messaging] Fix messaging formatAddress tests (#4482)
* [messaging] Fix messaging formatAddress tests

* rebase

* remove unused test
2024-03-15 14:58:02 +01:00
94487f6737 feat: refactor folder structure (#4498)
* feat: wip refactor folder structure

* Fix

* fix position

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-03-15 14:40:58 +01:00
Aditya VashishtandGitHub 52f1b3ac98 Fixed select field input height (#4493) 2024-03-15 13:41:32 +01:00
bosiraphaelandGitHub f6d27ce19c Update add account button style (#4481)
* update style

* fix gap being there twice
2024-03-15 13:33:35 +01:00
cosarkandGitHub 846da396f8 Adding new one-click deploy option to 1-click-deploy.mdx (#4374)
This PR introduces a one-click deploy button for RepoCloud, enabling an easy and rapid deployment option for the community.
2024-03-15 09:59:00 +01:00
e8e5af6fcb fix: Close the email side panel upon clicking an open email thread (#4329)
* fix: state consistency issue while closing the email thread right drawer (#4205)

* Refactored to use useRecoilCallback in RightDrawer open/close hook

* - registered an email drawer click outside callback to memorize the thread id when drawer was closed
- added a state to memorize then event that triggered right drawer close
- added a predicate that checks if event that close email thread right drawer is not the same that the open email thread click event AND that the thread that we want to open is not the thread that is just being closed.

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-14 18:11:27 +01:00
2d48cf5648 Added info about SERVER_URL to docs (#4433)
* Added info about reverse-proxy and SERVER_URL to docs

* Fixed comments

* Fix lint

---------

Co-authored-by: Maciej Siwek <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-14 18:10:59 +01:00
fbc7e6ab6e 4364-feat(front): Display tags in multi-select picker (#4419)
* feat: add tags in multi select picker

* feat: display MenuItemLeftContent if no color passed

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-14 17:59:11 +01:00
595c7a9ba4 Migrate Export feature to the action bar (#4417)
* Migrate Export feature to the action bar

* Fixed predicate derived state

* Fixed bug useFindManyParams outside context

* Added export row selection

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-14 17:57:09 +01:00
04efe5c455 Update demo link (#4483)
* Update demo link

* Update doc

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-14 17:51:27 +01:00
Charles BochetandGitHub 4eae3b8290 Fix front production container build (#4478)
* Fix deploy main

* Fix deploy main
2024-03-14 16:13:27 +01:00
858416530b Fix: Added grab cursor on hover over favorite icon (#4415)
* #4405 Fix: Added grab cursor on hover over favorite icon

* resolved comment

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-14 14:30:24 +01:00
WeikoandGitHub 991bb09622 [messaging] fix participant handles with trailing spaces (#4457) 2024-03-14 13:46:38 +01:00
Félix MalfaitandGitHub 42e86c7c82 Enable backend to serve frontend (#4461)
Basic POC to have frontend served by backend
2024-03-14 11:53:10 +01:00
Félix MalfaitandGitHub fd06d52a13 Refacto environment service (#4473)
* Refacto environment service

* Remove environment variable type
2024-03-14 11:51:19 +01:00
3caf860848 4285 timebox create google calendar full sync (#4442)
* calendar module

* wip

* creating a folder for common files between calendar and messages

* wip

* wip

* wip

* wip

* update calendar search filter

* wip

* working on full sync service

* reorganizing folders

* adding repositories

* fix typo

* working on full-sync service

* Add calendarQueue to MessageQueue enum and update dependencies

* start transaction

* wip

* add save and update functions for event

* wip

* save events

* improving step by step

* add calendar scope

* fix nest modules imports

* renaming

* create calendar channel

* create job for google calendar full-sync

* call GoogleCalendarFullSyncJob after connected account creation

* ask for scope conditionnally

* fixes

* create channels conditionnally

* fix

* fixes

* fix FK bug

* filter out canceled events

* create save and update functions for calendarEventAttendee repository

* saving messageParticipants is working

* save calendarEventAttendees is working

* add calendarEvent cleaner

* calendar event cleaner is working

* working on updating attendees

* wip

* reintroducing google-gmail endpoint to ensure smooth deploy

* modify callbackURL

* modify front url

* changes to be able to merge

* put back feature flag

* fixes after PR comments

* add feature flag check

* remove unused modules

* separate delete connected account associated job data in two jobs

* fix error

* rename calendar_v3 as calendarV3

* Update packages/twenty-server/src/workspace/calendar-and-messaging/utils/valueStringForBatchRawQuery.util.ts

Co-authored-by: Jérémy M <[email protected]>

* improve readability

* renaming to remove plural

* renaming to remove plural

* don't throw if no connected account is found

* use calendar queue

* modify usage of HttpService in fetch-by-batch

* modify valuesStringForBatchRawQuery to improve api and return flattened values

* fix auth module feature flag import

* fix getFlattenedValuesAndValuesStringForBatchRawQuery

---------

Co-authored-by: Jérémy M <[email protected]>
2024-03-14 11:23:31 +01:00
Mohamed Houssein DouiciandGitHub e0dac82e07 fix: exclude GQL scalar types from the name validation of object and field metadata (#4467) 2024-03-14 10:41:48 +01:00
a02e11f81a Use prepared statements + add tests for record position (#4451)
Use prepared statements + add tests

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-13 14:47:54 +01:00
8c0680b918 Setup the foundation for Twenty UI library. (#4423)
* feat: create a separate package for twenty-ui, extract the pill component with hard-coded theme values into it, and use the component inside twenty-front to complete the setup

* feat: extract the light and the dark theme into twenty-ui and update the AppThemeProvider component inside twenty-front to consume themes from twenty-ui

* fix: create a decorator inside preview.tsx to provide a default theme to storybook development server

* fix: remove redundant type declarations and revert back the naming convention for theme declarations

* fix: introduce a default value for pill label within the story for development server

* fix: introduce the nx script into package.json for twenty-ui and resolve imports for theme type within the package

* fix: remove the pill component from the twenty-front package along with the story for it

* fix: revert the package versions to those before running the nx cli command for storybook init

* feat: update readme to include details for building the ui library and starting the storybook development server

* fix: include details about twenty-ui inside jest.config for twenty-front to complete front-jest job

* - Added preview head for font
- Added theme addon for light/dark switch
- Added ComponentDecorator

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-13 14:21:18 +01:00
Charles BochetandGitHub 4e1e4e2c4c Upgrade documentation UI component rendering (#4445)
Upgrade documenation UI component rendering
2024-03-13 13:26:46 +01:00
brendanlaschkeandGitHub f847b64fd1 fix serverurl in openapi docs for self hosted instance (#4390)
* fix serverurl in openapi docs for self hosted instance

* fixed server url slash, moved calculation to enviroment function, fixed openapi path hardcoded api.twenty.com
2024-03-13 12:13:45 +01:00
Jérémy MandGitHub d8b370720c feat: wip sync standard id (#4373)
* feat: wip sync standard id

feat: implement standardId for sync command

* fix: rebase

* fix: tests

* fix: deterministic uuid

* fix: sync custom not working

* fix: create custom not adding standardId

* fix: readability
2024-03-13 12:06:10 +01:00
7b63cf14bc Build listener to backfill position (#4432)
* Build listener to backfill position

* Fix tests

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-13 10:27:34 +01:00
martmullandGitHub 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
WeikoandGitHub 4476f5215b [messaging] Fix thread cleaner service subqueries (#4416)
* [messaging] Fix thread cleaner service subqueries

* add pagination

* various fixes

* Fix thread merging

* fix

* fix
2024-03-12 17:49:45 +01:00
91f4e1a853 Fix activity creation (#4426)
* Fix activity creation

* Fix tests

* Remove recursive logic + fix test

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-12 17:01:24 +01:00
60598bf235 [ESLint rule] prevent useRecoilCallback without a dependency array (#4411)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-03-12 15:12:17 +01:00
41c7cd8cf7 feat: add calendar event attendees avatar group (#4384)
* feat: add calendar event attendees avatar group

Closes #4290

* fix: take CalendarEventAttendee data model into account

* feat: add Color code section to Calendar Settings (#4420)

Closes #4293

* Fix lint

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-12 14:58:34 +01:00
ab4ab1dfba feat: add next event indicator to Show Page Calendar tab (#4348)
* feat: add next event indicator to Show Page Calendar tab

Closes #4289

* feat: improve calendar animation

* refactor: add some utils and fix sorting edge case with full day

* refactor: rename CalendarCurrentEventIndicator to CalendarCurrentEventCursor

* fix: fix tests

* Fix lint

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-12 14:27:51 +01:00
WeikoandGitHub 0d8e700239 [backend] use cache storage service for workspace schema cache (#4342)
* [backend] add cache storage module

* update docs

* update default TTL to a week

* Use cacheStorageService for WorkspaceSchemaCache

* remove memory storage module

* revert pattern

* remove logs
2024-03-12 13:51:39 +01:00
brendanlaschkeandGitHub 1b485c2984 Hide favorites,MessageParticipant and calendareventattendees from datamodel (#4392)
hide favorites, MessageParticipant and calendareventattendees from datamodel
2024-03-12 11:47:27 +01:00
Félix MalfaitandGitHub a122a7f01e Bugfix relation with same field name (#4414)
* Bugfix relation with same field name

* Fix concurrency issue
2024-03-12 10:24:09 +01:00
d73b1d1a8a 4366-feat(front): Clickable Ascending/Descending menu (#4389)
* feat: clickable menu

* Remove unused hover

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-11 17:18:41 +01:00
Dragoș CojocaruandGitHub 4704ef829e fix: Standardize labels casing (#4388)
Standardize labels casing
2024-03-11 17:15:22 +01:00
Charles BochetandGitHub 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
Aayush-23andGitHub 5cf4047482 Allowing to open options for an opportunity on company record. (#4387)
* Allowing to open option for an opportunity on company record.

* Fixed linting issue.
2024-03-11 16:46:59 +01:00
7231ea1e72 Fix: Inline Phone Field Menu (#4383)
* #4343 fix: phone menu display on page

* Add the possibility to send width as %

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-11 16:38:37 +01:00
c82c60b448 Build arg setter for position (#4396)
* Build arg setter for position

* Build separated query factory + rename existing

* Sort record by position in front

* Add tests

* Set first for type board

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-11 16:18:15 +01:00
Lucas BordeauandGitHub e26572b408 Use backspace for clearing record table cell. (#4299)
* Use backspace for clearing record table cell.
2024-03-11 15:19:28 +01:00
Lucas BordeauandGitHub a5b41e09f5 Added a RelationFromOneSide ResolveField in FieldMetadata GraphQL Resolver (#4378)
* Added a ResolveField for relationDefinition on a FieldMetadataItem
2024-03-11 15:04:52 +01:00
Lucas BordeauandGitHub 581dfafe11 Renamed nullable utils into isDefined and isUndefinedOrNull (#4402)
* Renamed nullable utils into isDefined and isUndefinedOrNull
2024-03-11 14:28:57 +01:00
Charles Bochet 3f15cc5b7a Fix fields cannot be added on opportunity board if no field are present 2024-03-11 00:09:34 +01:00
Charles BochetandGitHub ec384cc791 Implement eager load relations on graphqlQueries (#4391)
* Implement eager load relations on graphqlQueries

* Fix tests

* Fixes

* Fixes
2024-03-10 23:42:23 +01:00
Charles BochetandGitHub 86c0f311f5 Introduce ComponentState (#4386)
* Proof of concept ComponentState

* Migrate to createState and createFamilyState

* Refactor

* Fix

* Fix tests

* Fix lint

* Fix tests

* Re-enable coverage
2024-03-09 11:31:00 +01:00
17511be0cf TWNTY-3794 - ESLint rule: only take explicit boolean predicates in if statements (#4354)
* ESLint rule: only take explicit boolean predicates in if statements

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>

* Merge main

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>

* Fix frontend linter errors

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>

* Fix jest

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>

* Fix lint on new code

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
2024-03-09 10:48:19 +01:00
ThaïsandGitHub 40bea0d95e feat: add Settings Object Edit identifiers form (#4300)
* feat: add Settings Object Edit identifiers form

Closes #3836

* fix: fix wrong imports after renaming directories
2024-03-08 21:55:30 +01:00
40a3b7d849 Added CurrencyFieldInput design (#4254)
* #4123 CurrencyFieldInput design is ready

* resolved comment and currency code

* resolved design comment

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-08 21:30:45 +01:00
bosiraphaelandGitHub 0c17decfb9 4284 create calendarchanneleventassociation data model (#4350)
* create model

* add calendar channel relation

* add calendar event relation

* add to index.ts

* done

* updates

* update relation

* update relation

* updates after comments
2024-03-08 16:29:40 +01:00
WeikoandGitHub 250bb6134e [messaging] remove partial sync retry and fix missing datasource error (#4371)
* [messaging] remove partial sync retry and fix missing datasource error

* revert

* fix

* add 429

* fix

* fix

* fix

* remove duplicate log

* fix cron pattern
2024-03-08 14:06:21 +01:00
Charles BochetandGitHub d2e2e50d8a Fix consistency issuesin relation onDelete behavior while creating a new relation (#4372)
* Fix consistency issuesin relation onDelete behavior while creating a new relation

* Fix according to review
2024-03-08 11:49:42 +01:00
ThaïsandGitHub 92aa0bd888 feat: add Month headers to Show Page Calendar tab (#4326)
Closes #4288
2024-03-08 06:22:23 -03:00
Charles Bochet 5988891f5e Fix companyId should be nullable on person standard object 2024-03-07 17:46:51 +01:00
024156cd52 Fix: design improvement for release page (#4277)
* Update Release.tsx

* Update StyledTitle.tsx

Changed Release color font to primary (#141414)

* Update StyledTitle.tsx

Spacing around the title for  mobile , header font change for tablet

* Update Release.tsx

changed the date font -weight
removed the redundant paragraph color
added media design changes of spacing1, spacing2, paragrap gap

* Update StyledTitle.tsx

subhead releases font color

* Update Release.tsx

media alignment, release font change,

* Update Release.tsx

* Quick fix

* Unrelated change (sentry)

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-07 17:26:39 +01:00
martmullandGitHub 4a7a629824 44 add blocking middleware payment failed (#4339)
* Add info ui component

* Add info in billing settings

* Add billing middleware

* Handle subscription canceled webhook event

* Stop deleting billingSubscription when subscription canceled

* Handle subscription unpaid recovery

* Handle subscription canceled status

* Fix test

* Add test

* Fix test chatSupport display

* Fix design
2024-03-07 17:22:58 +01:00
af6ffbcc68 feat: standard fields on custom (#4332)
* feat: add ability to sync standard fields on custom object

* fix: clean

* fix: wrong compute during object creation

* fix: missing cascade delete

* fix: remove unused injected class

* fix: naming

* fix: rename factory to paramsFactory and clean

* fix: rename ExtendCustomObjectMetadata to BaseCustomObjectMetadata

* fix: partial fix inconsistent label and description

* Fixes

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-03-07 17:21:50 +01:00
Jérémy MandGitHub c3a024b047 feat: sync all workspaces (#4353) 2024-03-07 15:40:09 +01:00
Rachel JohnsonandGitHub eabece6918 TextInput height fix (#4327)
changed text input height to 32px
2024-03-07 15:37:27 +01:00
WeikoandGitHub 41bed57be9 [backend] add cache storage module (#4320)
* [backend] add cache storage module

* update docs

* update default TTL to a week
2024-03-07 14:07:01 +01:00
WeikoandGitHub e7733a1b7a Fix fetchAllMessages cronJob when deleted datasource (#4355) 2024-03-07 12:31:57 +01:00
e8252eca86 Chore: Only show 2 relations in ActivityTargetChips (#4325)
* limits activity target relations count to 2

* Remove dynamic width calculation

---------

Co-authored-by: Abhishek Bindra <[email protected]>
Co-authored-by: Thomas Trompette <[email protected]>
2024-03-07 12:26:19 +01:00
ThaïsandGitHub dd961209de feat: add event rows to Show Page Calendar tab (#4319)
* feat: add event rows to Show Page Calendar tab

Closes #4287

* refactor: use time as events group key instead of ISO string for easier sorting

* feat: implement data model changes

* refactor: improve sorting
2024-03-07 11:13:22 +01:00
Charles BochetandGitHub 9190bd8d7f Deprecate old board (#4352)
* Deprecate old board

* Fix tests

* Fix tests
2024-03-07 10:02:45 +01:00
Aryan SinghandGitHub 4f4ce1c655 fix: updated NavigationDrawerItem icon stroke width from sm to md (#4331) 2024-03-07 08:25:11 +01:00
019c630686 Use new type position for standard objects and newly created objects (#4349)
Co-authored-by: Thomas Trompette <[email protected]>
2024-03-06 18:34:10 +01:00
Charles BochetandGitHub e5c09deae5 Improve performances of metadata endpoint (#4347) 2024-03-06 18:09:38 +01:00
bosiraphaelandGitHub 577de7240c 4283 create calendareventattendee data model (#4333)
* add person relation

* add workspaceMember relation

* done

* update channel

* update event data-model

* add relation

* done

* changes after review

* update model
2024-03-06 18:05:40 +01:00
60239353a9 Create new type position (#4336)
* Create new type position

* Remove position filter type

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-06 14:41:51 +01:00
Charles BochetandGitHub b08b361dc0 Command menu search bar (#4337)
* Improve performance on findMany queries

* Fix

* Fix command menu not emptying the search on toggle

* Fix tests
2024-03-06 14:20:05 +01:00
Charles BochetandGitHub e7857d7fa3 Improve performance on findMany queries (#4334)
* Improve performance on findMany queries

* Fix
2024-03-06 13:59:42 +01:00
b2210bd418 TWNTY-2244 - ESLint rule: enforce usage of .getLoadable() + .getValue() to get atoms (#4143)
* ESLint rule: enforce usage of .getLoadable() + .getValue() to get atoms

Co-authored-by: Matheus <[email protected]>

* Merge main

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Fix

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Fix linter issue

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Fix linter

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-03-06 00:24:20 +01:00
Charles BochetandGitHub 706b5d3cf1 Release 0.3.2 (#4324)
* Release 0.3.2

* Fix Select search
2024-03-05 18:57:31 +01:00
Charles BochetandGitHub 614f3ed69e Fix click outside on select field (#4323)
* Fix click outside on select field

* Fix
2024-03-05 18:43:52 +01:00
bosiraphaelandGitHub 0d231902f0 4281 create calendarevent data model (#4317)
* create model

* update model

* remove webLink

* done

* fix namePlural case

* Delete packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/calendar-event-attendee.object-metadata.ts

* updates after comments

* add enum
2024-03-05 17:50:07 +01:00
a7733b24df Add a concise test report with just the errors (#4220)
* Add a concise test report with just the errors

Co-authored-by: KlingerMatheus <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>

* Add a concise test report

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-03-05 17:43:31 +01:00
6bb7042a68 Select Field Input Menu scrollable and add Select Field in Filter and Sort (#3656)
* - fix Select Option Menu scrollable and added search

- add select field in filter and sort operation

* Fix lint

* Fix post merge

* Fix select filter

* Fix

* Remove duplicated search input

* fix turn object into query

* Rename search inputs

* Remove debounced for options

* Simplify option filter

* Rename option to MenuItemSelectTag

* Fix test

* Infer type from field metadata item

---------

Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Thomas Trompette <[email protected]>
2024-03-05 17:41:41 +01:00
martmullandGitHub 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
bosiraphaelandGitHub 9fc421876f 4282 create calendarchannel data model (#4314)
* create model

* add connected account relation

* fix import

* relation is working

* remove isNullable
2024-03-05 16:12:56 +01:00
martmullandGitHub 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
ThaïsandGitHub 1f00af286b feat: remove Color setting from Calendars Settings (#4310)
Closes #4291
2024-03-05 12:37:11 +01:00
ThaïsandGitHub a8575fbe2f feat: add Calendar tab to Show Page Activities panel (#4309)
Closes #4286
2024-03-05 12:34:57 +01:00
rostakleinandGitHub f2099d339f feat: change condition of duplicate check (#4273)
* change condition of duplicate check

* fix: review comments addressed
2024-03-05 12:11:37 +01:00
ThaïsandGitHub 91e5e7598b refactor: use react-hook-form in Settings Data Model Object pages (#4271)
Related issue: #3836
2024-03-05 07:52:19 -03:00
Aditya PimpalkarandGitHub caa4dcf893 feat: adding metadata open-api endpoints and updating docs (#4170)
* initialise metadata schema for open-api

* remove "soon" label on metadata rest-api

* open-api fetch paths

* remove parameter type for metadata schema

* add REST module to open-api

* metadata schema components

* metadata paths

* refactor and /open-api route fix
2024-03-05 11:37:16 +01:00
ThaïsandGitHub a9f4a66c4f refactor: validate objectMetadataItem with Zod on creation and update… (#4270)
* refactor: validate objectMetadataItem with Zod on creation and update & remove logic from useObjectMetadataItemForSettings

* refactor: review
2024-03-05 11:32:30 +01:00
0a2d8056bd 4030 website header for tablet (#4274)
* add use device types

* add header file

* remove use device type

* add tablet view styles

* remove eslint comment

* create shared folder and add header.ts file for all styled elements which used in app header

* refactor header files structure

* Hide linklist on mobile

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-03-05 11:07:09 +01:00
Félix MalfaitandGitHub 9035762d43 Fix telemetry (#4303) 2024-03-04 19:04:55 +01:00
bosiraphaelandGitHub 735e75b3b1 Fix domain name parsing on company creation (#4297)
* add domain parsing library

* change package for psl

* trying to fix error

* fix

* update

* remove unused function
2024-03-04 17:50:41 +01:00
aa7fa3acfa Update .env.example (#4177)
* Update .env.example

this .env file will now work with the docker-compose example provided.

* Update .env.example

* Update doc and reset env example

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-03-04 17:17:40 +01:00
8c0ec336ea Fixed index column stickiness mobile (#4206)
* #4155 fixed first column stickiness on mobile

* fixed eslint error

* resolved checkbox background

* refactor: remove RecordTableFirstColumnScrollEffect

* fix: resolved comment in PR

* #4123 CurrencyFieldInput design is ready

* Revert "#4123 CurrencyFieldInput design is ready"

This reverts commit 70c4db8ee8.

* fix: resolved label identifier issue

---------

Co-authored-by: Thaïs Guigon <[email protected]>
2024-03-04 16:41:42 +01:00
AutoComputandGitHub 6512a781ee Update docker-compose.mdx (#4176)
Fixed syntax errors
2024-03-04 16:38:32 +01:00
Félix MalfaitandGitHub 6d70540cdc Add sentry tracing (#4279)
* Add sentry tracign

* Improve Sentry loggin
2024-03-04 16:31:15 +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 <[email protected]>
2024-03-04 16:14:04 +01:00
4a0f2e8c24 Add Azure cloud provider option (#4296)
* docs: added self-host azure container apps option

* syntax fix

* typo

* Rename file to cloud providers

* Add info section

---------

Co-authored-by: Thomas Hillesøy <[email protected]>
Co-authored-by: Thomas Trompette <[email protected]>
2024-03-04 16:13:33 +01:00
38a0aae030 Update SettingsObjectAboutSection.tsx changed "Disable" CTA to "Deact… (#4175)
* Update SettingsObjectAboutSection.tsx changed "Disable" CTA to "Deactivate"

* Update SettingsObjects.tsx

Additional changes: Disabled sections to inactive

* Update SettingsObjectAboutSection.tsx

I think you meant changing Disable to Deactivate

* Update and rename SettingsObjectDisabledMenuDropDown.tsx to SettingsObjectInactiveMenuDropDown.tsx

 additional changes to #4153

* Update SettingsObjects.tsx

* Update and rename SettingsObjectDisabledMenuDropDown.stories.tsx to SettingsObjectInactiveMenuDropDown.stories.tsx

* fix typescript errors

* respect issue requirements

---------

Co-authored-by: bosiraphael <[email protected]>
2024-03-04 14:59:31 +01:00
WeikoandGitHub 3c63584ef8 [messaging] add more details in exceptions (#4256)
[messaging] add more logs in exceptions
2024-03-04 14:05:01 +01:00
f990b68f0e Fix Internal Server Error when removing profile picture (#4257) (#4278)
* Fix Internal Server Error when removing profile picture (#4257)

This commit addresses the issue where attempting to remove a profile picture resulted in an Internal Server Error.

The fix involves:
* Adding isNullable property to workspace-member avatar;
* Implementing exception handling to handle errors during avatar removal.

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata.ts

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-03-04 13:38:20 +01:00
brendanlaschkeandGitHub 567c0a0558 Docs: light icon fix (#4272)
fix light icon
2024-03-04 10:58:00 +01:00
martmullandGitHub 8f6200be7d 41 update subscription when workspace member changes 2 (#4252)
* Add loader and disabling on checkout button

* Add Stripe Subscription Item id to subscriptionItem entity

* Handle create and delete workspace members

* Update billing webhook

* Make stripe attribute private

* Fixing webhook error

* Clean migration

* Cancel subscription when deleting workspace

* Fix test

* Add freetrial

* Update navigate after signup

* Add automatic tax collection
2024-03-01 17:29:28 +01:00
aa7ead3e8c TWNTY-3942 - Enable Attachments on Custom Objects (#4253)
* Enable Attachments on Custom Objects

Co-authored-by: v1b3m <[email protected]>

* Revert changes to the client

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-03-01 16:39:40 +01:00
Félix MalfaitandGitHub 59c4d114d6 Improve website github sync (#4259) 2024-03-01 15:15:55 +01:00
bosiraphaelandGitHub 4242b546b6 Handle error 429 during partial sync (#4258)
handle error 429
2024-03-01 14:41:42 +01:00
Charles Bochet b69fed9023 Fix broken storybook tests on SettingsPreview 2024-03-01 12:55:48 +01:00
Charles BochetandGitHub 0c2c57ab9b Fix blocklist standard object being unhealthy (#4255)
Fix blocklist standard object unhealthy
2024-03-01 10:39:22 +01:00
Charles Bochet 5e261783da Fix default value being set to null when not provider to fieldMetadataUpdate 2024-03-01 08:58:19 +01:00
Charles BochetandGitHub ad4b3d0d59 Fix enum defaultValue broken (#4251)
* Fix enum defaultValue broken

* Fix

* Fix
2024-02-29 19:35:00 +01:00
bosiraphaelandGitHub 72ae6e44b3 Remove Gate decorator IS_BLOCKLIST_ENABLED from BlocklistObjectMetadata (#4250)
* Remove Gate decorator from BlocklistObjectMetadata

* check if blocklist is enabled

* wip

* done
2024-02-29 19:25:11 +01:00
Sohal Kumar SinghandGitHub b762be3f93 Added a 'Read documentation' button in the Developers tab in settings (#4249) 2024-02-29 19:00:30 +01:00
Charles BochetandGitHub fb439e3045 Enable new record board and messaging for all workspaces except demo (#4243)
* Enable new record board and messaging for all workspaces except demo

* Fix according to PR
2024-02-29 18:22:32 +01:00
bosiraphaelandGitHub 773f698faf Add error handling in GmailPartialSyncService (#4248)
* Add error handling in GmailPartialSyncService

* improve typing
2024-02-29 18:11:53 +01:00
Félix MalfaitandGitHub 6670ecdfda Expose releases as an api (#4247) 2024-02-29 17:48:11 +01:00
Tate ThurstonandGitHub 8625a71f15 Add export as csv (#4034)
* Add export as csv

Resolves 2183.

* collect over paginated data

* refactor

* add tests

* parameterize pageSize (limit)

* use pageInfo for onCompleted callback

* json column variable naming

* omit relations from csv exports
2024-02-29 17:45:44 +01:00
11434fc1c6 Handle multiple orderBy sorting (#4246)
Co-authored-by: Thomas Trompette <[email protected]>
2024-02-29 17:36:22 +01:00
WeikoandGitHub 8a669cc540 [messaging] add better logs to messaging sync jobs (#4245) 2024-02-29 17:30:42 +01:00
ThaïsandGitHub 30df6c10ea test: improve utils coverage (#4230)
* test: improve utils coverage

* refactor: review - rename isDefined to isNonNullable, update tests and return statement
2024-02-29 17:03:52 +01:00
ThaïsandGitHub 6ec0e5e995 feat: adjust navigation drawer design (#4242)
Closes #3969, Closes #4240
2024-02-29 16:49:23 +01:00
ThaïsandGitHub a892d0f653 feat: add Object Edit Settings section with Object preview (#4216)
* feat: add Object Edit Settings section with Object preview

Closes #3834

* fix: fix preview card stories

* test: improve getFieldDefaultPreviewValue tests

* test: add getFieldPreviewValueFromRecord tests

* test: add useFieldPreview tests

* refactor: rename and move components

* fix: restore RecordStoreDecorator
2024-02-29 11:23:56 -03:00
ThaïsandGitHub 6ad3880696 feat: apply RecordDetailSection style on RecordDuplicatesSection and … (#4241)
feat: apply RecordDetailSection style on RecordDuplicatesSection and add stories

Closes #3963, Closes #4240
2024-02-29 14:10:07 +01:00
68a8502920 TWNTY-3316 - Add tests for modules/spreadsheet-import (#4219)
Add tests for `modules/spreadsheet-import`

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2024-02-29 14:01:41 +01:00
bosiraphaelandGitHub bc11cf80fa 4209 speed up gmail full sync by using search params to query only the relevant emails (#4213)
* create blocklist service

* blocklist is working on email import in full sync

* add log

* add blocklist to partial sync

* define rule for blocklist imports

* gmail filter is working

* correct typo

* fix bugs

* getCompanyNameFromDomainName

* renaming

* remove unused service

* add transaction
2024-02-29 12:26:58 +01:00
bosiraphaelandGitHub 8c08f1b603 Remove html from messages (#4229)
* remove html

* remove html

* remove html from db
2024-02-29 12:01:01 +01:00
Charles BochetandGitHub f52a4141c9 Fix nullable being set to null for text field (#4239) 2024-02-29 11:29:17 +01:00
Shreerang PatilandGitHub f34a430b23 fix: design of technical documentation (#4231)
fixes design
2024-02-29 10:59:14 +01:00
martmullandGitHub 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
Charles BochetandGitHub e0bf8e43d1 Update relation cascade on standard objects favorite, attachment, activityTargets (#4227) 2024-02-28 17:49:45 +01:00
bosiraphaelandGitHub fcfc6796f7 Add pagination to partial sync and add logs (#4223)
* update gmail partial sync to add pagination

* adding logs

* update

* improve readability
2024-02-28 14:55:54 +01:00
WeikoandGitHub 47656479ba [messaging] fix empty history (#4218) 2024-02-28 14:32:05 +01:00
Elton Goh Jun HaoandGitHub e0b2cc7651 fix: Extend regex in Linkedin Field to support LinkedIn school URL (#4198) 2024-02-28 10:19:41 +01:00
bosiraphaelandGitHub a19de71fad 4017 improve queries on messages write (#4207)
* modify code to reduce nested loops and improve performances

* is working

* fix lastSyncHistoryId

* create new service to share it betweent partial sync and full sync

* update partial sync

* update batch limit

* renaming

* adding logs

* update logs

* update logs

* update logs

* delete messages if error while saving the participants

* refactoring

* improving logs

* update logs

* delete historyId if outdated
2024-02-27 16:06:19 +01:00
Charles BochetandGitHub 16fe79b044 Fix demo workspace seed (#4211) 2024-02-27 14:11:52 +01:00
25a2cea55d Fix password too short issue (#4200)
Add dependencies to hotscope key

Co-authored-by: Thomas Trompette <[email protected]>
2024-02-27 10:37:11 +01:00
Sohal Kumar SinghandGitHub 368edf70b5 Fixed favicon requests for empty domain names (#4191)
* Fixed favicon requests for empty domain names

* Fixed the test case for undefined domain name
2024-02-27 08:31:51 +01:00
bosiraphaelandGitHub 8b39e53e49 4026 create storybook tests for blocklist components (#4185)
* Add SettingsAccountsEmailsBlocklistInput story

* Add SettingsAccountsEmailsBlocklistSection story

* Add SettingsAccountsEmailsBlocklistTable story

* Add SettingsAccountsEmailsBlocklistTableRow story

* wip

* add play

* add play

* add delete from blocklist test

* wip

* wip

* done
2024-02-26 21:54:29 +01:00
Sohal Kumar SinghandGitHub a7aebcd01d Fixed confirmation modal not closing after regenerating API key (#4192)
Fixed modal not closing after regenerating API key
2024-02-26 21:36:47 +01:00
WeikoandGitHub 214807588a [messaging] clean orphan threads and messages after connected account deletion (#4195)
* [messaging] add connected account associated data delete

* add threadCleanerService

* fix

* fix import

* add thread cleaner import

* remove log
2024-02-26 21:29:44 +01:00
Charles BochetandGitHub 6a1abba9ea Ignore defaultValue update for select fields (#4193)
* Ignore defaultValue update for select fields

* Fix tests
2024-02-26 18:41:29 +01:00
AutoComputandGitHub 7a437751d4 Update docker-compose.mdx (#4178)
Fixed syntax errors in the docker-compose
added step-by-step instructions
2024-02-26 09:59:46 +01:00
AbdullahandGitHub 2a05de5289 Chrome Extension: Update logo and change default routes to those of Twenty prod (#4046). (#4172)
* fix: replace twenty logo in the png format with one in the svg format for better resolution

* fix: toggle the custom url switch to true if the local storage contains a server base url different from that of the env variable

* fix: update the front base url and the server base url to those of the production environment in the .env.example file

* fix: update README to add a step for changing env variables to those of the development environment for contributors or local testers
2024-02-26 09:05:59 +01:00
Charles Bochet aa13b8338d Fix website build 2024-02-25 22:47:07 +01:00
Charles Bochet fa9edad311 Fix website build 2024-02-25 22:38:12 +01:00
176d0159ab Feat currency type optimistic cache (#3907)
* feat: currency type in optimisitc cache update

* Add test for optimisitc currency cache

* Refactor error message for currency filter to be more accurate

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-25 22:28:39 +01:00
Mohamed Houssein DouiciandGitHub 01f21d2fb8 fix: set a specifc date to date field input on the story (#3919)
* fix: set a specifc date to date field input on the story and set the state on record store family selector

* test: add an interaction test to verify the specific date
2024-02-25 22:05:34 +01:00
51c6570d7c Removed the boxes around fields on shows and side panel (#4032)
#3963 removed border and padding

Co-authored-by: Charles Bochet <[email protected]>
2024-02-25 21:56:37 +01:00
Anoop PandGitHub 0060a9ea57 fix: prevent scroll to softfocus cell when hover (#3990) 2024-02-25 21:29:03 +01:00
c8e4da5394 3961-Notes-Relation-Field (#3965)
* Label fix

* Remove semicolumn

* Fix broken layout

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-25 21:25:44 +01:00
AbdullahandGitHub d14bb2ea11 Add linter to Chrome Extension (#4044). (#4174)
* feat: configure eslint rules by replicating those in the twenty-front package and introduce scripts for linting, formatting code and removing build output

* fix: ensure each file of the extension package satisfies linting rules and disable some rules where necessary

* fix: update relative imports to absolute imports throughout extension code with the defined tilde and at symbols

* fix: import the updated ui module from the front package to the chrome extension package to prevent eslint rules from breaking subject to the recent merged changes into main

* fix: commit the case change for files that were missed by Git in the earlier commits due to default configuration
2024-02-25 17:32:08 +01:00
f543191552 TWNTY-3825 - ESLint rule: const naming (#4171)
* ESLint rule: const naming

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>

* refactor: Reverts changes on `twenty-server`

Co-authored-by: KlingerMatheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>
2024-02-25 13:52:48 +01:00
Charles BochetandGitHub a108d36040 Refactor sign-up into its own service (#4173)
* Refactor sign-up into its own service

* Fix tests
2024-02-25 11:51:17 +01:00
b67957bf94 feat: user can have multiple workspaces (backend) (#4036)
* create user-workspace mapping

* user-workspace service and integration

* invite condition on sign-up/sign-in

* save/update defaultWorkspace on signup

* add unique decorator on user-workspace entity

* remove resolver permissions

* Fixes

* Fixes

* Fix tests

* Fixes

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-25 10:58:14 +01:00
52b33b5450 feat: validate webhook URL (#4144)
* feat: validate webhook URL

* fix: use existing util method

* Add return statement

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-25 09:33:38 +01:00
a9b0f88521 MQ Facepaint introduced (#4169)
* MQ Facepaint introduced

* Remove useDeviceType

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-02-24 21:38:27 +01:00
1b04dfe3c6 feat: find duplicate objects init (#4038)
* feat: find duplicate objects backend init

* refactor: move duplicate criteria to constants

* fix: correct constant usage after type change

* feat: skip query generation in case its not necessary

* feat: filter out existing duplicate

* feat: FE queries and hooks

* feat: show duplicates on FE

* refactor: should-skip-query moved to workspace utils

* refactor: naming improvements

* refactor: current record typings/parsing improvements

* refactor: throw error if existing record not found

* fix: domain -> domainName duplicate criteria

* refactor: fieldNames -> columnNames

* docs: add explanation to duplicate criteria collection

* feat: add person linkedinLinkUrl as duplicate criteria

* feat: throw early when bot id and data are empty

* refactor: trying to improve readability of filter criteria query

* refactor: naming improvements

* refactor: remove shouldSkipQuery

* feat: resolve empty array in case of empty filter

* feat: hide whole section in case of no duplicates

* feat: FE display list the same way as relations

* test: basic unit test coverage

* Refactor Record detail section front

* Use Create as input argument of findDuplicates

* Improve coverage

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-24 19:12:21 +01:00
05c206073d 38 add billing webhook endpoint (#4158)
* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* WIP: Add stripe config

* Add controller to get product prices

* Add billing service

* Remove unecessary package

* Simplify stripe service

* Code review returns

* Use nestjs param

* Rename subscription to basePlan

* Rename env variable

* Add checkout endpoint

* Remove resolver

* Merge controllers

* Fix security issue

* Handle missing url error

* Add workspaceId in checkout metadata

* Add BILLING_STRIPE_WEBHOOK_SECRET env variable

* WIP: add webhook endpoint

* Fix body parser

* Create Billing Subscription on payment success

* Set subscriptionStatus active on webhook

* Add useful log

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-24 17:30:32 +01:00
martmullandGitHub c96e210ef1 47 add stripe checkout endpoint (#4147)
* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* WIP: Add stripe config

* Add controller to get product prices

* Add billing service

* Remove unecessary package

* Simplify stripe service

* Code review returns

* Use nestjs param

* Rename subscription to basePlan

* Rename env variable

* Add checkout endpoint

* Remove resolver

* Merge controllers

* Fix security issue

* Handle missing url error

* Add workspaceId in checkout metadata
2024-02-24 17:19:51 +01:00
c434d1edb5 TWNTY-3968 - Fix and enhance storybook:pages tests (#4072)
* Fix and enhance storybook:pages tests

Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix and enhance storybook:pages tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Add minor refactors

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Revert temporary changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix tests

* Fix tests duplicated locale

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-02-24 15:06:51 +01:00
3d809d5317 feat: add Display calendar settings (#4164)
* feat: add Color calendar setting

Closes #4067

* fix: fix wrong imports

* feat: add Display calendar settings

Closes #4068

* feat: add 12h/24h in Format option labels

* fix tests

* Fix

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-24 12:50:32 +01:00
a993155fb0 feat: add Color calendar setting (#4141)
* feat: add Color calendar setting

Closes #4067

* fix: fix wrong imports

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-24 12:34:56 +01:00
Mohamed Houssein DouiciandGitHub 0fe838d320 fix: forbid creation of objects or fields with certain characters or with forbidden keywords that clashes with pg_graphql (#3957)
* fix: forbid creation of objects or fields with certain characters or with forbidden keywords that clashes with pg_graphql

* refactor: add a decorator for name validation and use it on fields
2024-02-24 12:32:01 +01:00
b1eb0577bc Build cron for data seed demo (#4142)
* Migrate command to cron

* Put back command using job as well

* Build service and module + move into folder

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-02-24 12:30:12 +01:00
a2eca16646 Website: markdown to release (#4146)
* website: markdown to release

* remove Image.png

* fixed font weight

* Change folder structure

* remove react-markdown

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-02-24 12:29:37 +01:00
Charles BochetandGitHub 87f7c75057 Remove usage of toSorted as it is not fully supported (#4168) 2024-02-24 12:12:55 +01:00
400ac447d8 Fixed DeveloperSettings stories (#4166)
* Fixed Developer Settings page Storybook.

* Remove unused stories

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-24 11:49:43 +01:00
Lucas BordeauandGitHub fb920a92e7 Improved activity editor re-renders (#4149)
* Refactor task count

* Fixed show page rerender

* Less rerenders and way better title and body UX

* Finished breaking down activity editor subscriptions

* Removed console.log

* Last console.log

* Fixed bugs and cleaned
2024-02-23 17:54:27 +01:00
Félix MalfaitandGitHub 5de1c2c31d New folder structure for website (#4159)
New folder structure
2024-02-23 17:42:13 +01:00
bosiraphaelandGitHub 06c4665a44 4150 i should be able to view my emails even if ive set my account visibility to metadata (#4156)
* improve timeline messaging to allow users to view the threads to which they participated

* working

* improvement

* improvements

* improvements

* fix

* remove unnecessary type
2024-02-23 17:07:49 +01:00
Kanav AroraandGitHub 4b22c0404e WIP: New User Guide (#3984)
* initial commit

* Theme setup on twenty-website package

* Left bar, Content done

* Content added, useDeviceType hook added

* useDeviceType file renamed

* Responsiveness introduced

* Mobile responsiveness fix

* TOC layout

* PR fixes

* PR changes 2

* PR changes #3
2024-02-23 16:39:48 +01:00
bosiraphaelandGitHub 35a2178cde 4020 timebox improve performances on messages read (#4140)
* adding console.time to monitor queries time

* improve query by removing unnecessary JOIN

* improve queries by removing unnecessary JOINs

* improve queries by removing unnecessary JOINs

* remove console.time

* remove logs

* use groupBy from lodash

* modify SELECT

* Revert "use groupBy from lodash"

This reverts commit 852fd3c193.

* use WorkspaceDataSourceModule
2024-02-23 10:18:16 +01:00
67e27a69ff Handle relations between same objects (#4137)
* Handle relations between same objects

* Simplify conditions

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-02-23 09:51:42 +01:00
martmullandGitHub 679456e819 46 add stripe product endpoint (#4133)
* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table

* WIP: Add stripe config

* Add controller to get product prices

* Add billing service

* Remove unecessary package

* Simplify stripe service

* Code review returns

* Use nestjs param

* Rename subscription to basePlan

* Rename env variable
2024-02-22 20:11:26 +01:00
ThaïsandGitHub ce7be4c48e feat: add Event Visibility calendar settings (#4138)
Closes #4064
2024-02-22 14:20:56 -03:00
ThaïsandGitHub 292e97a045 feat: add Contact Auto-Creation calendar settings (#4132)
* feat: add Contact Auto-Creation calendar settings

Closes #4065

* fix: fix wrong Section component import

* fix: fix wrong Toggle import
2024-02-22 18:18:05 +01:00
WeikoandGitHub d5e8844521 Fix referential_constraints health check (#4139) 2024-02-22 16:33:19 +01:00
WeikoandGitHub 70511dc860 Add writeLog for relation update sync metadata (#4136)
* Add writeLog for relation update sync metadata

* fix health check
2024-02-22 16:02:13 +01:00
bosiraphaelandGitHub 4e798ba2a3 3933 filter non work email from auto contact creation (#4131)
* use isWorkEmail

* working

* improvement

* Refactor lodash import in create-companies-and-contacts.service.ts

* refactor lodash import
2024-02-22 15:25:14 +01:00
Charles Bochet fa02a478a5 Fix server import case 2024-02-22 11:51:18 +01:00
ThaïsandGitHub 5a692fbaeb feat: add Accounts List Card to Calendar Settings (#4129)
Closes #4061
2024-02-22 11:22:49 +01:00
WeikoandGitHub 8425ce4987 Add onDeleteAction to RelationMetadata (#4100)
* Add onDeleteAction to relationMetadata

* rename to SET NULL

* fix migration

* fix migration

* fix after review
2024-02-22 10:27:15 +01:00
e69c462b70 feat: allow backend to rename field of custom object (#4097)
* feat: allow backend to rename field of custom object

* feat: allow custom field label edition in Settings

Closes #4080

* fix: avoid renaming standard fields

---------

Co-authored-by: Thaïs Guigon <[email protected]>
2024-02-21 18:59:51 +01:00
Lucas BordeauandGitHub 140d3460eb Refactor/finish activities optimistic (#4106)
* Finished optimistic effects

* Fixed tests

* Added unit test on useActivityConnectionUtils to prepare for refactor

* Fixed console.log
2024-02-21 18:54:14 +01:00
02e9846282 Add confirmation modal when deleting/ regenerating api keys, deleting webhook (#4035)
* fix: confirmation modal style

* add confirmation modal when delete/ regenerating an api key

* add confirmation modal when deleting webhook

* fix: remove line break

* Update packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/webhooks/SettingsDevelopersWebhookDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/webhooks/SettingsDevelopersWebhookDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx

* Update packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-21 18:39:37 +01:00
martmullandGitHub d4fac2ea70 45 create billing core tables (#4096)
* Add self billing feature flag

* Add two core tables for billing

* Remove useless imports

* Remove graphql decorators

* Rename subscriptionProduct table
2024-02-21 18:17:09 +01:00
brendanlaschkeandGitHub f407c70356 Fix number csv import (#4114)
fix number csv import
2024-02-21 17:35:17 +01:00
Jeet DesaiandGitHub 1c829b2ea1 Updated tasks inbox empty state wording (#4121)
#4078 change task empty text word
2024-02-21 17:34:26 +01:00
ThaïsandGitHub ee66188656 feat: add Synchronization calendar settings (#4111)
* feat: add Calendar Settings section to Settings/Accounts/Calendars page

Closes #4060

* refactor: rename components

* feat: add Synchronization calendar settings

Closes #4066
2024-02-21 17:23:06 +01:00
ThaïsandGitHub 5a8a9cd029 feat: add Calendar Settings section to Settings/Accounts/Calendars page (#4104)
* feat: add Calendar Settings section to Settings/Accounts/Calendars page

Closes #4060

* refactor: rename components
2024-02-21 17:18:57 +01:00
Jeet DesaiandGitHub 15510c9fbe Added beta tag in email (#4098)
#4040 added beta tag
2024-02-21 17:09:36 +01:00
161d02620a Fix developers url and remove webhook url error (#4120)
Fix developers url + remove webhook url error

Co-authored-by: Thomas Trompette <[email protected]>
2024-02-21 16:25:35 +01:00
ThaïsandGitHub f977164fee feat: create Settings/Accounts/Calendars/Calendar Settings page (#4092)
* feat: create Settings/Accounts/Calendars/Calendar Settings page

Closes #4063

* docs: add SettingsAccountsCalendarsSettings stories
2024-02-21 15:37:42 +01:00
Jérémy MandGitHub e3e940327e fix: workspace health undefined relation (#4107) 2024-02-21 15:36:18 +01:00
bosiraphaelandGitHub ee7c1fbf5c 4008 dont create a contact company if it matches the persons domain (#4088)
* Add SettingsAccountsEmailsBlocklistInput story

* prevent contact creation from the same company

* add todo

* improvements

* Delete packages/twenty-front/src/modules/settings/accounts/components/__stories__/SettingsAccountsEmailsBlocklistInput.stories.tsx

* refactor

* modify after review

* improve code

* create utils

* fix

* Fix getAllByWorkspaceId to throw NotFoundException when no workspace member found

* fix after merge

* use map

* modify after review
2024-02-21 13:22:01 +01:00
ThaïsandGitHub 11581ca9c3 feat: create Settings/Accounts/Calendars page (#4090)
* feat: create Settings/Accounts/Calendars page

Closes #4059

* docs: add SettingsAccountsCalendars stories

* refactor: add SettingsNavigationDrawerItem component
2024-02-20 19:28:15 +01:00
Charles Bochet 4552e98b7f Fix workspace enum migration bug 2024-02-20 18:48:10 +01:00
Jérémy MandGitHub 3914e8d77c fix: sync and health (#4095)
* fix: throw error if we try to create a migration without columnName

* fix: typeorm save for update breaking everything
2024-02-20 17:55:23 +01:00
WeikoandGitHub 8c46e66cf5 Fix delete with no result should not throw (#4091)
* Fix delete with no result should not throw

* add logs

* Delete packages/twenty-server/src/database/typeorm/metadata/migrations/1708442904165-addOnDeleteActionToRelationMetadata.ts
2024-02-20 17:27:31 +01:00
Jérémy MandGitHub 22e8a3ba77 fix: unwanted comment on graphQL input (#4071) 2024-02-20 16:13:18 +01:00
70cf805db8 Resolved text editor styled (#4033)
#3998 resolved text editor styled

Co-authored-by: Charles Bochet <[email protected]>
2024-02-20 15:29:39 +01:00
9d9ba97fb7 feat: REST endpoints for metadata API (#3912)
* parse metadata path

* metadata rest api

* add queryAction condition and return object singular/plural

* handle GET endpoint for metadata

* FindOne and FindMany query for metadata endpoint

* Request all objects and nest fields in object request

---------

Co-authored-by: martmull <[email protected]>
2024-02-20 15:17:41 +01:00
ThaïsandGitHub ec20117e80 chore: make twenty-server nest command scripts depend on twenty-email… (#4055)
chore: make twenty-server nest command scripts depend on twenty-emails build

Closes #4013
2024-02-20 14:35:09 +01:00
rostakleinandGitHub 9aefab2297 fix: added working launch.json for VSCode (#4037)
* fix: added working launch json for VScode

* fix: removed unused env
2024-02-20 14:27:56 +01:00
Zoltán VölcseyandGitHub 82e9f28383 fix: Fixed LinkedIn links with unicode (#3953)
* fix: Fixed LinkedIn links with unicode

* feat: Added checkUrlType and getDisplayValueByUrlType util functions
2024-02-20 14:22:26 +01:00
36a6558289 Feat/activity optimistic activities (#4009)
* Fix naming

* Fixed cache.evict bug for relation target deletion

* Fixed cascade delete activity targets

* Working version

* Fix

* fix

* WIP

* Fixed optimistic effect target inline cell

* Removed openCreateActivityDrawer v1

* Ok for timeline

* Removed console.log

* Fix update record optimistic effect

* Refactored activity queries into useActivities for everything

* Fixed bugs

* Cleaned

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-20 14:20:45 +01:00
6fb0099eb3 3969 Adjusted Sidebar (#3971)
* Label fix

* changes done

* Revert "Label fix"

This reverts commit 1233b58099.

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-02-19 23:01:17 +01:00
116254243d [Enter] key autosave for new API key and webhook (#3955)
* Added functionality for onKeyDown for new webhook and new API key, to save when the user presses the [Enter] key

* Update SettingsDevelopersApiKeysNew.tsx

Fix for linter

* Update SettingsDevelopersWebhooksNew.tsx

Fix for linter

* Update SettingsDevelopersApiKeysNew.tsx

Got rid of extra space in if statement

* Update SettingsDevelopersWebhooksNew.tsx

Got rid of extra space for if statement

* Update SettingsDevelopersApiKeysNew.tsx

prettier

* Update SettingsDevelopersWebhooksNew.tsx

prettier

* Fix linter

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-02-19 22:37:02 +01:00
bosiraphaelandGitHub 09783912f3 4008 dont create a contact company if it matches the persons domain (#4057)
* Add SettingsAccountsEmailsBlocklistInput story

* prevent contact creation from the same company

* add todo

* improvements

* Delete packages/twenty-front/src/modules/settings/accounts/components/__stories__/SettingsAccountsEmailsBlocklistInput.stories.tsx

* refactor

* modify after review

* improve code
2024-02-19 18:46:49 +01:00
bosiraphaelandGitHub e34e341ddc 3938 change email auto import to contact ive sent email to (#3995)
* done

* working

* wip

* merge main

* almost done

* improvement
2024-02-19 17:29:38 +01:00
Jérémy MandGitHub 2f9e503a8b fix: ignore enum options sync for now (#4056) 2024-02-19 17:29:30 +01:00
Jérémy MandGitHub e293abe332 Fix/workspace health type (#4053)
* fix: memory issue with truncate command

* fix: LINK doesn't have any default value

* fix: Cannot convert LINK to column type.

* fix: handle old column type and add a warn to fix them manually
2024-02-19 17:28:40 +01:00
Thomas des FrancsandGitHub 4a95798411 Update of the readme with updated visuals (#4041)
* README udpated illustrations & taglines

* Delete packages/twenty-docs/static/img/create-tasks-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/create-tasks-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/follow-your-deals-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/follow-your-deals-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/rich-notes-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/rich-notes-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/shortcut-navigation-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/shortcut-navigation-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/visualise-customer-dark.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/visualise-customer-light.png

Deleting depreciated illustration

* Delete packages/twenty-docs/static/img/logo-square-light.svg

Logo not part of the visual identity

* Updated a typo
2024-02-19 11:40:26 +01:00
Thomas des FrancsandGitHub 9d2e0e9753 Corrected a typo in the visuals ("TEXT TEXT") (#4047) 2024-02-19 11:13:01 +01:00
Charles BochetandGitHub ba050cd33d Release 0.3.1 (#4031) 2024-02-16 20:11:38 +01:00
martmullandGitHub 1b983b005d Fix storybook (#4028) 2024-02-16 18:06:19 +01:00
brendanlaschkeandGitHub dfcf3b4dfa Small fix website: contributors (#4027)
add link on pr, fix github name first letter missing
2024-02-16 17:58:36 +01:00
martmullandGitHub f2ff3e7ab7 Fix onboarding status (#4019)
* Fix onboarding status

* Add comment

* Fix jest tests
2024-02-16 16:58:49 +01:00
martmullandGitHub 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
PranavandGitHub 03a1d3aa75 Updated the docs typo (#3987) 2024-02-16 15:11:49 +01:00
Charles BochetandGitHub 6f2b0f2068 Resolve bugs tied to record creations on table (#4011)
* Resolve bugs tied to record creations on table

* Fix according to PR

* Fix tests
2024-02-16 15:03:57 +01:00
brendanlaschkeandGitHub 595b2f9e6f Webhook Docs (#3966)
* add webhook docs, openapi v3.1, stoplight v8

* *.*
2024-02-16 15:01:37 +01:00
brendanlaschkeandGitHub 547145389c Docs include field description (#3973)
- include field description
2024-02-16 14:38:39 +01:00
Thomas des FrancsandGitHub b90b3e762e Uploading img assets in view of read-me visual update (#4000)
* Uploading some new visuals

* Delete packages/twenty-docs/static/img/preview-light.png

* Rename Github cover light.png to preview-light.png

* replace index light file test

* Uploaded illustration updated versions

* Adding data model illustrations

* Updated font case for data model illustrations

* Rename Emails-dark.png to emails-dark.png

* Rename Emails-light.png to emails-light.png

* Rename Index-dark.png to index-dark.png

* Rename Index-light.png to index-light.png

* Rename Kanban-dark.png to kanban-dark.png

* Rename Kanban-light.png to kanban-light.png

* Rename Keyboard-dark.png to keyboard-dark.png

* Rename Notes-dark.png to notes-dark.png

* Rename Notes-light.png to notes-light.png

* Rename Tasks-dark.png to tasks-dark.png

* Rename Tasks-light.png to tasks-light.png

* Rename Keyboard-light.png to keyboard-light.png

* Added some API settings illus - final update
2024-02-16 14:35:35 +01:00
a06b6c9078 3757 update frontend to show correct view count (#3967)
* Add totalCount to fetch record request

* Add totalCount to object board

* WIP Add totalCount to object table

* Update query total count on update / delete optimistic effects

* Remove console log

* Load fewer data for totalcount

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-16 14:33:51 +01:00
Charles BochetandGitHub a5ecbf7df5 Integrations: design fixes and remove feature flag (#4003)
* Integrations: design fixes and remove feature flag

* Fix
2024-02-16 13:35:45 +01:00
WeikoandGitHub 8e3723b88e Fix update on delete record (#3996) 2024-02-16 13:08:24 +01:00
Jérémy MandGitHub 44ac16c82e fix: impact too many records (#3993)
* fix: impact too many records

* fix: change env name

* fix: remove env name from error
2024-02-16 11:17:37 +01:00
Jérémy MandGitHub c2c14d79a9 fix: workspace cache version (#3999) 2024-02-16 11:06:51 +01:00
Jérémy MandGitHub f47159d84d fix: invalidate cache when no record inside workspace cache version (#3994)
* fix: invalidate cache when no record inside workspace cache version

* fix: use getVersion
2024-02-16 10:37:25 +01:00
Jérémy MandGitHub 34d02cf4ed feat: add default value for some type of fields (#3991)
feat: add default value for some kind of fields
2024-02-16 10:34:42 +01:00
rostakleinandGitHub d85209cf4a feat: filter people in CommandMenu via last name, email and phone (#3997) 2024-02-16 09:55:50 +01:00
Swayam VasavadaandGitHub faf3a172a1 Fixed label transform issues (#3985) 2024-02-16 09:51:09 +01:00
Kanav AroraandGitHub ece4dc95bd 3970-label fix (#3974)
label fix
2024-02-16 09:45:37 +01:00
Jérémy MandGitHub 990cb107a1 feat: workspace health target column map fix (#3932)
* feat: workspace health fix target column map

* fix: remove log

* feat: refactor health fixer

* fix: default-value issue and health check not working with composite

* fix: enhance target column map fix

* feat: create workspace migrations for target-column-map issues

* feat: enhance workspace-health issue detection
2024-02-15 18:04:12 +01:00
bosiraphaelandGitHub 0b93a6785b 3815 blocklist connect frontend (#3930)
* wip

* wip

* move blocklist to connectedAccount

* wip

* format date

* fix styling

* renaming

* fix imports

* fix imports

* Rename BlockListItem.ts to BlocklistItem.ts

* Add IS_BLOCKLIST_ENABLED feature flag and remove IS_MESSAGING_ENABLED gate at model creation

* hide blocklist if feature flag is disabled
2024-02-15 17:18:04 +01:00
WeikoandGitHub 4b3eeac333 [messaging] add defaultValue to isContactAutoCreationEnabled (#3992) 2024-02-15 16:42:03 +01:00
martmullandGitHub 8636be5e4b 3129 show page relation field add delete menu item (#3975)
* Fix typing error

* Add delete relation button

* Disable delete for workspace members

* Fix lint
2024-02-15 11:31:21 +01:00
Charles BochetandGitHub 88990144cf Fix website build (#3986)
* Fix website build

* Try fix

* Try fix
2024-02-15 11:03:29 +01:00
Charles BochetandGitHub 9777c5fbce Fix website build (#3983) 2024-02-14 21:28:26 +01:00
WeikoandGitHub 62058dd0e9 [worker] add more logs to queue-worker (#3982) 2024-02-14 21:28:17 +01:00
WeikoandGitHub 49cc01d7d8 [messaging] fix add messageParticipant not in a transaction (#3981) 2024-02-14 19:28:25 +01:00
WeikoandGitHub 2055f64acd fix CreateCompaniesAndContactsAfterSyncJobData import (#3979) 2024-02-14 18:58:49 +01:00
Charles BochetandGitHub 4613f64910 Add proper ORM and postgres support (#3978)
* Add postgresql support

* Fixes

* Fix perfs
2024-02-14 17:53:50 +01:00
bosiraphaelandGitHub 94ad0e33ec 3889 activate settingsaccountsemailsinboxsettings (#3962)
* update email visibility in settings

* improve styling

* Add contact auto creation toggle to inbox settings

* re
move soonpill

* update Icon

* create job

* Add logic to create contacts and companies for message participants without personId and workspaceMemberId

* add listener

* wip

* wip

* refactoring

* improve structure

* Add isContactAutoCreationEnabled method to MessageChannelService

* wip

* wip

* clean

* add job

* fix bug

* contact creation is working

* wip

* working

* improve code

* improve typing

* resolve conflicts

* fix

* create company repository

* move util

* wip

* fix
2024-02-14 17:30:17 +01:00
WeikoandGitHub 0b2ffb0ee6 add rimraf to server dependencies (#3977) 2024-02-14 16:56:37 +01:00
bosiraphaelandGitHub 7d80610428 3814 create blocklist data model (#3927)
* wip

* wip

* wip

* working
2024-02-14 16:38:16 +01:00
Jeet DesaiandGitHub 47d7e19570 Update custom object placeholder (#3876)
* #3874 update custom object placeholder

* #3876 removed object-edit folder and file

* #3833 update loading image

* remove image file
2024-02-13 23:24:21 +01:00
Mohamed Houssein DouiciandGitHub 8d06d37f73 docs: change the slug for local setup link (#3947)
fix: change the slug for local setup link
2024-02-13 23:20:07 +01:00
Mohamed Houssein DouiciandGitHub 504c23c3b4 docs: add a section for troubleshooting the local setup (#3948) 2024-02-13 23:19:19 +01:00
Jeet DesaiandGitHub 2a45aa9e0d Update loading image (#3929)
#3833 update loading image
2024-02-13 23:18:42 +01:00
7b88e5bdaf 3865-Add-Integrations (#3870)
* initial commit setup

* ui done

* added links

* changed brand logos

* Twenty logo fix

* Windmill logo fix

* Fix typo

* Add feature flag

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-13 23:11:05 +01:00
martmullandGitHub 15a5fec545 Zapier add description to labels (#3787)
* Use object metadata graphql api to fetch input fields

* Clean code

* Clean code

* Remove targetColumnMap

* Remove duplicated testing

* Fix labels
2024-02-13 22:22:47 +01:00
e011ecbd6f POC: generate twenty-server package.json with Nx (#3654)
* POC: generate twenty-server package.json with Nx

* Re-add passport

* Fix instal

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-13 22:16:21 +01:00
0d41023edd Activity Editor hot key scope management (#3568)
* on click focus on activity body editor

* acitivity editor hot key scope added

* classname prop added escape hot key scope call back added

* passing containerClassName prop for activity editor

* hot key scope added

* console log cleanup

* activity target escape hot key listener added

* tasks filter hot key scope refactor

* scope renaming refactor

* imports order linting refactor

* imports order linting refactor

* acitivity editor field focus state and body editor text listener added

* logic refactor removed state for activity editor fields focus

* removed conflicting click handler of inline cell creating new scope

* linting and formatting

* acitivity editor field focus state and body editor text listener added

* adding text at the end of line

* fix duplicate imports

* styling: gap fix activity editor

* format fix

* Added comments

* Fixes

* Remove useListenClickOutside, state, onFocus and onBlur

* Keep simplifying

* Complete review

* Fix lint

---------

Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-02-13 21:38:53 +01:00
WeikoandGitHub 1afe8aecd0 Fix missing feature flag on messaging listeners (#3952)
* Fix missing feature flag on messaging listeners

* Update workspace-query-runner.service.ts
2024-02-13 20:23:09 +01:00
Jérémy MandGitHub 8ce7020b12 feat: sync metadata can alter and update a field (#3944) 2024-02-13 19:36:58 +01:00
WeikoandGitHub 87fafae9be [messaging] Removing TO requirement for email import (#3949) 2024-02-13 19:19:57 +01:00
WeikoandGitHub 458e8c839f Add workspacePreQueryHook module (#3879)
* rebase

* reorganise messaging folders

* fix

* fix after review

* fix yarn lock
2024-02-13 18:23:29 +01:00
WeikoandGitHub 36b69a8625 [messaging] Fix messaging import with no person skipped email (#3941) 2024-02-13 16:55:06 +01:00
WeikoandGitHub 7f122a4671 [messaging] Remove ids from enqueued jobs (#3936)
* [messaging] Fix import message participant uppercase

* fix job not enqueuing
2024-02-13 16:13:34 +01:00
WeikoandGitHub b6a86ebf96 [messaging] Fix import message participant uppercase (#3934) 2024-02-13 16:03:44 +01:00
52bb33b566 Disable buffered logs (#3892)
* Update main.ts

* Update command.ts

* Update queue-worker.ts

* Enable users to disable log buffering

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-13 14:50:25 +01:00
ec48e66eeb 3921 delete messagethreads after deleting connectedaccount (#3925)
* created listener

* working

---------

Co-authored-by: Weiko <[email protected]>
2024-02-13 14:36:55 +01:00
bosiraphaelandGitHub 1d1976ef22 3807 auto creation of contact when importing emails (#3888)
* Add CreateContactService to messaging services

* Add logic to create a contact if it doesn't exist

* Add name

* Improvements

* contact creation working

* fix bug

* Add IsPersonEmailService to check if an email is personal or not

* filter is working

* improve filter

* create companies and people

* Refactor createContactFromHandleAndDisplayName to createContactAndCompanyFromHandleAndDisplayName

* improve regex

* reorganizing services

* updates

* reorganize folders

* wip

* use transaction

* wip

* wip

* wip

* batch queries

* almost working

* working
2024-02-13 14:24:28 +01:00
Jeet DesaiandGitHub b286232ea7 Added the dark mode version of empty states (#3906)
* #3898 added empty states in dark mode version

* resolved eslint issue
2024-02-13 12:31:26 +01:00
263c940da6 Added Single Command for Frontend + Backend (#3909)
* Added single command

* Fix according to review

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-13 12:23:29 +01:00
martmullandGitHub d016e5ff03 BUG FIX: Create workspace member if inviteHash exists (#3917)
Create workspace member if inviteHash exists
2024-02-12 17:43:26 +01:00
Jérémy MandGitHub 35fce6a6b4 feat: health check enum (#3913)
* feat: health check enum

* fix: cleaner if condition
2024-02-12 17:32:05 +01:00
Jérémy MandGitHub b0b033aec9 fix: workspace health (#3916)
* fix: workspace health applying migrations multiple times

* fix: remove log

* fix: use logger
2024-02-12 16:17:17 +01:00
WeikoandGitHub c13e55a753 Fix bull-mq retry option and exceptions not being captured for jobs (#3905)
* Fix bull-mq retry option

* fix exception inside worker

* add logs

* fix after review
2024-02-12 15:12:52 +01:00
1265dc74d0 Closes #2413 - Building a chrome extension for twenty to store person/company data into a workspace. (#3430)
* build: create a new vite project for chrome extension

* feat: configure theme per the frontend codebase for chrome extension

* feat: inject the add to twenty button into linkedin profile page

* feat: create the api key form ui and render it on the options page

* feat: inject the add to twenty button into linkedin company page

* feat: scrape required data from both the user profile and the company profile

* refactor: move modules into options because it is the only page using react for now

* fix: show add to twenty button without having to reload the single page application

* fix: extract domain of the business website instead of scrapping the industry type

* feat: store api key to local storage and open options page when trying to store data without setting a key

* feat: send data to the backend upon click and store it to the database

* fix: open options page upon clicking the extension icon

* fix: update terminology from user to person to match the codebase convention

* fix: adopt chrome extension to monorepo approach using nx and get the development server working

* fix: update vite config for build command to work per the requirement

* feat: add instructions in the readme file to install the extension for local testing

* fix: move server base url to a dotenv file and replace the hard-coded url

* feat: permit user to configure a custom route for the server from the options page

* fix: fetch api key and route from local storage and display on options page to inform users of their choices

* fix: move front base url to dotenv and replace the hard-coded url

* fix: remove the trailing slash from person and company linkedin username

* fix: improve code commenting to explain implementation somewhat better

* ci: introduce a workflow to build chrome extension to ensure it can be published

* fix: format files to display code in a consistent manner per the prettier configuration in codebase

* fix: improve the commenting significantly to explain important and hard-to-understand parts of the code

* fix: remove unused permissions from the manifest file for publishing to the chrome web store

* Add nx

* Fix vale

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-12 12:30:23 +01:00
Charles Bochet a15128df36 Remove virtual fieldType Relation from fieldMetadata sync 2024-02-11 10:23:37 +01:00
d28843bb85 feat: order board cards by record position (#3902)
* feat: order board cards by record position

Closes #3848

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-09 18:09:13 +01:00
713ec9494d Added create an activity from open activity (#3903)
#3895 added create an activity from open activity

Co-authored-by: Lucas Bordeau <[email protected]>
2024-02-09 18:06:44 +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 <[email protected]>
2024-02-09 17:37:44 +01:00
bosiraphaelandGitHub 917fc5bd4d 3811 add accounts loader (#3829)
* rename exports

* rename exports

* fix css

* done

* updating image
2024-02-09 15:29:11 +01:00
bosiraphaelandGitHub 11d1c4c161 3808 auto creation of company when importing emails (#3881)
* create service

* wip

* use raw queries

* creating companies is working

* Fix participant handle domain name extraction

* Add HTTP service to fetch company info from domain name

* Handle 404

* Fix missing parameter in INSERT query

* wip

* renaming

* Add typing
2024-02-09 15:28:35 +01:00
bosiraphaelandGitHub a8cb4dc2f4 Press enter to add to blocklist (#3847)
* Press enter to add to blocklist

* Add support for using ts-key-enum in SettingsAccountsEmailsBlocklistInput

* Sort imports
2024-02-09 15:26:18 +01:00
brendanlaschkeandGitHub 59721134dc Update trouble shooting section (#3868)
update trouble shooting section
2024-02-09 15:16:53 +01:00
Charles Bochet 66adbb1783 Enfoce high jest code coverage 2024-02-09 15:14:43 +01:00
cca72da708 Activity cache injection (#3791)
* WIP

* Minor fixes

* Added TODO

* Fix post merge

* Fix

* Fixed warnings

* Fixed comments

* Fixed comments

* Fixed naming

* Removed comment

* WIP

* WIP 2

* Finished working version

* Fixes

* Fixed typing

* Fixes

* Fixes

* Fixes

* Naming fixes

* WIP

* Fix import

* WIP

* Working version on title

* Fixed create record id overwrite

* Removed unecessary callback

* Masterpiece

* Fixed delete on click outside drawer or delete

* Cleaned

* Cleaned

* Cleaned

* Minor fixes

* Fixes

* Fixed naming

* WIP

* Fix

* Fixed create from target inline cell

* Removed console.log

* Fixed delete activity optimistic effect

* Fixed no title

* Fixed debounce and title body creation

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-09 14:51:30 +01:00
9ceff84bbf Set opportunity stage as editable (#3838)
* Set opportunity stage as editable

* Fix comments

* Add command for migration

* Fixes

---------

Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-02-09 14:44:11 +01:00
Charles BochetandGitHub 0185c2a36e Fix logger behavior (#3897) 2024-02-09 14:43:36 +01:00
Jérémy MandGitHub 2560ce25e0 feat: workspace health default-value fix (#3894)
* feat: workspace health default-value fix

* fix: rename function regarding review
2024-02-09 14:16:11 +01:00
ThaïsandGitHub 201a2c8acc feat: display record identifier field as first column in table (#3788)
* feat: display record identifier field as first column in table

& forbid hiding and moving record identifier column

Closes #3303

* refactor: add availableTableColumnKeysSelectorScopeMap

* feat: show plus icon button for label identifier column and dropdown menu for other columns

* fix: use label identifier field value in RecordShowPage title

* refactor: remove availableColumnKeys selector

* refactor: review - compute label identifier logic in mapViewFieldsToColumnDefinitions + remove selectors

* fix: several fixes

* fix: fix board fields isVisible

* fix: fix board fields reordering

* fix: more board fields fixes

* fix: fix hiddenTableColumnsSelectorScopeMap
2024-02-09 12:36:08 +01:00
martmullandGitHub 9299ad1432 Fix delete incomplete workspaces (#3893)
* Fix delete incomplete workspaces

* Add multiple workspace filtering option
2024-02-09 12:26:10 +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 1701c30eb1.

* Add defaultAvatarUrl to core user

This reverts commit 1701c30eb1.

* 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 8aa20a3436.

* Fix

* Revert "Fix"

This reverts commit 2df7e9b656.

* Revert "Revert "Clean Mock Requests""

This reverts commit 3aefef8e96.

* Revert "Fix tentative"

This reverts commit 13e7748d6f.

* Update filename

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-09 12:06:11 +01:00
Charles Bochet 3fc18aeec1 Fix twenty-server build 2024-02-09 11:18:58 +01:00
Charles Bochet 3d7b5902e6 Fix twenty-server build 2024-02-09 11:14:02 +01:00
7ec968d5a2 feat: workspace health type fix (#3890)
* feat: workspace health type fix

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-08 18:59:17 +01:00
90b58518bb feat: change RecordShowPage Relation Card field display for TO_ONE_OB… (#3596)
feat: change RecordShowPage Relation Card field display for TO_ONE_OBJECT relation fields

Closes #3409

Co-authored-by: Charles Bochet <[email protected]>
2024-02-08 18:46:35 +01:00
Jérémy MandGitHub d3fe1b9e31 feat: workspace:health nullable fix (#3882) 2024-02-08 18:22:29 +01:00
bosiraphaelandGitHub 2ba9a209e8 3804 use email visibility to display only the shared information frontend (#3875)
* create and use component

* visibility working

* Fix click behavior for email thread previews

* Add dynamic styling to EmailThreadPreview component

* refactor to respect the convention
2024-02-08 17:49:29 +01:00
WeikoandGitHub 99e2dd6899 [messaging] Add messageParticipant matching once people emails are updated (#3887)
* poc nest event emitter

* add match message participant listener

* add workspacemember listener

* fix after review

* fix deep-equal
2024-02-08 17:42:33 +01:00
c53b593ea6 Custom swagger endpoint for docs (#3869)
* custom swagger endpoint
metadata graphql
remove /rest from endpoint

* fixed pseudo scheme creation

* move graphql playground creation to own file, added navbar to change baseurl and token

* add schema switcher, fix changing url not applied, add invalid overlay

* fix link color

* removed path on Graphql Playground, naming fixes subdoc

* - fixed overflow issue Rest docs

* history replace & goBack

* Small fix GraphQL playground broken

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-02-08 16:54:20 +01:00
719da29795 Store compact view status (#3850)
* Store compact view status

* Rename to isCompact

* Fixes

---------

Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-02-08 16:33:52 +01:00
6ee179442a Add one to many relation between opportunity and attachment (#3866)
* Add one to many relation between opportunity and attachment

* Fix opportunity type

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-02-08 15:22:52 +01:00
Charles BochetandGitHub 7eaf56f566 Fix IconPicker broken storybook tests (#3884) 2024-02-08 15:14:22 +01:00
bcc62596f6 Add defaultAvatarUrl to core user (#3883)
* Add defaultAvatarUrl to core user

This reverts commit 1701c30eb1.

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-08 14:46:37 +01:00
Lucas BordeauandGitHub e2db6a994d Fixed drawer not closing on task creation on Show Page (#3867)
Fixed close dropdown
2024-02-08 14:12:23 +01:00
martmullandGitHub 00a46b21dc 3272 add a page to create and edit webhook (#3859)
* Reorganize files

* Add new webhook form

* Reorganize files

* Add Webhook update

* Fix paths

* Code review returns
2024-02-08 13:02:37 +01:00
Jeet DesaiandGitHub ddc5165178 Added skeleton loader on page load (#3740)
* #3722 added skeleton loader on page load

* #3740 Resolved comment in loader
2024-02-08 12:52:28 +01:00
7001ca83d1 3491 launch cleaning cron (#3872)
* Add command to delete incomplete workspaces

* Inject command dependencies

* Fix command

* Do not delete core.workspace

* Reorganize files

* Delete src/workspace/cron

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-02-07 18:52:48 +01:00
Jérémy MandGitHub 6e3a8e3461 Feat/workspace health core fix (#3863)
* feat: add deletion support on sync metadata command

* fix: remove debug

* feat: wip workspace health command add --fix option

fix: remove test

* feat: core of --fix option for workspace-health
2024-02-07 18:27:35 +01:00
850eab8f8f Add rate limiting in the server using built in Nest.js capability (#3566)
* Add rate limiting in the server using built in Nest.js capability

* Generatekey based on ip address when an http request is sent

* Update env var types to number for ttl and limit

* Remove unused env variables

* Use getRequest utility function

* fix: remove dist from path

* fix: adding .env variables

* fix: remove unused functions

* feat: throttler plugin

* Fix according to review

---------

Co-authored-by: Jérémy Magrin <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-02-07 18:11:32 +01:00
bosiraphaelandGitHub 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
Jérémy MandGitHub a908353955 feat: add deletion support on sync metadata command (#3826)
* feat: add deletion support on sync metadata command

* fix: remove debug
2024-02-07 15:38:23 +01:00
b119dd8e9c Added sanitize funtion to normalize the link input (#3543)
* Added sanitize funtion to sanitize the link input of the companies record

* Enabled Eslint

* FIXED: Sanitize www. and query params

Added logic to sanitize both www  and query params in the link input.

* fix: fix useSpreadsheetPersonImport tests

* Refactored sanitizeLink function at packages/twenty-front/src/modules/object-record/utils/sanitizeLinkRecordInput.ts

Co-authored-by: Thaïs <[email protected]>

---------

Co-authored-by: Thaïs <[email protected]>
2024-02-07 06:09:25 -03:00
9f59ddc059 Rename recordPosition into position (#3864)
* Rename recordPosition into position

* Fix according to review

---------

Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-02-07 09:40:35 +01:00
martmullandGitHub eb54401afe Fix bug and remove useless stuff (#3861) 2024-02-06 18:06:15 +01:00
brendanlaschkeandGitHub 7b8fffc3b8 Custom object import csv (#3756)
* poc custom object import csv

* fix fullname

* lint

* add relation Ids, fix label full name, add simple test

* mock missing fields?

* - fix test

* validate uuid, fix key in column dropdown, don't save non set composite fields, allow only import relations where toRelationMetadata
2024-02-06 16:22:39 +01:00
WeikoandGitHub 0096e60489 [messaging] add cronjob for workspaces messages partial sync (#3800)
* [messaging] add cronjob for workspaces messages partial sync

* run cron every 10 minutes

* use logger
2024-02-05 17:15:11 +01:00
a802338996 fix: options value can't contain special characters (#3738)
* fix: options value can't contain special characters

* add tests for formatFieldMetadataItemInput util

* fix test

* fix: add emoji test

---------

Co-authored-by: corentin <[email protected]>
2024-02-05 15:12:08 +01:00
Jeet DesaiandGitHub d74b8b7fe8 Added placeholder in task list (#3785)
#3769 added placeholder in task list
2024-02-05 15:11:09 +01:00
Jeet DesaiandGitHub ee7e8b9ab2 Hide default selected icon from search (#3752)
* #3748 hide default selected icon from search

* change the type of icon array

* #3752 resolved comment in icon picker
2024-02-05 15:08:11 +01:00
brendanlaschkeandGitHub 3a9007b2d4 Member card fix email display (#3555)
* member card fix email display

* lint

* on signup save userEmail
2024-02-05 15:02:57 +01:00
brendanlaschkeandGitHub 230e957119 blocknote update 0.11.2 (#3766) 2024-02-05 15:02:33 +01:00
Félix MalfaitandGitHub a5989a470c Improve Documentation (#3795)
* Begin docs improvement

* Keep improving documentation

* Upgrade Docusarus

* Fix broken links
2024-02-05 15:01:37 +01:00
Jeet DesaiandGitHub 6748dfebc4 Added loader in sign-in-up button (#3801)
#3375 added loader in sign-in-up button
2024-02-05 14:59:37 +01:00
8dda4b0b8f GH 3365 Add contributors page on twenty-website (#3745)
* add transition in mobile navbar

* add contributors listing page

* Add breadcrumb component

* Add profilecard component

* Make profile info dynamic

* Style activity log component

* Make title a re-usable component

* Make card container re-usable

* add rank and active days logic

* complete single contributor page

* add styles for mobile

* Add github link

* Reset header desktop

* update calendar height

* remove conditional header

* add GH PR link

* display 10 prs

* Remove employees and fix rank

* Unrelated CSS adjustment

---------

Co-authored-by: Félix Malfait <[email protected]>
2024-02-05 13:56:12 +01:00
Lucas BordeauandGitHub 33bb48e681 Refactored dependencies from App component (#3763)
* Refactored PageTitle to remove a dependency to location from App component

* Refactored DefaultHomePage and DefaultPageTitle to remove dependencies from App component.
2024-02-05 11:27:51 +01:00
bosiraphaelandGitHub 6de9d972ec Change calendar transparency (#3732)
fix
2024-02-05 11:27:05 +01:00
Charles BochetandGitHub 8692e5d1ca Release 0.3.0 (#3793) 2024-02-03 09:05:11 +01:00
Charles BochetandGitHub 7b084ba46e Enable Rating Field (#3792) 2024-02-03 08:55:29 +01:00
Lucas BordeauandGitHub 44c36e348a Disabled debug hotkey scope (#3762) 2024-02-02 18:14:10 +01:00
WeikoandGitHub 729e2dc651 [Messaging] Delete empty threads after message deletion import (#3716)
* [Messaging] Delete empty threads after message deletion import

* fix
2024-02-02 18:13:41 +01:00
Anoop PandGitHub c56153cab1 Update sandpack-react to latest version (#3770)
fix: update sandpack-react to resolve broken documentation
2024-02-02 18:13:15 +01:00
WeikoandGitHub ae5f82df59 [messaging] add fallback if lastHistoryId has been invalidated (#3782) 2024-02-02 15:28:38 +01:00
8816b7fb31 Fetch viewable thread from apollo cache (#3783)
Co-authored-by: Thomas Trompette <[email protected]>
2024-02-02 14:41:00 +01:00
Thomas des FrancsandGitHub 096f2c456c Updating pull request prioritization policy (#3775)
Introduce specific rules for Pull Requests (PRs) tagged with "size: minutes" and "size: days".
2024-02-02 14:38:00 +01:00
c6c50180b7 Add animation during email message opening (#3774)
* Add animation while message opening

* Set isDisplayed as always true

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-02-02 14:37:46 +01:00
Deepak KumarandGitHub 03f89f483c GH-3734 Display password reset in auth modal for signed in user as well (#3764)
Add function to check if component should have modal in layout
2024-02-02 11:24:11 +01:00
Jérémy MandGitHub 5fd982b009 feat: execute pending migrations command (#3767) 2024-02-02 11:10:26 +01:00
Jérémy MandGitHub 25f4a80c7c fix: exception handler (#3768)
* fix: user is not sent to sentry

* fix: too much exceptions thrown
2024-02-02 09:26:48 +01:00
Charles Bochet edeb824884 Fix record creation broken 2024-02-02 08:16:25 +01:00
Charles BochetandGitHub 39f4ec9e7b Fix storybook tests on Field Preview (Settings) (#3761) 2024-02-01 17:44:36 +01:00
Jeet DesaiandGitHub dda9eaca2a Place cursor at end when entering cell (#3743)
#3723 #3724 place cursor at end when entering cell
2024-02-01 17:37:32 +01:00
Jeet DesaiandGitHub d667bc4a90 Changed upload button border to medium (#3744)
#3715 changed upload button border to medium
2024-02-01 17:21:48 +01:00
7b2b70e479 Create record position field (#3739)
* Create record field on non syst standard objects + on custom objects

* Create workspace migration

* Fix naming and add seed

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-02-01 16:56:38 +01:00
Jérémy MandGitHub 9799326533 fix: logs folder doesn't exist (#3759) 2024-02-01 16:47:36 +01:00
Jérémy MandGitHub 3c89a97a9f feat: add dry-run option to sync-metadata command (#3758)
* feat: add dry-run option to sync-metadata command

* feat: save metadata logs in dry-run mode
2024-02-01 16:35:32 +01:00
Jérémy MandGitHub cdc51add7d feat: add user to sentry (#3467)
* feat: wip add user to sentry

* feat: wip interceptor

* feat: wip add user to sentry

* feat: add user into sentry errors

* fix: hide stack trace in production

* fix: properly log commands and handle exceptions

* fix: filter command exceptions

* feat: handle jobs errors
2024-02-01 16:14:08 +01:00
ThaïsandGitHub 7adb5cc00d feat: delete favorite in cache on related record deletion (#3751)
* feat: delete favorite in cache on related record deletion

* fix: fix useCreateOneRecord tests

* fix: fix usePipelineSteps tests

* fix: fix useCreateManyRecords tests

* fix: add null relation field values in useGenerateObjectRecordOptimisticResponse
2024-02-01 16:09:32 +01:00
WeikoandGitHub 142affbeea [messaging] reorder messages desc to asc (#3755) 2024-02-01 15:28:00 +01:00
martmullandGitHub 68e65e9526 Fix zapier (#3688)
* Fix zapier testing

* Fix zapier create action

* Add timezone to dates
2024-02-01 15:19:42 +01:00
Jérémy MandGitHub 8abd5be4b5 fix: sync metadata shouldn't remove non custom fields (#3750)
* fix: sync metadata shouldn't remove non custom fields

* fix: filter out custom relations
2024-02-01 14:25:50 +01:00
bosiraphaelandGitHub bd5d930be2 3706 add email loader (#3731)
* add images

* update component

* wip

* add loader cntainer

* wip

* Loader is working

* fix color and keyframes

* change loading message for threads
2024-02-01 10:15:41 +01:00
Jérémy MandGitHub fc01c8cd4f fix: grapQL errors are not detailed enough (#3622) 2024-02-01 09:45:58 +01:00
Charles BochetandGitHub 4290db3566 Fix new board bugs (#3730)
* Fix freeze on field visibility change on board

* Fix

* Fix lint
2024-01-31 17:21:17 +01:00
WeikoandGitHub e787b4e3b8 [messaging] add more logs to gmail full-sync (#3728) 2024-01-31 17:03:11 +01:00
389c263e2e Design fixes + hide email tab if not a company or a person (#3720)
Design fixes + hide email tab

Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-31 16:55:04 +01:00
WeikoandGitHub 82d99afe2f Fix workspace-sync when alter with relation (#3721) 2024-01-31 15:50:54 +01:00
Lucas BordeauandGitHub 397de955be Fixed storybook tests (#3719)
Fix storybook tests
2024-01-31 12:34:06 +01:00
bosiraphaelandGitHub 7d898f89a9 3696 add emails tab empty state on shows (#3702)
* empty inbox

* fix No Files alignment

* add animation when exiting the screen

* update calendar settings to be singular
2024-01-31 12:18:47 +01:00
Lucas BordeauandGitHub d7e4b4116f Minor fixes empty state (#3703)
* Minor fixes for Timeline empty states
* Refactored TimelineCreateButtonGroup
2024-01-31 12:12:51 +01:00
ba77d7430a Added empty card for show relations (#3612)
#3610 Add empty states for show relations

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-31 11:57:48 +01:00
Anoop PandGitHub f6e9456ef6 fix: columns overlapping with checkbox column when horizantally scrolling (#3705) 2024-01-31 11:49:01 +01:00
Jeet DesaiandGitHub edf62f3a3b Resolved dropdown style issue (#3620)
* #3617 #3615 resolved dropdown style issue

* resolved lint error

* resolved gap issue

* resolved lint error
2024-01-31 11:41:27 +01:00
Charles BochetandGitHub c8e4d0ab9a Board compact view and Company Picker for opportunity special case (#3713)
* Re-enabled board compact mode

* Add specific case for opportunity to display company picker

* Add infinite scroll

* Remove useEffect

* Fix

* Fix
2024-01-31 11:37:03 +01:00
ThaïsandGitHub 29339ef99a fix: detach relation records in cache on record deletion (#3707)
* fix: detach relation records in cache on record deletion

* fix: fix useGetRelationMetadata tests
2024-01-31 11:36:26 +01:00
9597b1ae41 Avoid fetching more emails when first query loading (#3709)
Co-authored-by: Thomas Trompette <[email protected]>
2024-01-31 10:25:22 +01:00
Tangerine KugelmannandGitHub 06e35e5119 chore: create security.txt (#3684)
* chore: create security.txt

Adding a security.txt file enables security researchers to quickly and easily see where they can submit security issues and know that they are being taken serious. From the proposal website:

> When security risks in web services are discovered by independent security researchers who understand the severity of the risk, they often lack the channels to disclose them properly. As a result, security issues may be left unreported. security.txt defines a standard to help organizations define the process for security researchers to disclose security vulnerabilities securely.

See also https://securitytxt.org

* homer merge with hedge

* re-add contact email

* move file to public website
2024-01-30 23:28:40 +01:00
WeikoandGitHub 03e5c792f0 [messaging] fix message-channel-message-association field name as dependencies (#3712) 2024-01-30 19:35:41 +01:00
Charles BochetandGitHub 2e4f2d54aa Refactor board and table options (#3700)
* Refactor board and table options

* Fix

* Fix
2024-01-30 18:38:31 +01:00
WeikoandGitHub 64b2ef3dc2 Delete message when no more association (#3701)
* Delete message when no more association

* remove unused injections

* rename methods

* fix after review
2024-01-30 17:58:36 +01:00
bosiraphaelandGitHub 8b9d62e425 3681 avatars are not appearing in the messages and people name should be bold (#3692)
* update font weight

* fix picture not appearing
2024-01-30 17:46:25 +01:00
1838d8e6fb Use scoped recoil state for email thread page (#3699)
Use scoped recoild state for email thread page

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-30 17:08:34 +01:00
bosiraphaelandGitHub 2f7f6d3241 Fix empty state flashing on SettingsAccountsEmailsSyncSection (#3698)
fix
2024-01-30 15:40:14 +01:00
Charles BochetandGitHub f68de1a299 Board improvements (#3694)
* New board improvements

* Improve board

* Fix
2024-01-30 15:24:03 +01:00
511627ccb8 Fix count avatar color + align thread preview items (#3695)
Fix count avatar and align items

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-30 15:01:12 +01:00
84b6bea2b9 Split back fetch more loader for record table and emails (#3693)
* Split back fetch more loader

* Rename loader

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-30 14:50:33 +01:00
Jérémy MandGitHub 73f6876641 feat: workspace sync (#3505)
* feat: wip workspace sync

* feat: wip lot of debugging

* feat: refactor and fix sync

* fix: clean

fix: clean

* feat: add simple comparator tests

* fix: remove debug

* feat: wip drop table

* fix: main merge

* fix: some issues, and prepare storage system to handle complex deletion

* feat: wip clean and fix

* fix: reflect issue when using array instead of map and clean

* fix: test & sync

* fix: yarn files

* fix: unecesary if-else

* fix: if condition not needed

* fix: remove debug

* fix: replace EQUAL by SKIP

* fix: sync metadata relation not applied properly

* fix: lint issues

* fix: merge issue
2024-01-30 14:40:55 +01:00
bosiraphaelandGitHub 3a480f1506 fix-right-drawer-bounces-when-opening-a-different-thread (#3691)
* fix-right-drawer-bounces-when-opening-a-different-thread

* fix
2024-01-30 13:38:34 +01:00
ThaïsandGitHub 0bfc63161b fix: fix delete records optimistic effect not re-rendering queries af… (#3690)
fix: fix delete records optimistic effect not re-rendering queries after cache.evict
2024-01-30 12:26:05 +01:00
bosiraphaelandGitHub a012ba1087 Fix message opening (#3687)
* fix

* improve styling so we can close the message by clicking on the whole header

* fix line overflowing

* fix
2024-01-30 11:56:26 +01:00
bosiraphaelandGitHub fc63c51d6d Fix right drawer first bounce (#3689)
fix-right-drawer-first-bounce
2024-01-30 11:39:51 +01:00
b07d67c624 New Empty States (#3465)
New empty states
---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-30 11:01:56 +01:00
96bcddc056 Add participant avatars + remove tbody from fetchMore loader (#3679)
* Add participant avatars + remove tbody from fetchMore loader

* Update sender names

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-30 10:47:15 +01:00
Jeet DesaiandGitHub c9a19fd4d9 Removed border bottom on task list (#3641)
* #3640 remove border bottom in task list

* removing border bottom from only last child
2024-01-30 09:58:51 +01:00
da8dd671d1 fix: rating type issues (#3638)
* fix: rating type issues

* fix: rebase

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-30 09:57:30 +01:00
brendanlaschkeandGitHub e7f2af6f0b Document feature flags (#3655)
* document feature flags

* .
2024-01-30 09:50:13 +01:00
0239585d81 TWNTY-3483 - Add tests for modules/object-record/record-table/record-table-cell/hooks (#3685)
Add tests for `modules/object-record/record-table/record-table-cell/hooks`

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2024-01-30 09:48:28 +01:00
a9349f9fea Add deleteOneObject mutation (#3682)
* Add deleteOneObject mutation

* codegen

* move relationToDelete to dedicated file

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-30 09:47:58 +01:00
49f33bbe2e fix: fix record deletion optimistic effect (#3683)
* fix: fix record deletion optimistic effect

* fix: fix renamed method after rebase

* Re-add evict

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-30 09:33:28 +01:00
Charles BochetandGitHub e951fb70f8 Add board Action bar and context menu (#3680)
* Add board Action bar and context menu

* Fix according to review
2024-01-30 09:21:02 +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 <[email protected]>
2024-01-29 18:23:09 +01:00
bosiraphaelandGitHub e46085984c 3669 disable radio buttons in settingsaccountsinboxsettingsvisibilitysection (#3678)
* update visibility and disable radio button

* add soon pill
2024-01-29 17:57:39 +01:00
Lucas BordeauandGitHub 3b458d5207 Activity injection into Apollo cache (#3665)
- Created addRecordInCache to inject a record in Apollo cache and inject single read query on this record
- Created createOneRecordInCache and createManyRecordsInCache that uses this addRecordInCache
- Created useOpenCreateActivityDrawerV2 hook to create an activity in cache and inject it into all other relevant requests in the app before opening activity drawer
- Refactored DEFAULT_SEARCH_REQUEST_LIMIT constant and hardcoded arbitrary request limits
- Added Apollo dev logs to see errors in the console when manipulating cache
2024-01-29 16:12:52 +01:00
64d0e15ada Put back timeline thread page size const (#3676)
Put timeline thread page size const

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-29 15:43:48 +01:00
9da9d1e3bd Build infinite scroll for email threads (#3666)
* Use recoil state for page info

* Remove memoization

* Remove right drawer fetch more loader

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-29 15:28:28 +01:00
ThaïsandGitHub a58b4cf437 refactor: apply relation optimistic effects on record update (#3556)
* refactor: apply relation optimistic effects on record update

Related to #3509

* refactor: remove need to pass relation id field to create and update mutations

* fix: fix tests

* fix: fix SingleEntitySelect glitch

* fix: fix usePersistField tests

* fix: fix wrong import after rebase

* fix: fix several tests

* fix: fix test types
2024-01-29 08:00:00 -03:00
WeikoandGitHub d66d8c9907 [Messaging] Gmail Full sync pagination (#3664) 2024-01-29 11:57:54 +01:00
a654205dbc chore: set up twenty-emails config so build isn't needed in development (#3619)
* chore: set up twenty-emails config so build isn't needed in development

* fix: fix script dependency

* chore: use @vitejs/plugin-react-swc

* Remove useless dependancy

* Fix typing

* chore: use baseUrl in twenty-emails

* chore: fix docker server prod build

* refactor: optimize Docker file and tsconfig

* fix: fix WORKDIR in docker

---------

Co-authored-by: martmull <[email protected]>
2024-01-29 06:17:12 -03:00
Charles BochetandGitHub 7fdd7119d2 Allow Card field update and card drag on new record board (#3661) 2024-01-29 08:59:13 +01:00
Charles BochetandGitHub 6eca6dc780 Fix Opportunities page (#3660)
* Fix Opportunities page

* Fix

* Fix tests
2024-01-28 23:33:36 +01:00
Charles BochetandGitHub 419f8adde6 Improve RecordTableCellperformances (#3659)
* Improve RecordTableCellperformances

* Fixes
2024-01-28 20:32:28 +01:00
Charles BochetandGitHub ada8f55574 Refactor Field Inputs (#3658)
* Rename field to record-field folder

* Simplify FieldInput

* Fix perfs

* Fixes

* Fixes

* Fix tests

* Fix tests
2024-01-27 23:42:39 +01:00
Charles BochetandGitHub d6f117c688 Display RecordBoardCards on new board (#3657)
* Before remove saveEditModeValue logic

* Fixes

* Fix tests

* Fix tests
2024-01-27 15:55:45 +01:00
WeikoandGitHub 9053769616 [Messaging] Fix gmail connected account creation redirect url (#3653) 2024-01-26 18:28:06 +01:00
Charles BochetandGitHub 070900e4eb Remap items in board (#3643)
* Remap items in board

* Fix according to review
2024-01-26 17:09:30 +01:00
bosiraphaelandGitHub ebfa1bea99 fix-threads-pagination (#3639) 2024-01-26 14:24:27 +01:00
bosiraphaelandGitHub c8f8327d04 fix email thread message (#3636) 2024-01-26 13:12:37 +01:00
martmullandGitHub b49a8b84db Remove error when new_psw==old_psw (#3637) 2024-01-26 12:11:46 +01:00
bosiraphaelandGitHub 49b22eeec6 Catch graphql errors (#3634)
* Catch graphql errors

* update according to comment
2024-01-26 11:33:48 +01:00
Thomas des FrancsandGitHub d9d3be69be Updating the readme cover & title (#3632)
* Delete packages/twenty-docs/static/img/preview-light.png

* Delete packages/twenty-docs/static/img/preview-dark.png

* Replacing preview files with updated version

* Updating readme title
2024-01-26 11:00:24 +01:00
martmullandGitHub 0982c78a85 Fix missing package in twenty-emails (#3631) 2024-01-26 10:53:38 +01:00
43b10cb00c Add record chip for sender and add receivers (#3629)
* Add record chip for sender and add receivers

* Build enum for roles

* Rename var and use string literal

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-25 18:34:19 +01:00
bosiraphaelandGitHub b0c14ba5b9 3571 remove reply quotations from emails (#3630)
* lib is working

* update

* plural
2024-01-25 18:26:29 +01:00
Charles BochetandGitHub 377fd23c90 Display columns on Record Board (#3626)
* Display columns on Record board

* Fix

* Fix according to review

* Fix
2024-01-25 18:21:15 +01:00
martmullandGitHub ca6250286a Reset workspaces to delete between executions (#3625) 2024-01-25 18:06:53 +01:00
e0405edb38 feat: added webhook list section and updated api key section (#3567)
* feat: added webhook list section and updated api key ui

* Fix style

* Fix webhook style

* Update setting path

* Add soon pill on not developped features

* Code review returns

---------

Co-authored-by: Lakshay saini <[email protected]>
Co-authored-by: martmull <[email protected]>
2024-01-25 17:39:17 +01:00
bosiraphaelandGitHub 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
Jérémy MandGitHub 6f98d1847f Fix/nested filter (#3624)
* fix: typo

* fix: relation type shouldn't be exposed in filter
2024-01-25 16:15:46 +01:00
f099ff90c1 Add fetch more loader for email messages (#3618)
Add fetch more loader

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-25 14:44:54 +01:00
WeikoandGitHub 6d997edabb [Messaging] Fix duplicate messageChannelMessage (#3616)
* [Messaging] Fix duplicate channelMessageChannel

* add messageChannelMessage check before querying gmail

* rename messageChannelMessage to messageChannelMessageAssociation
2024-01-25 14:15:57 +01:00
7845e04f6b Fetch messages with hard coded thread id (#3613)
* Fetch messages with hard coded thread id

* Fix test

* Use first workspace member or person names

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-25 11:13:32 +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 <[email protected]>
2024-01-25 10:28:48 +01:00
21f342c5ea Scroll tab list on record show (#3561)
* scroll tab list on record show #3275

* update the style of tab

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-24 18:30:58 +01:00
Charles BochetandGitHub afbb87ae12 Add new Record board shell (#3609)
* Add new Record board shell

* Fix
2024-01-24 17:47:04 +01:00
martmullandGitHub 8ffd958a3c Fix twenty-emails build (#3608) 2024-01-24 17:41:38 +01:00
Alexandru SerbanandGitHub 7488a9605e Allow underscores in PG_DATABASE_URL (#3599)
We are working on a Twenty template for Easypanel.io. We need Twenty to allow underscores in order to be compatible with the generated Postgres database service Easypanel creates.
2024-01-24 16:31:10 +01:00
Charles BochetandGitHub ccbf773fd4 Load empty board if view type is kanban (#3605)
* Load empty board if view type is kanban

* Fix tests

* Revert
2024-01-24 16:17:47 +01:00
WeikoandGitHub c811206c47 Fix message table plural name (#3604) 2024-01-24 14:33:08 +01:00
e85f65a195 Build message threads (#3593)
* Adding message thread component

* Add state and mocks

* Rename components and use local state for messages

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-24 14:32:57 +01:00
Charles BochetandGitHub afc36c7329 Introduce new board feature flag (#3602) 2024-01-24 14:24:02 +01:00
martmullandGitHub b991790f62 Update clean inactive workspaces (#3600)
* Fix typo

* Add dry-run option in clean inactive workspaces

* Add logs

* Chunk workspace metadata

* Add BCC to clean workspace notification email

* Send workspace to delete ids in one email

* Update example

* Update function naming
2024-01-24 12:51:42 +01:00
Charles BochetandGitHub f48814f6d9 Tag current board as deprecated to make room for the new record board implementation (#3601) 2024-01-24 12:36:42 +01:00
Lucas BordeauandGitHub e54c141484 Use scroll left instead of intersection observer (#3522) 2024-01-24 06:39:04 -03:00
WeikoandGitHub c7ad6a0de7 [messaging] Rename body to text (#3595)
* Store HTML message

* remove console log

* [messaging] rename body to text

* use CoreObjectNameSingular
2024-01-23 19:56:42 +01:00
c0c2906209 Fixed Max lenght in Label , #3515 (#3558)
* Fixed Max lenght in Label , #3515

* should be 200 if label is displayed, 272 if label is not displayed #3558

* Update packages/twenty-front/src/modules/object-record/components/RecordShowPage.tsx

Fix accoding to review

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-23 19:56:19 +01:00
0100244cbc Tooltip on icons (#3529)
* Step 3: Set up PostgreSQL Database

* Tooltip on Icons

* Cleaning icon tooltip code

* Fix according to review

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-23 19:43:14 +01:00
WeikoandGitHub d176ba95d3 Store HTML message (#3594)
* Store HTML message

* remove console log

* fix html label/description
2024-01-23 19:40:05 +01:00
c9e326f2ae Broken calendar component (#3525)
* #3520 Fix broken calendar component on filter

* #3520 fix the calender component

* #3520 fix error lint and test issue

* resolved lint error

* Fix according to review

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-23 19:33:19 +01:00
fd5cae6aae fixed overflowing text for select on card #3494 (#3504)
* fixed  overflowing text for select on card #3494

* maxWidth of useRelationFeild hook

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-23 19:08:39 +01:00
3d6f1f1230 Fix FloatingButton to behave like FloatingIconButton in a group. (#3524)
Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-23 18:54:12 +01:00
Charles Bochet d6dfd0ce05 Use npx for ts-node execution in twenty-server commands 2024-01-23 18:26:48 +01:00
014f11fb6f perf: apply record optimistic effects with cache.modify on mutation (#3540)
* perf: apply record optimistic effects with cache.modify on mutation

Closes #3509

* refactor: return early when created records do not match filter

* fix: fix id generation on record creation

* fix: comment filtering behavior on record creation

* Fixed typing error

* refactor: review - use ??

* refactor: review - add variables in readFieldValueToSort

* docs: review - add comments for variables.first in triggerUpdateRecordOptimisticEffect

* refactor: review - add intermediary variable for 'not' filter in useMultiObjectSearchMatchesSearchFilterAndToSelectQuery

* refactor: review - add filter utils

* fix: fix tests

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-23 18:13:00 +01:00
Lucas BordeauandGitHub 9ebc0deaaf Leave table focus on show page click (#3521) 2024-01-23 13:57:44 -03:00
Charles BochetandGitHub aa603f1ff4 Update contributing guidelines with PR precendence (#3590) 2024-01-23 17:29:10 +01:00
WeikoandGitHub dc7fccb0a8 Merge messages and threads #1 (#3583)
* Merge messages and threads

* rename messageChannelSync to messageChannelMessage

* add merge logic

* remove deprecated methods

* restore enqueue GmailFullSyncJob after connectedAccount creation
2024-01-23 17:28:14 +01:00
Lucas BordeauandGitHub 23a3614b54 Fixed filter dropdown on task page (#3469)
* Fixed filter dropdown on task page

* Fixed ts in test

* Change avatarUrl to nullable in ObjectRecordIdentifier
2024-01-23 12:59:26 -03:00
2b6d66f1bc TWNTY-3549 - Add tests for modules/object-record/field (#3572)
* Add tests for `modules/object-record/field`

Co-authored-by: v1b3m <[email protected]>

* Merge main

Co-authored-by: v1b3m <[email protected]>

* Move field definitions to separate file

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-01-23 14:17:27 +01:00
e0943b15c4 Add missing tests in modules/ui/utilities/recoil-scope (#3581)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Matheus <[email protected]>
2024-01-23 14:16:50 +01:00
562cdc563f TWNTY-3482 - Add tests for modules/ui/utilities/recoil-scope/scopes-internal/hooks (#3582)
Add tests for `modules/ui/utilities/recoil-scope/scopes-internal/hooks`

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>
2024-01-23 14:15:41 +01:00
Charles BochetandGitHub 3f0743493b Fix Continuous Deployment script after adding twenty-emails package (#3589)
* Fix cd

* Fix server

* Fix server

* Fix server

* Fix server

* Fix

* Fix docs

* Fix
2024-01-23 12:30:03 +01:00
096f005562 header component added (#3539)
* header component added

* fix css issues and date format issue

---------

Co-authored-by: bosiraphael <[email protected]>
2024-01-23 12:06:21 +01:00
004c23768c Build message thread empty right drawer (#3585)
* Trigger message thread top bar

* Rename message thread to thread

* Move all components in a directory

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-23 10:56:31 +01:00
Charles Bochet 762a56782c Fix build server 2024-01-23 10:46:36 +01:00
2dae5b0046 Add tests for modules/ui/utilities/pointer-event (#3586)
Add test `modules/ui/utilities/pointer-event`

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2024-01-23 10:45:19 +01:00
Charles BochetandGitHub a7265fa3b4 Remove flag relation select (#3588)
* Remove feature flag on relation and select

* Move packages back to twenty-server to enable smaller build without using nx

* Fix package.json
2024-01-23 09:59:00 +01:00
bosiraphaelandGitHub 6aad59d0be 3434 connect settingsaccountsemails to the backend (#3584)
* wip

* wip

* update sync settings

* fix key in map

* connect email visibility to backend

* finished

* improve typing
2024-01-22 18:29:14 +01:00
Jeet DesaiandGitHub 062bbd57a3 drag and drop on files tab (#3432)
* #3345 drag and drop on files tab

* #3432 resolved comments on drag and drop feature
2024-01-22 13:00:18 -03:00
martmullandGitHub e358d677f9 Move emails to dedicated package (#3542)
* Add new package

* Add twenty-emails package

* Use generated files from twenty-emails in twenty-server

* Fix deleted file

* Import emails templates properly
2024-01-22 16:21:56 +01:00
martmullandGitHub e45a825a3a Update logging for smtp emails (#3536) 2024-01-22 16:06:10 +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 <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-01-22 16:00:16 +01:00
Lucas BordeauandGitHub 764374f6b8 Deactivated vite-plugin-checker overlay (#3574) 2024-01-22 14:19:22 +01:00
Charles BochetandGitHub 894f63a16f Standard Object prefill updates (#3570) 2024-01-22 11:13:43 +01:00
Charles Bochet 58d4fd43c8 Fix healthcheck command performance 2024-01-19 17:26:33 +01:00
e6f985c681 Update company board card link to opportunity show page (#3557)
Update board link to opportunity show page

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-19 17:01:24 +01:00
Charles BochetandGitHub 2cf4bd746a Improve health check command (#3553)
* Improve health check command

* Fix health check

* Fix health check
2024-01-19 16:54:43 +01:00
Sujith ThirumalaisamyandGitHub 7607ecaac6 Updated CreateProfile default to System Color Scheme (#3544)
Added the default colorScheme while creating a new profile.
2024-01-19 14:28:31 +01:00
bafc15d2b8 Add tests for modules/ui/layout/tab (#3535)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>
2024-01-19 12:38:56 +01:00
8d206fd2c8 TWNTY-3480 - Add tests for modules/object-record/relation-picker/hooks (#3547)
Add tests for `modules/object-record/relation-picker/hooks`

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2024-01-19 12:38:21 +01:00
1bb7ff3730 Add tests for modules/auth and modules/command-menu (#3548)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
2024-01-19 12:37:49 +01:00
c868347552 Show page - disable click for workspace member relation (#3464)
* [Draft] Add disable logic + failing test

* Fix test

* Remove hook

---------

Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-01-18 18:22:26 +01:00
d8c9a94e14 TWNTY-3381 - Add tests for modules/apollo (#3530)
Add tests for `modules/apollo`

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-01-18 11:25:27 +01:00
Charles Bochet aa8d689e3e Fix demo workspace seed 2024-01-18 10:59:48 +01:00
Charles Bochet 2628ee0f27 Revert blocknote upgrade because it's breakind design 2024-01-18 10:56:39 +01:00
Jeet DesaiandGitHub 74a54da403 replace text input by texterarea (#3473)
* #3472 replace text input by texterarea

* background color change in dark mode

* box shadow and hide overflow

* added tooltip in overflow text

* resolved comment on #3473

* resolved comments in #3473
2024-01-18 09:49:36 +01:00
Irfan KandGitHub ceddd211cf feat: Create a ThreadBottomBar component (#3474)
* feat: Create a ThreadBottomBar component

* capitalised share like  Share in button

* removed ButtonGroup to avoid the border-radius issue
2024-01-18 09:47:01 +01:00
f6f4e6c769 Update blocknote (#3517)
* update blocknote, remove feature flag

* Fix backend

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-18 09:40:00 +01:00
c8de37860f TWNTY-3379 - Add tests for modules/favorites and modules/companies (#3528)
* Add tests for `modules/favorites` and `modules/companies`

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix failing test in `object-metadata/hooks`

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2024-01-18 09:29:12 +01:00
2d929c3b91 feat: display label identifier table cell as chip with link to Record… (#3503)
* feat: display label identifier table cell as chip with link to RecordShowPage

Closes #3502

* Fix test

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-17 17:44:36 +01:00
Jérémy MandGitHub 4b7e42c38e feat: workspace health relation (#3466)
feat: add check relation health
2024-01-17 17:05:35 +01:00
WeikoandGitHub 64110c591a Add performance logs to object metadata query (#3463) 2024-01-17 17:04:16 +01:00
Jeet DesaiandGitHub 409f2b7651 Fix: Increase Fields column width (#3519)
#3516 Increase Fields column width
2024-01-17 17:03:03 +01:00
e812878bc3 #3476 round sum total amount in board (#3484)
* #3476 round sum total amount in board

* Fix issues

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-17 16:44:44 +01:00
Lucas BordeauandGitHub bbfe62df9a Implemented useListenClickOutside V2 (#3507)
* Implemented useListenClickOutside V2

* Removed lock and implemented a toggle instead
2024-01-17 16:22:22 +01:00
808100fdd5 Add tests for modules/navigation and modules/keyboard-shortcut-menu (#3461)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>
2024-01-17 16:00:58 +01:00
Lucas BordeauandGitHub 4fa9e18920 Fixed selection reset on loading more (#3500) 2024-01-17 15:59:55 +01:00
adfd1f655d Add tests for modules/analytics (#3462)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>
2024-01-17 15:58:12 +01:00
6af2513528 Add tests for modules/object-metadata/hooks (#3485)
* Add tests for `modules/object-metadata/hooks`

Co-authored-by: v1b3m <[email protected]>

* Merge main

Co-authored-by: v1b3m <[email protected]>

* Refactor according to self review

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-01-17 15:57:31 +01:00
ba038a4a83 fixed issue Refine Settings Layout (#3429)
* fixed issue Refine Settings Layout

* fixed width and issue

* Fix according to review

* Fix

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-17 15:54:52 +01:00
WeikoandGitHub f3c9854be3 Add select type to field metadata decorator (#3471)
* Add select type to field metadata decorator

* add option id generation for new field
2024-01-17 15:03:11 +01:00
5d4e226aad fixed issue Display field name on Kanbans & Shows (#3427)
* fixed issue Display field name on Kanbans & Shows

* Fixes according to review

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-17 14:00:51 +01:00
ThaïsandGitHub 96d990e275 feat: set field as custom object label identifier in Object Detail (#3360)
* feat: set field as custom object label identifier in Object Detail

Closes #3302

* feat: prevent disabling Object label identitifer field in back-end

* refactor: review - extract isLabelIdentifier variable
2024-01-17 12:19:41 +01:00
Leo AlfredandGitHub 8864528d55 Center InternalDatePicker Clear button (#3265)
* Center InternalDatePicker Clear button

* Add back Clear button padding

* Center date picker clear button through props

* Refactor StyledButtonContainer padding

* Refactor StyledButtonContainer to extend MenuItem

* Use custom date picker Clear button implementation

* Undo MenuItem changes

* Refactor new date picker code

* Refactor datepicker solution

* Rename StyledButtonContent to StyledButton

* Remove unnecessary menu-item class
2024-01-17 12:05:16 +01:00
Charles BochetandGitHub 4316950cf9 Bump version to 0.2.3 (#3506) 2024-01-17 11:57:13 +01:00
Kanav AroraandGitHub 5cf0077e3d UI Fixes for Dark Mode (#3337)
* Forced Scroll BG color fix

* pr requested changes
2024-01-17 11:54:29 +01:00
Jeet DesaiandGitHub 60e9864e52 Fix: z index for the menu (#3497)
fix: z index for the menu
2024-01-17 10:13:51 +01:00
Jeet DesaiandGitHub 161c4f8910 #3489 sidebar label in one line (#3490)
* #3489 sidebar in one line

* remove tooltip from sidebar label
2024-01-16 22:19:14 +01:00
f3f20ad974 Improve opportunity behavior (#3487)
* Fix opportunity relation

* Fix

* Fix

* Fix tests

* Fix

* Fix

* Fix opportunities

* Fix Opportunity standard object and apply maxWidth to text ellipsis

* Update packages/twenty-front/src/modules/ui/field/display/components/EllipsisDisplay.tsx

Co-authored-by: Thaïs <[email protected]>

* Fix

---------

Co-authored-by: Thaïs <[email protected]>
2024-01-16 15:43:19 +01:00
martmullandGitHub bb91917ff8 Improve webhook (#3459)
* Add trigger record

* Merge triggers

* Merge creates

* Fix libraries

* Fix create merged key

* Rename file

* Remove list Record Ids

* Revert "Rename file"

This reverts commit 2e72e05793.

* Revert "Revert "Rename file""

This reverts commit e2d93fa027.

* Revert "Remove list Record Ids"

This reverts commit 6653fb6ccd.

* Remove namePlural field

* Use name singular for webhooks

* Send webhook metadata

* Extract resource from zapier webhook

* Fix package.json

* Fix package.json

* Update payload

* Fix package.json

* Update payload

* Update payload

* Rename file

* Use wildcard in webhook events

* Fix nameSingular

* Code review returns

* Code review returns
2024-01-16 15:31:09 +01:00
Charles BochetandGitHub fb93bb69fb Fix opportunity relation (#3478)
* Fix opportunity relation

* Fix

* Fix

* Fix tests

* Fix

* Fix
2024-01-16 14:39:48 +01:00
brendanlaschkeandGitHub bf67f07291 Fix zindex contextmenu (#3460)
fix zindex contextmenu
2024-01-15 18:23:13 +01:00
4e36c6d584 Update recoil v4 states to getters (#3451)
Update v4 states to getters

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-15 18:18:55 +01:00
bosiraphaelandGitHub 4695e99458 3369 rename messagerecipients table into messageparticipants (#3457)
* renaming

* renaming
2024-01-15 16:55:19 +01:00
bosiraphaelandGitHub 8682f3c0c0 3441 modify message table change date to receivedat (#3452)
* changed date to receivedAt

* update saving messages

* update custom resolver
2024-01-15 14:48:25 +01:00
WeikoandGitHub ed6458e833 Fix: check if relation creates existing field name (#3433)
* Fix: check if relation creates existing field name

* fix rebase

* add object name to performance log
2024-01-15 14:13:57 +01:00
Charles BochetandGitHub 16a24c5f0c Rework relations (#3431)
* Rework relations

* Fix tests
2024-01-15 12:07:23 +01:00
GARYandGitHub 8c96acc2a3 Improved Floating Button Icon style (#3428)
* Improved Floating Button Icon style

* Improve Floating Button Icon style #3420
2024-01-14 15:36:16 +01:00
Charles BochetandGitHub 8893cbc05d Stop switching to a different datasource per workspace (#3425)
* Stop switching to a different datasource per workspace

* Add console

* Remove call to metadata
2024-01-14 00:21:21 +01:00
95326b2828 fix: fix Relation field optimistic effect on Record update (#3352)
* fix: fix Relation field optimistic effect on Record update

Related to #3099

* Fix lint

* Fix

* fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-13 12:35:30 +01:00
Charles Bochet a8efc17fff Fix post merge conflict 2024-01-13 12:06:37 +01:00
49a9a2c2be 2252 build a script to cleanup inactive workspaces (#3307)
* Add cron to message queue interfaces

* Add command to launch cron job

* Add command to stop cron job

* Update clean inactive workspaces job

* Add react-email

* WIP

* Fix import error

* Rename services

* Update logging

* Update email template

* Update email template

* Add Base Email template

* Move to proper place

* Remove test files

* Update logo

* Add email theme

* Revert "Remove test files"

This reverts commit fe062dd051.

* Add email theme 2

* Revert "Revert "Remove test files""

This reverts commit 6c6471273a.

* Revert "Revert "Revert "Remove test files"""

This reverts commit f851333c24.

* Revert "Revert "Revert "Revert "Remove test files""""

This reverts commit 7838e19e88.

* Fix theme

* Reorganize files

* Update clean inactive workspaces job

* Use env variable to define inactive days

* Remove FROM variable

* Use feature flag

* Fix cron command

* Remove useless variable

* Reorganize files

* Refactor some code

* Update email template

* Update email object

* Remove verbose log

* Code review returns

* Code review returns

* Simplify handle

* Code review returns

* Review

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-13 12:03:41 +01:00
Charles Bochet 03bf597301 Re-add docker-compose up command 2024-01-13 11:02:00 +01:00
0ef1736188 Add tests for modules/object-record/record-board (#3421)
* Add tests for `modules/object-record/record-board`

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Revert unwanted changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2024-01-13 10:05:50 +01:00
c53abf2f5a Fix chromatic tests + re-enable (#3414)
* Fix chromatic tests + re-enable

* Try to run command manually

* Fix

* Fix

* Fix

* Fix

* Fix

---------

Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-01-12 18:32:00 +01:00
03b5c40e8a Add tests for modules/object-record/object-filter-dropdown (#3399)
* Add tests for `modules/object-record/object-filter-dropdown`

Co-authored-by: KlingerMatheus <[email protected]>

* Fix linter

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>

* Revert unwanted changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2024-01-12 18:08:01 +01:00
83c9fedcdf Add tests for modules/object-record/object-sort-dropdown (#3398)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2024-01-12 18:07:32 +01:00
d05d7ec1d1 Add tests for modules/people, modules/pipeline, modules/search and modules/settings (#3395)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2024-01-12 18:05:56 +01:00
NeerajkumarandGitHub 284fabf17c docs: resolve broken discord links (#3408)
* refactor: make search case-insensitive

* docs: resolved broken discord links
2024-01-12 17:59:36 +01:00
bosiraphaelandGitHub 5a61e34f4c 3239 create a command to do a partial sync with the gmail api using the historyid (#3405)
* create utils service

* getLastSyncHistoryId

* getHistory

* add historyTypes messageAdded and messageDeleted

* getMessageIdsAndThreadIdsNotInDatabase

* wip

* fix messageThreadId null

* no need to fetch threads anymore

* get messagesAdded in partial sync

* adding errors

* save lastSyncHistoryId

* improve

* renaming

* create partial sync job

* improve partial sync

* adding messages with partial sync is working

* now adding messages with partial sync is working

* deleting messages and empty threads is working

* wip

* wip

* fix bug to delete threads

* update partial sync to cover edge cases

* renaming

* modify ambiguous naming

* renaming
2024-01-12 17:46:55 +01:00
Charles BochetandGitHub 4f306f8955 Fix bug hover on table (#3404) 2024-01-12 16:30:32 +01:00
Charles BochetandGitHub 6672b04733 Fix docker-compose commands (#3403) 2024-01-12 14:31:47 +01:00
52e0e385a4 Pass object name plural in props + remove unused state (#3401)
* Pass object name plural in props + remove unused state

* Fix test

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-12 14:30:36 +01:00
Jérémy MandGitHub 3e8f4ec2c5 fix: auth user decorator cannot destruct property of undefined (#3394)
* fix: auth user decorator cannot destruct property of undefined

* fix: change naming
2024-01-12 12:12:33 +01:00
09a2a656e2 feat: display identifier field in Object Detail page for custom objects (#3329)
* feat: display identifier field in Object Detail page for custom objects

Closes #3301

* fix: show Name as object label identifier by default

* Minor improvements

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-12 12:11:09 +01:00
0dc39db314 feat: detach records from Relation field card in Show Page (#3350)
* feat: detach records from Relation field card in Show Page

Closes #3128

* Fix TS

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-12 12:10:42 +01:00
Jérémy MandGitHub d0ed9ee2e0 feat: pagination with total count (#3384)
* feat: add totalCount

* feat: add command for production to fix existing tables
2024-01-12 10:41:38 +01:00
Irfan KandGitHub 9ecc3bdbf2 fixed Object settings font weight fixes (#3332)
* fixed Object settings font weight fixes

* fixed Object settings font weight fixes
2024-01-12 10:02:20 +01:00
Charles Bochet e6c9e8d09b Upgrade sentry profiling package 2024-01-11 22:50:01 +01:00
Charles BochetandGitHub 10fd67ba32 Fix relation creation bug + enable favorite for custom objects (#3392)
* Fix relation creation bug

* Fix vale CI

* Fix comment bug
2024-01-11 22:46:43 +01:00
Charles BochetandGitHub 3ad032cdc1 Fix 3 bugs (#3391)
* Fix Favorites

* Fix opportunities
2024-01-11 21:34:56 +01:00
985c2f321e feat: add link to relation filtered table in Record Show Page (#3261)
* feat: add link to relation filtered table in Record Show Page

Closes #3125

* refactor: use generateFindManyRecordsQuery for optimization

* Fixes from review

* Minor fixes

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-11 20:51:06 +01:00
martmullandGitHub b3d9bed91d Enforce email templating (#3355)
* Add react-email

* WIP

* Fix import error

* Rename services

* Update logging

* Update email template

* Update email template

* Add Base Email template

* Move to proper place

* Remove test files

* Update logo

* Add email theme

* Revert "Remove test files"

This reverts commit fe062dd051.

* Add email theme 2

* Revert "Revert "Remove test files""

This reverts commit 6c6471273a.

* Revert "Revert "Revert "Remove test files"""

This reverts commit f851333c24.

* Revert "Revert "Revert "Revert "Remove test files""""

This reverts commit 7838e19e88.

* Fix theme
2024-01-11 20:29:20 +01:00
e2bdf0ce45 Recursively turn relation connection into records (#3334)
* Use new ObjectRecordConnection

* Use new records without connection in GraphQLView

* Added playwright for storybook tests

* Fixed lint

* Fixed test and tsc

* Fixed storybook tests

* wip tests

* Added useMapConnectionToRecords unit test

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-11 20:27:59 +01:00
299bed511f Filter the opportunities "Point of contact" field (#3191)
* Filter the opportunities "Point of contact" field

Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-11 20:26:11 +01:00
Charles BochetandGitHub 99247fb689 Fix activity target bug (#3390) 2024-01-11 20:18:54 +01:00
NeerajkumarandGitHub 2c8c22a979 refactor: make search case-insensitive (#3388) 2024-01-11 20:05:45 +01:00
WeikoandGitHub 0a77a376fd Import messages after connected-account creation (#3389) 2024-01-11 20:05:08 +01:00
Charles Bochet 2e571976fb Fix regression on RecordInlineCellContainer 2024-01-11 18:20:06 +01:00
Sagar JariwalaandGitHub 4b97625f37 fix: fixed overflowing text on record show page (#3372) 2024-01-11 18:08:31 +01:00
6bae6fcdce Migrate record table to scope map (#3363)
* Migrate record table to scope map

* Update record scope id to record id

* Remove todos and fix edit mode

* Fix perf

* Fix tests

* Fix tests

---------

Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-01-11 17:44:40 +01:00
Jérémy MandGitHub 5f0c9f67c9 feat: workspace health (#3344)
* feat: wip workspace health

* feat: split structure and metadata check

* feat: check default value structure health

* feat: check targetColumnMap structure health

* fix: composite types doesn't have default value properly defined

* feat: check default value structure health

* feat: check options structure health

* fix: verbose option not working properly

* fix: word issue

* fix: tests

* fix: remove console.log

* fix: TRUE and FALSE instead of YES and NO

* fix: fieldMetadataType instead of type
2024-01-11 16:41:25 +01:00
c8aec95325 GH-3183 Add sub actions to quick actions in ActionBar (#3339)
* convert quick action into a dropdown

* GH-3183 import icons

* GH-3183 display dummy sub-actions in dropdown

* Migrate to new Dropdown API

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-11 13:49:36 +01:00
Afnan AandGitHub e142e4ec79 Step 3: Set up PostgreSQL Database (#3370) 2024-01-11 13:27:51 +01:00
afacec6994 Finish Implementing Select/MultiSelect #3166 (#3226)
* Fixed #3166

* refactor: improve generateEmptyFieldValue function

- Optimize handling of MultiSelect and Select cases
- Provide a default value for Select based on FieldSelectValue
- Enhance code readability and maintainability

* Fixed #3166

- Introduce MultiSelect-specific logic with a backend support check
- Implement Select-specific logic with a default value
- Throw an error for unhandled FieldMetadataType

---------

Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-01-11 12:00:11 +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 <[email protected]>
2024-01-11 11:48:14 +01:00
66a054ac21 Add tests for modules/object-record/object-sort-dropdown (#3366)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2024-01-11 11:23:17 +01:00
93a9eb0e3c Add tests for modules/object-record/hooks (#3361)
* Add tests for `modules/object-record/hooks`

Co-authored-by: v1b3m <[email protected]>

* Remove temporary changes

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-01-11 10:37:09 +01:00
Jérémy MandGitHub 1aa0f86724 feat: use apollo playground in debug mode (#3295) 2024-01-11 10:21:51 +01:00
ebe8698910 Increase test coverage for /modules/ui (#3314)
* Increase test coverage for `/modules/ui`

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>
Co-authored-by: Fellipe Montes <[email protected]>

* Merge main

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>
Co-authored-by: Fellipe Montes <[email protected]>

* Fix tests

* Fix tests

* Fix

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>
Co-authored-by: Fellipe Montes <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-01-11 08:51:36 +01:00
brendanlaschkeandGitHub f34516d422 Update react-hotkeys-hook (#3269)
- update react-hotkeys-hook
2024-01-11 08:47:38 +01:00
Jeong Min ChoandGitHub a791d1f5ba Sort Metadata Fields by Custom Status and Creation Date (#3254)
* Added sortFields function and used on active and disabled metadataFields

* Added a sortFieldMetadataItem and used parseDate instead of vanila Date

* Added tests for sortFieldMetadataItem (#3253)

* Applied sortFieldMetadataItem (#3253)
2024-01-10 18:47:19 +01:00
Charles BochetandGitHub 49f66fec70 Fix vite build config (#3358)
* Fix vite build config

* Fix vite build config

* Fix vite build config

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix
2024-01-10 17:42:11 +01:00
Kanav AroraandGitHub d1b2ac0a6e Fix shadow to light (#3359) 2024-01-10 13:17:31 -03:00
Charles BochetandGitHub 176e840728 Fix vale ci (#3353)
* Fix vale ci

* try

* try

* try

* try
2024-01-10 17:05:23 +01:00
WeikoandGitHub 22047fa2bf Fix metadata exception handler #2 (#3357) 2024-01-10 17:02:54 +01:00
BrendanandGitHub 4f9ea78258 Fixed I shouldn't be able to remove myself from a workspace #3330 (#3349)
* correct delete workspace member condition

* fix lit error
2024-01-10 15:48:32 +01:00
2713285a0f Migrate dropdown to scope map (#3338)
* Migrate dropdown to scope map

* Run lintr

* Move Dropdown Scope internally

* Fix

* Fix lint

---------

Co-authored-by: Thomas Trompette <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-01-10 15:46:37 +01:00
Lucas BordeauandGitHub fbf7496fab Added eslint config in vite-plugin-checker (#3321) 2024-01-10 09:43:24 +01:00
Charles Bochet 11bf03bbea Fix Bug Tasks Page not switching tab 2024-01-09 23:06:13 +01:00
Charles Bochet a9ac14439f Fix phone input bug 2024-01-09 18:48:59 +01:00
Charles BochetandGitHub 69b558e03d Fix bug on relation on custom object (#3336) 2024-01-09 17:49:05 +01:00
WeikoandGitHub 6c00aa92a4 Fix capture exception for metadata and core (#3335) 2024-01-09 17:46:16 +01:00
ebf7688e3d Migrate tab list to scope map (#3333)
* Migrate tab list to scope map

* Return state to hook and let client subscribe to state

* Run prettier

---------

Co-authored-by: Thomas Trompette <[email protected]>
2024-01-09 17:01:27 +01:00
Charles Bochet 8d2758ee5e Reactivate Select in emptyValue generation 2024-01-09 15:12:59 +01:00
Charles BochetandGitHub 47ac97dd25 Fix Select (#3327) 2024-01-09 14:58:14 +01:00
bosiraphaelandGitHub 4ebb487fa1 3236 add syncproviderconfig to connectedaccount model (#3328)
* add Last sync history ID

* add is nullable

* fix errors

* modification
2024-01-09 14:48:10 +01:00
bosiraphaelandGitHub bdd0a7ed95 3242 all message recipients should be stored (#3320)
* saveMessageRecipients

* update

* workspaceMemberId is working

* merge

* get direction of the message

* fix

* improve code

* modify GmailMessage type
2024-01-09 14:14:32 +01:00
ThaïsandGitHub 0b505288f2 feat: add Relation field card feature flag (#3311)
Related to #3123
2024-01-09 12:46:03 +01:00
martmullandGitHub 361446d79c Add cron mechanism (#3318)
* Add cron to message queue interfaces

* Add command to launch cron job

* Add command to stop cron job

* Update clean inactive workspaces job

* Isolate cron mechanism

* Code review returns

* Remove useless object.assign

* Add MessageQueuCronJobData interface

* Rename cron job utils

* Fix typing
2024-01-09 12:23:45 +01:00
ThaïsandGitHub ed06cc0310 feat: add Relation Field Card plus button in Show Page (#3229)
Closes #3124
2024-01-09 10:29:01 +01:00
Lucas BordeauandGitHub dc94d26997 Fixed create task bug (#3308) 2024-01-08 20:56:38 +01:00
Charles BochetandGitHub 67b14824a4 Implement select v1 (#3312)
* Implement select v1

* Implement select v1
2024-01-08 20:55:45 +01:00
WeikoandGitHub ea2cb8938f Add fetch connected account job (#3313)
* Add fetch connected account job

* add featureFlag check
2024-01-08 18:24:39 +01:00
Lucas BordeauandGitHub 71034849d3 Added vite-plugin-checker to twenty-front (#3289)
* Added vite-plugin-checker to twenty-front

* Installed vite-plugin-checker globally
2024-01-08 12:01:58 +01:00
martmullandGitHub d2e8df52cf Add doc link in env file (#3277) 2024-01-08 10:42:03 +01:00
Charles BochetandGitHub 96264e264c Refactor recoil v4 (#3266)
* Refactor recoil v4

* Fix ci
2024-01-05 19:18:22 +01:00
8455e15443 Behaviour Fix on new record addition (#3113)
* Delete record if no company added

* EditMode on First column of new row added

* Fix

* Minor fixes

* Passed scopeId

* Changed FieldInputs to accept onChange handler

* Removed getFieldType

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-05 18:01:51 +01:00
9def3d5b57 Activity editor add File block (#3146)
* - added file block

* fised auth useeffect

* - add cmd v for file block

* remove feature flag for attachment upload in blockeditor

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-05 17:42:50 +01:00
Suman SahooandGitHub 81a1666946 fixed button padding (#3260) 2024-01-05 16:50:52 +01:00
martmullandGitHub ae5558d8b5 Add mail driver (#3205)
* Add node mailer packages

* Init mailer module

* Add logger transport

* Use env variable to get transport

* Revert "Add node mailer packages"

This reverts commit 3fb954f0ca.

* Add nodemailer

* Use driver pattern

* Use logger

* Fix yarn install

* Code review returns

* Add configuration examples for smtp

* Fix merge conflict

* Add missing packages

* Fix ci
2024-01-05 16:08:19 +01:00
rakan makhashinandGitHub 036c8c0b36 Fixed user exist checking with trimmed email input #3195 (#3251) 2024-01-05 15:13:05 +01:00
Charles BochetandGitHub f7034d6e7d Embrace nx monorepo structure with root package.json (#3255)
* Upgrade to node 18.17.1 and regroup dependencies in root package.json

* Sort package.json

* Fix lint

* Migrate zapier
2024-01-05 14:59:58 +01:00
martmullandGitHub f35b40c428 Fix create trigger called twice (#3243)
* Fix create trigger called twice

* Add Zapier update action

* Add Zapier delete action

* Update description

* Add dropDown for ids
2024-01-05 11:44:47 +01:00
Charles Bochet 618d9678b5 Fix lint issue on record table 2024-01-05 11:35:54 +01:00
Jordan SussmanandGitHub f3cbed8fec 3185 / Fix NavigationDrawer Overflow (#3187)
* fix side nav for short viewports

* remove uneeded justify-content in leu of overflow-y addition

* undo last commit to leave justify-content in for submenus

* move overflow-y to StyledContainer

* move overflow-y to items container

* remove problematic overflow to allow scrollable nav sections
2024-01-05 11:25:28 +01:00
dc76333b81 feat: add Settings/Accounts/Emails/Inbox Setting Contact auto-creation (#3188)
Co-authored-by: Lakshay saini <[email protected]>
2024-01-05 07:25:05 -03:00
e50b62df8f Loading more UI updated (#3198)
* style update

* inlcude box as a table element

* Ui

Loading more fixed

* changes

tbody added with ref
with margin and padding with theme variables

* Remove unused react fragment

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-05 11:07:49 +01:00
db46dd4497 feat: add RecordRelationFieldCardSection (#3176)
Closes #3123

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-05 11:02:02 +01:00
80c1c9aacc Increase test coverage for /modules/views (#3211)
* Increase test coverage for `/modules/views`

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* fix failing test

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Refactor into smaller tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* fix linter

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Fix unknown

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2024-01-05 09:58:19 +01:00
rakan makhashinandGitHub db17d46af3 trimming email input in validation #3195 (#3246) 2024-01-05 09:37:06 +01:00
Jeong Min ChoandGitHub 4552b88435 Added @graphiql/explorer-plugin in twenty docs package (#3244)
* Added plugin-explorer in twenty-docs gql page and updated graphiql version

* Cleaned up graphql file (#3087)

* Added plugin-explorer style and modified useEffect to adapt it (#3087)

* Updated the yarn lock file (#3087)
2024-01-05 09:17:28 +01:00
b112b74022 Feat/activities custom objects (#3213)
* WIP

* WIP - MultiObjectSearch

* WIP

* WIP

* Finished working version

* Fix

* Fixed and cleaned

* Fix

* Disabled files and emails for custom objects

* Cleaned console.log

* Fixed attachment

* Fixed

* fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-05 09:08:33 +01:00
Charles BochetandGitHub c15e138d72 Fix nx lint setup (#3234)
* Fix nx lint setup

* Fixes

* Fixes

* Add missing metadata

Fixes

Fix

Fixes

* Fix
2024-01-04 16:39:57 +01:00
bosiraphaelandGitHub 52d4f8e466 3233 connect connected accounts settings to backend (#3235)
* connect SettingsAccountsConnectedAccountsSection to backend

* get current user
2024-01-04 15:26:55 +01:00
WeikoandGitHub 4fddafceed Fix Event core object (#3232) 2024-01-04 13:40:34 +01:00
bosiraphaelandGitHub 54c1d245ab 3218 make the function fetchworkspacememberthreads idempotent (#3230)
* wip

* fetch only the messages which are not in the db

* fetch only the messages and threads which are not in the db

* fix bugs

* merge

* remove eslint-plugins-twenty

* get saved message thread ids and message ids at the same time
2024-01-04 13:36:37 +01:00
f36fa9aa14 feat: improve menuitem btn design (#3152)
feat: add LightIconButtonGroup

Co-authored-by: Charles Bochet <[email protected]>
2024-01-03 23:15:38 +01:00
8483cf0b4b POC: chore: use Nx workspace lint rules (#3163)
* chore: use Nx workspace lint rules

Closes #3162

* Fix lint

* Fix lint on BE

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-03 23:07:25 +01:00
1924962e8c OSS Friends list is out of date (#3192)
* OSS Friends list is out of date

Co-authored-by: Thiago Nascimbeni <[email protected]>

* Add icons

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Refactor according to review

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>

* OSS Friends list is out of date

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: niteshsingh1357 <[email protected]>
Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: niteshsingh1357 <[email protected]>
2024-01-03 22:38:25 +01:00
df6ceb7dfe fixed button size (#3194)
* fixed button size

* Fixes

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-03 21:56:50 +01:00
Aditya PimpalkarandGitHub 5413513554 fix: updatedAt parameter (#3208)
* fix: updatedAt param

* lint fix
2024-01-03 19:52:10 +01:00
b0d3e6d8d3 3157 refactor scoped states to move to v3 (#3180)
* renaming

* renaming

* create getDropdownScopeInjectors

* update useDropdown

* create internal hooks folder

* update record-table states to be scoped states

* update record-table selectors to be scoped selectors

* create utils scope injector

* refactor record-table wip

* refactor record-table wip

* wip

* inject scopeId in selectors

* update intenal hooks

* update intenal hooks

* update intenal hooks

* update intenal hooks

* update intenal hooks

* update intenal hooks

* update internal hooks

* update internal hooks

* update internal hooks

* update internal hooks

* update useTableColumns

* update states and hooks

* refactoring

* refactoring

* refactoring

* refactoring

* refactoring

* refactoring

* refactoring

* refactoring

* refactoring

* fix scopeId not in context

* fix lint errors

* fix error in story

* fix errors: wip

* fix errors

* fix error

* fix jest test

* fix scopeId not defined

* fix jest test

* Bug fixes

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-03 19:45:14 +01:00
martmullandGitHub 65250839fb 2248 zapier integration implement typeorm eventsubscribers (#3122)
* Add new queue to twenty-server

* Add triggers to zapier

* Rename webhook operation

* Use find one or fail

* Use logger

* Fix typescript templating

* Add dedicated call webhook job

* Update logging

* Fix error handling
2024-01-03 18:09:57 +01:00
bosiraphaelandGitHub 4ebaacc306 3216 request a new access token for the gmail api when it expires (#3224)
* refresh access token

* refresh and save access token

* update module

* refreshing access token before fetching the emails

* remove log
2024-01-03 18:00:31 +01:00
Charles BochetandGitHub 90f89e31a6 Render on latest image (#3223)
* Update render setup to use latest images

* Update render setup to use latest images

* Fixes

* Migrate demo seeds to json

* Update plans

* Update plans
2024-01-03 16:17:35 +01:00
Jeong Min ChoandGitHub f4405b1b38 Consistent Sorting of Workspace Buttons Across Browsers (#3222)
Fixed inconsistent workspace order in different browers (#3217)
2024-01-03 15:59:20 +01:00
bosiraphaelandGitHub 67fca68480 3202 fetch emails by threads (#3214)
* change fetchAllByBatches and fetchBatch to allow messages and threads to be fetched by batches

* wip

* format threads batches

* command is working

* command is working

* fix typing

* updates
2024-01-03 15:01:22 +01:00
martmullandGitHub ea06f04350 3207 fix render self deploy (#3221)
* Fix paths and commands for render deploy

* Remove breaking change

* Use twentycrm postgres image for postgres

* Fix render script

* Specify docker image version

* Fix postgres user

* Update setup command
2024-01-03 14:25:24 +01:00
6797f013c9 Fix favorites (#3138)
* WIP

* Finished cleaning favorites create, update, delete on record show page

* Fixed context menu favorite

* Fixed relation field bug

* Fix from review

* Review

---------

Co-authored-by: Charles Bochet <[email protected]>
2024-01-03 12:30:24 +01:00
Charles BochetandGitHub 41f3a74bf4 Build linux pg graphql (#3206)
* Build pg_graphql for linux

* Build for amd

* Fixes
2024-01-03 12:02:06 +01:00
Ikko Eltociear AshimineandGitHub 974498d57a Update README.md (#3189)
chose -> choose
2024-01-03 11:58:33 +01:00
Jérémy MandGitHub 2dae94dec6 fix: pg_graphql performance (#3204) 2024-01-02 16:06:15 +01:00
NeerajkumarandGitHub 338267b190 docs: update 'Edit this page' link to fix 404 error (#3203) 2024-01-02 16:05:44 +01:00
Charles BochetandGitHub 3d16ad8efd Fix docker install to have all projects (#3200)
* Fix docker install to have all projects

* Fix

* Fixes
2024-01-02 14:31:21 +01:00
2204345300 first column of objects table fixed (#3147)
* ui:first column of objects table fixed

* refactor shadow style logic

* Minor renaming fixes

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2024-01-02 11:37:29 +01:00
Félix MalfaitandGitHub 858c294f14 Website improvements 4 (#3182)
* Add contributor individual page

* Improve mobile menu

* Fix

* Remove yarn.lock from twenty-website

* Add yarn to gitingore

* Fix linter
2023-12-31 10:41:53 +01:00
97f83b55b0 Added a clear/reset button in InternalDateInput to reset/unschedule events (#3154)
* Added a clear/reset button in InternalDateInput to reset/unschedule events

* Added clearable prop to <InternalDateInput /> and fixed some design mistakes

* Removed unnecessary code that was used during debugging

* Replaced button with <MenuItem /> component

* Fixed null date in ObjectFilterDropdownDateSearchInput

* Moved clear context call from DateInput to DateFieldInput

* Removed useless props

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-29 15:15:08 +01:00
fd607789f4 Replace all hardcoded core object name by enum (#3170)
* Replace hardcoded core object name by enum

Signed-off-by: Florian Grabmeier <[email protected]>

* Fix typo

Signed-off-by: Florian Grabmeier <[email protected]>

* Fixed duplicate import

---------

Signed-off-by: Florian Grabmeier <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-29 15:11:30 +01:00
Félix MalfaitandGitHub c422045ea6 Marketing improvements 3 (#3175)
* Improve marketing website

* User guide with icons

* Add TOC

* Linter

* Basic GraphQL playground

* Very basic contributors page

* Failed attempt to integrate REST playground

* Yarn

* Begin contributors DB

* Improve contributors page
2023-12-29 11:17:32 +01:00
cristiantiradobandGitHub fa8a04743c Fix: Added autoFocus to Input (#3179) 2023-12-29 09:57:49 +01:00
Afnan AandGitHub f827912cb3 Issue#3150 - Esc and click outside is working to close searchbox (#3168)
* Issue#3150 - Esc and clickOutside will close Searchbox

* Font size, margin + 'esc' only

Font size changed to theme specific, have a handsome margin to the top right of search box for text "Esc to cancel". Passing 'esc' only to escape.
2023-12-29 09:54:01 +01:00
ThaïsandGitHub 81a18cd751 fix: fix disabled Button and IconButton primary accents background co… (#3165)
fix: fix disabled Button and IconButton primary accents background color and opacity

Fixes #3135
2023-12-28 15:47:15 +01:00
Sourav PakhiraandGitHub 40d4a0d9c8 docs : added password in yarn setup doc (#3174) 2023-12-28 13:51:58 +01:00
SahilandGitHub d71150eca8 fix: modified the floatingButtonGroup code to have only one focus (#3167) 2023-12-28 10:10:54 +01:00
Félix MalfaitandGitHub 3d5a364e29 Marketing website improvements (#3169)
* Website improvement

* Improve website design

* Start writing script for user guide

* Begin adding user guide
2023-12-27 16:14:42 +01:00
c08d8ef838 feat: add email blocklist section with mocked data (#3145)
* feat: add email blocklist section with mocked data

* fix:front lint testcase

* fix: add current date and placeholder update

---------

Co-authored-by: Lakshay saini <[email protected]>
2023-12-27 14:54:48 +01:00
a4e45d039e Updated the color theme of icon in Data Model Settings table (#3121)
* Updated the color theme of icon in Data Model Settings table

* add the sm stroke to icon

* add the sm stroke to icon

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-26 18:08:00 +01:00
bosiraphaelandGitHub 526a3d7d9a 3019 timebox add typing and checks in workspacemessagingservices (#3112)
* throw error

* fetchWorkspaceMessages fetches messages and threads

* renaming

* improve typing

* improve typing and error handling

* improve typing and error handling

* improve typing and error handling

* improve fetch-batch

* fix bug

* replace return types

* imporving typing and error handling

* improve typing and error handling

* improve typing and error handling

* improve typing and error handling

* improve typing and error handling

* remove console log
2023-12-26 18:07:40 +01:00
Deepak KumarandGitHub 58a62e8d17 GH-3090 Add ability to paste image in activity body editor (#3119) 2023-12-26 17:52:59 +01:00
Deepak KumarandGitHub 00ab07ea62 GH-3153 Enrich Sentry logs with user data on frontend (#3158)
GH-3153 identify user in Sentry logs on frontend
2023-12-26 17:48:33 +01:00
b650b1dca3 GH-3106 Ability to multi-note/task with action bar (#3137)
* GH-3106 fix activity drawer opener for selected rows hook

* GH-3106 ability to multi note/task with action bar

* GH-3106 use snapshot to get selected row IDs

* GH-3106 format code & fix linting issues

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-26 17:44:23 +01:00
Sony AKandGitHub 3535ef5053 Fix: broken link to server .env.example (#3151)
Correct URL is https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/.env.example
2023-12-26 11:24:00 +01:00
SahilandGitHub 52e2a33e62 fix: handled submitting wihtout entering emailid (#3149) 2023-12-26 09:38:55 +01:00
ca056dfb27 User guide (#3060)
* user guide

* user guide additions

* light mode images added

* minor edits

* Delete packages/twenty-server/.local-storage/attachment/bd373039-67f7-4da3-ac86-3710d0b8c70d.svg

* Optimize image size

---------

Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: Félix Malfait <[email protected]>
2023-12-26 09:24:00 +01:00
Félix MalfaitandGitHub 5ef5bbdc4d Marketing website POC (#3139)
First website POC
2023-12-23 10:08:55 +01:00
Charles Bochet 68a6250757 Bump version 2023-12-21 23:52:45 +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 <[email protected]>
2023-12-21 23:50:24 +01:00
Charles BochetandGitHub 756b30815e Fix various bugs before 0.2.2 (#3118)
* Fix various bugs before 0.2.2 release

* Additional fixes

* More fixes

* Fixes
2023-12-21 23:48:52 +01:00
Andrey KudandGitHub 69ffa0d229 Bug on table first load (#3117)
fix: Bug on table first load
2023-12-21 22:30:54 +01:00
Deepak KumarandGitHub 41f45c953b GH-3105 Fix Object name icon weight is too light (#3116)
GH-3105 make preview object name icon to have regular stroke
2023-12-21 21:44:35 +01:00
0ae0bf73fd fix: On Sign Out > Sign In, States are not loaded properly (#3041)
* fix: On Sign Out > Sign In, States are not loaded properly

* draft: reset on logout

* chore: lint

* chore: lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-21 21:44:17 +01:00
Andrey KudandGitHub ce6214d6ef Object name font-weight in Data Model Settings (#3115)
* fix: make name bolder

* chore: fix lint
2023-12-21 21:36:21 +01:00
Deepak KumarandGitHub de3d955040 GH-3110 Update relation icon on data model settings (#3114)
GH-3110 update relation icon on data model settings with IconLayersLinked
2023-12-21 20:14:04 +01:00
794cf87b43 feat: record batch deleteMany (#3096)
feat: support record batch deleteMany

Co-authored-by: Charles Bochet <[email protected]>
2023-12-21 19:55:40 +01:00
801177531b Fix and enhance storybook:modules:tests (#3107)
* Fix and enhance storybook:modules:tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix and enhance storybook:modules:tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix and enhance storybook:modules:tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Remove unnecessary changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix email thread story

* Re-enable storybook:modules

* Fix

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-12-21 19:45:47 +01:00
d532f22fbb feat: migration can be applied on a specific schema & some enhancements (#2998)
* fix: remove old metadata seed files

* feat: wip standard to core relation

* fix: lint

* fix: merge

* fix: remove debug files

* feat: add feature flag for core object metadata

* fix: remove debug

* feat: always disable the standard core relation

* fix: missing feature flag

* fix: remove debug

* fix: feature flag doesn't seems to disable relation

* fix: delete .vscode folder, change this in another PR

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/reflective-metadata.factory.ts

Co-authored-by: Weiko <[email protected]>

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/reflective-metadata.factory.ts

Co-authored-by: Weiko <[email protected]>

* Update packages/twenty-server/src/workspace/workspace-sync-metadata/workspace-sync.metadata.service.ts

Co-authored-by: Weiko <[email protected]>

* fix: remove optional fields from metadata entities

* fix: renamed variable

* fix: put back CursorScalarType

* fix: delete test command

* fix: remove unused workspace standard migration command

* fix: drop core object metadata declaration

* fix: rename variable

* fix: drop creation of core datasource

* fix: remove feature flag

* fix: drop support of standard to core relations

* feat: add user email field on workspace-member standard object

* fix: update seed accordingly

* fix: missing remove command file

* fix: datasource label should remain nullable

* fix: better asserts

* Remove unused code

* Remove unused code

---------

Co-authored-by: Weiko <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-12-21 19:15:05 +01:00
Jérémy MandGitHub 3234134a30 fix: composite type migrations not well formatted (#3088) 2023-12-21 19:00:33 +01:00
bosiraphaelandGitHub 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
WeikoandGitHub 7f66eb9459 Filter out system object for relation object destination (#3108)
filter out system object for relation object destination
2023-12-21 16:32:49 +01:00
WeikoandGitHub e67f6873d3 Fix missing isNullable for object creation activity target (#3109) 2023-12-21 16:32:04 +01:00
Lucas BordeauandGitHub 180aec5ad8 Typed updateRecord hook in generic field logic (#3102)
* Typed updateRecord hook in generic field logic

* Use sanitize instead of additional optimisticInput
2023-12-21 16:27:26 +01:00
WeikoandGitHub 0d00e3d62d send pg graphql exception to sentry + fix missing nullable for relations (#3101)
* Send pg_graphql errors to sentry

* Send pg_graphql errors to sentry

* fix

* fix

* fix

* fix relation nullable
2023-12-21 16:07:25 +01:00
Charles BochetandGitHub e9bc13b5fa Refactor recoil scope states (#3097)
* Refactor recoil scope states

* Complete refactoring

* Fix
2023-12-21 14:25:18 +01:00
brendanlaschkeandGitHub b416b0f98f Update new/edit object according to figma (#3093)
* made changes according to figma

* remove click custom in test
2023-12-21 11:33:52 +01:00
brendanlaschkeandGitHub 4918865132 Showpage add more actions button (#3095)
- add more actions button
2023-12-21 09:27:13 +01:00
brendanlaschkeandGitHub 5fc8dbc182 Add border to right drawer (#3094)
add border
2023-12-21 08:28:21 +01:00
687c9131f4 Feat/record optimistic effect (#3076)
* WIP

* WIP

* POC working on hard coded completedAt field

* Finished isRecordMatchingFilter, mock of pg_graphql filtering mechanism

* Fixed and cleaned

* Unregister unused optimistic effects

* Fix lint

* Fixes from review

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-20 20:31:48 +01:00
a5f28b4395 fix: display label identifier field input in Show Page (#3063)
* fix: display label identifier field input in Show Page

Fixes #3003

* Cleaned a bit after comments

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-20 18:52:02 +01:00
martmullandGitHub b1841d0e2f 2114 timebox make sure the zapier integrations supports custom objects (#3091)
* Fix build command

* Add hidden trigger to fetch object names

* Remove useless actions

* Rename createObject to createRecord
2023-12-20 18:41:30 +01:00
gitstart-twentyGitHubgitstart-twentygitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>v1b3mCharles Bochet
984fc76b94 Fix and enhance storybook:pages tests (#3085)
* Fix and enhance storybook:pages tests

Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>

* Fix and enhance storybook:pages tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>

* fix SettingsObjectFieldPreview

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>

* Fix lint

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>

* Fix jest

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>

* Add more fixes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>

* Fix App.stories.tsx

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>

* Fix tests

* Fix according to review

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-12-20 18:36:58 +01:00
6c30556d00 feat: add Settings/Accounts/Emails/Inbox Settings visibility section (#3077)
* feat: add Settings/Accounts/Emails/Inbox Settings page

Closes #3013

* feat: add Settings/Accounts/Emails/Inbox Settings synchronization section

Closes #3014

* feat: add Settings/Accounts/Emails/Inbox Settings visibility section

Closes #3015

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-20 16:09:47 +01:00
5bbd1a7c49 feat: add Settings/Accounts/Emails/Inbox Settings synchronization sec… (#3071)
* feat: add Settings/Accounts/Emails/Inbox Settings page

Closes #3013

* feat: add Settings/Accounts/Emails/Inbox Settings synchronization section

Closes #3014

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-20 15:59:02 +01:00
082f52eda9 feat: add Settings/Accounts/Emails/Inbox Settings page (#3064)
Closes #3013

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-20 15:53:40 +01:00
brendanlaschkeandGitHub c4fecb0a1a Upload image for use in blocknote editor (#3044)
* - upload image to use in blocknote editor
- fix local-storage not in gitignore

* fix lint

* fix runtime config
add tests for body parsing notes and tasks

* lint
2023-12-20 15:16:19 +01:00
RuslanandGitHub 351dc6488c feat(workspace-resolver): prevent deletion of demo workspaces (#2207) (#3068)
* feat(workspace-resolver): prevent deletion of demo workspaces (#2207)

* ForbiddenException instead of Error

* Optimize user and workspace deletion checks and clarify exception messages (#2207)

- ForbiddenException messages for attempts to delete users and workspaces associated with demo accounts
2023-12-20 14:52:44 +01:00
Lucas BordeauandGitHub d70cb23f30 Added rimraf to yarn build (#3089) 2023-12-20 14:50:10 +01:00
dd044e8f66 fix: empty state should not appear during table loading (#3040)
* fix: empty state should not appear during table loading

* feat: add initla load tracking

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-20 14:19:02 +01:00
Jérémy MandGitHub d59a37129f fix: sentry doesn't catch exceptions from flexible backend (#3074)
* fix: sentry doesn't catch exceptions from flexible backend

* fix: send remaining errors to Sentry

* fix: missing debug

* feat: use an util exception handler instead of Nest.JS class
2023-12-20 12:04:59 +01:00
martmullandGitHub ed7bd0ba26 2914 graphql api documentation (#3065)
* Remove dead code

* Create playground component

* Remove useless call to action

* Fix graphiql theme

* Fix style

* Split components

* Move headers to headers form

* Fix nodes in open-api components

* Remove useless check

* Clean code

* Fix css differences

* Keep carret when fetching schema
2023-12-20 12:01:55 +01:00
d2666dc667 2973-feat: Skeleton Loading Added (#2988)
* 2973-feat: Skeleton Loading Added

* loading from useQuery

* PR suggestions fixed

* Fix accoding to review

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-20 10:07:16 +01:00
ThaïsandGitHub c09b98cdc9 fix: hide disabled fields in Show Page (#3062)
Fixes #2904
2023-12-19 18:45:37 +01:00
ThaïsandGitHub 58f781b0a8 fix: fix Relation field form select labels display (#3081)
Fixes #3080
2023-12-19 18:13:15 +01:00
ThaïsandGitHub 235b97fb56 fix: add dark mode version of Settings Object cover image (#3079)
Fixes #3078
2023-12-19 18:10:47 +01:00
WeikoandGitHub 4637a92f09 Fix queue setup (#3075)
fix bullmq setup
2023-12-19 17:12:22 +01:00
5afcab4e78 3011 fill the messagerecipient table when fetching messages (#3073)
* wip

* trying to parse display names and emails

* add nodemailer mailparser

* mail parsing is working

* add personId and workspaceMemberId

* add date to messages

* Fix PR

* Run tsc on bigger machine

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-19 17:08:54 +01:00
+10 b1ec3bdf42 feat: add Settings/Accounts/New section with empty state (#3000)
* feat: add Settings/Accounts/New  section with empty state

* fix: added label for Empty State Card

* On RecordTable, if I have no records, the Record Table Layout is not broken (#2911)

* On RecordTable, if I have no records, the Record Table Layout is not broken

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Revert scrollbar changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* fix + button

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Revert unwanted changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Merge main

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* On RecordTable, if I have no records, the Record Table Layout is not broken

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Add bottom border

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Always show + button

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Fix according to PR

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>

* Add jest tests for twenty-front (#2983)

* Add jest tests for twenty-front

Co-authored-by: v1b3m <[email protected]>

* Fix tests

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>

* feat: select default Unit for Currency field (#2996)

Closes #2347

Co-authored-by: Thais GUIGON <[email protected]>

* Remaining UI docs (#2997)

* remaining UI docs

* completed ui component docs

---------

Co-authored-by: Charles Bochet <[email protected]>

* Fix CIs (#3004)

* Fix CIs

* Fix docs

* Fix eslint-build

* Move file

* Move back

* Fix server ci

* Fix server ci

* Fix server ci

* Fix server ci

* Deactivate e2e tests

* Fix front

* Fix front

* Fix front

* Add twenty-zapier and twenty-utils to the yarn project

* fix

* fix

* Remove pull_request trigger

* Fix ExceptionHandler requiring httpAdapter (#3021)

* Disable chromatic CI

* Disable Danger CI on push trigger (#3024)

Disable Danger CI on main

* feat: add Show Page Emails tab (#2962)

* feat: add Show Page Emails tab

Closes #2926, Closes #2927

* feat: review - disable Emails tab if messaging not enabled

* refactor: review - add FeatureFlagKey type

---------

Co-authored-by: Thais GUIGON <[email protected]>

* 2880 timebox create a poc to fetch emails from the gmail api (#2993)

* create empty service

* getting threads is working

* insert message channel

* save threads in the db

* clean

* fetch messages

* create a service to fetch a batch of messages

* batch messages

* use httpService instead

* parse batch

* base 64 decoding working

* solve parsing bug

* saving messages is working

* bug to fix in fetchAllByBatches

* fetching all messages is working but not saving yet

* fecth 500 messages and threads is working

* remove unused package and console log

* set direction to incoming

* fix bug after merging main

* Fix modified files DangerCI (#3025)

- fix modified files

* feat: add Show Page Emails preview (#2964)

* feat: add Show Page Emails preview

Closes #2928

* refactor: review - rename StyledContainer to StyledCardContent

* 2915 rest api documentation (#3020)

* Init rest-api page

* Add ugly form to fetch open api schema

* Clean code

* Make the form design more acceptable

* Update doc

* Use local storage

* Update design

* Add isLoading

* Fix typo

* Fix long lines

* Code review returns

* Remove staging and local url from servers

* 2982-feat: Clear SelectableList reset scoped state (#2987)

* 2982-feat: Clear SelectableList reset scoped state

* State fixes as suggested in pr

* State fixes as suggested in pr

---------

Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>

* Fix docusaurus style overriden by spotlight/element (rest api playground) (#3033)

* Fix docusaurus style overriden by spotlight/element (rest api playground)

* Fix spacing

* Fix spacing

* Fix: keep the filter edition open if it is empty (#2986)

Co-authored-by: 曹志浩 <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>

---------

Co-authored-by: Lakshay saini <[email protected]>
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Thaïs <[email protected]>
Co-authored-by: Thais GUIGON <[email protected]>
Co-authored-by: Nimra Ahmed <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: bosiraphael <[email protected]>
Co-authored-by: brendanlaschke <[email protected]>
Co-authored-by: martmull <[email protected]>
Co-authored-by: Kanav Arora <[email protected]>
Co-authored-by: Cao Z.H <[email protected]>
Co-authored-by: 曹志浩 <[email protected]>
2023-12-19 15:52:39 +01:00
ffcdace113 2980-Fix: CommandGroup background (#2985)
* 2980-fix: CommandGroup background

* Box Shadow fix

* suggested color fixes

* Fix related to design dicussion: add border + make everything background secondary

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-19 15:41:58 +01:00
VarroooandGitHub 0f7ddd2f14 Fixs/reviews setups (#3067)
* update syntax to POSIX

The function keyword is not recognize by every POSIX-compliant shell.  The function keyword is a bashism, a bash extension. POSIX syntax does not use function and mandates the use of parenthesis.

This commit fixes the two issues :
./linux/provision-postgres-linux.sh: 9: function: not found
./linux/provision-postgres-linux.sh: 15: Syntax error: "}" unexpected

* update path init.sql

* update steps numbers yarn setup

There were two number 3's, everything should be correct now.

* delete useless -e
2023-12-19 15:20:13 +01:00
WeikoandGitHub e799c84233 Add sync driver for queue messages (#3070)
* Add sync driver for queue messages

* rename moduleRef

* use switch instead
2023-12-19 13:30:40 +01:00
Félix MalfaitandGitHub fff51a2d91 Basic data enrichment (#3023)
* Add Enrich to frontend

* Naive backend implementation

* Add work email check

* Rename Enrich to Quick Action

* Refactor logic to a separate service

* Refacto to separate IntelligenceService

* Small fixes

* Missing Break statement

* Address PR comments

* Create company interface

* Improve edge case handling

* Use httpService instead of Axios

* Fix server tests
2023-12-18 15:45:30 +01:00
martmullandGitHub 576492f3c0 3035 improve rest api syntax (#3047) 2023-12-18 13:46:21 +01:00
brendanlaschkeandGitHub b36d86e52c Fix tag border color Relations (#3034)
- fix tag theme types
- fix color for tag border
2023-12-18 08:44:12 +01:00
Deepak KumarandGitHub 2507da1b25 feat: Add feature flags to Select & Rating custom fields (#3037)
* Add feature flag key for select and rating

* Use feature flag boolean to decide if select & rating are enabled

* Enable select and rating in demo & core
2023-12-18 08:38:25 +01:00
Charles BochetandGitHub 65f05ff43a Fix documentation layout broken because of mixed rest api doc styles (#3043) 2023-12-18 08:32:35 +01:00
Deepak KumarandGitHub 3609c0939d GH-3028 Update filter key and JSON parse assignee selected filter on tasks page (#3045)
GH-3028 update key and JSON parse assignee selected filter on tasks page
2023-12-18 08:16:38 +01:00
Félix MalfaitandGitHub f6041f560d Readme update with demo (#3042) 2023-12-17 16:26:54 +01:00
18b2e2b748 Fix: keep the filter edition open if it is empty (#2986)
Co-authored-by: 曹志浩 <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-12-15 21:39:17 +01:00
Charles BochetandGitHub 72929d1de6 Fix docusaurus style overriden by spotlight/element (rest api playground) (#3033)
* Fix docusaurus style overriden by spotlight/element (rest api playground)

* Fix spacing

* Fix spacing
2023-12-15 19:45:34 +01:00
2ea0e0c4e8 2982-feat: Clear SelectableList reset scoped state (#2987)
* 2982-feat: Clear SelectableList reset scoped state

* State fixes as suggested in pr

* State fixes as suggested in pr

---------

Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-12-15 18:36:32 +01:00
martmullandGitHub 3ac4102c3c 2915 rest api documentation (#3020)
* Init rest-api page

* Add ugly form to fetch open api schema

* Clean code

* Make the form design more acceptable

* Update doc

* Use local storage

* Update design

* Add isLoading

* Fix typo

* Fix long lines

* Code review returns

* Remove staging and local url from servers
2023-12-15 18:13:13 +01:00
ThaïsandGitHub 9f6d476351 feat: add Show Page Emails preview (#2964)
* feat: add Show Page Emails preview

Closes #2928

* refactor: review - rename StyledContainer to StyledCardContent
2023-12-15 17:03:34 +01:00
brendanlaschkeandGitHub 1e33959733 Fix modified files DangerCI (#3025)
- fix modified files
2023-12-15 17:02:10 +01:00
bosiraphaelandGitHub f95c56b1cb 2880 timebox create a poc to fetch emails from the gmail api (#2993)
* create empty service

* getting threads is working

* insert message channel

* save threads in the db

* clean

* fetch messages

* create a service to fetch a batch of messages

* batch messages

* use httpService instead

* parse batch

* base 64 decoding working

* solve parsing bug

* saving messages is working

* bug to fix in fetchAllByBatches

* fetching all messages is working but not saving yet

* fecth 500 messages and threads is working

* remove unused package and console log

* set direction to incoming

* fix bug after merging main
2023-12-15 16:35:56 +01:00
ac3c517c82 feat: add Show Page Emails tab (#2962)
* feat: add Show Page Emails tab

Closes #2926, Closes #2927

* feat: review - disable Emails tab if messaging not enabled

* refactor: review - add FeatureFlagKey type

---------

Co-authored-by: Thais GUIGON <[email protected]>
2023-12-15 16:31:03 +01:00
Charles BochetandGitHub 800330df90 Disable Danger CI on push trigger (#3024)
Disable Danger CI on main
2023-12-15 16:22:35 +01:00
Charles Bochet 3d29481fbd Disable chromatic CI 2023-12-15 16:09:49 +01:00
Charles BochetandGitHub 3659f12fba Fix ExceptionHandler requiring httpAdapter (#3021) 2023-12-15 16:07:35 +01:00
Charles BochetandGitHub 064e47b59a Fix CIs (#3004)
* Fix CIs

* Fix docs

* Fix eslint-build

* Move file

* Move back

* Fix server ci

* Fix server ci

* Fix server ci

* Fix server ci

* Deactivate e2e tests

* Fix front

* Fix front

* Fix front

* Add twenty-zapier and twenty-utils to the yarn project

* fix

* fix

* Remove pull_request trigger
2023-12-15 15:40:04 +01:00
6e09ae61f9 Remaining UI docs (#2997)
* remaining UI docs

* completed ui component docs

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-15 11:36:28 +01:00
1eb5bebaf7 feat: select default Unit for Currency field (#2996)
Closes #2347

Co-authored-by: Thais GUIGON <[email protected]>
2023-12-15 11:01:06 +01:00
5f7442cf23 Add jest tests for twenty-front (#2983)
* Add jest tests for twenty-front

Co-authored-by: v1b3m <[email protected]>

* Fix tests

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-12-15 10:53:20 +01:00
af9d3fb217 On RecordTable, if I have no records, the Record Table Layout is not broken (#2911)
* On RecordTable, if I have no records, the Record Table Layout is not broken

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Revert scrollbar changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* fix + button

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Revert unwanted changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Merge main

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* On RecordTable, if I have no records, the Record Table Layout is not broken

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Add bottom border

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Always show + button

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Fix according to PR

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-15 10:35:26 +01:00
Charles BochetandGitHub b04c787540 Update Jest configuration for frontend (#2994) 2023-12-14 20:08:03 +01:00
Charles Bochet e22b242ef8 Fix multiselect on activities 2023-12-14 19:05:10 +01:00
WeikoandGitHub 36164ab59b Add pg-boss worker poc (#2991)
* Add pg-boss worker poc

* add Example job

* add retry limit

* rename MessageQueue
2023-12-14 18:57:25 +01:00
468744298b Fix hook bug (#2995)
* Fix hook bug

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-14 18:54:23 +01:00
brendanlaschkeandGitHub 7f3d5e0e82 fix note card display (#2989) 2023-12-14 16:01:45 +01:00
45deb468cc feat:added an empty page with the route: /settings/accounts/new. (#2960)
* feat:added an empty page with the route: /settings/accounts/new.

* chore: addressed PR feedback, added Storybook page

* fix: lint fixes

---------

Co-authored-by: Lakshay saini <[email protected]>
2023-12-14 14:56:49 +01:00
Charles Bochet 73e03dd0c4 Fix bug IconPicker 2023-12-14 14:41:51 +01:00
Charles Bochet fd3b7ccd9a Fix 404 page missing on production container build 2023-12-14 13:12:24 +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 <[email protected]>
2023-12-14 12:39:22 +01:00
Charles BochetandGitHub 8916dee352 Fix Icon Lazy Loading (#2984)
Fix Icon picker
2023-12-14 12:13:02 +01:00
ed2cd408bf Use SelectableList in RelationPicker, SingleEntitySelectBase and MultipleEntitySelect (#2949)
* 2747-fix: conditional updation of selectedItemId

* 2747-fix: bug in toggling

* 2747-feat: SingleEntitySelectBase list changed to SelectableList

* 2747-feat: MultipleEntitySelect use SelectableList

* Fix lint

* 2747-fix: onEnter property fix for SingleEntitySelectBase

* 2747-fix: onEnter property fix for MultipleEntitySelect

* yarn fix in twenty-front

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-14 12:10:58 +01:00
4673a302c7 2951-fix: Editing view filters button fix (#2954)
* 2951-fix: Editing view filters button fix

* Fixed lint

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-13 18:00:43 +01:00
856b78abc7 feat: add Settings/Accounts/Emails Emails Sync section accounts list (#2957)
Closes #2888

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-13 17:37:12 +01:00
Charles BochetandGitHub 9eddaffac4 Fix Tsup setup to fuel docs with twenty-ui components (#2978) 2023-12-13 16:40:31 +01:00
e08790c344 Fix command menu keyboard navigation (#2908)
* Fix CommandMenu

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-13 16:39:03 +01:00
Lucas BordeauandGitHub bded46444d Added ability to edit filter and sort chip directly (#2968)
* - Added EditableSortChip
- Fixed EditableFilterChip onRemove not closing

* Added missing script in dependencies

* Linted files

* Finished fixing lint
2023-12-13 15:24:06 +01:00
martmullandGitHub e3e42be723 Add generate openapi schema for rest api (#2923)
* Add generate openapi schema for rest api

* Split method in utils

* Add paramters

* Add error response

* Update description of filter and order by

* Add get/id routes

* Add delete route

* Use components

* Fix Typo

* Add tags

* Add create query

* Add required field

* Add update query

* Add body request example

* Add 201 on create request

* Add servers

* Fix failing test

* Add open-api endpoint

* Update description

* Return base schema if no auth

* Code review returns

* Use open-api/types

* Fix tag

* Use components for parameters

* Improve response examples

* Improve axios error message

* Fix tests
2023-12-13 14:58:34 +01:00
martmullandGitHub 366ae0d448 2893 add data wrapper for mysql (#2970)
* Add mysql_fdw to postgres dockerfile

* Name and run detached docker containers

* Fix naming
2023-12-13 14:56:52 +01:00
Charles BochetandGitHub 9182efc57a Fix MSW and storybook setup (#2976)
* Fix MSW and storybook setup

* Fix

* Fix

* Fixes

* Fix

* Fix

* Fix
2023-12-13 14:37:55 +01:00
Charles Bochet 34b5bfc34f Fix build linter issues 2023-12-12 23:19:29 +01:00
Charles Bochet 08599f3d1c Fix build linter issues 2023-12-12 23:18:16 +01:00
Charles BochetandGitHub 2496431703 [Wip] Update CI CD (#2945)
* Update CI and CD scripts

* Fix docker docs build

* Fix CD

* Fix CD

* Update front build and add postgres intel pg_graphql files

* Fix postgres install

* Fix

* Update docs
2023-12-12 22:38:40 +01:00
6594055317 Create empty command (#2963)
* create empty command

* update description

* rebase

---------

Co-authored-by: corentin <[email protected]>
2023-12-12 18:22:19 +01:00
WeikoandGitHub f126bd95d6 Add featureFlag gateDecorator for sync-metadata (#2956)
* Add featureFlag gateDecorator for sync-metadata

* remove gate exampels

* gate messaging objects

* gate messaging recipient object

* add missing gate
2023-12-12 17:34:59 +01:00
bosiraphaelandGitHub 6977fd4ce2 2812 create message recipient data model (#2961)
* create message-recipient

* connections with other models

* add to index

* fix file name
2023-12-12 17:05:09 +01:00
bosiraphaelandGitHub a21fc4976b 2811 create message thread data model (#2955)
* create message thread

* link message threads and message

* add ton index.ts

* finished models

* header mail id

* update icon

* modifications

* update externalId
2023-12-12 16:08:51 +01:00
ThaïsandGitHub 0048216abf feat: add Settings/Accounts Connected Accounts section accounts list (#2953)
Closes #2887
2023-12-12 16:03:39 +01:00
Lucas BordeauandGitHub 2a4ab2ffd3 Feat/complete filter order by types (#2943)
* Fixed orderBy bug

* Fixed gitch select multiple record filter

* Fixed RelationPicker search

* Fixed OrderBy type

* WIP

* Finished RequestFilter typing

* Finished RequestFilter type

* Fixed missing import

* Changed naming
2023-12-12 15:56:21 +01:00
Jérémy MandGitHub 8381869c7f fix: workspace migration isNullable (#2939) 2023-12-12 15:18:37 +01:00
bosiraphaelandGitHub 6bc7a58902 2813 create message channel data model (#2952)
* create model

* finished model

* modidied visibility type to select

* changed back to TEXT

* handle instead of email

* handle instead of email

* handle instead of email

* modified according to comment
2023-12-12 15:14:18 +01:00
Jérémy MandGitHub 44f1fe54e1 fix: use proper variable name (#2938) 2023-12-12 14:57:42 +01:00
Kanav AroraandGitHub 032894e448 2946-fix: Postgres Makefile file path fix (#2947) 2023-12-12 14:57:00 +01:00
ThaïsandGitHub 3ed92b2f80 feat: add Settings/Accounts/Emails Emails Sync section with empty state (#2941)
Closes #2823
2023-12-12 12:21:10 +01:00
Kanav AroraandGitHub 4afa277690 2902-fix: record table column add behavior (#2936) 2023-12-12 12:17:29 +01:00
ThaïsandGitHub 6792724281 feat: save Relation field description on creation (#2940)
Closes #2896
2023-12-12 11:28:09 +01:00
bosiraphaelandGitHub 95002f5f9a Migrate connected account model (#2944)
* migrate-connectedAccount-model

* update accountOwerId

* prevent user from connecting multiple times with the same account

* Delete .yarn/releases/yarn-1.22.21.cjs

* Delete .yarnrc

* modified according to comments

* updates
2023-12-12 11:09:20 +01:00
Karishma ShahandGitHub 3f422f9640 BugFix: display button title when escaping the "Import" flow (#2948)
pass in the button title correctly as a prop into StyledDialogButton
2023-12-12 10:46:54 +01:00
WeikoandGitHub d2a42c14d2 Add field create and delete migration to metadata sync (#2942)
add field create and delete migration to metadata sync
2023-12-11 17:42:09 +01:00
Jérémy MandGitHub b9de9f1a08 fix: add vscode workspace (#2937) 2023-12-11 15:45:45 +01:00
8d53c63801 Fix docker install (#2925)
* Fix docker install

* Move back twenty-eslint-plugin to eslint-plugin-twenty

* fix: add bundled yarn

* Improve makeifle structure

* Update commands and doc

* Add pg_graphql binaries

* Fix

---------

Co-authored-by: Jérémy Magrin <[email protected]>
2023-12-11 13:36:24 +01:00
Charles Bochet 44ef218fa5 Fix Docker postgres dev setup 2023-12-11 11:13:03 +01:00
Charles Bochet 7bc8a21485 Fix wrong yarn version being used 2023-12-11 11:07:03 +01:00
44baaee28e Update scripts and documentation to use nx and new monorepo architecture (#2912)
* Update scripts and documentation to use nx and new monorepo architecture

* Start fixing docker

* Migrate eslint plugin and postgres setup

* Fix docker

* Fix patches

* Fix

* fix: wip try to fix the patches

* Apply patches

---------

Co-authored-by: Jérémy Magrin <[email protected]>
2023-12-11 10:54:57 +01:00
Kanav AroraandGitHub f91bb35573 2921-fix: readme img path fix (#2922) 2023-12-11 08:33:14 +01:00
Charles BochetandGitHub 5bdca9de6c Migrate to a monorepo structure (#2909) 2023-12-10 18:10:54 +01:00
a70a9281eb Move frontend to Vite 5 (#2775)
* merge squashed

- A couple of CJS modules into ESM (config mostly)
- Vite complains about node.js modules: fixed `useIsMatchingLocation.ts`
	> or use rollupOptions in vite.config.ts
	> ref: https://github.com/saleor/saleor-dashboard/blob/f0e4f59d97e2a8c3e22bd2af7b7ce68a361fc9a4/vite.config.js#L6
- Adjust Storybook to work with Vite: use @storybook/test
- Use SWC for jest tranformations
- Remove unused deps:
	- ts-jest: replaced with @swc/jest, typecheck by `tsc`
	- babel plugins
	- @svgr/plugin-jsx: not used
	- @testing-library/user-event: handled by @storybook/test
	- @typescript-eslint/utils: was not plugged in
	- tsup, esbuild-plugin-svgr: will look into that later
- Install Vite required deps, and remove craco/webpack deps
- Adjust SVG to work with Vite as components
- Fixed `Step.tsx`: I dont know if one should be swaped for the other,
  but there should be no slash
- Initial formating and linting:
	- removed empty object params
	- sorting imports, etc..

* prettier: fix pattern

* coverage: sb coverage report isnt working

* Add missing pieces

* `yarn lint --fix`

* fix: scripts permissions

* tsc: cut errors in half

* fix: remove `react-app-env.d.ts`

* tsc: all fixed, except `react-data-grid` types issue

* eslint: ignore env-config.js

* eslint: Align ci with config

* msw: bypass testing warnings

ref: https://stackoverflow.com/questions/68024935/msw-logging-warnings-for-unhandled-supertest-requests

* rebase: and fix things

* Adjust to current `graphql-codegen` no ESM support

* Remove vite plugin and use built-in methods

* rebase: and some fixes

* quick fix + `corepack use [email protected]`

* Fix build errors

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-10 16:22:43 +01:00
Charles BochetandGitHub f24541beda Release 0.2.1 (#2879) 2023-12-09 11:05:38 +01:00
306344a190 Spreadsheet import front module (#2862)
* Spreadsheet import front module

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>

* Automatically update table

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>

* Add company import

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>

* Fixes

* Hide import options on custom objects

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-12-09 11:01:01 +01:00
7c40dc7b81 Add Keyboard navigation on IconPicker (#2778)
* Add Add Keyboard navigation on IconPicker

Co-authored-by: Matheus <[email protected]>

* Add Keyboard navigation on IconPicker

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Add Keyboard navigation on IconPicker

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Add Keyboard navigation on IconPicker

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Implement IconPicker

* Remove onEnter clicked

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-12-09 10:45:40 +01:00
brendanlaschkeandGitHub 130e4c8313 Update Blocknote (#2872)
* - update blocknote
- fix line break in notes

* - fixed parsing body error on image block

* add feature flag
2023-12-09 10:40:54 +01:00
Nimra AhmedandGitHub 3913e1b6a0 input component ui docs (#2873) 2023-12-09 10:39:50 +01:00
Charles BochetandGitHub 9d4ed323a7 Fix optimistic rendering (#2882)
* Release 0.2.1

* Optimistic rendering fixes

* Fix optimistic rendering

* Fix issues on Tasks

* Fix Opportunity picker and relation picker
2023-12-09 10:38:37 +01:00
martmullandGitHub e7bdb17128 Fix missing Wrappers version in dockerfile (#2899) 2023-12-08 17:48:37 +01:00
Lucas BordeauandGitHub 52859e18ed Picker and MultiSelect fixes (#2883)
* Fixed orderBy bug

* Fixed gitch select multiple record filter

* Fixed RelationPicker search

* Fixed OrderBy type
2023-12-08 17:42:40 +01:00
martmullandGitHub 9b7d7b29ed Update token verification and fix typo (#2889)
* Update token verification and fix typo

* Fix typo
2023-12-08 17:42:08 +01:00
WeikoandGitHub a48c9293f6 Fix missing isNullable (#2892)
* Fix missing isNullable

* fix
2023-12-08 16:33:34 +01:00
WeikoandGitHub b68f5cda97 Fix relation between standard objects (#2878) 2023-12-08 15:50:12 +01:00
martmullandGitHub 88abb11448 Add postgres_fdw to database (#2854)
* Add postgres_fdw to database

* Add wrappers to database

* Add cp
2023-12-08 14:43:52 +01:00
7535c84e3d 2814 timebox create a poc to test the gmail api (#2868)
* create gmail strategy and controller

* gmail button connect

* wip

* trying to fix error { error: 'invalid_grant', error_description: 'Bad Request' }

* access token working

* refresh token working

* Getting the short term token from the front is working

* working

* rename token

* remove comment

* rename env var

* move file

* Fix

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-08 13:13:56 +01:00
Charles Bochet d4613c87f6 Fix infinite loop on sign in 2023-12-08 13:00:59 +01:00
Lucas BordeauandGitHub e89546466c Feat/object metadata item identifiers (#2865)
* Moved pure UI object fields to ui folder

* Moved pure UI object fields to ui folder 2

* Updated graphql metadata schema and fixed typing issues

* Added a new hook to create a record identifier mapper

* Fixed merge main
2023-12-08 12:29:01 +01:00
WeikoandGitHub 53b6005d73 Improve Metadata sync setup (#2874)
* Improve Metadata sync setup

* add missing IsNullable()

* add composite fields types
2023-12-08 12:27:47 +01:00
Jérémy MandGitHub 63196f866f fix: relation on self not working (#2875) 2023-12-08 12:06:31 +01:00
ThaïsandGitHub 326b29b699 feat: add Settings/Accounts Connected Accounts section with empty state (#2870)
Closes #2817
2023-12-08 11:17:07 +01:00
ThaïsandGitHub 56a93d2ead feat: save Select field options (#2869)
Closes #2704
2023-12-08 11:15:52 +01:00
ThaïsandGitHub 1f40c45140 feat: add Settings/Accounts/Emails page (#2867)
Closes #2819
2023-12-08 11:10:09 +01:00
Tenzin MahabirandGitHub 921366f5b3 Feature: Add Empty State Display for Tables (#2841)
* Added empty state display for when object table is empty

* Added functionality to add button for empty state

* Fixed positioning of empty state

* Renamed style containers for empty state

* Added empty state display for when object table is empty

* Added functionality to add button for empty state

* Fixed positioning of empty state

* Renamed style containers for empty state

* Addressed PR comments by using createRecord prop and numberOfTableRowsState
2023-12-08 10:59:42 +01:00
Jérémy MandGitHub cf334ada0e feat: exceptions handlers (#2855)
* feat: wip exception handlers

* feat: exception capturer

* fix: rename exception-capturer into exception-handler

* fix: remove unused variable
2023-12-08 10:18:50 +01:00
Charles BochetandGitHub 6c83953633 Fix Infinite loop on invite route (#2866) 2023-12-07 19:26:07 +01:00
WeikoandGitHub 5efc2f00b9 Sync metadata generate migrations (#2864)
* Sync Metadata generates migrations

* add execute migrations

* fix relations + add isActive on creation

* fix composite fields migration

* remove dependency

* use new metadata setup for seed-dev

* fix rebase

* remove unused code

* fix viewField dev seeds

* fix isSystem
2023-12-07 19:22:34 +01:00
Matheus SanchezandGitHub 590912b30f feat: Adding className as a prop (#2847)
* Adding className as a prop to use emotion

* Adding className to feedback and input components
2023-12-07 18:48:37 +01:00
Jérémy MandGitHub d70f8deeec Fix/enum validation (#2863)
* fix: SELECT enum can have a color key

* fix: "findOneOrFail" of undefined

* feat: alter column migration store previous metadata informations

* fix: enum validation extra keys
2023-12-07 17:04:49 +01:00
Lucas BordeauandGitHub 145b432dc6 Moved pure UI object fields to ui folder (#2861)
* Moved pure UI object fields to ui folder

* Moved pure UI object fields to ui folder 2
2023-12-07 16:27:39 +01:00
martmullandGitHub 4fecf6d8b9 Fix api rest (#2860)
* Throw an error if workspace id has no object

* Request only plurial object names

* Fix tests

* Fix query

* Handle graphql errors

* Fix comment
2023-12-07 14:10:24 +01:00
ThaïsandGitHub 62fa55eae6 feat: add Settings/Accounts Settings section (#2853)
Closes #2818
2023-12-07 12:43:38 +01:00
Lucas BordeauandGitHub a8ecc23cbe Chore/move records related to record folder (#2859)
* WIP

* Finished multi select filter

* Cleaned console log

* Fix naming

* Fixed naming

* Moved RelationPicker folder

* Moved EntitySelect components

* Moved story

* Moved RelationPicker non component folders

* Moved everything else
2023-12-07 12:43:10 +01:00
bosiraphaelandGitHub ef536ebb06 2809 create connected account data model (#2856)
* create connectedAccount model

* finished

* fix comma
2023-12-07 12:32:49 +01:00
martmullandGitHub 3cd1ec21e6 Throw an error if workspace id has no object (#2857)
* Throw an error if workspace id has no object

* Request only plurial object names

* Fix tests

* Fix query

* Handle graphql errors
2023-12-07 12:32:29 +01:00
Lucas BordeauandGitHub 06936c3c2a Feat/multi relation filter (#2858)
* WIP

* Finished multi select filter

* Cleaned console log

* Fix naming

* Fixed naming
2023-12-07 12:08:48 +01:00
b2912f4b4b 2795-fix(front): ObjectNamePlural added as Page Header title (#2852)
* 2795-fix(front): ObjectNamePlural added as Page Header title

* 2795-fix(front): Icon fix

* fix linting errors

---------

Co-authored-by: bosiraphael <[email protected]>
2023-12-07 11:13:32 +01:00
martmullandGitHub b72d6a9d9d Rest api updates (#2844)
* Fix typo

* Fix ':' parsing

* Add '' for strings

* Add 'in', 'is', 'neq', 'like', 'ilike', 'startWith' comparators

* Fix test

* Move mapFieldMetadataToGraphqlQuery to util

* Move filter utils to utils

* Split code into factories

* Fix order by parser

* Reorganize files

* Add tests for limit parser

* Add tests for last_cursor parser

* Add tests for last_filter parser

* Move filter utils to factory

* Update filter parser tests

* Code review returns

* Fix tests

* Remove LOCAL_SERVER_URL

* Simplify and fix filter string parser

* Rename parser to input

* Add new lines for more readability

* Use unary plus

* Use nextjs errors

* Use destructuring

* Remove useless else

* Use FieldMetadata types

* Rename enums

* Move methods to utils

* Lint project

* Use singular name if id provided

* Handle typing

* Handle typing

* Minor update

* Simplify order by parser

* Lint

* handle missing conjunction

* filter parser update
2023-12-06 16:55:42 +01:00
Charles BochetandGitHub 076a67b0e2 Fix optimistic rendering issues on views (#2851)
* Fix optimistic rendering issues on views

* Remove virtualizer
2023-12-06 16:55:09 +01:00
93decaceab fix: FieldMetadata default value and options better validation (#2785)
* fix: wip better field metadata validation

* fix: remove files

* fix: default value and options validation

* fix: small fix

* fix: try to limit patch

* fix: tests

* Update server/src/metadata/field-metadata/validators/is-field-metadata-options.validator.ts

Co-authored-by: Weiko <[email protected]>

* fix: lint

* fix: standard fields update security

---------

Co-authored-by: Weiko <[email protected]>
2023-12-06 15:19:23 +01:00
b09100e3f3 Implement table record virtualizer back (#2839)
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2023-12-06 14:20:00 +01:00
Jérémy MandGitHub 9df83c9a5a feat: better server lint (#2850)
* feat: add stylistic eslint plugin

* feat: add missing line return

* feat: secure line-break style

* feat: disallow break before else

* feat: line between class members

* feat: better new line lint rule
2023-12-06 12:19:00 +01:00
ThaïsandGitHub e388d90976 fix: fix Pipeline Step title and color update in board (#2849)
Fixes a bug where editing a pipeline step's title or color in the board changes the column's label to the column's uuid and the color to gray.
2023-12-06 12:06:46 +01:00
f8ddf7f32c fix: several Navigation Bar and Drawer fixes (#2845)
* fix: several Navigation Bar and Drawer fixes

Fixes #2821

- Fix navigation drawer animations
- Fix navigation bar positioning
- Do not display navigation drawer collapse button on mobile
- Refactor code and rename componentst

* Fix storybook test

* fix: fix NavigationDrawerHeader elements space-between

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-06 10:36:10 +01:00
Charles BochetandGitHub 69f48ea330 Fix optimistic rendering issues on board and table (#2846)
* Fix optimistic rendering issues on board and table

* Remove dead code

* Improve re-renders of Table

* Remove re-renders on board
2023-12-05 22:29:27 +01:00
Andrey KudandGitHub 976e058328 fix: avoid create custom entities with the same name (#2791)
* fix: avoid create custom entities with the same name

* fix: use exact spelling

* fix: validate input as is
2023-12-05 22:24:16 +01:00
Paula PerdomoandGitHub 1616ea6c4f Bug Fix: Allows user to press 'Enter' to navigate through forms (#2840)
* Adding TextInput onKeyDown prop for detecting enter key on signup/login/onbaording forms

* Adding onKeyDown for password field
2023-12-05 14:28:12 +01:00
WeikoandGitHub 6d4ad6ec18 Sync standard object metadata (#2807)
* Sync standard object metadata

* remove debug logging

* remove unused func

* fix comments

* fix empty objectsToDelete list
2023-12-05 14:10:50 +01:00
bosiraphaelandGitHub 2dcce31ede Create feature flag and use hook to display account tab conditionally (#2843)
create feature flag and use hook to display account tab conditionally
2023-12-05 12:23:18 +01:00
RuslanandGitHub 72d696ad1b Fixing fields that got mixed up (#2207) (#2842)
Fixing fields that got mixed up
2023-12-05 12:22:21 +01:00
bosiraphaelandGitHub 95a1cfeec3 2426 timebox refactor board with the new scope architecture (#2789)
* scoped states: wip

* scoped states: wip

* wip

* wip

* create boardFiltersScopedState and boardSortsScopedState

* wip

* reorganize hooks

* update hooks

* wip

* wip

* fix options dropdown

* clean unused selectors

* fields are working

* fix filter an sort

* fix entity count

* rename hooks

* rename states

* clean unused context

* fix recoil scope bug

* objectNameSingular instead of objectNamePlural
2023-12-05 12:15:20 +01:00
ThaïsandGitHub 5c0ad30186 feat: add Status component (#2838)
Closes #2820
2023-12-05 11:07:51 +01:00
ThaïsandGitHub b4323f67a5 feat: create Settings/Accounts page (#2837)
Closes #2815
2023-12-05 10:51:25 +01:00
martmullandGitHub 2c211c1a2e Fix zapier validation team request (#2806) 2023-12-04 13:36:35 +01:00
40b4e9f8e9 Redesign Timeline (#1772)
* Timeline redesign for desktop and mobile
* Fixed nowrap on desktop

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-12-04 11:37:25 +01:00
Nimra AhmedandGitHub 2171eff1a0 minor improvements to ui component docs (#2805)
* minor improvements to ui component docs

* polish queue.mdx, remove duplicate icon
2023-12-04 08:32:35 +01:00
brendanlaschkeandGitHub de2f7212d1 Attachments add more file extensions (#2803)
- add more file extensions
2023-12-03 23:13:53 +01:00
Charles Bochet 7e7bd6b9e7 Prevent setting addition from being broken 2023-12-03 12:01:37 +01:00
fd9467c54d feat: Add seed people and companies data for demo environment (#2207) (#2307)
* feat: seed companies and people data

* init DataSeedDemoWorkspaceCommand to handle:
- seedCoreSchema()
- seedMetadataSchema()

* feature: Seed workspace with demo data

- delete workspace
- initDemo() with prefillWorkspaceWithDemoObjects()

* added companies-demo.ts with data
* added people-demo.ts with data

* added workspaceId to seedFeatureFlags()

* delete previous CoreSchema before seedCoreSchema

* added workspaceMemberPrefillData

* getDemoWorkspaces() to get DEMO_WORKSPACES from config

* defined DemoSeedUserIds

- created core/demo/ to keep modified seedCoreSchema() there
- DemoSeedUserIds with new set of users and Ids

* generateOpportunities() to seed demo opportunities (limit = 50)

* Code review and fixes

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-02 18:37:45 +01:00
31f29582d0 2727-fix(front): CommandMenu and KeyboardMenu invoke handled (#2783)
* 2727-fix(front): CommandMenu and KeyboardMenu invoke handled

* Fix Command Menu and bug on metadata re-render

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-01 23:45:42 +01:00
fec8223ab8 feat: improve mobile display by tab bar and other changes (#2304)
* feat: improve mobile display by tab bar and other changes

* fix: remove unused declaration in mobile navigation

* fix: update desktop navbar stories title

* fix: retrieve old titles for desktop-navbar stories

* fix: styles, manage active tabs

* fix: styles, manage active tabs

* fix: styles, manage active tabs

* fix: styles, manage active tabs

* fix: styles, manage active tabs

* fix: styles, manage active tabs

* fix: styles, manage active tabs

* fix: styles, manage active tabs

* fix: update logic for tab bar menu icons

* fix: remove Settings icon for mobile

* fix: resolve comments in pl

* feat: rework mobile navigation bar

* Fix

* Fixes

---------

Co-authored-by: Thaïs Guigon <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-12-01 23:16:34 +01:00
74b077f3ca Feat/error boundaries (#2779)
* - Changed to objectNameSingular always defined
- Added ErrorCatchAll

* - Added mock mode for companies logged out
- Added a proper ErrorBoundary component

* Removed react-error-boundary

* Implemented proper ErrorBoundary

* Fixes

* Change strategy about mocks

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-01 22:06:38 +01:00
a301f451f9 fix: Remove "pen icon" on Team member field #2384 (#2549)
fix: Remove "pen icon" on Team member field

Co-authored-by: Charles Bochet <[email protected]>
2023-12-01 18:48:15 +01:00
5720312249 [FEAT-2496] Add Customize fields button in new column menu (#2683)
* feat: add customize-fields btn in new column menu

* fix: refactor onClick

* Add separator

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-01 17:48:38 +01:00
9dc997e9ac 2503-feat(front): hover icons added; commandmenu open added (#2622)
* 2503-feat(front): hover icons added; commandmenu open added

* 2503-feat(front): LightIconButtonGroup added; BoardColumn suggested fixes

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-12-01 16:49:18 +01:00
Charles Bochet 8bd567c2b4 Fix post merge conflict on Rating field hook 2023-12-01 16:29:49 +01:00
martmullandGitHub 97f154ef2c Add rest api (#2757)
* Add a wildcard get route

* Call api from api

* Add a query formatter

* Use headers to authenticate

* Handle findMany query

* Add limit, orderBy and lastCursor parameters

* Add filter parameters

* Remove singular object name from valid requests

* Update order_by format

* Add depth parameter

* Make /api/objects/ID requests work

* Fix filter

* Add INTERNAL_SERVER_URL env variable

* Remove useless comment

* Change bath api url to 'rest'

* Fix limit parser

* Handle full filter version

* Improve handle full filter version

* Continue rest api

* Add and(...) default behaviour on filters

* Add tests

* Handle 'not' conjunction for filters

* Check filter query

* Format values with field metadata item type

* Handle nested filtering

* Update parsing method

* Check nested fields

* Add delete query

* Add create query

* Rename methods

* Add update query

* Update get one object request

* Fix error handling

* Code review returns
2023-12-01 16:26:39 +01:00
Mahendra KumarandGitHub f405b77cea add message queue integration (#2491) 2023-12-01 16:09:04 +01:00
ThaïsandGitHub 93e4f79551 feat: rename Probability field type to Rating and update preview (#2770)
Closes #2593
2023-12-01 15:31:01 +01:00
Jérémy MandGitHub 474db1e142 fix: nested relations not working and relations not prefixed (#2782)
* fix: nested relations n+n

* fix: prefix custom relations

* fix: only apply targetColumnMap when it's a custom object

* fix: force workspaceId to be provided

* fix: toIsCustom -> isToCustom

* fix: remove console.log
2023-12-01 15:26:48 +01:00
Jérémy MandGitHub 6e6f0af26e feat: Adding support for new FieldMetadataType with Postgres enums (#2674)
* feat: add enum type (RATING, SELECT, MULTI_SELECT)

feat: wip enum type

feat: try to alter enum

feat: wip enum

feat: wip enum

feat: schema-builder can handle enum

fix: return default value in field metadata response

* fix: create fieldMedata with options

* fix: lint issues

* fix: rename abstract factory

* feat: drop `PHONE` and `EMAIL` fieldMetadata types

* feat: drop `VARCHAR` fieldMetadata type and rely on `TEXT`

* Revert "feat: drop `PHONE` and `EMAIL` fieldMetadata types"

This reverts commit 3857539f7d.
2023-11-30 15:24:26 +01:00
MithraandGitHub c2131a29b8 Renaming "Experience" to "Appearance" (#2776)
* refining settings

* Delete .idea/workspace.xml

* Update .gitignore
2023-11-30 14:41:03 +01:00
1822370389 feat: add missing updateMany and deleteMany resolvers on flexible backend (#2758)
* feat: add missing updateMany and deleteMany resolvers on flexible backend

Co-authored-by: v1b3m <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>

* Update return types for `createMany`, `updateMany` and `deleteMany`

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2023-11-30 13:13:08 +01:00
Charles Bochet 1ba062f40c Update documentation database setup 2023-11-30 12:53:52 +01:00
Charles BochetandGitHub 8548d11126 Release 0.2.0 (#2777) 2023-11-30 12:51:07 +01:00
0008c4b9d5 Fix UI components (#2771)
* fixes radio button's label (issue #2566)

* fixes entity title double text input's width (issue #2562)

* fixed checkmark placement on color scheme card

* fix failing CI Docs

* fixes computed node dimensions and color scheme card

* fix color scheme card background

* fix color scheme card background

* updated color scheme card docs

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-30 12:13:05 +01:00
976f86093c 2394-feat(front): create new record on click of plus icon (#2660)
* 2394-feat(front): create new record on click of plus icon

* 2394-feat(front): fix of Icon Button

* 2394-fix: PR fixes

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-29 20:07:55 +01:00
brendanlaschkeandGitHub 7e454d2013 Attachments (#2716)
* create attachment site

* add deletion

* - fix person create attachment

* - add presentation type
- add some more file endings
- various fixes
2023-11-29 16:58:58 +01:00
ThaïsandGitHub d50cf5291a feat: reorder select field options (#2766)
Closes #2703
2023-11-29 16:42:36 +01:00
bosiraphaelandGitHub 04c7c1a334 Feature flags seeds, queries and hooks (#2769)
* seed is working

* allow graphql to retrieve feature flag data

* create useIsFeatureEnabled hook

* hook is working

* Update icons.ts
2023-11-29 16:40:44 +01:00
d855a42eca Fix/object record and metadata naming (#2763)
* Fixed object-record and object-metadata naming

* Fix post merge

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-29 13:45:57 +01:00
3617abb0e6 feat: pick select field option colors (#2748)
Closes #2433

Co-authored-by: Charles Bochet <[email protected]>
2023-11-29 12:49:41 +01:00
Charles Bochet aa4bd0146b Fix storybook tests preventing front build 2023-11-29 12:45:08 +01:00
ThaïsandGitHub 34a3197fee feat: set Select field option as default option (#2725)
Closes #2591
2023-11-29 12:19:56 +01:00
ThaïsandGitHub f00c05c342 feat: remove Select field options (#2668)
Closes #2587
2023-11-29 12:16:26 +01:00
Charles Bochet 96d3a96cc4 Fix post merge conflicts 2023-11-29 00:05:54 +01:00
ThaïsandGitHub cf790b9a88 feat: add options to Select field (#2665)
Closes #2447
2023-11-28 23:48:54 +01:00
ThaïsandGitHub bc787f72ba feat: add Select field preview and form (#2655)
Closes #2432
2023-11-28 23:44:21 +01:00
0fa55b0634 Fix Frontend modules tests (#2688)
* Fix naming issue

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix more tests

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Revert unnecessary changes

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Refactor according to self-review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix graphql mocks not working anymore

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-11-28 23:33:34 +01:00
fd969de311 Fix action bar button danger background and gap (#2711)
fix action bar button danger background and gap

Co-authored-by: Charles Bochet <[email protected]>
2023-11-28 20:23:36 +01:00
18d30c45c4 Create feature flag table (#2752)
* feature flag working

* wip

* wip

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-28 20:19:39 +01:00
9e9e1940f9 fix: setup-postgres-macos.sh (#2575)
* fix: setup-postgres-macos.sh

* Provide intel, arm mac os scripts

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-28 19:32:27 +01:00
74e2464939 2495 fix cmdk removal and added toggle functionality (#2528)
* 2495-fix(front): cmdk removed; custom styles added

* 2495-fix(front): search issue fixed

* 2495-feat(front): Menu toggle funct added

* 2495-fix(front): onclick handler added

* 2495-fix(front): Focus with ArrowKeys added; cmdk removed

* Remove cmdk

* Introduce Selectable list

* Improve api

* Improve api

* Complete refactoring

* Fix ui regressions

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-28 18:50:23 +01:00
784db18347 Double check install with postgres15 on WSL (#2643)
* Merge main

Co-authored-by: Thiago Nascimbeni <[email protected]>

* Revert unnecessary change

Co-authored-by: Thiago Nascimbeni <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2023-11-28 18:38:26 +01:00
Anchit SinhaandGitHub 0395ea077d 2694-fix(front): Replace "Continue with Google" monochrome logo by colourful logo (#2724)
* Replaced Google mono logo with colourful logo

* Removed stroke and increased size of logo to 20

* Changed default size of Google Icon to 20

* added default value for size from theme
2023-11-28 18:35:13 +01:00
Nimra AhmedandGitHub 5fab7c9a19 Update workspace directory (#2555)
* updated tenant directory

* rename tenant to workspace
2023-11-28 18:32:02 +01:00
ade41c916d 2422 refactor scope components to improve dev experience (#2736)
* move scope inside record table

* fix imports

* update mock

* recordTable scope done

* RecordTable done

* fix board

* fix typo

* wip

* filter is working

* sort is working

* Tasks working

* Fix according to PR

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-28 18:24:18 +01:00
Kanav AroraandGitHub 9d3e000055 2526-fix(front): Save on Esc and Click Outside (#2750) 2023-11-28 17:54:22 +01:00
brendanlaschkeandGitHub a7111eef51 Fix keyboard cmds table soft focus (#2608)
- fix keyboard cmds table soft focus
2023-11-28 16:58:59 +01:00
Félix MalfaitandGitHub 9c49d7474f Fix: Don't sort by column createdAt if it does not exist (#2737)
Fix #2699
2023-11-28 16:49:43 +01:00
Félix MalfaitandGitHub aeccc87ac5 Yarn upgrade (#2749)
* yarn upgrade front and docs

* upgrade yarn server

* Revert change not needed
2023-11-28 16:48:02 +01:00
Félix MalfaitandGitHub 8f03ba88a7 Remove unused dependencies on the frontend (#2744) 2023-11-28 11:11:24 +01:00
ThaïsandGitHub a3f59b9e7d test: restore and fix SettingsObjectFieldPreview stories (#2607)
Closes #2594
2023-11-28 10:46:55 +01:00
martmullandGitHub 7752be8f9a Remove mandatory parameters (#2743) 2023-11-28 10:02:21 +01:00
martmullandGitHub 7b02391b22 Remove zapier trigger company (#2742)
* Fix zapier tests

* Handle nested fields

* Code review returns

* Add more sample

* Update trigger sample

* Remove zapier trigger company
2023-11-28 09:58:41 +01:00
martmullandGitHub 0fc3c7c567 Fix zapier (#2740)
* Fix zapier tests

* Handle nested fields

* Code review returns

* Add more sample

* Update trigger sample
2023-11-28 09:32:45 +01:00
martmullandGitHub a413b29dd4 Fix zapier (#2735)
* Fix zapier tests

* Handle nested fields

* Code review returns
2023-11-27 18:09:21 +01:00
Félix MalfaitandGitHub e2e871ca32 Add typescript to danger (#2723)
* Add Typescript to Danger.js

* Additional check to ease local testing
2023-11-27 11:21:19 +01:00
Mohit SinghandGitHub 875ba31a0a refactor:Style "loading more" rows on tables (Issue #2498) (#2717) 2023-11-27 11:12:59 +01:00
9648b13703 Fix Frontend pages tests (#2719)
* Fix Frontend pages tests

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>

* Add SnackBarDecorator

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>

* Fix more tests

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>

* Fix more tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2023-11-27 11:07:16 +01:00
f0e20b06df Added table record mock mode with companies (#2715)
* wip

* Removed console.log

* Refactor mocks into multiple files

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-25 19:50:50 +01:00
Charles Bochet ddc054be52 Fix optimistic rendering issue 2023-11-25 03:08:36 +01:00
bosiraphaelandGitHub 66162e6693 Fix board animation (#2706)
fix-board-animation
2023-11-24 21:26:44 +01:00
WeikoandGitHub 65aa91c774 Allow field/object update if name/label are similar values (#2709) 2023-11-24 21:25:48 +01:00
bosiraphaelandGitHub e810ad7016 Fix wrong visibility icon (#2707)
fix-wrong-visibility-icon
2023-11-24 18:24:54 +01:00
ThaïsandGitHub 135733288d feat: display error snackbars for Object and Field creation/edition (#2708) 2023-11-24 18:24:19 +01:00
Charles Bochet 148fe05e26 Fix person activity creation broken 2023-11-24 18:13:54 +01:00
Charles Bochet 0c56989cb1 Disable activities creation for custom objects 2023-11-24 17:34:21 +01:00
martmullandGitHub cefac8435b Fix limit pagination (#2692)
* Fix limit parameter

* Increaze max_row for each workspaces
2023-11-24 17:02:41 +01:00
Charles Bochet d3615ba0d3 Fix view creation updating all view names 2023-11-24 16:43:23 +01:00
Charles BochetandGitHub 8212606043 Fix views (#2701)
* wip

* Fix viewsé
2023-11-24 16:32:59 +01:00
bosiraphaelandGitHub 886acd1cec hide new opportunity picker (#2702) 2023-11-24 16:32:14 +01:00
2b597d817c fix: empty string as default value for string types (#2691)
* fix: empty string as default value for string types

* Fixes

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-24 16:30:28 +01:00
Lucas BordeauandGitHub 0376d0b7e0 Fixed soft focus init (#2696) 2023-11-24 15:41:09 +01:00
Lucas BordeauandGitHub 6d1f52a888 Use forceRefetch for task update (#2695) 2023-11-24 15:38:21 +01:00
brendanlaschkeandGitHub e6744e7ce1 Danger markdown message & todo comments (#2698)
- markdown message & todo comments
2023-11-24 15:20:07 +01:00
bosiraphaelandGitHub cf1b0bfccf Fix link and currency input (#2697)
* fix link focus

* fix currency value null

* fix currency code nullable

* change in progress

* currency is working

* modify path
2023-11-24 15:19:29 +01:00
WeikoandGitHub 323c69948c Fix check identical nameSingular/namePlural (#2689) 2023-11-24 11:30:22 +01:00
WeikoandGitHub cc526517b3 Add viewField creation to fieldMetadata creation service (#2685)
* Add viewField creation to fieldMetadata creation service

* fix reduce with no initial value
2023-11-24 10:02:37 +01:00
WeikoandGitHub c395955f12 Fix activity creation (#2686) 2023-11-24 10:01:29 +01:00
WeikoandGitHub 851ce73609 Fix company update with accountOwner (#2687) 2023-11-24 10:00:45 +01:00
Charles Bochet 2d0f63219f Fix workspace prefill and remove user allowImpersonation Boolean 2023-11-24 00:07:15 +01:00
WeikoandGitHub 5038c36df4 Update seed default values (#2681)
* Update seed default values

* Update seed default values

* Update seed default values

* remove allowImpersonation in workspaceMembers

* remove USD from currencyCode defaultValue

* fix tests
2023-11-23 23:30:53 +01:00
Lucas BordeauandGitHub a0478a0a83 Fix/task page filter (#2682)
* Fixed filter

* Removed console.log
2023-11-23 23:29:54 +01:00
Charles BochetandGitHub de5b86ee66 Fix Activity relation picker (#2684) 2023-11-23 23:29:27 +01:00
ThaïsandGitHub 1e181c9d2a feat: restrict field types in field creation form (#2680) 2023-11-23 16:49:15 +01:00
bosiraphaelandGitHub 4f55243b30 Fix phone input and link input (#2679)
* wip

* phone picker is appearing

* fixing picker placement

* set phone picker width

* fix link input
2023-11-23 16:38:13 +01:00
WeikoandGitHub c795db33b2 Add activityTarget relation after custom object creation (#2670)
* Add activityTarget relation after custom object creation

* add isCustom check for relations
2023-11-23 16:26:33 +01:00
Lucas BordeauandGitHub 4b42ed42dc Fix duplicate view field creation (#2677) 2023-11-23 16:25:32 +01:00
Charles BochetandGitHub 72421a39ea Fix Activity Picker part 1 (#2678)
* Fix Activity Picker part 1

* Fix
2023-11-23 16:25:13 +01:00
Félix MalfaitandGitHub 033c3bc8b2 Update danger.js to pull_request_target (#2675) 2023-11-23 15:39:34 +01:00
Jérémy MandGitHub 0da1a98021 fix: wrong file name (#2676) 2023-11-23 15:31:09 +01:00
59e53ba72d Fix microAmount (#2654)
* Fix microAmount

* Code review returns

* Parse currency values as string

* Jeremy's returns

* fix: scalars not properly implemented

* fix: filters not working on big float scalar

---------

Co-authored-by: Jérémy Magrin <[email protected]>
2023-11-23 15:26:59 +01:00
bosiraphaelandGitHub 0194f30dd8 fix-currency-field-input (#2666)
* fix-currency-field-input

* modify according to comments
2023-11-23 14:52:27 +01:00
bosiraphaelandGitHub 8454dfc345 First generated viewField is now name (#2671)
fix-first-generated-viewField
2023-11-23 14:50:56 +01:00
Charles BochetandGitHub 9dabe44d0f Fix KeyboardShortcut menu, person upload picture (#2669)
* Fix KeyboardShortcut menu, person upload picture

* Fixes
2023-11-23 13:44:54 +01:00
Charles BochetandGitHub 9c4f402102 Fix token cookie not being peristed on browser reboot (#2667) 2023-11-23 12:16:20 +01:00
Lucas BordeauandGitHub 01172d44dd Fix/boolean field v2 (#2664)
* wip

* Revert "wip"

This reverts commit 517d460f6c.
2023-11-23 11:35:32 +01:00
b1d748f8bd UI Component docs (Display & Feedback components) (#2453)
* ui docs

* UI docs for display components

* docs for display and feedback components

* minor edits

* minor changes

* cleaned up code

* Move telemetry

* Revised Feedback/Display UI docs & added input UI docs

* Docs for Input components

* updated icons

* docs for input/components

* minor edits based on feedback

* add css to ui components

* Fixed spacing issue in button groups

---------

Co-authored-by: Félix Malfait <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-11-22 22:35:34 +01:00
Charles BochetandGitHub ec3cfe6fdb Add back pickers on all pages, fix command menu (#2662)
* Add back pickers on all pages, fix command menu

* Fix lint
2023-11-22 22:32:25 +01:00
Charles BochetandGitHub 41c0cebf48 Fix Filter search dynamic objectMetadataName (#2659) 2023-11-22 19:22:14 +01:00
Lucas BordeauandGitHub 02e60da923 Fixed activities for Person (#2658)
* Improved optimistic rendering

* Fixed activities for Person
2023-11-22 18:56:45 +01:00
bosiraphaelandGitHub 7954a2b6c2 fix-dropdown-sort-icons (#2656) 2023-11-22 18:49:25 +01:00
RobertoSimonini1andGitHub 7eea150d16 remove unused packages:server (#2650) 2023-11-22 17:33:56 +01:00
13d31072a7 2358 refactor entityboard to recordboard (#2652)
* renaming

* wip

* merge BoardColumn and RecordBoardColumn

* merge files

* remove unnecessary export

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-22 17:31:56 +01:00
Charles BochetandGitHub 8f12aea64a Enrich filters with all types (#2653) 2023-11-22 17:23:10 +01:00
WeikoandGitHub 0fd823af21 Allow isActive to be updated for standard objects (#2651)
* Allow isActive to be updated for standard objects

* Allow isActive to be updated for standard objects/fields
2023-11-22 17:17:13 +01:00
WeikoandGitHub ccaa96bc58 Fix workspace/user deletion (#2648)
* Fix workspace/user deletion

* remove logs

* add defaultWorkspace check
2023-11-22 17:12:46 +01:00
Lucas BordeauandGitHub ac2fedb148 Improved optimistic rendering (#2649) 2023-11-22 17:08:32 +01:00
martmullandGitHub 713eada9ef Fix order by (#2646)
* Order by createdAt desc if no sort provided

* Fix '0' currency amounts

* Code review returns
2023-11-22 16:19:04 +01:00
ThaïsandGitHub 0af4be0d24 fix: hide UUID from field type options in field creation form (#2645)
Fixes #2644
2023-11-22 15:22:54 +01:00
Jérémy MandGitHub 4c1c6a3407 fix: can't create fields of type UUID (#2642) 2023-11-22 14:58:13 +01:00
Jérémy MandGitHub 5c8c141556 feat: workspace cache version instead of event emitter (#2637) 2023-11-22 14:51:26 +01:00
bosiraphaelandGitHub 85646a8072 Create board fields reorder (#2639)
* wip

* fields reorder works but fields are not yet persisted

* fields are persisted

* modify according to comments
2023-11-22 14:46:18 +01:00
ThaïsandGitHub 532e4342ec fix: fix viewing date fields detail pages (#2641)
Fixes #2640
2023-11-22 14:32:36 +01:00
WeikoandGitHub a6abe09163 Move Impersonate from User to Workspace (#2630)
* Fix impersonate

* align core typeorm config with metadata config + add allowImpersonation to workspace

* move allowImpersonation to workspace

* remove allowImpersonation from workspaceMember workspace table
2023-11-22 14:12:39 +01:00
ThaïsandGitHub 680e9b6aa5 fix: remove navigation to Detail page on Relation tag click for Syste… (#2636)
fix: remove navigation to Detail page on Relation tag click for System objects

Fixes #2635
2023-11-22 12:30:49 +01:00
martmullandGitHub 4a0e0ee386 Fix view seeds (#2638) 2023-11-22 12:29:44 +01:00
Lucas BordeauandGitHub 4b2d18c1d7 Fixed record inline cell fields on activity editor (#2634)
Created a generic useFieldContext hook to wrap RecordInlineCell anywhere in the app easily
2023-11-22 12:27:58 +01:00
Charles BochetandGitHub 8f623ceb5c Fix bug favorite optimistic rendering and opportunity prefill (#2633)
* Fix bug favorite optimistic rendering and opportunity prefill

* Fixes
2023-11-22 11:43:40 +01:00
Charles BochetandGitHub 10febd9aeb Improve Board performances (#2626)
Improve app performances
2023-11-22 09:58:49 +01:00
ee8f6899fc chore(front): Refactor the SnackBar component to use the new scope architecture (#2578)
* chore(front): Refactor the SnackBar component to use the new scope architecture

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Rename useSnackBarManager

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

---------

Co-authored-by: gitstart-twenty <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-11-21 23:42:38 +01:00
ff42526a09 2311 embed keyboard shortcuts (#2507)
* 2311-feat(front): AppHotKeyScope and CustomHotKeyScopes configured

* 2311-feat(front): Groups and Items added

* 2311-fix: pr requested changes

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-21 23:36:23 +01:00
Lucas BordeauandGitHub a67199e0c3 Fix Tasks and Activities - Part 1 (#2624)
Fixed
2023-11-21 23:29:40 +01:00
Charles BochetandGitHub 77733f2bc8 Improve Performances of FE by reducing first print queries (#2623) 2023-11-21 22:47:49 +01:00
WeikoandGitHub c74bde28b8 Add identifier fields to ObjectMetadata (#2616)
* Add indentifier fields to ObjectMetadata

* Add indentifier fields to ObjectMetadata

* Add indentifier fields to ObjectMetadata

* temporarily block name/label edition
2023-11-21 18:41:48 +01:00
Charles BochetandGitHub 726e375616 Complete labelIdentifer, relationPicker first implementation (#2618)
* Fix first column main identifier

* Fixes
2023-11-21 18:32:36 +01:00
Jérémy MandGitHub dd125ddfcc feat: add memory cache to boost performance (#2620)
* feat: add memory cache to boost performance

* fix: tests

* fix: logging

* fix: missing commented stuff
2023-11-21 18:29:31 +01:00
bosiraphaelandGitHub 74e0122294 fix datepicker width (#2621) 2023-11-21 18:17:19 +01:00
bosiraphaelandGitHub ad8331aa89 Board V2 - Part 1 (#2619)
* improve useComputeDefinitionsFromFieldMetadata to prevent infinit loops

* fix viewFields

* improve initial seeding

* fix height 100%

* fix filters and sorts

* allow filter on currency

* remove probability from filter

* fix opportunities count

* fix persist filters and sorts
2023-11-21 18:01:30 +01:00
ThaïsandGitHub 9912f7a336 feat: disable Standard field edition in Relation field form (#2604)
* feat: disable Standard field edition in Relation field form

Closes #2584

* refactor: code review
2023-11-21 16:33:07 +01:00
ThaïsandGitHub 0f4796bd1a feat: improve Relation field type tag (#2606)
* feat: improve Relation field type tag

Closes #2359

* refactor: code review - rename dataTypes to settingsFieldMetadataTypes

* refactor: code review - style Icon with styled
2023-11-21 16:23:35 +01:00
Charles BochetandGitHub f97d25d986 Introduce a RelationPicker component with a RelationPickerScope (#2617)
Refactor mainIdentifier into scope componetn
2023-11-21 16:09:02 +01:00
Charles BochetandGitHub d25f00e04f Fix avatar placeholder not displayed (#2611) 2023-11-21 12:39:40 +01:00
Lucas BordeauandGitHub b13d84fcda Fix/company team crud (#2614)
* Fixed basePathToShowPage

* Fixed company team list

* Fixed : create, update, delete and detach people from company.
2023-11-21 12:24:20 +01:00
WeikoandGitHub 6f4a952381 Add [from/to]Description to CreateRelationInput (#2613) 2023-11-21 11:38:27 +01:00
09533e286b Fix/opportunities board (#2610)
* WIP

* wip

* update pipelineStepId

* rename pipeline stage to pipeline step

* rename pipelineProgress to Opportunity

* fix UUID type not queried

* fix boardColumnTotal

* fix micros

* fixing filters, sorts and fields

* wip

* wip

* Fix opportunity board re-render

---------

Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: bosiraphael <[email protected]>
2023-11-21 01:24:25 +01:00
WeikoandGitHub a33d4c8b8d Rename DATE to DATETIME (#2576)
* Rename DATE to DATETIME

* rename DATE to DATE_TIME

* fix server tests

* rename date to datetime

* rename date to datetime
2023-11-21 00:16:42 +01:00
ThaïsandGitHub b3c1723638 fix: hide Select field type + display Relation field type only for ed… (#2603)
fix: hide Select field type + display Relation field type only for edition

Fixes #2585
2023-11-21 00:14:58 +01:00
ThaïsandGitHub 1e79d4351e fix: fix Relation field preview (#2605)
Fixes #2586
2023-11-21 00:14:16 +01:00
Charles Bochet 0ace17df82 Fix linter and remove console logs 2023-11-20 16:54:51 +01:00
Lucas BordeauandGitHub 189586830e Refactored useFindOneObjectMetadataItem and useFindManyObjectMetadataItems (#2600)
* Refactored useFindOneObjectMetadataItem and useFindManyObjectMetadataItems to rely on a recoil family selector

* Removed console.log

* Cleaned

* Removed unused hook

* Fixed seeds
2023-11-20 16:34:06 +01:00
3ad30a0498 fix: not able to filter by nullable values (#2580)
Co-authored-by: Charles Bochet <[email protected]>
2023-11-20 15:46:20 +01:00
brendanlaschkeandGitHub 9516e69522 Fix navbar active marker (#2588)
- fix navbar active marker
2023-11-20 15:36:35 +01:00
Charles BochetandGitHub b6665f880d Refactor types to remove unused types and add FullNameFieldInput (#2590) 2023-11-20 13:40:22 +01:00
martmullandGitHub eb64baa62e Fix api Keys (#2583) 2023-11-20 10:57:08 +01:00
Charles BochetandGitHub 25950ab82a Introduce main identifier to power RelationFieldDisplay (#2577)
* Introduce main identifier to power RelationFieldDisplay, FilterDrodown, TableFirstColumn

* Apply to RelationPicker
2023-11-20 10:33:36 +01:00
Nimra AhmedandGitHub 18ee95179e vale cleanup (#2579)
* vale cleanup

* added --config flag to vale

* added --config flag to vale

* added --config flag to vale

* added --config flag to vale

* testing vale
2023-11-20 10:00:33 +01:00
Charles BochetandGitHub f5e1d7825a Removing Prisma and Grapql-nestjs-prisma resolvers (#2574)
* Some cleaning

* Fix seeds

* Fix all sign in, sign up flow and apiKey optimistic rendering

* Fix
2023-11-19 18:25:47 +01:00
18dac1a2b6 feat: add Relation field form (#2572)
* feat: add useCreateOneRelationMetadata and useRelationMetadata

Closes #2423

* feat: add Relation field form

Closes #2003

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-17 23:38:39 +01:00
fea0bbeb2a feat: add EnumFieldDisplay and Enum field preview (#2487)
Closes #2428

Co-authored-by: Charles Bochet <[email protected]>
2023-11-17 23:15:35 +01:00
Charles Bochet e72917c69c Fix issues post merge 2023-11-17 22:59:10 +01:00
a8b6edd4a8 chore(server): Migrate workspace (#2530)
* Migrate workspace

Co-authored-by: v1b3m <[email protected]>

* Migrate workspace

Co-authored-by: v1b3m <[email protected]>

* Migrate workspace to TypeORM

Co-authored-by: v1b3m <[email protected]>

* Migrate workspace to TypeORM

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: gitstart-twenty <[email protected]>
2023-11-17 22:41:46 +01:00
Mohit SinghandGitHub ec4f07eab2 Changed the font-weight to regular (Issue #2500) (#2550)
fix🐛 changed the font-weight to regular (Issue #2500)
2023-11-17 22:39:29 +01:00
brendanlaschkeandGitHub 18846885cd Icon picker gap & hover color (#2522)
- icon picker gap & hover color
2023-11-17 22:35:07 +01:00
Charles Bochet aa2596c572 Update Seeds while pre-fi
lling a new workspace
2023-11-17 21:54:32 +01:00
ThaïsandGitHub e90beef91f feat: add useCreateOneRelationMetadata and useRelationMetadata (#2559)
Closes #2423
2023-11-17 19:15:15 +01:00
WeikoandGitHub 1deb742ac9 Add deleteOneRelation resolver (#2569) 2023-11-17 19:13:42 +01:00
WeikoandGitHub ed71ef67af Add Name defaultColumn for custom objects (#2568) 2023-11-17 19:13:07 +01:00
d481da183f V2 opportunities (#2565)
* changed isSystem to false

* wip

* wip

* wip

* add amount viewfield seed

* seed other viewFields

* upate tenant seeds

* Remove calls to old pipelines

---------

Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-11-17 19:12:22 +01:00
WeikoandGitHub f62108d539 Add missing default values (#2567)
* add missing default values

* add missing default values
2023-11-17 19:11:25 +01:00
50d6ab52d7 Fix favorites add/remove from table context menu (#2571)
* Fix favorites add/remove from table context menu

* Fixed console.log

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-17 19:10:33 +01:00
martmullandGitHub 900c863f02 Improvements for migrations (#2573)
* Fix optimistic effects

* Fix merge issue
2023-11-17 19:09:46 +01:00
WeikoandGitHub 4870b0ac30 Add fullName field metadata type (#2563)
* Add fullName field metadata type

* update seeds
2023-11-17 16:52:51 +01:00
Charles Bochet f58e4263bc Fix favorite seeds and prefill 2023-11-17 16:44:26 +01:00
Charles BochetandGitHub baf1260443 Fix Activities and Tasks modules (#2561)
* Fix activities

* Fix Timeline

* Refactor useCreateOne and useUpdateOne records

* Fix seeds
2023-11-17 16:24:58 +01:00
Lucas BordeauandGitHub a6d8cdb116 Fix context menu and favorites (#2564) 2023-11-17 16:24:43 +01:00
martmullandGitHub becd7c2ece Fix implicit index provided in mapping function (#2558) 2023-11-17 14:51:22 +01:00
martmullandGitHub dea1555031 Improvements for migrations (#2556)
* Fix wrong var name

* Add is null is not null filtering on dates

* Simplify
2023-11-17 14:20:33 +01:00
Charles Bochet e19e7a816f Update seeds to take currency and link type into account 2023-11-17 12:01:56 +01:00
martmullandGitHub 454f893eea Fix objectMetadataId to objectRecordId incorrect naming (#2554)
Fix wrong var name
2023-11-17 11:26:45 +01:00
b86ada6d2b feat: rename tenant into workspace (#2553)
* feat: rename tenant into workspace

* fix: missing some files and reset not working

* fix: wrong import

* Use link in company seeds

* Use link in company seeds

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-17 11:26:33 +01:00
bc579d64a6 Rename Money/Url to Currency/Link and remove snake_case from composite fields (#2536)
* Rename Money/Url to Currency/Link

* regenerate front types

* renaming money/url field types

* fix double text

* fix tests

* fix server tests

* fix generate-target-column-map

* fix currency convert

* fix: tests

---------

Co-authored-by: Jérémy Magrin <[email protected]>
2023-11-17 10:31:17 +01:00
Charles Bochet 31e439681c Fix main post merge 2023-11-17 09:45:48 +01:00
Jérémy MandGitHub e9827486c0 feat: add default value capability (#2544)
* feat: add default value capability

* feat: update seeds with default value
2023-11-16 18:25:11 +01:00
martmullandGitHub e8a1d0d6d5 Remove api keys from old world (#2548)
* Use apiKeyV2 for getApiKeys

* Use apiKeyV2 for createApiKey

* Use apiKeyV2 for getApiKey

* Use apiKeyV2 to deleteapikey

* Filter null revokedAt -> not working

* Use apiKeyV2 to regenerate

* Fix default values injected

* Remove useless stuff

* Fix type
2023-11-16 18:14:04 +01:00
Charles Bochet 31adb24ffd Fix main post merge 2023-11-16 17:23:05 +01:00
Charles BochetandGitHub dee38bb901 Migrate activities (#2545)
* Start

* Migrate activities to flexible schema
2023-11-16 17:10:22 +01:00
Lucas BordeauandGitHub 7da18a13e8 Feat/filter available field definition v2 (#2547)
* Added react-dev-inspector

* Add field relation type parsing and filter available fields for record table and show page

* Revert "Added react-dev-inspector"

This reverts commit 7a78964c2c.
2023-11-16 17:09:50 +01:00
bosiraphaelandGitHub 0ae9373532 V2 onboarding (#2543)
* fix cannot query avatarUrl

* create workspace working

* fix bugs related to refetch queries

* onboarding working

* updated dependency array

* improve error handling

* update types, remove as any, remove console logs

* small fix
2023-11-16 17:09:10 +01:00
Félix MalfaitandGitHub b1b6bbe7d3 Increase spreadsheet import limit (#2539)
* Initialize web application via create-cloudflare CLI

Details:
  C3 = [email protected]
  project name = twenty-blog
  framework = next
  framework cli = [email protected]
  package manager = [email protected]
  wrangler = [email protected].0
  git = 2.39.2 (Apple Git-143)

* Increase CSV Import limit

* Revert "Initialize web application via create-cloudflare CLI"

This reverts commit 6a09759372.
2023-11-16 15:27:53 +01:00
Lucas BordeauandGitHub 4acb7f41e1 Fix/company picker v2 (#2535)
Fixed company picker V2
Fixed picker search hook filters / where clause
Fixed OrderBy / SortOrder type
Fixed set relation to null
2023-11-16 12:34:23 +01:00
e026b2b6e9 feat: expose foreign key (#2505)
* fix: typo

* feat: expose foreign key

* fix: foreign key exposition

* fix: be able to filter by foreign key

* feat: add `isSystem` on field metadata

* feat: update all seeds

* fix: seed issues

* fix: sync metadata generated files

* fix: squash metadata migrations

* Fix conflicts

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-16 12:30:40 +01:00
brendanlaschkeandGitHub e5caa7a5df Eslint prevent duplicate import (#2516)
- eslint: prevent duplicate import
2023-11-16 12:26:43 +01:00
bosiraphaelandGitHub bee986749d 2472 v2 settings workspace module (#2532)
* update findOneWorkspaceMember

* profile picture upload is working

* first name and last name working

* support almost working

* remove picture working

* removed unused code

* remove console logs and fix allowImpersonation in FIND_ONE_WORKSPACE_MEMBER_V2

* use useUpdateOneObjectRecord
2023-11-16 11:59:13 +01:00
Charles BochetandGitHub 96661b5f56 Add support for UUID fields in tables (#2529) 2023-11-15 19:37:29 +01:00
WeikoandGitHub ebd1ef5223 Add basic fields metadata (#2523)
* Add basic fields metadata

* add fieldmetadata dependency

* re-arrange modules

* fix

* fix seed

* set default fields nullable

* set default fields nullable

* fix tenantMigration order

* fix tenantMigration order
2023-11-15 19:21:51 +01:00
Lucas BordeauandGitHub 82142ab70e Added working peopleV2 table (#2527) 2023-11-15 19:17:20 +01:00
Jérémy MandGitHub c02717c1e3 fix: schema builder use same type definitions storage across tenant (#2525) 2023-11-15 17:23:30 +01:00
martmullandGitHub 66051fa077 Fix api keys (#2513) 2023-11-15 16:57:05 +01:00
1fc3124d1e Update favorites query and state to work with new backend (#2520)
* wip

* wip

* adding favorite works in the database

* favorites are showing in the left drawer

* update favoorite NavItem link

* wip

* adding favorite works

* everything seems to work

* fix delete bug

* fix update favorite position

* update Favorite type

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-15 16:17:50 +01:00
Charles Bochet f49ddec2f6 Fix optimistic effect breaking build 2023-11-15 15:57:43 +01:00
6129444c5c [WIP] Whole FE migrated (#2517)
* Wip

* WIP

* Removed concole log

* Add relations to workspace init (#2511)

* Add relations to workspace init

* remove logs

* update prefill

* add missing isSystem

* comment relation fields

* Migrate v2 core models to graphql schema (#2509)

* migrate v2 core models to graphql schema

* Migrate to new workspace member schema

* Continue work

* migrated-main

* Finished accountOwner nested field integration on companies

* Introduce bug

* Fix

---------

Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: Weiko <[email protected]>
2023-11-15 15:46:06 +01:00
1f49ed2acf chore(server): convert User model to TypeORM entity (#2499)
* chore: convert basic RefreshToken model to TypeORM entity

Co-authored-by: v1b3m <[email protected]>

* Fix import

Co-authored-by: v1b3m <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2023-11-14 17:15:31 +01:00
Kanav AroraandGitHub 970d9ee7f6 2320-fix(front): IconEye icon size and font fix (#2490)
* 2320-fix(front): IconEye icon size and font fix

* 2320-fix: StyledEye replaced with lighticonbutton
2023-11-14 17:07:54 +01:00
Charles BochetandGitHub 01ccc13e36 Seed workspace member in workspace schema (#2504)
* Seed workspace member in workspace schema

* Fix
2023-11-14 15:48:03 +01:00
7c229217be Hide System Objects (#2488)
* Hide System Objects

* add filter isSystem: false in FIND_MANY_METADATA_OBJECTS

* add filter isSystem: false in FIND_MANY_METADATA_OBJECTS

* update generated gql

* add filter to useFindManyObjectMetadataItems

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-14 15:27:24 +01:00
Benedikt KleinerandGitHub d27f16d97a docs: mention prebuilt images (#2493)
docs: mention prebuilt images, remove docker build instructions
2023-11-14 15:09:23 +01:00
Uwem IsraelandGitHub f3dfd06571 feat: Unfocus cells when mouse leaves the table (#2442)
* feat: Unfocus cells when mouse leaves the table

* fix: only unfocus cells that are not in edit mode
2023-11-14 15:07:41 +01:00
a69711429b chore(backend): convert basic RefreshToken model to TypeORM entity (#2401)
* chore: convert basic RefreshToken model to TypeORM entity

Co-authored-by: v1b3m <[email protected]>

* Fix import

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
2023-11-14 13:09:04 +01:00
Charles BochetandGitHub 6eb4e00ce1 Migrate WorkspaceMemberSetting into WorkspaceMember (#2501) 2023-11-14 12:34:48 +01:00
Jérémy MandGitHub 65af954671 fix: relations issues (#2497)
* fix: relations issues

one-to-one relation not working
alias should not be used on the foreignKey side

* fix: naming
2023-11-14 12:07:17 +01:00
448f256a35 Add env variable docs (#2440)
* - add env variable docs

* - danger.js rule

* - fix value

* Fix Danger CI setup

* Add token in CI

---------

Co-authored-by: Félix Malfait <[email protected]>
2023-11-14 10:41:09 +01:00
Charles BochetandGitHub 5566e6fba8 Complete all standard object migration to the new workspace schema (#2492)
* Complete all standard object migration to the new workspace schema

* Fixes
2023-11-14 10:24:36 +01:00
bosiraphaelandGitHub f476129afa Fix date dropdown width (#2486)
fix date dropdown width
2023-11-13 18:21:16 +01:00
bosiraphaelandGitHub 230459b23c 2454 update filter definition to work with new backend (#2482)
* wip

* filters are working

* updated functions

* remove comment

* improve readability
2023-11-13 18:05:49 +01:00
WeikoandGitHub 3de2fc72dc Create Relation with Fields from both sides (#2480)
* Create relation with fields from both sides

* update metadata codegen schema
2023-11-13 17:22:15 +01:00
Charles BochetandGitHub 05dbde79cf Add standard company table migrations (#2484) 2023-11-13 17:18:37 +01:00
WeikoandGitHub f8a887e33e Add is system flag to object metadata (#2481)
* Add isSystem flag to objectMetadata

* squash migrations and add dataSource->objects FK

* fix missing datasource enum type
2023-11-13 17:09:26 +01:00
Félix MalfaitandGitHub 9132845242 Remove CLA Assistant (#2479)
* Remove yarn.lock and package.json from root

* Remove CLA-Assistant
2023-11-13 16:09:59 +01:00
9a109758c8 Migrate standard objects (#2439)
* Migrate standard objects

* Add migrations

* fix relation

* fix: register RelationMetadataType enum

* fix: correctly fix null relation

---------

Co-authored-by: corentin <[email protected]>
Co-authored-by: Jérémy Magrin <[email protected]>
2023-11-13 16:08:27 +01:00
brendanlaschkeandGitHub c7568ff28b Fix single note in grid (#2437)
- fix single note in grid
2023-11-13 16:01:31 +01:00
Félix MalfaitandGitHub 44d046b363 Cleanup CI workflows, Remove Twenty CLI, Add Danger.js (#2452)
* Move dockerignore file away from root

* Delete Twenty CLI

* Create Twenty-utils

* Move release script

* Add danger.js to yarn

* Add danger

* Add Bot token

* Cancel previous steps CI

* Revert "Move dockerignore file away from root"

This reverts commit 7ed17bb2bc.
2023-11-13 14:10:11 +01:00
Shiv TyagiandGitHub 2befd0ff14 infra: add make commands for provisioning postgres in macos and linux (#2436)
* infra: add make commands for provisioning postgres in macos and linux

* docs: update commands for provisioning postgres on linux and macos
2023-11-12 10:26:12 +01:00
8906c23c63 Fixed callback firing on clickoutside but mousedown inside. (#2434)
Co-authored-by: Charles Bochet <[email protected]>
2023-11-10 23:54:47 +01:00
Charles BochetandGitHub 130a68dd26 Add relation metadata seed (#2431)
* Add relation metadata seed

* Fix

* Add filtering by relation id on server

* Fix
2023-11-10 23:53:07 +01:00
bosiraphaelandGitHub 73db5eb35d fix-svgr-issue-with-tsup (#2429) 2023-11-10 18:25:14 +01:00
WeikoandGitHub 032e516a46 fix one to many relation dynamic query (#2430) 2023-11-10 18:20:36 +01:00
Charles BochetandGitHub 41f658b1ed Update mac os script for pg15 (#2427)
* Update mac os script for pg15

* Update mac os script for pg15

* Update mac os script for pg15
2023-11-10 17:11:09 +01:00
Charles BochetandGitHub 54d7acd518 Split components into object-metadata and object-record (#2425)
* Split components into object-metadata and object-record

* Fix seed
2023-11-10 15:54:32 +01:00
WeikoandGitHub 04c618284f Convert metadata tables to camel_case (#2420)
* Convert metadata tables to camelcase

* refactor folder structure

* rename datasourcemetadata

* regenerate metadata schema

* rename dataSourceMetadata to dataSource
2023-11-10 15:33:25 +01:00
Lucas BordeauandGitHub 6e7ad5eabc Update yarn-setup.mdx (#2424)
Added troubleshooting use case on SQL database init error.
2023-11-10 15:20:55 +01:00
Charles BochetandGitHub 618513afcd Rename fieldId and objectId into fieldMetadataId and objectMetadataId (#2421)
* Rename fieldId and objectId into fieldMetadataId and objectMetadataId

* Fix tests
2023-11-10 14:35:18 +01:00
Charles Bochet 57cfd4db45 Fix ScrollWrapper 2023-11-10 13:24:39 +01:00
Lucas BordeauandGitHub 9c29c436b9 Feat/pagination front (#2387)
* Finished renaming and scope

* wip

* WIP update

* Ok

* Cleaned

* Finished infinite scroll

* Clean

* Fixed V1 tables

* Fix post merge

* Removed ScrollWrapper

* Put back ScrollWrapper

* Put back in the right place
2023-11-10 12:43:14 +01:00
bosiraphaelandGitHub e0289ba9f2 2363 refactor the dialog component to use the new scope architecture (#2415)
* create Scope

* refactor dialog manager

* finished refactoring

* modify closeDialog to use a recoilcallback

* modify according to comments + add effet component

* fix spreadsheet import stories
2023-11-10 12:36:25 +01:00
Jérémy MandGitHub 6a700ad1a5 feat: schema-builder and resolver-builder can handle relations (#2398)
* feat: wip add relation

* feat: add relation for custom and standards objects

* fix: use enum instead of magic string

* fix: remove dead code & fix tests

* fix: typo

* fix: BooleanFilter is missing

* fix: Malformed result error
2023-11-10 12:32:02 +01:00
brendanlaschkeandGitHub edd152910d Fix icon picker width and add Icon Title (#2418)
- fixed icon picker width
- added icon title
2023-11-10 11:52:50 +01:00
Charles BochetandGitHub 7b9175a4a4 Revert "Convert metadata tables to camelCase" (#2419)
Revert "Convert metadata tables to camelCase (#2400)"

This reverts commit 1cf08c797f.
2023-11-10 11:48:44 +01:00
1cf08c797f Convert metadata tables to camelCase (#2400)
* Convert metadata tables to camelCase

* datasourcemetadataid to datasourceid

* refactor metadata folders

* fix command

* move commands out of metadata

* fix seed

* rename objectId and fieldId in objectMetadataId and fieldMetadataId in FE

* fix field-metadata

* Fix

* Fix

* remove logs

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-09 20:06:10 +01:00
Charles BochetandGitHub 5622f42e7a Fix table last column not being displayed (#2417) 2023-11-09 19:06:14 +01:00
ThaïsandGitHub b28ff9c97e feat: add Url field preview in settings (#2402)
* feat: add Url field preview in settings

Closes #2326

* feat: add Date field type in settings (#2414)

Closes #2331
2023-11-09 18:51:21 +01:00
bosiraphaelandGitHub 588091d3dd 2357 Refactor RecordTable to use the new scope architecture (#2407)
* create RecordTableScope

* use RecordTableScope

* working on useRecordTable hook

* add RecordTableScope to company-table

* add RecordTableScope to person-table

* add filter state and sort state

* add useSetRecordTableData to useRecordTable

* wip

* add setRecordTableData to useRecordTable

* update in RecordTableEffect

* fix bug

* getting rid of unnecessary context and hooks

* remove console.log

* wip

* fix bug by creating an init effect

* fix viewbar not in scope in company and people tables

* wip

* updating useRecordTable to use internal hooks

* updating useRecordTable to use internal hooks

* updating useRecordTable to use internal hooks

* updating useRecordTable to use internal hooks

* modified according to comments
2023-11-09 17:45:58 +01:00
ThaïsandGitHub 0d4949484c feat: add Money field type in settings (#2405)
Closes #2346
2023-11-09 17:13:34 +01:00
c8eda61704 #2133 Add comments icon and count to Timeline card (#2205)
* fix

* #2133 added comments icon and count on notes tab

* reverted changes in people-filters.tsx

* added comment icon and count on timeline in People/Companies

* removed infra/dev/scripts/hashicorp.gpg

* added comment count and icon on timeline cards with seperate react component

* used isNonEmptyArray typeguard for array length check

* updated review feedback

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-09 16:34:54 +01:00
f26be4d837 2385-feat(front): icon button styles added (#2411)
* 2385-feat(front): icon button styles added

* 2385-feat(front): pr requested changes done

* Fix alignment

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-09 16:23:45 +01:00
279630052f 2294 feat(frontend): styling shortcut keys (#2336)
* 2294 feat(frontend): styling shortcut keys

* 2294 fix(front): pr requested changes

* Fix component interface

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-09 15:18:51 +01:00
ThaïsandGitHub aa09b5758c feat: add Boolean field preview in settings (#2399)
Closes #2328
2023-11-09 12:20:30 +01:00
WeikoandGitHub 0f7581acc3 Remove Tenant columns anonymisation (#2404)
* Remove Tenant columns anonymisation

* add tests

* use _ instead of custom_

* put _ on all custom fields
2023-11-09 12:19:33 +01:00
martmullandGitHub fe20be8487 0.2.0 cleaning script (#2403)
* Update cleaning script to run on old schema

* Add boundaries parameter

* Stop requesting data for each workspace/table

* Stop checking same as seed if not requested

* Minor update

* Minor update

* Minor update

* Minor update

* Minor update

* Simplify result

* Simplify result

* Simplify result

* Delete updates

* Fix issues

* Update logs

* Remove throw when schema does not exist

* Remove missing table in old schema

* Remove boundaries parameter

* Remove useless trycatch
2023-11-09 12:18:09 +01:00
ThaïsandGitHub 28779f0fb8 feat: add Number field preview in settings (#2397)
Closes #2327
2023-11-09 08:30:37 +01:00
ThaïsandGitHub 1f5492b4a7 feat: add Text field preview in settings (#2389)
Closes #2325
2023-11-09 08:25:46 +01:00
Uwem IsraelandGitHub 4efbe4d798 FIX: Corrected button border color for danger button (#2409) 2023-11-08 23:47:12 +01:00
7a5476e31a Bump PGSQL version from 14 to 15 (#2406)
* Bump PGSQL version from 14 to 15

* Upgrade mac os postgres version

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-08 23:44:36 +01:00
56dc87a60f chore: create a new TypeORM config using @nestjs/typeorm for public schema (#2241)
* chore: create a new TypeORM config using @nestjs/typeorm for public schema

Co-authored-by: v1b3m <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>

* Remove unnecessary changes

Co-authored-by: v1b3m <[email protected]>

* Refactor imports

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
2023-11-08 11:26:52 +01:00
WeikoandGitHub cafffd973f Add Relation Metadata (#2388)
* Add Relation Metadata

* remove logs

* fix migrations

* add one-to-many relation inside entities

* fix relation

* use enum for tenant migration column action type
2023-11-08 09:39:44 +01:00
Charles Bochet 4ca4f17897 Fix boolean fieldtype case 2023-11-07 14:03:44 +01:00
martmullandGitHub 0ae56b055c Clean metadata and schema (#2382) 2023-11-07 12:33:54 +01:00
bosiraphaelandGitHub 7aa6b20418 Adding the possibility to add multiple ui components in the live code editor in the docs (#2381)
* working

* forgot docs folder

* modify according to comments
2023-11-07 12:33:40 +01:00
Nimra AhmedandGitHub 398a8d732d changes as per vale warnings (#2353)
* changes as per vale warnings

* changes acc to feedback
2023-11-07 11:39:29 +01:00
Charles BochetandGitHub 7623e7b7f9 Fix google auth url broken (#2380)
* Fix google auth url broken

* Refactor
2023-11-07 11:11:36 +01:00
martmullandGitHub 462c7ebdc1 0.2.0 cleaning script (#2379)
* Move question to questions folder

* Aggregate update result functions

* Use lodash to compare list of objects

* Remove favorites from tables

* Add a workspace parameter

* Move question after result log

* Improve logging

* Code review returns

* Add only lodash.isequal
2023-11-07 11:10:14 +01:00
183d6a1d1a No console eslint (#2251)
* chore: add new eslint config file for ci

* add test console log

* merge the lint steps

* Fix according to PR

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-06 23:50:06 +01:00
gitstart-twentyandGitHub daa6d2ca01 Chore: Cancel previous runs (#2227)
Cancel previous runs
2023-11-06 23:31:26 +01:00
Charles Bochet 1bf5af9150 Fix docs build 2023-11-06 23:21:08 +01:00
martmullandGitHub ba69435339 0.2.0 cleaning script (#2342)
* Display maxUpdatedAt for each workspace Schema

* Factorize functions

* Add max update for public workspaces

* Merge everything in a single json

* Enrich results

* Get from proper table

* Update

* Move to proper command file

* Add a dry-run option

* Remove workspaces from database

* Fix DeleteWorkspace method

* Add new option

* Remove proper data when deleting workspace

* Minor improvements
2023-11-06 23:15:02 +01:00
377f95c9db feat: add SettingsObjectFieldPreview and SettingsObjectFieldPreviewCard (#2376)
* feat: add SettingsObjectFieldPreview

Closes #2343

* feat: add SettingsObjectFieldPreviewCard

Closes #2349

* Fix ci

* Fix tests

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-06 23:14:47 +01:00
Lucas BordeauandGitHub b3d460eb75 Finished renaming and scope (#2378)
* Finished renaming and scope

* Less objectNamePlural as props
2023-11-06 19:42:46 +01:00
Charles Bochet 3d483b5640 Improve first loading performance 2023-11-06 18:26:53 +01:00
Kanav AroraandGitHub 9bd6d26d53 2299 fix(frontend): corrected tag spacing in settings object item table row (#2302)
* fix(frontend): corrected tag spacing in settings object item table row

* 2299-fix(front): pr requested changes

* 2299 fix(front): PR requested changes - 2
2023-11-06 17:58:03 +01:00
Lucas BordeauandGitHub b98d474308 Fix new field type enums in parseFieldType (#2361)
* Fix new field type enums in parseFieldType

* Fix with GraphQL enum
2023-11-06 17:24:47 +01:00
bosiraphaelandGitHub 88ca846f83 Rename InlineCell to RecordInlineCell (#2377)
rename inline cell
2023-11-06 17:18:25 +01:00
Jérémy MandGitHub 3432615a17 fix: small tenant refactor fixes (#2375) 2023-11-06 15:49:06 +01:00
Charles Bochet bb8cddddc4 Fix chromatic build 2023-11-04 13:42:59 +01:00
Charles Bochet aa50ee4b21 Fix chromatic build 2023-11-04 13:22:10 +01:00
Charles Bochet d17978777e Fix chromatic build 2023-11-04 10:35:45 +01:00
53072298bc Feat/improve new views (#2298)
* POC new recoil injected scoped states

* Finished useViewScopedState refactor

* Finished refactor

* Renamed mappers

* Fixed update view fields bug

* Post merge

* Complete refactor

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-04 09:28:55 +01:00
e70ef58f97 Live code editor for UI docs (#2351)
* Docausaurus code live editor test

* Docusaurus sandpack test

* Fix setup

* Delete files

* Fixes

* Complete work

* Fix config

* Fix config

---------

Co-authored-by: bosiraphael <[email protected]>
2023-11-03 23:09:20 +01:00
1ed4965a95 feat: refactor schema builder and resolver builder (#2215)
* feat: wip refactor schema builder

* feat: wip store types and first queries generation

* feat: refactor schema-builder and resolver-builder

* fix: clean & small type fix

* fix: avoid breaking change

* fix: remove util from pg-graphql classes

* fix: required default fields

* Refactor frontend accordingly

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-03 17:16:37 +01:00
Lucas BordeauandGitHub aba3fd454b Removed dead code (#2345) 2023-11-03 17:08:07 +01:00
2221c68dff Improved user guide, added CI vale for docs (#2308)
* restructured user guide, minor fixes

* added index file for user guide

* github actions for vale

* testing workflow

* CI vale

* changes as per vale's suggestions

* set CI vale on pull request

* adding homebrew script to macos infra setup file

* fix CI errors

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* testing vale

* vale testing complete

* vale cleanup

* vale test

* vale test for github-pr-check

* vale test for github-pr-check

* vale test for github-pr-check

* vale test for github-pr-check

* testing vale warnings

* testing vale warnings

* testing vale warnings

* testing vale warnings

* testing vale warnings

* testing vale warnings

* testing vale warnings

* swizzled doc cards to add icons

* Align CI params to other CIs

---------

Co-authored-by: Félix Malfait <[email protected]>
2023-11-03 17:02:30 +01:00
c397619100 441/fix/clear cell while opening it by typing and delete value when I hit delete / backspace. (#2021)
- Use initial values when opening table cells and pass them to fields

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-11-03 16:43:54 +01:00
ThaïsandGitHub 60b1024efb feat: do not show disabled fields in table (#2319)
Closes #2309
2023-11-03 15:05:04 +01:00
ThaïsandGitHub e053fba089 fix: fix Modules Storybook tests (#2339)
Fixes #2310
2023-11-03 15:01:42 +01:00
Charles Bochet e04f9230da Fix Add view not working on PersonTable 2023-11-03 15:01:01 +01:00
Charles Bochet b4af15467f Fix data not loading on recordTable 2023-11-03 14:53:11 +01:00
b56f6f3947 Fix seeds for local workspace and newly created workspaces (#2333)
* Update metadata/data seeds

* fix

* fix

* move seeding into a transaction

* add no-non-null-assertion

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-03 14:33:45 +01:00
ThaïsandGitHub 56a5f99108 fix: fix Pages Storybook tests (#2305)
* fix: fix Companies pages tests

* fix: fix People pages tests

* fix: fix Opportunities page tests
2023-11-03 14:25:36 +01:00
9c2c1e879a Add new dockerfile for postgres (#2322)
* Add new Dockerfile for postgres

* Fix docker

* Update dockerfile

---------

Co-authored-by: martmull <[email protected]>
2023-11-03 14:24:10 +01:00
Lucas BordeauandGitHub cf8840dfec Fix assert not null lint warning (#2324) 2023-11-03 11:08:14 +01:00
brendanlaschkeandGitHub e3691ad143 Fix navbar animation layout shift (#2335)
fix navbar animation
2023-11-03 11:04:30 +01:00
bosiraphaelandGitHub f19ed5e2e4 Fix firefox recoil snapshot bug (#2321)
fix firefox recoil snapshot bug
2023-11-02 17:06:26 +01:00
bosiraphaelandGitHub 9725582a82 Fix entity tasks filter scopeid bug (#2318)
fix entity tasks filter scopeid bug
2023-11-02 14:36:50 +01:00
5becefadcb Add new Dockerfile for postgres (#2313)
* Add new Dockerfile for postgres

* Fix docker

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-11-02 14:21:06 +01:00
Saba ShavidzeandGitHub 4d89e093d6 fix: update cleanup command to reflect current volume naming (#2316) 2023-11-02 14:09:47 +01:00
bosiraphaelandGitHub 316f2df170 Fix checkbox htmlfor bug (#2315)
fix bug
2023-11-02 14:05:47 +01:00
bosiraphaelandGitHub 27b451ee56 Fix view deletion (#2314)
* fix view deletion

* fix view deletion bugs

* improve code readability
2023-11-02 12:17:50 +01:00
bosiraphaelandGitHub 8080353075 Fix sort delete (#2312) 2023-11-02 10:36:28 +01:00
Charles BochetandGitHub 1c5c71bc48 Reduce image size (#2306)
* Reduce image size

* Clean dependencies

* Clean dependencies
2023-10-31 21:43:16 +01:00
bosiraphaelandGitHub 951680113e Plug filter delete to backend (#2303)
* plug-filter-delete-to-backend

* delete console
2023-10-31 18:06:43 +01:00
bosiraphaelandGitHub f9920d2f24 Fix CompanyBoardCard height (#2301)
* fix view-fields seeds

* closeDate was duplicated

* fix CompanyBoardCard height
2023-10-31 16:38:23 +01:00
bosiraphaelandGitHub 2abcd97c92 Fix view fields seeds (#2300)
* fix view-fields seeds

* closeDate was duplicated
2023-10-31 16:34:28 +01:00
brendanlaschkeandGitHub 48aa89664a Prevent layout shift on page load (#2268)
- prevent layout shift on page load
2023-10-31 14:09:33 +01:00
dda911fea7 Remove three old env variables (#2297)
* remove three old env variables IS_DATA_MODEL_SETTINGS_ENABLED IS_DEVELOPERS_SETTINGS_ENABLED FLEXIBLE_BACKEND_ENABLED

* Fix database:reset script

* Removing unused variable

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-31 13:15:24 +01:00
GauravandGitHub 71dd6eb0a8 Fix: Email case sensitivity (#2229) 2023-10-31 12:41:20 +01:00
bosiraphaelandGitHub a2e84db049 2282 Rename components to use the new naming convention part 3 (#2296)
part 3 of the renaming
2023-10-31 12:38:53 +01:00
bosiraphaelandGitHub adeaa35e8d 2282 Rename components to use the new naming convention part 2 (#2295)
renaming part 2
2023-10-31 12:32:16 +01:00
b319ba66ac 2284 fix(frontend): layout shift in date input (#2292)
* fix(frontend): layout shift in date input

* Fix Inline Cell overlay being shifted

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-31 12:30:10 +01:00
bosiraphaelandGitHub ec8389cecf 2282 Rename components to use the new naming convention part 1 (#2293)
renaming in progress
2023-10-31 12:12:52 +01:00
ThaïsandGitHub 7fe569ec6a fix: disable page shortcuts on TextArea focus (#2288)
Fixes #2275
2023-10-30 19:23:12 +01:00
ThaïsandGitHub 3cdbe4f16e fix: remove blank space below Object Settings cover image (#2285)
Fixes #2280
2023-10-30 19:22:23 +01:00
ThaïsandGitHub d30ed496e9 fix: display object plural labels in nav items (#2290)
Fixes #2289
2023-10-30 19:20:44 +01:00
Nimra AhmedandGitHub a523190943 User guide & vale setup (#2260)
* refactored Storybook UI

* refactored Storybook UI

* removed extra cards from the doc, added card for ui components

* added hover behavior to doc page & made it look selected

* separate storybook docs and tests

* separating storybook tests and docs

* fixed spelling errors in docs

* Final round of edits for frontend, added backend folder architecture

* Created CODE_OF_CONDUCT.md

* Add code of conduct to contributing.md

* doc changes

* fixed broken links

* doc addition and changes

* introduce user guide & graphql api

* set up vale, added to docs

* vale config file

* revised backend best practices

* connecting zapier and twenty

* added warning for zapier
2023-10-30 18:01:58 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
7cb58eae4d build(deps): bump @babel/traverse from 7.21.4 to 7.23.2 in /docs (#2255)
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.4 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-30 17:59:47 +01:00
ThaïsandGitHub 328c5cd184 test: add metadata object and field mocks (#2266) 2023-10-30 17:56:56 +01:00
martmullandGitHub 236742e88c Fix api keys refresh (#2283)
* Move code to dedicated function

* Format cached data with proper typename
2023-10-30 17:48:34 +01:00
ThaïsandGitHub 3fc1b74d9c feat: navigate to Object Detail page after custom object creation (#2277)
Closes #2276
2023-10-30 13:33:29 +01:00
Jérémy MandGitHub 80a6223d7d feat: custom objects delete one (#2278)
* feat: custom objects delete one

* fix: delete one issue
2023-10-30 12:05:03 +01:00
rbutler-usandGitHub 6640f2a651 [Docs] Update 'self-hosting options' link on getting-started.mdx (#2267)
Update 'self-hosting options' link on getting-started.mdx

When browsing from: 
https://docs.twenty.com/start/getting-started/

The link with text "self-hosting options" lands on a 404 page with this address:
https://docs.twenty.com/start/getting-started/self-hosting

Adding '/start/' to the beginning of the URL fixes this. 

Note: if your browser automatically redirects from:
https://docs.twenty.com/start/getting-started/
to:
https://docs.twenty.com/start/getting-started

Then the relative document URL will work as expected. When adding the trailing slash, the link breaks.
2023-10-30 10:16:17 +01:00
Charles BochetandGitHub d38497c46a Refactor ObjectDataTable to work with new views system (#2274)
Complete work
2023-10-29 23:50:59 +01:00
Charles BochetandGitHub 9bab28912d Complete Fix view work (#2272)
* Fix views

* Make view sorts and view filters functional

* Complete Company table view fix

* Fix model creation

* Start fixing board

* Complete work
2023-10-29 16:29:00 +01:00
Charles BochetandGitHub 685d342170 Migrate view field to new data model - Part 2 (#2270)
* Migrate view field to new data model

* Migrate view fields to new model
2023-10-28 19:13:48 +02:00
b591023eb3 Fix/metadata object and settings post merge (#2269)
* WIP

* WIP2

* Seed views standard objects

* Migrate views to the new data model

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-10-28 12:25:43 +02:00
afd4b7c634 Fix Views on People page (#2265)
* fetching viewId for url

* fixed option menu name input

* fix table import

* fix unnecessary rerenders

* people working

---------

Co-authored-by: bosiraphael <[email protected]>
2023-10-27 18:20:58 +02:00
martmullandGitHub 35237c05f3 Fix cache management (#2264) 2023-10-27 18:20:11 +02:00
acbcd2f162 Standard migration command (#2236)
* Add Standard Object migration commands

* rebase

* add sync-tenant-metadata command

* fix naming

* renaming command class names

* remove field deletion and use object cascade instead

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-27 18:08:59 +02:00
e488a87ce4 feat: save edited custom field (#2245)
Closes #2161

Co-authored-by: Lucas Bordeau <[email protected]>
2023-10-27 18:06:31 +02:00
40c5f72080 feat: save activated/disabled fields in New Field - Step 1 page (#2226)
* feat: save activated/disabled fields in New Field - Step 1 page

Closes #2170

* fix: fix objectSlug

* Console.log

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-10-27 17:59:57 +02:00
ThaïsandGitHub 9681815cb3 test: fix SettingsObjectDisabledMenuDropDown storybook tests (#2257)
* test: fix SettingsObjectDisabledMenuDropDown storybook tests

* fix: fix BoardOptionsDropdownContent lint error
2023-10-27 17:49:14 +02:00
Lucas BordeauandGitHub 14ae8da424 Fix database experience (#2263) 2023-10-27 17:48:06 +02:00
3c6ce75606 feat: activate standard objects in New Object page (#2232)
* feat: activate standard objects in New Object page

Closes #2010, Closes #2173

* Pagination limit = 1000

* Various fixes

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-10-27 15:46:29 +02:00
Charles BochetandGitHub ec3327ca81 Fix major rework on view (#2262) 2023-10-27 15:30:52 +02:00
WeikoandGitHub 53e51aad52 Add prisma metadata seeds (#2259) 2023-10-27 13:57:11 +02:00
ThaïsandGitHub d7b0c1190a feat: add Object Field Edit page sections (#2243)
Closes #2160, Closes #2163
2023-10-27 12:13:01 +02:00
Charles BochetandGitHub d02dd69613 Fix filters and sorts on views (#2258) 2023-10-27 11:48:38 +02:00
Lucas BordeauandGitHub 1728045be4 Fixes (#2256) 2023-10-27 11:25:14 +02:00
ThaïsandGitHub 3d5ee6d7ca feat: remove disabled custom objects (#2247)
Closes #2147
2023-10-27 11:08:02 +02:00
3f2e1b622e Feat/show page metadata (#2234)
* Fix view fetch bug

* Finished types

* Removed console.log

* Fixed todo

* Working Object Show Page

* Minor fixes

* Fix custom object requests pending (#2240)

* Fix custom object requests pending

* fix typo

* Fix various bugs

* Typo

* Fix

* Fix

* Fix

---------

Co-authored-by: Weiko <[email protected]>
2023-10-27 11:06:07 +02:00
5ba68e997d Improve viewbar api (#2233)
* create scopes

* fix import bug

* add useView hook

* wip

* wip

* currentViewId is now retrieved via useView

* working on sorts with useView

* refactor in progress

* refactor in progress

* refactor in progress

* refactor in progress

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* fix code

* fix code

* wip

* push

* Fix issue dependencies

* Fix resize

---------

Co-authored-by: bosiraphael <[email protected]>
2023-10-27 10:52:26 +02:00
brendanlaschkeandGitHub 6a72c14af3 Use zod instead of yup (#2254)
* use zod instead of yup

* doc

* lint
2023-10-27 10:26:32 +02:00
WeikoandGitHub c04e866de3 Remove Metadata SoftDelete and page limit size (#2237)
* Remove Metadata SoftDelete and page limit size

* add cascade deletion

* add missing queryRunner release
2023-10-26 17:32:27 +02:00
ThaïsandGitHub b30233d582 fix: generate metadata object and field names in camel case (#2250)
Fixes #2249
2023-10-26 17:27:52 +02:00
WeikoandGitHub 781a1de8f4 Fix custom object requests pending (#2240)
* Fix custom object requests pending

* fix typo
2023-10-26 12:20:03 +02:00
Lucas BordeauandGitHub c335d19c97 Feat/add other metadata types v2 (#2224)
* Fix view fetch bug

* Finished types

* Removed console.log

* Fixed todo

* Reactivate no console

* Change no-console to warn
2023-10-26 12:07:43 +02:00
ThaïsandGitHub 00dd046798 feat: create custom object field (#2225)
Closes #2171
2023-10-26 11:34:26 +02:00
martmullandGitHub fc4075b372 2062 view edit an api key (#2231)
* Add query to get api keys

* Add a link to apiKey detail page

* Reset generatedApiKey when leaving page

* Simplify stuff

* Regenerate key when clicking on button

* Simplify

* Fix test

* Refetch apiKeys when delete or create one

* Add test for utils

* Create utils function

* Enable null expiration dates

* Update formatExpiration

* Fix display

* Fix noteCard

* Fix errors

* Fix reset

* Fix display

* Fix renaming

* Fix tests

* Fix ci

* Fix mocked data

* Fix test

* Update coverage requiremeents

* Rename folder

* Code review returns

* Symplify sht code
2023-10-26 11:32:44 +02:00
ThaïsandGitHub 2b1945a3e1 feat: create custom object and update edited object names (#2220)
Closes #2155, Closes #2153
2023-10-26 11:04:16 +02:00
Kanav AroraandGitHub 0b33880cc9 feat(frontend): Object Field Edit page created (#2218)
* feat(frontend): Object Field Edit page created

* fix(frontend): PR requested changes done
2023-10-24 18:13:22 +02:00
Charles BochetandGitHub 20f5b9def7 Fix bug isRelation guard (#2217) 2023-10-24 17:33:38 +02:00
Charles Bochet 48c9ea855a Improve tests 2023-10-24 17:14:07 +02:00
Charles Bochet d58b85df54 Complete deploy to render work 2023-10-24 16:53:40 +02:00
Abhishek ThoryandGitHub bd0b886081 1259/add compact view in opportunities (#2182)
* icons added

* recoil family state added for checking compact view in each card

* recoil state added for toggle button. Wether compact view show or not

* menu item modifed for right side content

* compact view toggle added in dropdown options

* dropdown width increased because compact view text was  overflowing

* compact view added in boardcard

* new animation added for in and out

* compact view enabled state added

* old state deleted

* sizes added in toggle component

* removed extra added code form navigation

* toggle size added in menuitem toggle

* MenuItemToggle added instead of MenuItemNavigate

* Compact view improved
2023-10-24 16:24:25 +02:00
Alfred LouisandGitHub 350410b0fe fix: update dropdown width (#2181)
* fix: update dropdown width

* fix conflict

* refactor dropdown width state
2023-10-24 16:21:51 +02:00
GauravandGitHub dfc59b2751 Applied min-height to Data Model banner (#2214) 2023-10-24 16:18:55 +02:00
martmullandGitHub d61511262e 2060 create a new api key (#2206)
* Add folder for api settings

* Init create api key page

* Update create api key page

* Implement api call to create apiKey

* Add create api key mutation

* Get id when creating apiKey

* Display created Api Key

* Add delete api key button

* Remove button from InputText

* Update stuff

* Add test for ApiDetail

* Fix type

* Use recoil instead of router state

* Remane route paths

* Remove online return

* Move and test date util

* Remove useless Component

* Rename ApiKeys paths

* Rename ApiKeys files

* Add input text info testing

* Rename hooks to webhooks

* Remove console error

* Add tests to reach minimum coverage
2023-10-24 16:14:54 +02:00
RuslanandGitHub b6e8fabbb1 chore: added .dockerignore and fixed start:prod (#2099) (#2211)
added .env to .dockerignore and fixed start:prod
2023-10-24 14:41:52 +02:00
Charles Bochet d5610fdb5b Fix build script 2023-10-24 11:40:52 +02:00
Nimra AhmedandGitHub 515ef25a72 Changes to documentation (#2209)
* refactored Storybook UI

* refactored Storybook UI

* removed extra cards from the doc, added card for ui components

* added hover behavior to doc page & made it look selected

* separate storybook docs and tests

* separating storybook tests and docs

* fixed spelling errors in docs

* Final round of edits for frontend, added backend folder architecture

* Created CODE_OF_CONDUCT.md

* Add code of conduct to contributing.md

* doc changes

* fixed broken links

* doc addition and changes

* introduce user guide & graphql api
2023-10-24 11:36:43 +02:00
5acafe2fc6 Chore(front): Add more typeguards (#2136)
* Chore(front): Add more typeguards

Co-authored-by: Benjamin Mayanja V <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>

* Remove source map generation to avoid warnings

---------

Co-authored-by: Benjamin Mayanja V <[email protected]>
Co-authored-by: KlingerMatheus <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-10-24 09:26:47 +02:00
80d558559f fix unauthenticated (#2203)
Co-authored-by: Charles Bochet <[email protected]>
2023-10-24 08:54:45 +02:00
Marcel KaiserandGitHub 2b590a1c33 fix: issue Button-with-'IconChevronDown'-in-'TableUpdateViewGroupButton'-has-incorrect-size (#2201)
changed button size
issue #3Button-with-'IconChevronDown'-in-'TableUpdateViewGroupButton'-has-incorrect-size-#1522
2023-10-24 08:35:29 +02:00
7a3338b4de feat: save edited custom object (#2204)
Closes #2153

Co-authored-by: Charles Bochet <[email protected]>
2023-10-24 08:33:35 +02:00
291feae595 feat: activate, disable and erase fields in Object Detail (#2200)
* feat: activate and disable objects

Closes #2144, Closes #2148, Closes #2154

* feat: activate, disable and erase fields in Object Detail

Closes #2158

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-24 08:30:13 +02:00
ThaïsandGitHub 26e8cd76be feat: activate and disable objects (#2194)
Closes #2144, Closes #2148, Closes #2154
2023-10-24 08:07:00 +02:00
David PhamandGitHub f94886d150 Fix issue 2130: text overflow on setting member page (#2192) 2023-10-23 12:42:22 +02:00
28e9b16ee6 Fix Boolean field for hotkey (#2067)
* Fix Boolean field for hotkey

* make via hook

* typo

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-10-23 11:43:09 +02:00
Pallavi VarshneyandGitHub aaa8ec574d #2133 added comments icon and count on notes tab (#2186)
* fix

* #2133 added comments icon and count on notes tab

* reverted changes in people-filters.tsx
2023-10-23 11:23:37 +02:00
brendanlaschkeandGitHub c80eb5c0b0 Show icons for navigate commands (#2184)
- show icons for navigate commands
2023-10-23 10:28:01 +02:00
Charles BochetandGitHub 42af74eb46 Build render (#2188)
* Build for arm and amd

* Add scripts

* Add scripts
2023-10-22 23:47:43 +02:00
Charles Bochet e67b2d23ae Fix port missing while building pg_database_url for render 2023-10-22 12:42:52 +02:00
a5fe256d7e chore: inject enviroment at the ./front deployment phase (#2174) (#2179)
* chore: inject enviroment at the deployment phase (#2174)

* Dockerfile CMD env.sh
* env.sh generates env-config.js file
* index.html imports env-config.js
* front/src/config/index.ts imports REACT_APP_SERVER_BASE_URL

* Upgrade Dockerfiles

* Add compute pg_database_url for render

* fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-22 12:36:36 +02:00
Charles BochetandGitHub 1954ed5e3a Add tests and raise coverage on pages (#2180)
* Add tests and raise coverage on pages

* Fix lint
2023-10-21 20:09:08 +02:00
f1670f0cf4 Feat/metadata datatable types (#2175)
* Handled new url v2 type

* Fixed refetch queries

* wip

* Ok delete but views bug

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-21 14:07:18 +02:00
598fda8f45 feat: add new object standard available section (#2111)
* feat: add new object standard available section

* Fix feedback comments received on PR

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-21 13:40:11 +02:00
34bbbdff41 feat: add New Field Step 2 form (#2138)
Closes #2001

Co-authored-by: Charles Bochet <[email protected]>
2023-10-21 13:28:15 +02:00
c90cf1eb8f Fix issue 2126: DataTable '+' button dropdown positioning glitch (#2150)
* Fix issue 2126: DataTable '+' button dropdown positioning glitch

* Simplify code

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-21 12:51:53 +02:00
9e9eca22a4 Fix issue 2151: Dropdown menu of header table does not close after hide column (#2177)
* Fix issue 2151: Dropdown menu of header table does not close after hide column

* Remove dropdown scope

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-21 12:07:50 +02:00
6d8effabbf fix: value changes every render (#2115)
* fix: value changes every render

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-21 11:49:50 +02:00
Abhishek ThoryandGitHub 159d2978d0 Favorite: computeNewPosition fixed (#2134) 2023-10-21 11:31:32 +02:00
dee9807eb3 Chore(front): Create Storybook tests for the DropdownMenu component (#2157)
* Chore(front): Create Storybook tests for the DropdownMenu component

Co-authored-by: Benjamin Mayanja V <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>

* Fix the tests

Co-authored-by: Benjamin Mayanja V <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>

* Simplify Dropdown

* Remove console.log

---------

Co-authored-by: Benjamin Mayanja V <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-10-20 21:19:43 +02:00
David PhamandGitHub eea7470571 Fix Issue 2127: DataTable column head menu is badly positioned (#2135)
* update dropdownPlacement and dropdownOffset

* use default position
2023-10-20 17:44:22 +02:00
Nimra AhmedandGitHub cb6ee90fa6 Doc addition & changes (#2152)
* refactored Storybook UI

* refactored Storybook UI

* removed extra cards from the doc, added card for ui components

* added hover behavior to doc page & made it look selected

* separate storybook docs and tests

* separating storybook tests and docs

* fixed spelling errors in docs

* Final round of edits for frontend, added backend folder architecture

* Created CODE_OF_CONDUCT.md

* Add code of conduct to contributing.md

* doc changes

* fixed broken links

* doc addition and changes
2023-10-20 15:47:44 +02:00
WeikoandGitHub cc9ffb16ad Add standardObject seeds (#2140)
* Add standardObject seeds

* use for of
2023-10-20 14:35:25 +02:00
martmullandGitHub 993be61ee2 fix 2049 timebox 1j zapier integration 4 define and implement a first trigger for zapier app (#2139)
Update dotenv dependency
2023-10-20 11:43:27 +02:00
Charles Bochet 14a5a91499 Fix server typescript depth error 2023-10-20 00:20:47 +02:00
Charles Bochet 943731fed8 Fix visual regressions 2023-10-20 00:04:51 +02:00
08772b4456 1721/feature/drag and drop favorites (#2097)
* prisma schema updated: added index in favorite

* update abilitiy added for favorite

* update one favorite resolver added

* update on favorite mutation added

* updateFavoriteOrder added

* Draglist added in favorite

* nav item convert to div from button: because it was not working dragable with button

* changed index to position

* position added in getFavorites query

* added recoil state for favorites

* reordering updated according to new method

* Use accurate type

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-19 23:35:23 +02:00
RuslanandGitHub f6b5943fc6 chore: Pre build docker images (#2099) (#2131)
chore: LABEL to link images source to github
2023-10-19 22:57:00 +02:00
e9092162e0 2049 timebox 1j zapier integration 4 define and implement a first trigger for zapier app (#2132)
* Add create company trigger

* Refactor

* Add operation in subscribe

* Add create hook api endpoint

* Add import of hook module

* Add a test for hook subscribe

* Add delete hook api endpoint

* Add delete hook test

* Add findMany hook route

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-19 22:48:34 +02:00
Kirthi Bagrecha JainandGitHub 5ce8b4c73c fix: favourite button background (#2128)
update:favourite button background
2023-10-19 17:54:36 +02:00
ThaïsandGitHub 2f0da64e1b feat: get object metadata from backend in Object Edit (#2125)
Closes #2009
2023-10-19 17:14:29 +02:00
ThaïsandGitHub f35ea19f4d feat: get object metadata from backend in Object Detail and New Field… (#2122)
* feat: get object metadata from backend in Object Detail and New Field - Step 1

Closes #2008

* refactor: add useLazyLoadIcon hook
2023-10-19 16:58:18 +02:00
Nimra AhmedandGitHub bea9d0835b Doc changes (#2124)
* refactored Storybook UI

* refactored Storybook UI

* removed extra cards from the doc, added card for ui components

* added hover behavior to doc page & made it look selected

* separate storybook docs and tests

* separating storybook tests and docs

* fixed spelling errors in docs

* Final round of edits for frontend, added backend folder architecture

* Created CODE_OF_CONDUCT.md

* Add code of conduct to contributing.md

* doc changes

* fixed broken links
2023-10-19 16:32:29 +02:00
Charles BochetandGitHub d0df7e4d3b Update version to 0.1.5 (#2123)
* Update version to 0.1.5

* Temporariliy lower code coverage
2023-10-19 16:21:09 +02:00
martmullandGitHub f4e192afb3 Add dotenv in zapier app (#2121)
* Add dotenv in zapier app

* Add zapier cli also
2023-10-19 15:49:09 +02:00
ThaïsandGitHub 514692ca1f feat: get active and disabled objects from backend in Objects Setting… (#2119)
* feat: get active and disabled objects from backend in Objects Settings page

Closes #2005

* refactor: add useObjectMetadata hook
2023-10-19 15:47:31 +02:00
Jérémy MandGitHub 3e83cb6846 feat: conditional filtering & aggregation support & data ordering support (#2107)
* feat: wip

* feat: add filter on findOne

* fix: tests & small bug

* feat: add test and support aggregation

* feat: add order by support

* fix: fix comments

* fix: tests
2023-10-19 15:24:36 +02:00
bosiraphaelandGitHub 2b8a81a05c Created two new env variables (#2120)
* created the two env variables

* modify according to comments
2023-10-19 14:57:16 +02:00
Charles BochetandGitHub c04f6bf371 Fix import style (#2118) 2023-10-19 12:05:31 +02:00
martmullandGitHub b904397599 Fix api keys (#2116)
* Distinguish local env variables

* Remove api token secret
2023-10-19 11:07:40 +02:00
Charles Bochet 09fe29e559 Fix mac os script 2023-10-19 10:54:24 +02:00
ArijitandGitHub e90301098a Fix: hotkey scope not correctly set (#2094)
* technical input fix

* use previous hotkey instead for onblur
2023-10-18 19:46:21 +02:00
c590300bf1 Feat/metadata with datatable v2 (#2110)
* Reworked metadata creation

* Wip

* Fix from PR

* Removed consolelog

* Post merge

* Fixed seeds

* Wip

* Added dynamic routing

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-18 19:41:02 +02:00
Tom AvalexingandGitHub 830dfc4d99 add clicking on dropdown menu test (#2103)
* add clicking on dropdown menu test

* add play function
2023-10-18 18:42:48 +02:00
Lucas BordeauandGitHub 5bfb540e6a Fix graphql query import (#2108) 2023-10-18 18:31:47 +02:00
bosiraphaelandGitHub 44099cf8fd 1801 objects settings add activate option to disabled menu (#2104)
* wip creating dropdown

* wip styling the dropdown

* wip

* Fix wrong gap in MenuItems

* add handleActivate and handleErase functions

* remove unused styled component

* add story

* modified according to comment
2023-10-18 18:21:03 +02:00
ThaïsandGitHub 3971454190 feat: add New Object Custom form (#2105)
* feat: add New Object Custom form

Closes #1808

* fix: fix lint error
2023-10-18 18:12:46 +02:00
WeikoandGitHub 7fbef6d60d Add Tenant initialisation service (#2100)
* Add Tenant initialisation service

* few fixes

* fix constraint

* fix tests

* update metadata json with employees and address

* add V2

* remove metadata.gql
2023-10-18 18:01:52 +02:00
Nimra AhmedandGitHub 1cd91e60fa Doc changes (#2106)
* refactored Storybook UI

* refactored Storybook UI

* removed extra cards from the doc, added card for ui components

* added hover behavior to doc page & made it look selected

* separate storybook docs and tests

* separating storybook tests and docs

* fixed spelling errors in docs

* Final round of edits for frontend, added backend folder architecture

* Created CODE_OF_CONDUCT.md

* Add code of conduct to contributing.md
2023-10-18 18:00:52 +02:00
martmullandGitHub 51a06b3ebd 2052 zapier integration 5 deploy twenty zapier app into the public repository (#2101)
* Add create_company Zap action

* Add testing for that action

* Core review returns
2023-10-18 17:56:40 +02:00
Lucas BordeauandGitHub 547a17b145 Feat/metadata add update and delete on frontend (#2102)
* Reworked metadata creation

* Wip

* Fix from PR

* Removed consolelog

* Post merge

* Fixed seeds
2023-10-18 16:48:11 +02:00
RuslanandGitHub 21c2834f52 Chore: Deploy to Render updated (#2033) (#2098)
Deploy to Render updated (#2033):

* postgres as a pserv (private service) compiled with pg_graphql
* default credentials (todo to fix), but postgres in a private network
* added FRONT_BASE_URL to server env
* added Dockerfile for postgres in infra/prod/postgres
* for server added dockerCommand with yarn database:setup
2023-10-18 13:54:12 +02:00
bosiraphaelandGitHub f95c9d3df8 1761 objects settings add a cover image (#2096)
* add image

* overflow hidden

* add close button

* add animation to cover image

* use cookie to store user preference

* refactor to have a reusable component called AnimatedFadeOut

* corrected close button position

* modified according to comments
2023-10-18 13:02:44 +02:00
a1a2309140 Chore: Edit button on cells should be guessed by the field's type (#1952)
* created custom hook to get Icon Component as per field type

* Fix conflicts

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-17 22:42:57 +02:00
2c1ad1661a Fix(front): notes relation picker (#2034)
* Fix notes relation picker

Co-authored-by: v1b3m <[email protected]>

* fix import

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: bosiraphael <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-10-17 22:13:25 +02:00
Kanav AroraandGitHub 6e90554ae7 feat(frontend): New Object Field Step 2 Added Cancel Save Button (#2092) 2023-10-17 21:11:34 +02:00
Abhishek ThoryandGitHub 462a5a6738 danger zone section added in object edit page (#2093) 2023-10-17 21:10:47 +02:00
Charles Bochet 34c9259683 Fix linter 2023-10-17 21:09:15 +02:00
ThaïsandGitHub 8894c52202 feat: add Object Edit form (#2090)
Closes #1910
2023-10-17 21:03:59 +02:00
martmullandGitHub 54735c4880 2038 zapier integration 1 initialize a zapier app with a twenty related account (#2089)
* Add doc for Zapier development

* Add twenty-zapier package

* Install zapier packages

* Update doc

* Add twenty-zapier app

* Update doc

* Update apiKey slug

* Update integration

* Update create people to person

* Update version

* Fix lint

* Remove useless comments

* Update docs

* Update version

* Update naming

* Add prettier

* Simplify docs

* Remove twenty related stuff from public doc

* Use typescript boilerplate

* Update details
2023-10-17 21:00:20 +02:00
Charles BochetandGitHub 01e9545a59 Move shadow style from TableCell and InlineCell to FieldInputs (#2078)
* Move shadow style from TableCell and InlineCell to FieldInputs

* Move overlay to inputs

* Complete work
2023-10-17 20:59:56 +02:00
Lucas BordeauandGitHub a40516df83 Added metadata creation (#2086)
* Reworked metadata creation

* Fix from PR

* Removed consolelog
2023-10-17 20:59:41 +02:00
Jérémy MandGitHub c4fa36402b feat: add default filter types (#2087)
* feat: add default filter types

* fix: fields doesn't need to be a function
2023-10-17 17:57:02 +02:00
Saba ShavidzeandGitHub 1549664416 feat: created new Developers Page in Settings (#2071)
* feat: created new Developers Page in Settings

* update styled according to the updated design

* update styled according to the updated design

* remove unused color import from TableCell component

* update pl based on comments

* update pl based on comments

* update pl based on comments

* update pl based on comments

* update pl based on comments

* update pl based on comments

* update pl based on comments
2023-10-17 17:28:18 +02:00
Aasim AttiaandGitHub 88438e8094 apply database:init (#2079) 2023-10-17 16:39:48 +02:00
bosiraphaelandGitHub d19011f882 Use SaveAndCancelButtons in SettingsObjectNewFieldStep1 (#2088)
* Use SaveAndCancelButtons in SettingsObjectNewFieldStep1

* refactor to introduce SettingsHeaderContainer
2023-10-17 16:32:21 +02:00
Jayraj RodageandGitHub 1aefaced1d Fixed icon for single New note & New task buttons (#2082) 2023-10-17 16:08:17 +02:00
WeikoandGitHub 1344e78acb Remove singular/plural from field-metadata (#2085)
* Remove singular/plural from field-metadata

* revert removing id from create input

* remove console log

* remove console log

* codegen

* missing files

* fix tests
2023-10-17 15:21:58 +02:00
bosiraphaelandGitHub 0d6386bc8d 1809 new object add cancel and save buttons (#2081)
* create save and cancel buttons and their stories

* add SaveAndCancelButtons to the New Object page

* add onSave and onCancel

* modified according to comments
2023-10-17 14:55:41 +02:00
Jérémy MandGitHub 4a96ae225e feat: easier makefile commands (#2077)
* feat: easier makefile commands

* fix: cleaner command
2023-10-17 10:38:10 +02:00
Nimra AhmedandGitHub a6542719df Addresses issue #1906 (#2074)
* refactored Storybook UI

* refactored Storybook UI

* removed extra cards from the doc, added card for ui components

* added hover behavior to doc page & made it look selected

* separate storybook docs and tests

* separating storybook tests and docs
2023-10-16 22:06:07 +02:00
Lucas BordeauandGitHub d64f167b3b Feat/front temp seed custom objects (#2070)
* wip

* Fixed bugs

* Added flexible backend test
2023-10-16 22:04:41 +02:00
WeikoandGitHub c06a8a9213 Add soft delete to metadata (#2072) 2023-10-16 22:04:17 +02:00
07ae0fa76c Chore(server): Enable local database installation on MacOS (#2057)
* Enable local database installation on MacOS

Co-authored-by: v1b3m <[email protected]>

* Fix script

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-10-16 22:02:37 +02:00
ThaïsandGitHub 8a64903933 feat: add active/disabled fields table to New Field - Step 1 page (#2069)
Closes #1785
2023-10-16 18:16:25 +02:00
bosiraphaelandGitHub 3dae11b6e4 Create page Object Field Step 2 (#2068)
* create page

* change runs-on param
2023-10-16 18:02:39 +02:00
bosiraphaelandGitHub e147e7aebb 1997 new object field step 1 create page (#2054)
* add ObjectNewField page

* add story

* refactored to include step1

* replaced step1 by step-1 and fix onCLick behavior

* refactor stories

* refactoring in progress

* refactor SettingsPageContainer

* refactor SettingsPageContainer
2023-10-16 17:11:09 +02:00
WeikoandGitHub 525603227a Add default db schema for seeded workspace (#2061)
* Add default db schema for seeded workspace

* fix

* add if not exists

* add metadata seeds

* use setup-db for e2e

* fix tests
2023-10-16 16:59:46 +02:00
Tom AvalexingandGitHub c324a0a4f4 Support ongoing efforts on setting-> object (#2065) 2023-10-16 16:59:30 +02:00
Tom AvalexingandGitHub 70aef9bb28 Refactor sortsOrderBy & filtersWhere on CompanyTable & PeopleTable (#2064) 2023-10-16 16:49:37 +02:00
Charles BochetandGitHub b128d53b58 Refactor settings > data model section (#2031) 2023-10-15 19:00:07 +02:00
apurvagurmeandGitHub e9d0c8a928 feat: add about block in object detail page (#2028) 2023-10-15 18:08:16 +02:00
Kanav AroraandGitHub 9c855ff8b5 feat: New Object - Add Object type section #1918 (#1985)
* feat: New Object - Add Object type section #1918

* fix: dark mode border color

* feat: New Object - Add Object type section #1918

* fix: dark mode border color

* Requested changes in the PR

* fix(new object): requested changes in the PR

* fix(1985): border color
2023-10-15 17:48:27 +02:00
Charles Bochet 7bb971f538 run ci sb-modules on github basic machine 2023-10-15 17:47:14 +02:00
brendanlaschkeandGitHub 0cd644266b Add S3 endpoint env variable (#2017)
* - add s3 endpoint

* fix .lock

* new line
2023-10-15 17:36:44 +02:00
RuslanandGitHub e69a355cbb Fix docker db init / reset for Windows (#1981) (#2023)
* removed checking if docker is running with /dev/null
2023-10-15 17:36:18 +02:00
Charles Bochet ba3094b448 Fix script windows init.sql 2023-10-15 16:45:17 +02:00
Saba ShavidzeandGitHub 31d67c1092 fix: remove console logs on frontend side (#2030)
fix: remove console logs
2023-10-15 16:34:07 +02:00
ArijitandGitHub 9296443e34 Fix: alter role code (#2029)
fix: alter role code
2023-10-15 16:31:56 +02:00
AkasshandGitHub ffd2758ebb Repoint README link for local env dev set up. (#2025) 2023-10-15 09:18:16 +02:00
brendanlaschkeandGitHub 3c9cd9ff4a Add release command (#2022)
add release command
remove unescessary yarn.lock
2023-10-14 23:04:35 +02:00
Charles Bochet 160b7039d9 Complete win script setup 2023-10-14 22:43:17 +02:00
Charles Bochet 986082d7a7 Complete win script setup 2023-10-14 22:41:18 +02:00
Nimra AhmedandGitHub fa9303f545 Refactored Storybook UI (#2020)
* refactored Storybook UI

* refactored Storybook UI

* removed extra cards from the doc, added card for ui components
2023-10-14 21:22:47 +02:00
Charles Bochet 04090446cc Update install on docker 2023-10-14 14:03:37 +02:00
Charles BochetandGitHub 77729e4d4b Update installation doc (#2019)
* Update installation doc

* Update install scripts

* Update install scripts
2023-10-14 13:43:45 +02:00
RuslanandGitHub 77c88bda6e Fix bug where "metadata" scheme was not created automatically (#1971) and (#1831) (#2018)
* Fix bug where "metadata" scheme was not created automatically (#1971)

* logging on

* testing on render

* render upadte

* added setup-db.ts and updated package.json
2023-10-14 11:48:55 +02:00
0c79217ba0 Add an ESLint rule to prevent the usage of useRef other than for HTML elements. (#2014)
* Add an ESLint rule to prevent the usage of useRef other than for HTML elements

Co-authored-by: v1b3m <[email protected]>

* Bump eslint version and rewrite rule

* Fix

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-10-14 11:32:46 +02:00
258685467b Refactor UI folder (#2016)
* Added Overview page

* Revised Getting Started page

* Minor revision

* Edited readme, minor modifications to docs

* Removed sweep.yaml, .devcontainer, .ergomake

* Moved security.md to .github, added contributing.md

* changes as per code review

* updated contributing.md

* fixed broken links & added missing links in doc, improved structure

* fixed link in wsl setup

* fixed server link, added https cloning in yarn-setup

* removed package-lock.json

* added doc card, admonitions

* removed underline from nav buttons

* refactoring modules/ui

* refactoring modules/ui

* Change folder case

* Fix theme location

* Fix case 2

* Fix storybook

---------

Co-authored-by: Nimra Ahmed <[email protected]>
Co-authored-by: Nimra Ahmed <[email protected]>
2023-10-14 00:04:29 +02:00
a35ea5e8f9 Feat/front forge graphql query (#2007)
* wip

* Wip

* Wip

* Finished v1

* Wip

* Fix from PR

* Removed unused fragment masking feature

* Fix from PR

* Removed POC from nav bar

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-13 22:27:57 +02:00
Charles BochetandGitHub 3ef9132525 Refactor icon picker to use shared styled dropdown menu (#1998) 2023-10-13 18:06:47 +02:00
Lucas BordeauandGitHub cafcfdc95e Feat/front metadata request (#1977)
* wip

* Wip

* Wip

* Finished v1

* Fix from PR

* Removed unused fragment masking feature
2023-10-13 18:01:57 +02:00
41ae30cada Chore(front): Add storybook tests on meta-types/input/components (#1987)
* Add storybook tests on meta-types/input/components

Co-authored-by: v1b3m <[email protected]>

* Add storybook tests on meta-types/input/components

Co-authored-by: v1b3m <[email protected]>

* Add storybook tests on meta-types/input/components

Co-authored-by: v1b3m <[email protected]>

* Add storybook tests on meta-types/input/components

Co-authored-by: v1b3m <[email protected]>

* Add storybook tests on meta-types/input/components

Co-authored-by: v1b3m <[email protected]>

* Fix the tests

Co-authored-by: v1b3m <[email protected]>

* modify props spread in stories

* Remove storybook-addon-mock

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: bosiraphael <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-10-13 17:47:08 +02:00
acde034a1d Replaced eslint rule twenty/no-spread-props to react/jsx-props-no-spreading (#1976)
* Replaced eslint rule twenty/no-spread-props to react/jsx-props-no-spreading

* Disable props spread on external libraries

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-13 16:52:19 +02:00
d56c5fcbf6 Two cells can be focused at the same time in the tables Fixes #1826 (#1866)
Co-authored-by: kramer <[email protected]>
Co-authored-by: Ayush Agrawal <[email protected]>
Co-authored-by: AyushAgrawal-A2 <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2023-10-13 16:37:36 +02:00
RuslanandGitHub 2a9d94c5a2 Improve docker db init / reset (#1981) (#1984)
* renamed volume name db_data to twenty_db_data
* named postgres container_name: twenty_postgres

make provision-postgres does:
* checking if docker is running
* stop the container postgres twenty_postgres
* prune the volume twenty_db_data
* rebuild the image every time, use --build
2023-10-13 15:57:01 +02:00
bosiraphaelandGitHub 30aeea9eec 1909 object edit add icon section (#1995)
* wip

* wip

* wip

* wip

* wip

* remove hardcoded values and use theme values

* add styles to StyledContainer

* fix iconPicker bug

* wip

* refactor IconPicker to include IconButton

* close IconPicker on click outside

* close IconPicker on escape and enter

* refactor to use DropDownMenu

* refactor to use DropDownMenu

* modify default icon

* Refactor to use useIconPicker hook

* fix WithSearch story

* reinitialized searchString state on close

* create and update stories for the iconPicker

* remove comments

* use theme for gap

* remove align-self

* fix typo in icon

* fix type any

* fix merge conflicts

* remove experimental css properties
2023-10-13 15:29:30 +02:00
ThaïsandGitHub 818efd72d0 feat: add Fields table to Object Detail page (#1988)
* feat: add Fields table to Object Detail page

Closes #1815

* refactor: add ObjectFieldDataType
2023-10-13 11:51:11 +02:00
flo merianandGitHub bd9a6c56fe doc: Update README.md with quick links in the Features section (#1994)
Added quick links in the Features section
2023-10-13 11:37:34 +02:00
Subash-LamichhaneandGitHub 92b34a76a2 fixed typo in docs\docs\contributor\frontend\advanced\best-practices.mdx (#1993) 2023-10-13 09:18:58 +02:00
Nimra AhmedandGitHub 13db1bd0a6 Improvements to the doc (#1989)
* Added Overview page

* Revised Getting Started page

* Minor revision

* Edited readme, minor modifications to docs

* Removed sweep.yaml, .devcontainer, .ergomake

* Moved security.md to .github, added contributing.md

* changes as per code review

* updated contributing.md

* fixed broken links & added missing links in doc, improved structure

* fixed link in wsl setup

* fixed server link, added https cloning in yarn-setup

* removed package-lock.json

* added doc card, admonitions

* removed underline from nav buttons
2023-10-13 09:13:13 +02:00
Jérémy MandGitHub 4e993316a6 feat: conditional schema based on column map instead of column field (#1978)
* feat: wip conditional schema based on column map instead of column field

* feat: conditionalSchema columnMap and singular plural

* fix: remove uuid fix

* feat: add name and label (singular/plural) drop old tableColumnName
2023-10-12 18:28:27 +02:00
8fbad7d3ba 1043 timebox prepare zapier integration (#1967)
* Add create api-key route

* Import module

* Remove required mutation parameter

* Fix Authentication

* Generate random key

* Update Read ApiKeyAbility handler

* Add findMany apiKey route

* Remove useless attribute

* Use signed token for apiKeys

* Authenticate with api keys

* Fix typo

* Add a test for apiKey module

* Revoke token when api key does not exist

* Handler expiresAt parameter

* Fix user passport

* Code review returns: Add API_TOKEN_SECRET

* Code review returns: Rename variable

* Code review returns: Update code style

* Update apiKey schema

* Update create token route

* Update delete token route

* Filter revoked api keys from listApiKeys

* Rename endpoint

* Set default expiry to 2 years

* Code review returns: Update comment

* Generate token after create apiKey

* Code review returns: Update env variable

* Code review returns: Move method to proper service

---------

Co-authored-by: martmull <[email protected]>
2023-10-12 18:07:44 +02:00
Charles BochetandGitHub 6b990c8501 Refactor input arch (#1982) 2023-10-12 17:41:50 +02:00
Alfred LouisandGitHub 09fd5b6454 fix:remove line break (#1986) 2023-10-12 17:40:56 +02:00
Charles BochetandGitHub 3b9ceade76 Fix token not being refreshed (#1975)
* Fix token not being refreshed

* Fix token not being refreshed

* v2

* Fix
2023-10-11 17:12:39 +02:00
b2352212fc 1867 timebox add storybook tests on meta typesinputcomponents (#1972)
* working on DateFieldInput story

* wip

* wip

* wip

* Fix story

* Fix other story

* finish stories for BooleanFieldInput and DateFieldInput

* reorganize stories in UI/Field in Input and Display folders

* unite FieldDisplayContextProvider and FieldInputContextProvider in one file FieldContextProvider

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-11 16:55:55 +02:00
ThaïsandGitHub c52b297612 feat: add New Object page (#1970)
Closes #1919
2023-10-11 15:45:59 +02:00
Lucas BordeauandGitHub 22451a68b3 Refactor/scope and context (#1960)
* wip

* Test with Dropdown

* wip

* wip

* Finished removing DropdownRecoilScopeContext

* Fix from PR
2023-10-11 15:35:47 +02:00
ThaïsandGitHub a342af74d1 feat: add Object Edit page (#1968)
Closes #1907
2023-10-11 15:34:10 +02:00
ThaïsandGitHub 7731525317 feat: add Object Detail page breadcrumb (#1962)
Closes #1814
2023-10-11 12:12:19 +02:00
Bhumik PrajapatiandGitHub 4555b66d96 Fix long text issue on people dropdown picker (#1923)
* Fix long text issue on people dropdown picker

* Fix checkmark shrink for long text

* remove width to not shrink image

* fix: remove width 100% from StyledMenuItemLabel
2023-10-11 12:11:09 +02:00
WeikoandGitHub f97228bfac feat: add object/field create/update resolvers (#1963)
* feat: add object/field create/update resolvers

* fix tests
2023-10-11 12:03:13 +02:00
Tom AvalexingandGitHub 6a3002ddf9 Fix dnd on Options->Fields dropdown. (#1921)
fix dnd
2023-10-10 16:25:06 +02:00
Charles Bochet 04091a4ce0 Fix login modal not aligned 2023-10-10 16:06:55 +02:00
bf397bc6ec Update the frontend to adhere to the custom eslint rule twenty/no-spread-props (#1958)
* Update the frontend to adhere to the custom eslint rule `twenty/no-spread-props`

Co-authored-by: v1b3m <[email protected]>

* Update the frontend to adhere to the custom eslint rule `twenty/no-spread-props`

Co-authored-by: v1b3m <[email protected]>

* resolve bug with data-testid

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: bosiraphael <[email protected]>
2023-10-10 15:40:49 +02:00
5dddd77eb3 added stories RawLink, SocialLink, and ContactLink and deleted story … (#1957)
* added stories RawLink, SocialLink, and ContactLink and deleted story for PrimaryLink

* add play function to link tests

---------

Co-authored-by: bosiraphael <[email protected]>
2023-10-10 14:58:07 +02:00
612bd57d5b Write Storybook tests for front/src/modules/ui/field/meta-types/display components (#1932)
* Write Storybook tests for front/src/modules/ui/field/meta-types/display components

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>

* Write Storybook tests for front/src/modules/ui/field/meta-types/display components

Co-authored-by: FellipeMTX <[email protected]>
Co-authored-by: v1b3m <[email protected]>

* Write Storybook tests for front/src/modules/ui/field/meta-types/display components

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>

* add EllipsisDisplay component

* add EllipsisDisplay component

* modified ComponentDecorator to pass a minWidth parameter to test ellipsis

* add ellipsis test to all components

* add ellipsis to links

* removed minWidth and set it to 'unset' if the width is not defined

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>
Co-authored-by: bosiraphael <[email protected]>
2023-10-10 12:39:19 +02:00
Nimra AhmedandGitHub ae32a2da3b Revised contributing.md, edited docs (#1951)
* Added Overview page

* Revised Getting Started page

* Minor revision

* Edited readme, minor modifications to docs

* Removed sweep.yaml, .devcontainer, .ergomake

* Moved security.md to .github, added contributing.md

* changes as per code review

* updated contributing.md

* fixed broken links & added missing links in doc, improved structure

* fixed link in wsl setup

* fixed server link, added https cloning in yarn-setup
2023-10-10 12:33:17 +02:00
017a0b1563 feat: refactor custom object (#1887)
* chore: drop old universal entity

* feat: wip refactor graphql generation custom object

* feat: refactor custom object resolvers

fix: tests

fix: import

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-10 10:50:54 +02:00
18c8f26f38 Feat: Adjust the overlay style for changing the phone number's country (#1876)
* switched to dropdown menu component

* Use latest dropdown container

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-09 23:38:09 +02:00
Charles Bochet c37a39febb Fix tests 2023-10-09 23:23:04 +02:00
Charles Bochet c950395eac Fix tests 2023-10-09 23:17:07 +02:00
WeikoandGitHub ca492808cf Add metadata query resolvers (#1929)
* Add metadata queries resolvers

* remove hello field

* fix linter
2023-10-09 22:54:14 +02:00
Abhishek BindraandGitHub 34d3c452c1 Objects Settings - Add the "New object" button (#1928)
* Objects Settings - Add the "New object" button

* addressing review comments
2023-10-09 22:46:37 +02:00
Abhishek ThoryandGitHub 982a0799b8 scrollbar corner background color set transparent (#1948) 2023-10-09 22:42:06 +02:00
bosiraphaelandGitHub b9f23d9be6 Refactor RelationFieldDisplay to eliminate dependency on non-ui components (#1949)
* job done

* removed example type

* removed unused temporary type
2023-10-09 22:38:47 +02:00
29c013f826 1584/fix/dropdown item width not correct (#1950)
* added full width to new button

* removed scrollbar width in dropdown item

* Fix dropdown width issue

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-09 22:37:26 +02:00
ThaïsandGitHub e1c0cb7821 feat: add Object Detail page (#1917)
* feat: add Object Detail page

Closes #1813

* refactor: add object settings width constant
2023-10-09 19:16:02 +02:00
d0175fc541 Fix import error (#1947)
Co-authored-by: martmull <[email protected]>
2023-10-09 17:40:05 +02:00
Abhishek ThoryandGitHub f49333f2e8 1886/fix/dont show unhideable files in fields menu (#1931)
* in compaines>fields Name fields is hided.

* in Opputunities>Options>Fieds   make closeData dragable

* close data (first colum) make hideable

* added size field

* added filter in fields with index and size

* index updated
2023-10-09 16:50:16 +02:00
Tom DoeandGitHub 73617e3534 Fix: Broken "local-setup" link in README.md (#1946)
Fixed a broken link to "Local Setup" in the readme.
2023-10-09 16:32:51 +02:00
77a1840611 Chore(front): Create a custom eslint rule for Props naming (#1904)
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: bosiraphael <[email protected]>
2023-10-09 16:31:13 +02:00
BOHEUSandGitHub 84ed9edefe Replaced docker-compose with docker compose in Makefile (#1922) 2023-10-09 15:50:49 +02:00
GauravandGitHub a09456055e Fix: Changed file and component names (#1934)
Changed file and component names
2023-10-09 15:42:25 +02:00
Charles Bochet 150d1a880c Fix iframe not loading on ui components doc 2023-10-08 13:35:33 +02:00
Charles BochetandGitHub edc060fce7 Introduce UI Components documentation (#1926)
* new contributor guide folder architecture

* update content pass 1

* Prepare UI component folder to receive componentns

* Add component doc example for button

* Fix broken links

* Fix broken links

* Fix images
2023-10-08 13:21:54 +02:00
Nimra AhmedandGitHub 7b6ee4e0bf Update README and Documentation (#1875)
* Added Overview page

* Revised Getting Started page

* Minor revision

* Edited readme, minor modifications to docs

* Removed sweep.yaml, .devcontainer, .ergomake

* Moved security.md to .github, added contributing.md

* changes as per code review
2023-10-07 11:24:44 +02:00
Alfred LouisandGitHub da68654caf add new storybook for MenuItems component (#1898) 2023-10-06 12:02:19 +02:00
BOHEUSandGitHub 10c39e4501 Update troubleshooting.mdx (#1895)
Updated troubleshooting.mdx with possible solution to Docker related problems
2023-10-06 11:12:42 +02:00
Ayush AgrawalandGitHub 7574ad82fe Fix: Wrong assignee on loading team member picker (#1894)
show only skeleton when loading
2023-10-06 11:06:05 +02:00
Ayush AgrawalandGitHub 53021dc64f Feat: Add tooltips on new column menu (#1893)
* implemented tooltip for view fields

* console.log
2023-10-06 11:04:39 +02:00
2ff35083fb chore: drop findMany and findUnique resolvers for custom objects (#1897)
Co-authored-by: v1b3m <[email protected]>
2023-10-06 10:49:54 +02:00
ThaïsandGitHub 18e210b29b feat: add active and disabled object tables to settings (#1885)
* feat: add active and disabled object tables to settings

Closes #1799, Closes #1800

* refactor: add align prop to TableCell
2023-10-05 22:19:08 +02:00
Charles Bochet 4ed77a9c51 Fix tests 2023-10-05 22:17:37 +02:00
Charles BochetandGitHub 07450df1a1 Add no-console eslint rule (#1890)
* Add no-console eslint rule

* Remove unused test
2023-10-05 21:16:02 +02:00
bosiraphaelandGitHub 922f8eca0e 1880 Refactored Dropdown components (#1884)
* updated DropdownButton props

* refactoring in progress

* working but layout is wrong

* fixed bug

* wip on ColumnHeadWithDropdown

* fix bug

* fix bug

* remove unused styled component

* fix z-index bug

* add an optional argument to DropdownMenu to control the offset of the menu

* add an optional argument to DropdownMenu to control the offset of the menu

* modify files after PR comments

* clean the way the offset is handled

* fix lint
2023-10-05 18:11:54 +02:00
GauravandGitHub b8282e6789 Added script to setup database locally on Linux/WSL (#1879)
* Created script to install and setup PostgreSQL database for Linux/WSL

* Updated Docs
2023-10-05 16:17:27 +02:00
Charles Bochet a04bdc6824 Fix tests 2023-10-05 16:16:02 +02:00
Alfred LouisandGitHub 73fa968595 fix:Menus go back button style fix (#1860)
* fix:Menus go back button style fix

* adjust padding

* use light icon button
2023-10-05 15:29:16 +02:00
Jérémy MandGitHub 047bb8014b feat: add custom object create and update (#1869) 2023-10-05 14:33:13 +02:00
b2dd868046 Fix overlay positioning for 'Sort,' 'Filter,' and 'Options' menus #1521 (#1781)
* Fix overlay positioning for 'Sort,' 'Filter,' and 'Options' menus

* Fix according to review

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-10-04 18:31:55 +02:00
ThaïsandGitHub 7af306792b feat: add Table and TableSection components (#1849)
* refactor: rename ui/table to ui/data-table

* feat: add Table and TableSection components

Closes #1806
2023-10-04 17:46:14 +02:00
Debdeep PalandGitHub d217142e7e Fixed #1818 [Tab list position glitch] (#1872)
Fixed #1818
2023-10-04 17:29:31 +02:00
Charles BochetandGitHub 13c8ee29f7 Refactor draggable list (#1874) 2023-10-04 17:29:18 +02:00
bosiraphaelandGitHub f59dc75627 Create a storybook test for TextFieldDisplay (#1868)
* working on a story for MoneyFieldDisplay

* Write test on MoneyDisplayField

* add a story for TextFieldDisplay
2023-10-04 17:17:18 +02:00
d2703363d5 fix: removed import type (#1864)
* feat: added an enlint rule to enforce no-type-import

* Update style-guide.mdx

* fix: removed import type

* fix: removed import type

---------

Co-authored-by: aman1357 <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2023-10-04 16:11:09 +02:00
Aditya PimpalkarandGitHub 93a01c7292 Chore: Improve dropdown draggable list (#1738)
* draggable menu item component

* Menu item isDragged prop removed

* Droppable list component

* Draggablee item component

* Drag and drop use refactor

* lint fix

* isDragDisabled check on DraggableItem

* revert changes on non visibility items

* MenuItemDraggable stroybook

* DraggableItem storybook

* lint fix

* lint fix

* BoardColumnMenu css fix

* showGrip prop addition

* isDragged css fix
2023-10-04 15:56:25 +02:00
brendanlaschkeandGitHub 1e402aca5f Remove company avatar show page hover effect (#1857)
- remove company avatar show page hover effect
2023-10-04 15:49:25 +02:00
Tom AvalexingandGitHub 27eab82f19 Workaround for bug on token conflict with front and storybook (#1843)
* workound to preview token

* remote token itself
2023-10-04 15:46:41 +02:00
WeikoandGitHub 42e8869e0e Add targetColumnMap to FieldMetadata (#1863)
* Add targetColumnMap to FieldMetadata

* fix

* remove console.log

* fix test
2023-10-04 15:17:53 +02:00
Tom AvalexingandGitHub 8f41792918 fix: Team creation dialog is visible and closable (#1758)
* fix: Team creation dialog is visible and closable

* fix according to recs

* fix border-radius issue visible on dark theme

* rename to appropriate naming: hotkeyCloser

* no memoize
2023-10-04 15:10:23 +02:00
brendanlaschkeandGitHub 59a7e7ead3 Add troubleshooting doc (#1852)
* - add troubleshooting doc

* fix duplicate
2023-10-04 15:07:02 +02:00
Tom AvalexingandGitHub 56eea72110 fix count with opportunities page (#1839)
* fix count with opportunities page

* make unscoped atom entityCountInCurrentViewState
2023-10-04 15:04:53 +02:00
bosiraphaelandGitHub 46dffeadef Adding storybook tests on meta-types/display/components (#1862)
* working on a story for MoneyFieldDisplay

* Write test on MoneyDisplayField
2023-10-04 13:26:06 +02:00
Charles Bochet aab2f3ab3c Fix lint 2023-10-04 12:48:40 +02:00
bc3fe59312 feat: added an enlint rule to enforce no-type-import (#1838)
* feat: added an enlint rule to enforce no-type-import

* Update style-guide.mdx

---------

Co-authored-by: aman1357 <[email protected]>
2023-10-04 11:06:54 +02:00
Charles BochetandGitHub c433eb5d93 Bump version to 0.1.4 (#1851) 2023-10-04 10:51:59 +02:00
Ayush AgrawalandGitHub 3336144245 Feat: First column style update (#1746)
reimplemented as per suggestions by lucas
2023-10-04 10:25:43 +02:00
Ayush AgrawalandGitHub 5915189a5b Fix: Cannot add some fields to companies table (#1853)
fixed add field to table when absent in db
2023-10-04 10:18:21 +02:00
Jérémy MandGitHub 7e8e3ac1de fix: typeorm migration datasource directory change (#1848) 2023-10-03 17:44:58 +02:00
Ayush AgrawalandGitHub 77997674e5 Feat: Add "All assignees" in Task team member dropdown (#1763)
* implemented all select option FilterDropdownEntitySearchSelect and enabled it for tasks page filter

* created new filter operand IsNotNull for make a select all qraphql query, added internal state for tracking isAllEntitySelected

* used filterCurrentlyEdited to track if isAllEntitySelected is selected

* fixed filter button icon SelectAll Icon
2023-10-03 16:55:31 +02:00
aea088df16 eslint prettier error on windows #1798 (#1804)
* fixing es linter errors on windows

* Indentation

* Indentation

---------

Co-authored-by: kramer <[email protected]>
2023-10-03 16:48:52 +02:00
Tom AvalexingandGitHub 4d86c66ccb fix docker dev (#1844) 2023-10-03 16:27:43 +02:00
bosiraphaelandGitHub 8da0205bab Renamed editable field to inline cell in ui folder (#1845)
* renamed editable field to inline cell in ui folder

* renamed table to table-cell in ui folder
2023-10-03 16:26:20 +02:00
bosiraphaelandGitHub 35fb2576b7 added figma link to README.md (#1835)
* added figma link to README.md

* added figma to the recommended extensions for the project

* updated useful tips in 'work with Figma' section of the docs to add Figma extension for VSCode

* removing yarn.lock

* modified Figma extension docs in 'Work with Figma'

* added Mdx Preview extension to recommended extensions
2023-10-03 12:50:05 +02:00
ThaïsandGitHub e63f8eac76 feat: add data model settings (#1817)
Closes #1760
2023-10-03 11:19:29 +02:00
WeikoandGitHub 1e91c985df Add a dedicated GQL server for metadata available on /meta (#1820) 2023-10-03 10:17:13 +02:00
Charles Bochet 37475f7c1b Fix bug non emptyable phones and urls 2023-10-02 17:32:16 +02:00
Ayush AgrawalandGitHub 965a6b7c57 Fix: Table / Board createView bug (#1782)
* fix createView for tables and board page

* removed residual console.log from InlineCell component
2023-10-02 17:23:30 +02:00
Jérémy MandGitHub d3b39cad97 feat: add env security in dynamic resolvers (#1812)
* feat: add env security in dynamic resolvers

* fix: tests
2023-10-02 17:17:42 +02:00
WeikoandGitHub 09684ef6cc Fix docker setup with bcrypt (#1783) 2023-10-02 11:59:06 +02:00
e12e7754e4 Fix board column title edit optimistic rendering #1745 (#1780)
adding update of state as well

Co-authored-by: kramer <[email protected]>
2023-09-30 18:29:41 +02:00
brendanlaschkeandGitHub 6871cd0df3 Fix task creation show page (#1775)
- fixed task creation show page
2023-09-30 08:32:45 +02:00
brendanlaschkeandGitHub e3485cc609 Fix: Consistent avatars for show pages (#1776)
- consistent avatars for show pages
2023-09-30 08:32:00 +02:00
brendanlaschkeandGitHub c06712f161 Chore: eslint forbid useHotkeys (#1777)
- add eslint rule
2023-09-30 08:25:34 +02:00
Charles Bochet ab4f978a00 Update documentation nav font-size 2023-09-29 19:16:38 +02:00
Ayush AgrawalandGitHub a287a5bc8a Feat: I can add a favorite directly from my table (#1747)
* implented add/remove favorite in context menu

* clear selected rows after favorite button click, context menu width 200px when remove from favorites is shown

* Update front/src/modules/ui/context-menu/components/ContextMenu.tsx
2023-09-29 18:33:28 +02:00
ThaïsandGitHub ae0acd508a docs: add page level sidebar (#1749)
* POC: docs: add page level sidebar

Closes #1341

* docs: hide level 1 test page from navbar
2023-09-29 17:50:21 +02:00
ThaïsandGitHub 4e181aa40e feat: lazy load IconPicker icons (#1753)
Closes #1750
2023-09-29 16:23:36 +02:00
1c35ccce4e docs: redesign docs collapsible categories (#1748)
* docs: redesign docs collapsible categories

Closes #1341

* Fix people creation from People table page

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-29 16:22:04 +02:00
Charles BochetandGitHub b52190c707 Fix people creation from People table page (#1773) 2023-09-29 16:21:30 +02:00
WeikoandGitHub 3851e0f992 Fix missing patches folder to deploy server (#1771)
* Fix missing patches folder to deploy server

* Fix missing patches folder to deploy server

* remove extra line

* add fix for twenty-dev
2023-09-29 15:41:09 +02:00
Charles Bochet c82ac773b9 Fix server build 2023-09-29 15:37:58 +02:00
brendanlaschkeandGitHub 35ff695471 Added hint for cmdk-menu (#1743)
* - added hint for cmdk-menu

* - design
2023-09-29 11:23:14 +02:00
ed86cec1e8 Fix design EditableCell 'Hover', 'Focus' and 'Edit Mode' #1663 (#1740)
* fixed styling  EditableCell

* adding same solution

* removing shadow to cover top and bottom

* fixing with outline

* fixing width

---------

Co-authored-by: kramer <[email protected]>
2023-09-29 10:02:54 +02:00
629bdbbf50 feat: dynamic graphQL schema generation based on user workspace (#1725)
* wip: refacto and start creating custom resolver

* feat: findMany & findUnique of a custom entity

* feat: wip pagination

* feat: initial metadata migration

* feat: universal findAll with pagination

* fix: clean small stuff in pagination

* fix: test

* fix: miss file

* feat: rename custom into universal

* feat: create metadata schema in default database

* Multi-tenant db schemas POC

fix tests and use query builders

remove synchronize

restore updatedAt

remove unnecessary import

use queryRunner

fix camelcase

add migrations for standard objects

Multi-tenant db schemas POC

fix tests and use query builders

remove synchronize

restore updatedAt

remove unnecessary import

use queryRunner

fix camelcase

add migrations for standard objects

poc: conditional schema at runtime

wip: try to create resolver in Nest.JS context

fix

* feat: wip add pg_graphql

* feat: setup pg_graphql during database init

* wip: dynamic resolver

* poc: dynamic resolver and query using pg_graphql

* feat: pg_graphql use ARG in Dockerfile

* feat: clean findMany & findOne dynamic resolver

* feat: get correct schema based on access token

* fix: remove old file

* fix: tests

* fix: better comment

* fix: e2e test not working, error format change due to yoga

* remove typeorm entity generation + fix jwt + fix search_path + remove anon

* fix conflict

---------

Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: corentin <[email protected]>
2023-09-28 16:27:34 +02:00
brendanlaschkeandGitHub 485bc64b4f POC: Save view as url param (#1710)
* - save view as url param

* - fix tests
2023-09-28 11:50:44 +02:00
b2bac0b217 Add a type on CatalogDecorator (#1742)
* Add a type on CatalogDecorator

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Type more catalogs

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
2023-09-28 11:44:55 +02:00
Lucas BordeauandGitHub aa0c61bed9 Removed unused feature flag (#1744) 2023-09-28 11:21:16 +02:00
0be07a8928 Delete Opportunities column + Improving design of BoardColumnEditTitleMenu (#1737)
* Delete Opportunities column + Improving design of BoardColumnEditTitleMenu

Co-authored-by: v1b3m <[email protected]>

* Remove unwanted changes

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
2023-09-28 11:18:18 +02:00
Ronit PandaandGitHub 2dbce935ba test: adds test to check if adding a new company or people works (#1714)
* test: adds test to check if adding a new company or people works

* test: improves people/add and companies/add tests

* style: cleanup

* style: cleanup
2023-09-28 11:17:25 +02:00
cbadcba188 FieldDisplay & FieldInput (#1708)
* Removed view field duplicate types

* wip

* wip 2

* wip 3

* Unified state for fields

* Renaming

* Wip

* Post merge

* Post post merge

* wip

* Delete unused file

* Boolean and Probability

* Finished InlineCell

* Renamed EditableCell to TableCell

* Finished double texts

* Finished MoneyField

* Fixed bug inline cell click outside

* Fixed hotkey scope

* Final fixes

* Phone

* Fix url and number input validation

* Fix

* Fix position

* wip refactor activity editor

* Fixed activity editor

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-27 18:18:02 +02:00
ThaïsandGitHub d9feabbc63 feat: add IconPicker (#1730)
* feat: add IconPicker

Closes #1657

* fix: fix front lint errors

* refactor: rename selectedIconName to selectedIconKey
2023-09-27 17:56:49 +02:00
46ad36061e feat: reorder kanban columns (#1699)
* kaban header options

* gql codegn

* moveColumn hook refactor

* BoardColumnContext addition

* saved board columns state

* db call hook update

* lint fix

* state change first db call second

* handleMoveTableColumn call

* codegen lint fix

* useMoveViewColumns hook

* useBoardColumns db call addition

* boardColumns state change from BoardHeader

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-27 15:59:44 +02:00
Charles Bochet 1e716bf6d6 Fix tests 2023-09-27 15:44:47 +02:00
ee108ccbf2 Add a hover on Show Person Avatar (#1631)
* Display 404 while person or company not found

* Display 404 while person or company not found

* Issue solved

* Icon Size Adjustment, resize the icons used in filter and sort

* Fixed issues

* Icon Size Adjustment, resize the icons used in filter and sort

* Add onClick in Avatar.tsx

* Comments solved

* Solve conflicts

* Update front/src/modules/users/components/Avatar.tsx

* Update front/src/modules/users/components/Avatar.tsx

* Update front/src/modules/users/components/Avatar.tsx

* Update front/src/modules/users/components/Avatar.tsx

* Update front/src/modules/users/components/Avatar.tsx

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-27 15:33:39 +02:00
brendanlaschkeandGitHub 9282885233 Fix cmd menu tests (#1739)
* - fix tests

* -  fixed header

* - lint
- fixed catalog menuitemcommand

* - fix prop destructuring in test

* - combine  single/multiple create and goto commands
2023-09-27 15:19:33 +02:00
Jérémy MandGitHub a4cde44b13 feat: add cooldown to refresh token security (#1736) 2023-09-27 15:03:50 +02:00
Ayush AgrawalandGitHub 96865b0fec Fix: When opening a filter, the focus is not put on the input search / filter input (#1731)
* Fixes #1718

* implemented review changes
2023-09-26 15:01:50 +02:00
8639cb921e Chore: corrects syntax for type only imports (#1716)
* chore: removes replaces 'import type xxx from 'xxx'' with 'import { type xxx} from 'xxx'''

* chore: remove typed imports

* chore: remove typed imports

* chore: cleanup

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-09-26 11:47:35 +02:00
26de4bab35 Chore(server): I should be able to define deal amount's currency (#1724)
I should be able to define deal amount's currency

Co-authored-by: v1b3m <[email protected]>
2023-09-26 11:40:23 +02:00
f60c209e39 Chore(backend): Enable attaching attachments to companies and people (backend) (#1726)
Enable attaching attachments to companies and people (backend)

Co-authored-by: v1b3m <[email protected]>
2023-09-26 11:39:13 +02:00
ba86be2c5b Remove the {...props} pattern and props coupling, and create an eslint rule for that (#1733)
* Remove the {...props} pattern and props coupling, and create an eslint rule for that

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Add another test to the new rule

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2023-09-26 11:05:33 +02:00
Ayush AgrawalandGitHub cd20a437d8 Fix: Command menu keeps the last input (#1723)
Fix/Command menu keeps the last input
2023-09-25 15:40:28 +02:00
fabbe7ddf2 Chore: First table column should not be hideable (#1711)
* First table column should not be hideable

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>
2023-09-25 12:26:41 +02:00
Ronit PandaandGitHub 0ce11b6908 fix: adds cursor pointer to table column header (#1715)
* fix: adds cursro pointer to table column header

* fix: lifts up the onclick handler to header not tag making consistent with other tables
2023-09-25 12:25:03 +02:00
brendanlaschkeandGitHub 0ff535af2d Fix hover on standalone button FloatingIconButtonGroup (#1709)
- fix hover on standalone button FloatingIconButtonGroup
2023-09-25 11:15:14 +02:00
f777fa22e9 Create consistent ui/input and ui/display for Cell and Fields type : … (#1658)
* Create consistent ui/input and ui/display for Cell and Fields type : Probability, DoubleText, DoubleTextChip

Co-authored-by: v1b3m <[email protected]>

* Move components to `ui/input`

Co-authored-by: v1b3m <[email protected]>

* Update imports in ProbabilityEditableFieldEditMode

Co-authored-by: v1b3m <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>

* Create consistent ui/input and ui/display for Cell and Fields type : Probability, DoubleText, DoubleTextChip

Co-authored-by: v1b3m <[email protected]>

* Merge main

Co-authored-by: v1b3m <[email protected]>

* Add more refactors

Co-authored-by: v1b3m <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
2023-09-25 11:10:14 +02:00
ThaïsandGitHub 1c3897848f fix: fix table columns resize glitches on slow network (#1707)
Fixes #1580
2023-09-22 19:45:29 +02:00
brendanlaschkeandGitHub 20267f081a Fix command menu keyboard input & refactor group (#1706)
* - fix command menu keyboard shortcuts
- refactor command groups

* - refactor the MenuItemCommand to use cmdk

* - fixed matching commands multiple displays

* - fixed array count problems react with boolean
2023-09-22 11:44:42 +02:00
Charles BochetandGitHub 8d8c81c02c Add Figma documentation (#1705) 2023-09-21 14:56:28 -07:00
brendanlaschkeandGitHub 54042a7d8f Fix drag to select in dropdowns, context menu and action bar (#1704)
- fix drag to select disable at many locations
2023-09-21 14:22:13 -07:00
Charles Bochet 043fe3a7ab Fix tests 2023-09-21 14:21:00 -07:00
ThaïsandGitHub ab0cdbf960 feat: persist table columns on change (#1697)
* feat: persist table columns on change

Closes #1580

* fix: fix drag-and-select on Table Options dropdown toggle
2023-09-21 13:15:57 -07:00
WeikoandGitHub 189bf4a627 Feature: add createCustomField resolver (#1698)
* Feature: add createCustomField resolver

* update mocks

* fix import

* invalidate workspace datasource cache after migration

* fix typo
2023-09-21 12:59:11 -07:00
a59f5acd5e fix: Update company picker keyboard navigation (#1628)
* fix: scroll

* fix: use ref

* fix: new changes

* fix: remove ref

* fix: state

* chore: clean up

* Include Empty option

* Include Empty option

* Include Empty option

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-21 12:53:07 -07:00
Charles BochetandGitHub 7ce03ffdd1 Refactor tests command menu (#1702)
* Fix tests

* Refactor tests command menu

* Improve tests

* Fix optimistic render breaking tests
2023-09-21 11:53:36 -07:00
Rishi Raj JainandGitHub b5b46f923a fix: Command bar is broken (#1617)
* Update CommandMenu.tsx

* remove broken states

* convert to array

* convert filter conditions

* empty condition

* finally

* update the logic

* add test

* lint

* move file
2023-09-21 11:18:44 -07:00
9ab412116d Fix tasks filters (#1676)
* Fix tasks filters

Co-authored-by: v1b3m <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>

* Simplify condition

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-09-20 23:09:48 -07:00
Charles BochetandGitHub 6dbe388ab9 Improve issue templates (#1686) 2023-09-20 20:17:09 -07:00
Charles BochetandGitHub 2d758c990b Fix merge issue flexible backend (#1685)
* Fix merge issue flexible backend

* Fix tests

* Try fix tests

* Try fix tests
2023-09-20 19:11:21 -07:00
19365f6639 Add metadata migration setup (#1674)
* Add metadata migration setup

* add migration generator

* fix missing 'mocks'

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-20 17:27:07 -07:00
fc820f47b2 Feat/disable flexible backend (#1673)
* wip: refacto and start creating custom resolver

* feat: findMany & findUnique of a custom entity

* feat: wip pagination

* feat: initial metadata migration

* feat: universal findAll with pagination

* fix: clean small stuff in pagination

* fix: test

* fix: miss file

* feat: rename custom into universal

* feat: enable/disable flexible backend from env

---------

Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-09-20 17:25:45 -07:00
b1171e22a3 feat: add findAll and findUnique resolver for universal objects (#1576)
* wip: refacto and start creating custom resolver

* feat: findMany & findUnique of a custom entity

* feat: wip pagination

* feat: initial metadata migration

* feat: universal findAll with pagination

* fix: clean small stuff in pagination

* fix: test

* fix: miss file

* feat: rename custom into universal

* feat: create metadata schema in default database

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-20 17:24:13 -07:00
dafe08ef78 fix: dark mode for MainButton (#1681)
* fix: dark mode for MainButton

* Fix colors

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-20 17:22:13 -07:00
Charles Bochet 07f589d521 Fix bug optimistic rendering 2023-09-20 16:53:46 -07:00
Charles BochetandGitHub 708391460c Fix optimistic effects to work with fragments (#1683)
* Fix optimistic effects to work with fragments

* Regenerate
2023-09-20 16:13:54 -07:00
ThaïsandGitHub 772d54d29f feat: add DropdownMenuInput and use as view name input in board (#1680)
Closes #1510
2023-09-20 12:53:35 -07:00
78b666f457 Fix front end (#1678)
* Fix front

Co-authored-by: v1b3m <[email protected]>

* Fix according to PR

* Fix tests

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-09-20 12:46:40 -07:00
ThaïsandGitHub a20ca95f32 feat: reset Recoil state on logout (#1675)
Closes #1452
2023-09-20 15:26:11 +02:00
neo773andGitHub d8590bb358 Add 'Esc' hotkey behavior on Filter and Sorts dropdown (#1622)
* fix esc key

* add changes

* add changes

* add changes
2023-09-20 11:40:49 +02:00
103fb701e7 Chore: Use Fragments as types (#1670)
* Use Fragments as types

Co-authored-by: v1b3m <[email protected]>

* Use Fragments as types in GraphQL queries and mutations

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
2023-09-20 10:58:59 +02:00
3f600146b1 fix: fix some views dropdown design issues (#1648)
* fix: fix some views dropdown design issues

Closes #1610, Closes #1601

* Handle max-width on view picker

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-19 20:01:01 -07:00
Charles BochetandGitHub 3bde7bc252 Fast follow on draggable column re-order (#1667) 2023-09-19 18:55:01 -07:00
Charles BochetandGitHub acee401371 Speed up CI (#1666) 2023-09-19 17:09:01 -07:00
Charles Bochet b0973afc64 Fix deploy CI 2023-09-19 16:57:22 -07:00
Charles BochetandGitHub 8c21dc8bba Refactor fast follow on column move feature (#1665)
* Refactor fast follow on column move feature

* Fix lint
2023-09-19 16:42:11 -07:00
cb05b1fbc9 feat: reorder columns from table options (#1636)
* draggable prop addition

* draggable component addition

* state modification

* drag select state addition

* changed state name

* main merged

* lint fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-19 15:31:21 -07:00
321488ad3c feat: Column title menus (#1616)
* view field index to float

* gql codegen and package.json

* list implementation

* db call

* reposition logic

* lint fix

* edge case fix

* review changes

* handleColumnMove refactor

* dropdown recoil scope

* rename props

* Update server/src/database/migrations/20230727124244_add_view_fields_table/migration.sql

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-19 15:27:02 -07:00
Charles Bochet fc139f89ab Fix CI tests 2023-09-19 15:19:33 -07:00
Charles BochetandGitHub 772711154d Fix bug company update (#1664) 2023-09-19 14:59:08 -07:00
WeikoandGitHub ec90c77ec1 Refactor tenant ORM integration (#1650)
* Refactor tenant ORM integration

* fix tests
2023-09-19 17:58:28 +02:00
Ritesh-PurwarandGitHub 07684c4f08 change tabler-icons (#1649) 2023-09-19 16:19:44 +02:00
Rajesh Kumar PadhyandGitHub ff4a2074e6 Update local-setup.mdx: Fix typo (#1646) 2023-09-19 11:51:47 +02:00
Charles Bochet b5ccec4d58 Fix lint CI 2023-09-18 19:31:15 -07:00
d8930f7079 Write Storybook test for @/ui/navbar (#1632)
Co-authored-by: v1b3m <[email protected]>
2023-09-18 19:28:53 -07:00
Charles BochetandGitHub 645f2b42c2 Boost CI (#1643)
* Boost CI

* Split CI tests in 2

* Try caching node modules

* Try caching node modules

* Try caching node modules

* Improve CI

* Improve CI

* Improve CI

* Improve CI

* Improve CI

* Improve CI

* Separate jest tests

* Fix typo

* Re-order tests jobs
2023-09-18 19:07:38 -07:00
3c4ab605db Fix eslint-plugin-twenty (#1640)
* Fixed color rule

* Fixed naming

* Fix effect component rule

* Deactivated broken rules

* Fixed lint

* Complete eslint-plugin-twenty work

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-18 16:38:57 -07:00
Charles Bochet 2adabb3ba2 Fix tests 2023-09-17 08:59:42 -07:00
Charles Bochet dba6f93826 Fix tests server 2023-09-17 08:41:46 -07:00
Charles Bochet 7fa80c5f71 Fix eslint setup 2023-09-17 08:28:05 -07:00
Anik Dhabal BabuandGitHub 84eaa45027 fix: Migrate all rules from eslint-plugin-twenty to eslint-plugin-twenty-ts (#1618)
* migrate rules

* fix

* final

* final
2023-09-17 08:13:05 -07:00
ChigalaandGitHub aaa63b3820 feat: added a dropDownCloseEffect component (#1621)
* feat: added a dropDownCloseEffect component

* Delete yarn.lock

* refactor: moved the DropdownCloseEffect inside the Dropdown button as a hook

* refactor: moved the DropdownCloseEffect to the DropdownButton jsx
2023-09-17 08:09:05 -07:00
Charles Bochet fa7282ab4c Fix chromatic CI trigger on run-chromatic label 2023-09-16 22:29:34 -07:00
Charles BochetandGitHub c82c5a191e Introduce useOptimisticEvict (#1629) 2023-09-16 22:23:43 -07:00
Charles Bochet 9be674e440 Fix CI 2023-09-16 19:28:04 -07:00
Charles BochetandGitHub 43a5535739 Refactor NavCollapse button (#1625) 2023-09-16 19:20:17 -07:00
Charles Bochet 82ac84ee7c Update CI scripts 2023-09-16 16:33:23 -07:00
brendanlaschkeandGitHub efc45f8663 Add company relation for person table (#1612)
* - add company relation for person table

* - also for context menu

* - fix yarn.lock

* - fix newline missing

* - fixed tab

* fix
2023-09-16 12:05:55 -07:00
brendanlaschkeandGitHub a26c8d660d Fix teleporting board cards on drag drop (#1613)
- fix teleporting board cards on drag drop
2023-09-16 12:03:46 -07:00
00a3c8ca2b Change to using arrow functions (#1603)
* Change to using arrow functions

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Add lint rule

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-09-15 18:41:10 -07:00
549335054a Chore: Duplicate certain user fields to workspaceMember (#1514)
* Move certain user fields to workspaceMember

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Merge main

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Update the generated GraphQL

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Update hooks

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Rework typing

* Fix tests

* Remove console logs

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-09-15 17:32:58 -07:00
0a7a0ac6cb Refactor/context and scopes (#1602)
* Put onImport in a context

* Refactored RecoilScopeContexts

* Refactored naming

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-15 12:51:46 -07:00
Zoltán VölcseyandGitHub d07474ece7 fix: Removed margin-top on Member page (#1609) 2023-09-15 11:27:52 -07:00
Charles Bochet 7949cff5df Try fix CI with pull_request trigger 2023-09-15 11:25:42 -07:00
55ead78fbf Fix: Bug with auto scroll (#1599)
Co-authored-by: v1b3m <[email protected]>
2023-09-15 17:52:43 +02:00
brendanlaschkeandGitHub 85a6d0aa12 Refactor action bar entries and context menu entries (#1608)
- refactored actionbar entries / context menu entries
2023-09-15 17:51:02 +02:00
ThaïsandGitHub 955deaf878 feat: improve table options dropdown view name input (#1604)
- Always show view name input in dropdown
- Edit current view name by default
- Add focus style
- Reset view edit mode on dropdown close

Closes #1540
2023-09-15 17:26:00 +02:00
Zoltán VölcseyandGitHub d5e40e5fc8 feat: Added closeDropdownButton to the handleCompanySelected (#1605) 2023-09-15 17:22:52 +02:00
brendanlaschkeandGitHub 1be6ab2878 Reorder options menu board (#1606)
- reorder menu
2023-09-15 17:22:07 +02:00
Lucas BordeauandGitHub b69f8f4fed Fix github issue template (#1596) 2023-09-15 17:21:16 +02:00
Charles BochetandGitHub 9e1db476f1 fix menu-item floating buttons that should only be displayed on hover (#1588)
fix menu-item floating buttons that should only be dis
played on hover
2023-09-14 18:41:01 -07:00
84a27b148f Feat/sidecar components (#1578)
* Added a new eslint plugin in TypeScript for Effect components

* Fixed edge cases

* Fixed lint

* Fix eslint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-14 17:04:45 -07:00
Charles BochetandGitHub 09db29c91a Introduce 'Add new feature' issue template 2023-09-14 15:45:07 -07:00
70c0fd4e0d Removed last old DropdownButton (#1573)
* Removed last old DropdownButton

* Update front/src/modules/ui/view-bar/components/SingleEntityFilterDropdownButton.tsx

Co-authored-by: Thaïs <[email protected]>

* Fix CI

---------

Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Thaïs <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-09-14 15:33:45 -07:00
ThaïsandGitHub 2461a387ce feat: persist board card fields (#1566)
Closes #1538
2023-09-14 15:06:15 -07:00
WeikoandGitHub 6462505a86 Fix CI: remove import for metadata POC (#1577)
Fix CI: remote import for metadata POC
2023-09-14 12:03:20 -07:00
WeikoandGitHub d98ddc3dbe multi tenant schemas poc (#1569)
* Multi-tenant db schemas POC

* fix tests and use query builders

* remove synchronize

* restore updatedAt

* remove unnecessary import

* use queryRunner

* fix camelcase

* add migrations for standard objects

* Multi-tenant db schemas POC

* fix tests and use query builders

* remove synchronize

* restore updatedAt

* remove unnecessary import

* use queryRunner

* fix camelcase

* add migrations for standard objects

* add metadata

* add comments

* remove migrations for now

* do not allow connection to public schema for non-remote workspace connection

* rename getLastDataSourceMetadataFromWorkspaceIdOrFail

* remove schema creation

* remove module import
2023-09-14 14:39:37 +02:00
sweep-ai[bot]GitHubsweep-ai[bot] <128439645+sweep-ai[bot]@users.noreply.github.com>
e96f2ece7c [config] Create sweep.yaml file (#1572)
* Create sweep.yaml with gha_enabled set to False

* Updated infra/dev/Makefile

---------

Co-authored-by: sweep-ai[bot] <128439645+sweep-ai[bot]@users.noreply.github.com>
2023-09-14 11:07:36 +02:00
Charles Bochet 8a27fd6ca5 Fix bug opportunity new button company search 2023-09-13 21:41:48 -07:00
Charles Bochet ea7eeb2872 Try moving from to pull_request_target to pull_request 2023-09-13 20:33:17 -07:00
Charles Bochet bdb6886818 Fix bug Opportunities add Plus button z-index 2023-09-13 19:33:10 -07:00
Charles Bochet 18fb66202a Fix column stage creation removed 2023-09-13 19:27:21 -07:00
Charles Bochet f4c1acbca1 Fix a few bugs before deploy 2023-09-13 19:16:16 -07:00
Lucas BordeauandGitHub 8627416d60 Refator/sorts dropdown (#1568)
* WIP

* Fixed lint

* Ok for sorts

* Fixed on dropdown toggle

* Fix lint
2023-09-13 16:38:11 -07:00
Aditya PimpalkarandGitHub a392a81994 fix: hover behaviour on table cells (#1557)
* edit button focus fix

* cell feedback fix

* using theme prop

* isHovered prop drill

* edit button component

* refactor editable cell

* import fix

* index fix (merge issue)
2023-09-13 16:31:59 -07:00
Charles Bochet 6cc28b8e14 Fix merge conflict 2023-09-13 16:21:34 -07:00
PranavandGitHub 7eef6e64a5 Change design for icons in 'MainNavbar' and 'Pageheader' (#1560)
* adjusted MainNavbar icons size from 'md' to 'sm'

* reduced CollapseButton size from 32px to 24px

* Added margin-left of 4px to the left chevron icon

* removed 8px padding

* updated the stroke for the NavItem
2023-09-13 14:20:25 +02:00
ThaïsandGitHub 28e12d492c feat: toggle board field visibilities (#1547)
Closes #1537, Closes #1539
2023-09-13 11:58:52 +02:00
Charles BochetandGitHub 67f1da038d Refactor dropdown (#1561) 2023-09-13 10:30:33 +02:00
brendanlaschkeandGitHub 84b474c3cc Number display formatting (#1556)
* number display formatting

* - add tests
2023-09-13 10:12:25 +02:00
7e6c9141f4 Remove unwanted file (#1559)
Co-authored-by: v1b3m <[email protected]>
2023-09-12 23:46:11 -07:00
cd946019f1 Add a notification for "tasks" in the navigation (#1489)
* Add a notification for "tasks" in the navigation

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Add a notification for "tasks" in the navigation

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Fix icon import in TaskNavMenuItem

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Use object destructuring

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Refactor according to review

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Rename dueTasks to dueTaskCount

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>

* Complete Task notification display

* Fix lint

* Fix tests

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: chiazokam <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-09-12 18:16:51 -07:00
Zoltán VölcseyandGitHub 92ef931d4d fix: Removed autoFocus attribute (#1558) 2023-09-12 15:06:27 -07:00
Aditya PimpalkarandGitHub cdd7890bef fix: Icon size stroke in MenuItem (#1545)
* icon size change

* stroke prop

* lint fix

* lint refix

* wrong repo change
2023-09-12 12:54:01 -07:00
Charles Bochet e23b8ecca1 Fix bug with FilterDropdown on Tasks page 2023-09-12 12:26:47 -07:00
Lucas BordeauandGitHub 9b5e24105b Refactor/display input part 2 (#1555)
* Email - Money - Number

* Date
2023-09-12 11:04:26 -07:00
Zoltán VölcseyandGitHub 9b495ae2e8 fix: Removed autofocus (#1551) 2023-09-12 14:49:29 +02:00
564a7c97b1 refactor: improve SingleEntitySelect empty option (#1543)
Closes #1331

Co-authored-by: Charles Bochet <[email protected]>
2023-09-11 17:27:17 -07:00
a766c60aa5 Reafactor/UI input and displays (#1544)
* WIP

* Text field

* URL

* Finished PhoneInput

* Refactored input sub-folders

* Boolean

* Fix lint

* Fix lint

* Fix useOutsideClick

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-11 17:11:20 -07:00
Charles Bochet 509ffddc57 Hotfix abusive throw 2023-09-11 15:23:32 -07:00
Charles BochetandGitHub 7621854d4b Complete Sentry integration (#1546) 2023-09-11 15:07:30 -07:00
brendanlaschkeandGitHub 35bcef5090 Add Sentry for Backend (#1403)
* - added sentry

* - renamed env var

* - logger driver

* - add breadcrumb and category

* - fix driver
2023-09-11 12:22:30 -07:00
ThaïsandGitHub 110d5eaa9d feat: only show Update View button if view can be persisted (#1533)
Closes #1499
2023-09-11 12:03:01 +02:00
9be069bedc Fixed bug for refectch activities and create activity on the currently filtered user. (#1493)
* Fixed bug for refectch activities and create activity on the currently filtered user.

* Refactor optimistif effect

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-10 23:02:51 -07:00
Charles Bochet 08727aafe5 Fix tests 2023-09-10 20:16:04 -07:00
Charles Bochet e69d4bde52 Fix opportunity views 2023-09-10 19:54:53 -07:00
88c6d0da2a feat: add Opportunities Views dropdown (#1503)
* feat: add Opportunities Views dropdown

Closes #1454

* feat: persist Opportunities view filters and sorts

Closes #1456

* feat: create/edit/delete Opportunities views

Closes #1455, Closes #1457

* fix: add missing Opportunities view mock

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-10 19:07:14 -07:00
8ea4e6a51c feat: reset table column resizing on ViewBar Cancel button click (#1520)
* feat: reset table column resizing on ViewBar Cancel button click

Closes #1500

* Fix according to PR

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-10 18:51:24 -07:00
Charles BochetandGitHub c808eeca79 Complete useFilteredSearchQuery refactoring (#1531)
Complete useFilteredSearchQuery ref
actoring
2023-09-10 17:07:05 -07:00
bcbf303364 Refactor useFilteredSearchEntityQuery to accept multiple filters (#1526)
* refactoring useFilteredSearchEntityQuery

* refactor with filter addition

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-10 16:12:16 -07:00
Aditya PimpalkarandGitHub b6eb280639 fix: POC assigning in opportunities (#1443)
* fix: opportunities-poc-select

* gql codegen

* code review changes
2023-09-10 16:08:44 -07:00
Charles BochetandGitHub 2e798ef2ee Fix hotkey scope on task assignee (#1530) 2023-09-10 16:06:15 -07:00
494308b379 Fix design of 'sort' and 'filter' in 'People' and 'Companies' page (#1519)
* Display 404 while person or company not found

* Display 404 while person or company not found

* Issue solved

* Icon Size Adjustment, resize the icons used in filter and sort

* Fixed issues

* Icon Size Adjustment, resize the icons used in filter and sort

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-09-10 13:23:00 -07:00
Charles BochetandGitHub b0ae670ec4 Rework tab and tab list padding and gaps to match designs (#1529) 2023-09-10 12:55:25 -07:00
Zoltán VölcseyandGitHub 677e444d8e fix: Fixed the design of 'Tab List' (#1517)
* fix: Fixed the design of 'Tab List'

* fix: Fixed design of 'Tab list'
2023-09-10 11:52:10 -07:00
brendanlaschkeandGitHub c3f5566fde Fix select disable not working for svg (#1523)
- fixed svg elements not preventing start if selectDisable is set on parent
2023-09-10 11:41:51 -07:00
fb737e2021 Refactor icons passed as props with the new way (#1492)
* Refactor icons passed as props with the new way

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Update more files

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Fix according to review

* Fix according to review

* Fix according to review

* Fix chromatic regressions

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-09-10 11:39:17 -07:00
Charles BochetandGitHub 89fed80537 fix case HotkeyScope to hotkeyScope (#1528) 2023-09-09 18:22:53 -07:00
Charles BochetandGitHub cfbeac9c56 Enable port to be overridden (#1527)
Enable port to be overriden
2023-09-09 17:59:56 -07:00
ThaïsandGitHub 86ff522e74 refactor: improve IconButtonGroup and FloatingIconButtonGroup (#1518)
Closes #1411
2023-09-08 17:16:27 +02:00
ThaïsandGitHub df17da80fc refactor: add ViewBar and move view components to ui/view-bar (#1495)
Closes #1494
2023-09-08 11:57:16 +02:00
ThaïsandGitHub ccb57c91a3 refactor: move view recoil states to ui/view-bar folder (#1482)
* refactor: move view recoil states to ui/view-bar folder

Closes #1481

* refactor: rename some view related Recoil states and selectors
2023-09-08 11:26:15 +02:00
Andrea GiaconandGitHub 47151525ce chore: bump Twenty version to 0.1.3 in front/package.json (#1478)
chore: Update package version in package.json

An increment in version number was made in the application's package.json file, from 0.1.2 to 0.1.3. This update was necessary as part of the new release preparation encompassing changes made in the codebase since the last version.
2023-09-07 22:45:51 +02:00
0e6bd5c098 fix the tests (#1491)
* fix the tests

Co-authored-by: v1b3m <[email protected]>

* Update front/src/testing/graphqlMocks.ts

Co-authored-by: Thaïs <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thaïs <[email protected]>
2023-09-07 22:41:19 +02:00
Charles BochetandGitHub 2eb1ea5462 Fix front plugin not initialize with user email, first name and last name (#1506)
Fix front plugin not working
2023-09-07 22:40:09 +02:00
Lucas BordeauandGitHub 392c8052b2 Fixed Table view dropdown (#1497) 2023-09-07 22:39:53 +02:00
brendanlaschkeandGitHub 4348bc8e22 Add relation for Company on people show page note creation (#1418)
* - added additional entity(company) for people

* - moved getRelationData to util function

* - remove recursion

* typo
2023-09-07 22:38:01 +02:00
Mustajab IkramandGitHub bd2e4307d2 Refactor/modal component tests 1332 (#1392)
* feat: Add separate constants in theme for modal sizes and paddings

* feat: Implement dynamic sizing and padding for Modal

* feat: use dynamic modal feature for csv import

* fix: Remove redundant props from spreadsheet-import

* fix: use theme.spacing() instead

* fix: place types to Modal.tsx, convert ternary to switch-case, give default value

* fix: give px to modal sizes

* enhance: add color style to modal

* feat: add modal to storybook
2023-09-07 22:34:32 +02:00
PepeandGitHub a902b7c6fe Display a 404 on people/:id and company/:id when id does not exist (#1468)
* Display 404 while person or company not found

* Display 404 while person or company not found

* Issue solved
2023-09-06 16:46:40 +02:00
d6b89359f5 refactor: rename ui/filter-n-sort to ui/view-bar (#1475)
Closes #1473

Co-authored-by: Lucas Bordeau <[email protected]>
2023-09-06 16:46:02 +02:00
Lucas BordeauandGitHub 28ca9a9e49 Refactor/new menu item (#1448)
* wip

* finished

* Added disabled

* Fixed disabled

* Finished cleaning

* Minor fixes from merge

* Added docs

* Added PascalCase

* Fix from review

* Fixes from merge

* Fix lint

* Fixed storybook tests
2023-09-06 16:41:26 +02:00
ThaïsandGitHub 5c7660f588 feat: create default opportunities view on workspace creation + add seed data (#1461)
Closes #1314
2023-09-06 12:05:33 +02:00
Jérémy MandGitHub 08b56ec7e2 fix: can't set ARR of company to empty (#1474) 2023-09-06 11:22:42 +02:00
Charles BochetandGitHub 91e146ed3e Fix Profile picture uploader (#1471) 2023-09-06 11:03:25 +02:00
Jérémy MandGitHub cbcb49cd1e fix: allow null value for number and date (#1472) 2023-09-06 11:03:12 +02:00
Charles BochetandGitHub f332c3bee2 Fix View update button not being displayed in View Bar (#1469) 2023-09-06 10:37:29 +02:00
Jérémy MandGitHub c05d24d249 fix: table view dropdown should have a minimum width (#1467) 2023-09-06 10:37:02 +02:00
Jérémy MandGitHub 85c8139c05 fix: double text chip show null value (#1460) 2023-09-05 17:55:29 +02:00
Jérémy MandGitHub aad4f99f52 fix: view dropdown incorrect button position and floating icon button doesn't match design (#1458)
* fix: view dropdown incorrect button position

* fix: className instead of style drill down

* fix: view drop down width
2023-09-05 17:45:05 +02:00
Jérémy MandGitHub 21e3f6ecb2 fix: drop down menu should be of 160px size (#1459)
* fix: drop down menu should be of 160px size

* fix: typing

* fix: remove debug
2023-09-05 17:38:07 +02:00
ThaïsandGitHub b3887c6bcc fix: use correct table view when switching workspaces (#1447)
Closes #1441
2023-09-05 12:40:45 +02:00
Charles Bochet 53f3c1691d Fix recoil lint rule 2023-09-05 10:50:58 +02:00
878302dd31 [ESLint rule]: recoil value and setter should be named after their at… (#1402)
* Override unwanted changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>

* Fix the tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Toledodev <[email protected]>
Co-authored-by: Rafael Toledo <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-09-05 10:34:11 +02:00
Jérémy MandGitHub 0ec4b78aee feat: add recoil debug observer (#1446)
* feat: add recoil debug observer

* fix: convention
2023-09-05 10:00:19 +02:00
MatthewandGitHub 7bced2b49b Unselect table rows using esc key or click outside (#1420)
* unselect table rows by esc or clickoutside of tablebody

* exclude action-bar

* exclude context-menu

* added enums, handled touch listener
2023-09-05 09:56:07 +02:00
Jérémy MandGitHub 732b5a5ddf fix: avatar disappear when editing a person (#1440) 2023-09-05 09:52:06 +02:00
ThaïsandGitHub d866c0e3bc fix: fix table columns update (#1435)
Closes #1434
2023-09-05 09:50:53 +02:00
Jérémy MandGitHub 421066c4b8 fix: Boolean editable field not align properly (#1444) 2023-09-05 09:50:23 +02:00
Jérémy MandGitHub 33c67214d6 fix: tasks "Done" not visible (#1445) 2023-09-05 09:46:14 +02:00
Charles BochetandGitHub d04c661ffd Fix buttons and z-index (#1438)
* Fix buttons

* Remove useless code
2023-09-04 17:52:03 +02:00
Jérémy MandGitHub 2eac5df05b fix: big view name is not handled (#1439)
* fix: big view name is not handled

* fix: smaller max size
2023-09-04 17:47:32 +02:00
Jérémy MandGitHub 6cf46cfdf5 fix: just change the order to match design (#1410)
* fix: just change the order to match design

* fix: view field definition change
2023-09-04 17:46:24 +02:00
Jérémy MandGitHub 4889a69751 fix: DatePicker cut in DropDownMenu (#1437)
* fix: DatePicker cut in DropDownMenu

* fix: better solution
2023-09-04 17:42:46 +02:00
ThaïsandGitHub a1e6e46388 fix: allow access to the Update View button when a table column can be persisted (#1433)
Closes #1432
2023-09-04 17:08:04 +02:00
Jérémy MandGitHub 85156ce9ae fix: allow zero value on number field (#1436)
* fix: allow zero value on number field

* fix: test
2023-09-04 17:03:31 +02:00
ThaïsandGitHub 8e22ffd021 fix: fix dropdown buttons z-index (#1431)
Closes #1430, Closes #1422
2023-09-04 16:51:12 +02:00
ThaïsandGitHub 96a0f30e98 feat: delete pipeline stage (#1412)
* feat: delete pipeline stage

Closes #1396

* refactor: code review

- Use string literal instead of enum

* docs: disable CircularProgressBar Chromatic snapshots
2023-09-04 16:39:01 +02:00
Ragnar LaudandGitHub 1a71f61d24 Fix column not being saved properly (#1429)
* Fix email column not being saved

* Fix URL fields not being clearable

* Fix phone number clearing
2023-09-04 15:42:10 +02:00
Jérémy MandGitHub 3a0f02f2f2 feat: table virtualization (#1408)
* feat: poc table virtualization

* feat: table virtualization

* feat: add overscan of 15

* fix: increase overscan to 50

* fix: dead code

* fix: debug mode

* feat: styled space
2023-09-04 13:33:02 +02:00
9a35b1fa44 In Activities (Tasks / Notes) right drawer, while editing the body and displaying the styling bar, the bar should styling not be larger than the right drawer (#1414)
Co-authored-by: KlingerMatheus <[email protected]>
2023-09-04 11:54:08 +02:00
Jérémy MandGitHub c0cb3a47f3 Fix/csv import (#1397)
* feat: add ability to enable or disable header selection

* feat: limit to max of 200 records for now

* fix: bigger modal

* feat: add missing standard fields for company

* fix: person fields

* feat: add hotkeys on dialog

* feat: mobile device

* fix: company import error

* fix: csv import crash

* fix: use scoped hotkey
2023-09-04 11:50:12 +02:00
ThaïsandGitHub f29d843db9 feat: add board options dropdown and pipeline stage creation (#1399)
* feat: add board options dropdown and pipeline stage creation

Closes #1395

* refactor: code review

- remove useCallback
2023-09-04 11:37:31 +02:00
Lucas BordeauandGitHub 2ac32e42c5 Added enums use case (#1428) 2023-09-04 11:35:27 +02:00
c998c039ec Fix URL validation on long/internationalized URLs (#1423)
* Add URL validation tests

Add test for longer TLDs
Add test for internationalized TLDs

* Fix URL validation with long TLDs

* TLD max size match RFC 1034

---------

Co-authored-by: Jérémy M <[email protected]>
2023-09-04 11:30:43 +02:00
Charles BochetandGitHub a46210bb80 Implement Optimistic Effects (#1415)
* Fix person deletion not reflected on Opportunities POC

* Fix companies, user deletion

* Implement optimistic effects

* Implement optimistic effects

* Implement optimistic effects

* Fix accoding to PR
2023-09-04 10:56:48 +02:00
ThaïsandGitHub ae072b6ce5 refactor: index ViewField by viewId and key (#1416)
* refactor: index ViewField by viewId and key

Closes #1413

* refactor: rename ViewField properties
2023-09-04 10:55:03 +02:00
MatthewandGitHub c3c5cb4d1f unselect all cards using esc key or click (#1393)
* unselect all cards using esc key or click

* useScopedHotKeys

* useListenClickByClassName

* rules are rules

* smoothing out || cursor-boxing-selection compliant

* replenished activeCardIds

* setRecoilState
2023-09-01 18:00:21 +02:00
f0674767c1 chore: Show my completed tasks without date categories (#1375)
* Show my completed tasks without date categories

Co-authored-by: Thiago Nascimbeni <[email protected]>

* Refactor the code

Co-authored-by: Thiago Nascimbeni <[email protected]>

---------

Co-authored-by: Thiago Nascimbeni <[email protected]>
2023-09-01 14:50:11 +02:00
MatthewandGitHub aa47579289 Robust Photo Uploader, handling unsupported file types, upload error, apollo uploader (#1400)
* added uploaded controller, handled unsupported image formatting and error uploading styling

* remove callbacks
2023-09-01 13:41:07 +02:00
ThaïsandGitHub 5653b89114 fix: fix filter and sort position on board horizontal scroll (#1386)
Closes #1354
2023-09-01 11:54:34 +02:00
Lucas BordeauandGitHub 240edda25c New MenuItem components (#1389)
* wip

* Finished

* Fix from review

* Fix lint

* Fixed toggle
2023-09-01 11:35:19 +02:00
ThaïsandGitHub 2538ad1c6b fix: improve full name editable fields in Person Show page (#1390)
* fix: improve full name editable fields in Person Show page

+ autoresize inputs according to their content
+ use "Empty" as placeholder
+ improve hover style

Closes #910

* refactor: code review

- rename TemplateDimensionsEffect to ComputeNodeDimensionsEffect
2023-09-01 11:25:19 +02:00
Charles BochetandGitHub 2d5cb9c750 Fix person deletion not reflected on Opportunities POC (#1387)
* Fix person deletion not reflected on Opportunities POC

* Fix companies, user deletion
2023-08-31 15:06:17 +02:00
MatthewandGitHub ec23ca3d12 update metadata + add social card (#1391)
* update metadata + add social card

* proper import statements

* Convert to github raw link

* only public-facing index.html
2023-08-31 15:05:33 +02:00
ThaïsandGitHub 6eadd1d132 refactor: create/update/delete one view instead of many (#1384)
Closes #1359
2023-08-30 15:35:18 +02:00
brendanlaschkeandGitHub fa33506b96 New page structure (#1377)
* - new page structure

* - removed unecessary task changes

* - handleClick -> onClick
2023-08-30 15:10:16 +02:00
brendanlaschkeandGitHub 85155a634f Fix view edit button (#1381)
- fix view edit button as described
2023-08-30 15:08:27 +02:00
Lucas BordeauandGitHub e4dd2b0633 Doc fixes (#1385) 2023-08-30 14:28:34 +02:00
ThaïsandGitHub 4aae22ab34 feat: allow adding available pre-defined table columns to views (#1371)
* feat: allow adding available pre-defined table columns to views

Closes #1360

* fix: allow creating views with the same name for the same table

* refactor: code review

- rename things
- move handleColumnVisibilityChange to useTableColumns hook
2023-08-30 11:33:21 +02:00
Charles Bochet 9df4b475d8 Fix new company creation issue on opportunities 2023-08-29 19:04:58 +02:00
Charles Bochet ccac7ec07b Fix bug tag colors 2023-08-29 18:23:24 +02:00
Charles BochetandGitHub b755b6009d Remove unused logic on board column menu tags (#1373) 2023-08-29 17:51:46 +02:00
96c41563cf chore: Make a twenty Eslint Rule to make sure that icons are imported from @/ui/icons (#1370)
Fix the imports

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>
2023-08-29 13:40:17 +02:00
f8df8b55d8 fix: Vertical scroll bar graphic artifacts in dark mode (#1369)
Fix scroll

Co-authored-by: Toledodev <[email protected]>
2023-08-29 13:37:26 +02:00
Charles BochetandGitHub 037d071896 Fix: Wrong type in env variables front support (#1368) 2023-08-29 11:35:45 +02:00
ddcfe5f0ac chore(docs): Update the best practices page (#1303)
* chore(docs): Update the best practices page

Co-authored-by: v1b3m <[email protected]>

* Add minor refactors

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
2023-08-29 10:34:51 +02:00
ThaïsandGitHub 2b3e96b9ea fix: do not allow removal of last table view (#1366)
Closes #1358
2023-08-29 10:03:56 +02:00
Mustajab IkramandGitHub 8bb4071f09 feat: add page titles using React Helmet (#1321)
* feat: add page titles using React Helmet

* refactor: extract page title logic to separate component

* fix: resolve review comments

* fix: resolve testing errors
2023-08-28 18:49:04 +02:00
ThaïsandGitHub 74919eff7a refactor: add ColumnDefinition type (#1357)
* refactor: add ColumnDefinition type

Closes #1193

* refactor: code review - rename things

* fix: fix wrong import and lint
2023-08-28 18:33:03 +02:00
brendanlaschkeandGitHub 0d7b869274 Create opportunity from board column menu (#1323)
- create opportunity from column menu
2023-08-28 18:23:28 +02:00
brendanlaschkeandGitHub 6e201ba3a6 Fix fontSize DropdownMenu input overwritten (#1364)
- fix fontSize DropdownMenu input
2023-08-28 16:14:11 +02:00
corentin 27bb3a8126 switch back editable field hover from lighter to light 2023-08-28 12:03:07 +02:00
WeikoandGitHub ab9d7ddf7e Fix tasks page (#1325)
* Fix tasks page

* remove console log

* use to-do instead
2023-08-28 11:57:00 +02:00
Charles BochetandGitHub 1b187350c0 Refactor buttons (#1257)
* Refactor buttons

* Complete components creation

* Complete refactoring

* fix lint

* Complete button work
2023-08-26 23:59:45 +02:00
brendanlaschkeandGitHub 5d50bbd6a3 Fix dragToSelect Board (#1319)
- fix dragToSelect
2023-08-26 03:29:44 +02:00
brendanlaschkeandGitHub 802bd5db5d Fix create task from Add Button (#1318)
- fix create task
2023-08-26 03:27:49 +02:00
brendanlaschkeandGitHub 7e264565ef Show Entity task/note tabs (#1282)
* - show task tab
- tab bar

* - add notes tab

* - fixed unused style

* - add button
- fixed company edit note test

* - fixed merge & dropdown

* - added Tests
- refactored directory structure activities
- moved Task/Note Pages to corresponding modules
- fixed TabList

* lint
2023-08-25 22:44:13 +02:00
Charles Bochet f8e3dd3f6b Fix tests 2023-08-25 22:12:41 +02:00
Charles Bochet f5594626ff Fix lint 2023-08-25 21:34:27 +02:00
36cbafe4cc Unset companies and owners (#1185)
* unselect users and companies

* Icon now works with theme

---------

Co-authored-by: vboxuser <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-08-25 21:28:17 +02:00
WeikoandGitHub 0e5dcd7037 Fix confirmation modal style (#1310) 2023-08-25 21:26:27 +02:00
c3d4767ac4 Feat: On Company Show, I can create a person and add it to the company (#1256)
* On Company Show, I can create a person and add it to the company

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Add minor refactors

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2023-08-25 21:21:57 +02:00
ABHISHEK PATELandGitHub 9027a7dd1e Fix: Manually delete company cache #1214 (#1315)
* Fix: Manually delete company cache #1214

* Fix: Prettier error
2023-08-25 21:20:26 +02:00
ThaïsandGitHub 209e8b64d9 feat: create default views on workspace creation + add views seed (#1313)
Closes #1311
2023-08-25 21:17:28 +02:00
WeikoandGitHub 8a3a176571 Add idealCustomerProfile to company show page (#1312)
* Add idealCustomerProfile to company show page

* remove editMode

* add xUrl
2023-08-25 21:11:43 +02:00
Charles BochetandGitHub 67cf6cd7e2 Rework tel input (#1316)
* Rework tel input

* Fix lint
2023-08-25 20:54:00 +02:00
4f7e1fb60e Feat/phone email link enhancements (#1172)
* feat: Add type guards for ViewField email values and definitions, update ViewFieldTypes & peopleViewFields

* feat: use ContactLink for EditablePhoneCell & create EditableEmailCell & EmailInputDisplay comp

* fix: set second value for field

* enhance: add edit btn for phone cell

* feat: install dependencies intl-tel-input

* feat: add phone cell input & connect intl-tel-input

* fix: resolve rebase errors

* fix: remove placeholder

* feat(storybook): create stories for EmailInputDisplay, PhoneInputDisplay, and PhoneEditableField components

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-08-25 18:42:22 +02:00
ThaïsandGitHub 432fea0ee3 feat: create view from current table columns + persist view fields on… (#1308)
feat: create view from current table columns + persist view fields on Update View button click

Closes #1302, Closes #1307
2023-08-25 18:21:27 +02:00
WeikoandGitHub f520a00909 Remove danger text from completed passed tasks (#1309) 2023-08-25 18:05:35 +02:00
Charles Bochet 9d129b1ef8 Hotfix hide collapse button 2023-08-25 14:25:00 +02:00
WeikoandGitHub edff69b2f6 Add hotkeys to modals (#1305)
* Add hotkeys to modals

* fix

* fix

* remove unnecessary type

* restore type

* add handleEnter

* rename event props
2023-08-25 13:59:04 +02:00
69e0917338 padding fix for header logo container #1216 (#1252)
* padding fix for header container

* collapse menu hover and fade transition added

* Update front/src/modules/ui/navbar/components/NavWorkspaceButton.tsx

Co-authored-by: Emilien Chauvet <[email protected]>

* Update front/src/modules/ui/navbar/components/NavWorkspaceButton.tsx

Co-authored-by: Emilien Chauvet <[email protected]>

* Update front/src/modules/ui/navbar/components/NavCollapseButton.tsx

Co-authored-by: Emilien Chauvet <[email protected]>

* Update isVisible

* Update requested proposals for naming

---------

Co-authored-by: Emilien Chauvet <[email protected]>
2023-08-25 13:11:57 +02:00
Charles Bochet 5a5ee1ff8d Fix merge issue view filters 2023-08-25 12:48:37 +02:00
ThaïsandGitHub c3d6451dd0 feat: create view from selected filters and sorts + switch to newly created view on view creation (#1301)
* feat: create view from selected filters and sorts

Closes #1292

* refactor: use selector to obtain table filters where query option

* refactor: activate exhaustive deps eslint rule for useRecoilCallback

* feat: switch to newly created view on view creation

Closes #1297

* refactor: code review

- use `useCallback` instead of `useRecoilCallback`
- rename `useTableViews` to `useViews`
- move filter-n-sort selectors to /states/selector subfolder
2023-08-25 12:43:21 +02:00
Charles BochetandGitHub de569f4c06 Scroll behavior part 2 (#1304)
* Fix layout issues introduced by scroll behavior

* Complete scrollbar work
2023-08-25 12:38:45 +02:00
Charles Bochet 0d210244db Fix merge conflicts 2023-08-25 01:14:27 +02:00
e373d17a2a Feat: The scrollbar should fade away when the scroll is finished or not started (#1269)
* The scrollbar should fade away when the scroll is finished or not started

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>

* Complete scroll work

* Fix pr

* Fix pr

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: FellipeMTX <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-08-25 01:13:53 +02:00
corentin 75207b093b fix missing property in companies optimistic response 2023-08-24 18:10:07 +02:00
baf92d6d65 Chore: New standard fields on Companies (#1276)
* New standard fields on Companies

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Matheus <[email protected]>

* New standard fields on Companies

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Add requested changes

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Make some fields hidden by default

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Add minor refactors

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

---------

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2023-08-24 17:36:12 +02:00
615018654a Add optimistic rendering for table relations (#1296)
* Add optimistic rendering for table relations

* fix pr

* fix pr

* fix pr

* Fix PR

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-08-24 17:29:26 +02:00
WeikoandGitHub 00f1d2b739 Fix color scheme update (#1298)
* Fix color scheme update

* remove as

* fix
2023-08-24 16:34:46 +02:00
brendanlaschkeandGitHub b0c2881ec0 Selected row background (#1299)
selected row background
2023-08-24 16:21:12 +02:00
corentin 6c418a63bc move canPersistFiltersScopedState & canPersistSortsScopedState to selectors folder 2023-08-24 16:01:41 +02:00
ThaïsandGitHub 0cac598f0c feat: disable Update View button if filters and sorts are up to date (#1293)
Closes #1291
2023-08-24 15:59:32 +02:00
10b68618d3 New behavior for editable fields (#1300)
* New behavior for editable fields

* fix

* fix

* fix coverage

* Add tests on NotFound

* fix

* fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-08-24 15:56:43 +02:00
Charles Bochet bf05e5917d Hotfix dropdown option not opened on create view 2023-08-24 14:32:02 +02:00
Charles Bochet 37ed3c857f Fix tests 2023-08-24 14:25:20 +02:00
252f1c655e Feat/hide board fields (#1271)
* Renamed AuthAutoRouter

* Moved RecoilScope

* Refactored old WithTopBarContainer to make it less transclusive

* Created new add opportunity button and refactored DropdownButton

* Added tests

* Deactivated new eslint rule

* Refactored Table options with new dropdown

* Started BoardDropdown

* Fix lint

* Refactor dropdown openstate

* Fix according to PR

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-08-24 13:19:42 +02:00
64cef963bc Feat/add opportunity (#1267)
* Renamed AuthAutoRouter

* Moved RecoilScope

* Refactored old WithTopBarContainer to make it less transclusive

* Created new add opportunity button and refactored DropdownButton

* Added tests

* Update front/src/modules/companies/components/CompanyProgressPicker.tsx

Co-authored-by: Thaïs <[email protected]>

* Update front/src/modules/companies/components/CompanyProgressPicker.tsx

Co-authored-by: Thaïs <[email protected]>

* Update front/src/modules/companies/components/CompanyProgressPicker.tsx

Co-authored-by: Thaïs <[email protected]>

* Update front/src/modules/companies/components/CompanyProgressPicker.tsx

Co-authored-by: Thaïs <[email protected]>

* Update front/src/modules/ui/dropdown/components/DropdownButton.tsx

Co-authored-by: Thaïs <[email protected]>

* Update front/src/modules/ui/dropdown/components/DropdownButton.tsx

Co-authored-by: Thaïs <[email protected]>

* Update front/src/modules/ui/dropdown/components/DropdownButton.tsx

Co-authored-by: Thaïs <[email protected]>

* Update front/src/modules/ui/layout/components/PageHeader.tsx

Co-authored-by: Thaïs <[email protected]>

* Update front/src/pages/opportunities/Opportunities.tsx

Co-authored-by: Thaïs <[email protected]>

* Fix lint

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Thaïs <[email protected]>
2023-08-23 18:57:08 +02:00
ThaïsandGitHub 74ab0142c7 feat: persist view filters and sorts on Update View button click (#1290)
* feat: add viewFilters table

Closes #1121

* feat: add Update View button + Create View dropdown

Closes #1124, #1289

* feat: add View Filter resolvers

* feat: persist view filters and sorts on Update View button click

Closes #1123

* refactor: code review

- Rename recoil selectors
- Rename filters `field` property to `key`
2023-08-23 18:20:43 +02:00
WeikoandGitHub 76246ec880 Fix confirmation modal size (#1295) 2023-08-23 15:38:37 +02:00
Yash JoshiandGitHub 4629b3dd8e fix(modal): add padding in confirmation modal (#1247) 2023-08-23 15:09:44 +02:00
Kelvin YelyenandGitHub b2bfaf4721 Fix issue #1161: Update visible fields on person detail page (#1260) 2023-08-23 10:22:30 +02:00
587c74667c Fix: create time (#1250)
* change date strings

* remove additional suffix

* fix tests

---------

Co-authored-by: corentin <[email protected]>
2023-08-23 08:48:30 +02:00
Mohamed AmineandGitHub 2e01efb8f3 Fix: Profile picture does not appear after signin (#1285)
* fix: add missing field `avatarUrl` to `UserQueryFragment`

* feat: add avatarUrl to UserQueryFragment
2023-08-23 08:46:05 +02:00
WeikoandGitHub 22dbe21bcd Add Empty as value of empty fields inputs #1042 (#1243)
* Add Empty as value of empty fields inputs #1042

* rebase
2023-08-22 16:46:15 +02:00
Andrew QuandGitHub 242c73ed81 Fix: Avoid showing confirmation dialog on closing spreadsheet import with no changes (#1284)
fix: not showing confirmation dialog on closing with no changes
2023-08-22 14:29:21 +02:00
Srikar SamudralaandGitHub b68b5779a6 remove arrows for number inputs (#1287) 2023-08-22 14:29:02 +02:00
brendanlaschkeandGitHub 8004cf8533 Add CreateButton to Tasks page (#1283)
- add CreateButton to Tasks page
2023-08-19 10:20:02 -07:00
WeikoandGitHub 9b34a0ff3d Add styled component rule (#1261)
* Add StyledComponent rule

* update doc

* update doc

* update doc
2023-08-17 20:58:02 -07:00
Lucas BordeauandGitHub 390e70a196 Added a first round of docs for front end (#1246) 2023-08-17 15:16:48 -07:00
Sunil Kumar BeheraandGitHub e8e6d9f8ea Fix: add 404 page (#1230)
* add 404 page

* add not found wildacard path to apppath

* rename styled components

* add theme blur and background color

* change backgrounf to transparent secondary
2023-08-17 13:02:20 -07:00
Srikar SamudralaandGitHub cf1dfb8c42 Updates date style on tasks page (#1244)
* updates date style on tasks page

* re-run tests
2023-08-17 12:49:09 -07:00
corentin f4accc66fa use ci-8-cores 2023-08-17 12:25:44 -07:00
Thomas des FrancsandGitHub 9dbc7942b6 Update README.md (#1251)
Updated the next steps
2023-08-17 12:19:11 -07:00
WeikoandGitHub 0cab6a11d2 Set 3 workers for storybook coverage (#1255)
* Set 3 workers for storybook coverage

* fix

* fix

* fix

* change ubuntu-latest to ci-4-cores

* fix
2023-08-17 12:00:45 -07:00
WeikoandGitHub 1e277ba950 Fix Chip font-weight (#1242)
* Fix Chip font-weight

* fix ===
2023-08-16 16:28:16 -07:00
Charles Bochet dbf01c759d Fix react-data-grid version to avoid compatibility issue 2023-08-16 14:38:17 -07:00
Kelvin YelyenandGitHub c762d0ff7b Fix issue #1037: Task inbox small design improvements (#1238)
* Fix issue #1037: Task inbox small design improvements

* Fix issue #1037: Task inbox small design improvements
2023-08-16 14:29:26 -07:00
Manikanta cheepurupalliandGitHub 4f524bd2a7 Task update sync issue #1203 (#1232)
* Task update sync issue #1203

* removed unwanted state
2023-08-16 14:27:58 -07:00
a24e1e4dc9 feat: delete views from views dropdown (#1234)
Closes #1129

Co-authored-by: Charles Bochet <[email protected]>
2023-08-16 14:27:03 -07:00
Jérémy MandGitHub 8863bb0035 Import company and person from csv file (#1236)
* feat: wip implement back-end call csv import

* fix: rebase IconBrandTwitter missing

* feat: person and company csv import

* fix: test & clean

* fix: clean & test
2023-08-16 14:18:16 -07:00
Sunil Kumar BeheraandGitHub 5890354d21 Fix: Change title strings (#1212)
* change title strings

* add conditional operator
2023-08-16 12:48:35 -07:00
cd1bf14925 On Company Show, I can select an existing person and add it to the company (#1201)
* On Company Show, I can select an existing person and add it to the company

Co-authored-by: Matheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Add excludePersonIds

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Add hotkey support

* Fix popin placement and fix company show mobile

* Fix popin placement and fix company show mobile

---------

Co-authored-by: Matheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-08-16 12:47:14 -07:00
Manikanta cheepurupalliandGitHub 5969f1cdd4 font weight to medium #1208 (#1228)
font weight to medium
2023-08-16 12:05:03 -07:00
ThaïsandGitHub 8479205c2a chore: fix @apollo/client version to 3.7.17 (#1233) 2023-08-16 10:02:09 -07:00
Charles BochetandGitHub b503b53062 Fix tests and upgrade node_modules (#1227)
* Fix tests

* Fix tests

* Fix 0 in SortandFilterBar
2023-08-15 19:38:50 -07:00
Charles BochetandGitHub 38c420aab0 Update color palette (#1226) 2023-08-15 17:05:53 -07:00
brendanlaschkeandGitHub 8bbc54f4c7 Boards add context menu (#1223)
* - add context menu to boards

* - delete unused file
2023-08-15 17:05:23 -07:00
WeikoandGitHub aa1f9bcab3 removed unused files, unnecessary exports and renamed ownProps (#1225)
* remove unused files and rename ownProps

* restore unused icons
2023-08-15 17:02:02 -07:00
WeikoandGitHub c9549c3833 [docs] add folder architecture doc (#1221)
* [docs] add folder architecture doc

* update

* add internal

* improve doc
2023-08-15 15:15:07 -07:00
56cada6335 feat: wip import csv [part 1] (#1033)
* feat: wip import csv

* feat: start implementing twenty UI

* feat: new radio button component

* feat: use new radio button component and fix scroll issue

* fix: max height modal

* feat: wip try to customize react-data-grid to match design

* feat: wip match columns

* feat: wip match column selection

* feat: match column

* feat: clean heading component & try to fix scroll in last step

* feat: validation step

* fix: small cleaning and remove unused component

* feat: clean folder architecture

* feat: remove translations

* feat: remove chackra theme

* feat: remove unused libraries

* feat: use option button to open spreadsheet & fix stories

* Fix lint and fix imports

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-08-15 15:12:47 -07:00
brendanlaschkeandGitHub 1ca41021cf Change sort and filter chip style, Add seperator (#1222)
- change sort filter chip style & seperator
2023-08-15 13:40:42 -07:00
ThaïsandGitHub 4e654654da feat: add views dropdown (list, add & edit views) (#1220)
Closes #1218
2023-08-15 12:08:02 -07:00
Charles BochetandGitHub 7a330b4a02 Add foreign key constraints and perform on Cascade Delete (#1219) 2023-08-15 11:52:23 -07:00
83b900e016 On Company Show, in team section, I can delete a person (#1206)
* On Company Show, in team section, I can detach a person from a company

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* On Company Show, in team section, I can detach a person from a company

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Temporary fix disconnect optional relations

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Refactor the PR logic

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* On Company Show, in team section, I can delete a person

Co-authored-by: Matheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Fix styling

Co-authored-by: Matheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Refactor the dropdown

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Update styling

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: Matheus <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-08-15 09:08:51 -07:00
8f7044207d On Company Show, in team section, I can detach a person from a company (#1202)
* On Company Show, in team section, I can detach a person from a company

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* On Company Show, in team section, I can detach a person from a company

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Temporary fix disconnect optional relations

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Refactor the PR logic

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Refactor the dropdown

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2023-08-15 08:40:25 -07:00
Charles BochetandGitHub 9bbdf933e9 Fix sort and filters behavior (#1211) 2023-08-14 20:11:00 -07:00
Charles Bochet e9619ec1ac Fix merge conflict 2023-08-14 19:35:09 -07:00
WeikoandGitHub 24e5132029 Moving queries into dedicated files (#1210)
* Moving queries into dedicated files

* fix ci
2023-08-14 19:31:20 -07:00
656f1af15c feat: I can hide/show filter bar and add filters directly from filter bar (#1173)
* I can hide/show filter bar and add filters directly from filter bar

Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>

* Revert breaking changes

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
2023-08-14 19:12:11 -07:00
239d036813 Upgrade /front version and display the version in settings navbar (#1207)
* Upgrade /front version and display the version in settings navbar

* fix

* fix version

* restore center

* add icon

* Fix styled components

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-08-14 17:40:10 -07:00
Charles BochetandGitHub e3dc3b3e4a Cosmetic refactoring on context menu (#1209)
* Cosmetic refactoring on context menu

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fix lint
2023-08-15 02:34:23 +02:00
Charles Bochet 444d9a9ca1 Merge branch 'brendanlaschke-context-menu-vertical' 2023-08-14 15:46:42 -07:00
Charles Bochet 45687f5100 Fix conficts 2023-08-14 15:43:55 -07:00
WeikoandCharles Bochet 43b0945028 Reorganize context/states/selectors in dedicated folders (#1205)
* Reorganize context/states/selectors in dedicated folders

* linter
2023-08-14 15:29:47 -07:00
WeikoandGitHub 7d900ad1c6 Reorganize context/states/selectors in dedicated folders (#1205)
* Reorganize context/states/selectors in dedicated folders

* linter
2023-08-14 15:08:47 -07:00
brendanlaschke d7cbc869fd - fix import order 2023-08-14 23:56:49 +02:00
brendanlaschke cbd0d0a724 - rename entries hooks
- tests
- move useeffects to sub components
2023-08-14 23:52:36 +02:00
brendanlaschke a7f4326419 - moved states 2023-08-14 22:12:29 +02:00
brendanlaschke 39bbe02c86 Merge commit 'cd3a32e55503dc1e6b9873d812dd401bf7d51045' into context-menu-vertical 2023-08-14 22:00:49 +02:00
Charles BochetandGitHub cd3a32e555 [Docs] Update WSL instructions + fix broken links (#1204)
Update WSL instructions
2023-08-14 11:25:52 -07:00
Manikanta cheepurupalliandGitHub 3f0680bde6 tasks strikes through #1176 (#1186) 2023-08-14 19:36:03 +02:00
Charles Bochet 5fdd8e0793 Fix boardcard selected state and fix table new row being added on top 2023-08-13 10:49:28 -07:00
Charles BochetandGitHub e6b20b5ff2 Fix drag-performance (#1184)
* Fix drag-performance

* Fixes

* Fixes

* Fixes

* Fixes
2023-08-12 20:28:33 -07:00
WeikoandGitHub bf09a4d6a2 Improve editable field performances (#1182)
* [EditableField] improve performances

* remove FieldHotkeyScopeContext.ts
2023-08-12 17:27:02 -07:00
Charles BochetandGitHub 8cf6db8c65 fix-on-dropdown-menu-width (#1181) 2023-08-12 17:26:47 -07:00
Charles BochetandGitHub 09ab1300a3 Remove unused components (#1180)
* Remove unused components

* Fix company not being created issue

* Fix company not being created issue

* Fix company not being created issue

* Optimize rendering

* Optimize rendering
2023-08-12 16:29:18 -07:00
Charles BochetandGitHub 35ea6b5a2f Remove activityType and Id (#1179)
* Remove activityType and Id

* Fix tests

* Fix tests
2023-08-11 17:31:54 -07:00
WeikoandGitHub a30222fe76 [PersonShow] use fieldDefinition for editable fields (#1178)
* [PersonShow] use fieldDefinition for editable fields

* remove unused files

* fix company chip display field
2023-08-12 01:36:38 +02:00
Charles BochetandGitHub 007e42a2e6 Re-add constraints (#1177) 2023-08-11 15:04:01 -07:00
WeikoandGitHub 4eb4d1488c Use FieldDefinition for company show page (#1171)
* Use FieldDefinition for company show page

* removing console.log

* fix conflicts

* fix address placeholder + company show page field definition ordering

* fix story

* add replacePlaceholder

* use AppPath enum in stories

* add routeParams

* fix people input story
2023-08-11 14:31:52 -07:00
ThaïsandGitHub 3978ef4edb feat: change column visibility on add (#1174)
* feat: change column visibility on add

* refactor: extract views business logic from table
2023-08-11 12:38:20 -07:00
brendanlaschkeandGitHub cca68d72f4 Merge branch 'main' into context-menu-vertical 2023-08-11 10:40:31 +02:00
brendanlaschke accfaafcfa - refactored to use multiple states 2023-08-11 10:27:31 +02:00
Charles Bochet e61c263b1a Misc fixes 2023-08-10 17:16:27 -07:00
Charles Bochet 20b641bfe6 Fix checkbox indeterminate background 2023-08-10 15:58:24 -07:00
Charles BochetandGitHub 285bf773de Integrate favorites into release (#1168) 2023-08-10 15:42:58 -07:00
Aditya PimpalkarandGitHub 0490c6b6ea feat: Favorites (#1094)
* Adding the favorite button

* favorites services and resolvers

* favorites schema

* favorite ability handler

* favorite module export

* front end UI

* front end graphql additions

* server ability handlers

* server resolvers and services

* css fix

* Adding the favorite button

* favorites services and resolvers

* favorites schema

* favorite ability handler

* favorite module export

* front end UI

* front end graphql additions

* server ability handlers

* server resolvers and services

* css fix

* delete favorites handler and resolver

* removed favorite from index list

* chip avatar size props

* index list additions

* UI additions for favorites functionality

* lint fixes

* graphql codegen

* UI fixes

* favorite hook addition

* moved to ~/modules

* Favorite mapping to workspaceMember

* graphql codegen

* cosmetic changes

* camel cased methods

* graphql codegen
2023-08-10 15:24:45 -07:00
Charles Bochet d4b1153517 Fix New button drag behavior on pipeline views 2023-08-10 15:16:56 -07:00
Charles BochetandGitHub fb0f9b7807 Fixes before deploy (#1167) 2023-08-11 00:09:52 +02:00
Charles Bochet 5300952b1a Remove breaking change foreign key 2023-08-10 12:55:40 -07:00
brendanlaschke b76f01d930 - refactor context menu and action bar into seperate components
- fix styling context menu
2023-08-10 21:30:25 +02:00
WeikoandGitHub 4288cef096 refactoring editableFieldContext to match with table implementation (#1164) 2023-08-10 12:26:05 -07:00
Charles BochetandGitHub a12b6c4bda Force 404 on static folder when a file is not found (#1165) 2023-08-10 12:17:40 -07:00
brendanlaschke 807506549a Merge commit '80a562d90d1d354c580351a2c94d32aa024b139e' into context-menu-vertical 2023-08-10 20:27:05 +02:00
WeikoandGitHub 07a8f68ef1 Add FieldDefinition (#1162)
* add fieldDefinition

* update naming

* use a unique contextProvider for editable fields

* remove EntityUpdateMutationHookContext.Provider usage in CompanyBoardCard

* add fieldDefinitionState

* remove unnecessary refetchQueries to avoid re-render

* add FieldMetadata

* add type guards and update useUpdateGenericEntityField

* restore refetchQueries
2023-08-10 11:26:27 -07:00
ThaïsandGitHub 80a562d90d feat: persist view sorts (#1154)
Closes #1122
2023-08-10 10:10:02 -07:00
Emilien ChauvetandGitHub 6b3a538c07 Feature/optmistically render table create & remove (#1156)
* Add optimistic updates on company table

* Add optimistic rendering for tables too

* Fix schema
2023-08-10 09:37:24 -07:00
Srikar SamudralaandGitHub ee5ac11f98 Adds URL validation (#1155) 2023-08-10 09:35:09 -07:00
brendanlaschkeandGitHub c91844071a Add task to action bar (#1153)
- add task to action bar
2023-08-10 09:17:58 -07:00
ThaïsandGitHub 0f364cc9e7 feat: add views and viewSorts tables (#1131)
* feat: add views table

Closes #1120

* feat: add viewSorts table

Closes #1120
2023-08-10 09:14:28 -07:00
Charles Bochet 428acf4a13 Fix windows-setup doc url 2023-08-10 08:30:56 -07:00
Charles Bochet 91670df1db Fix doc 2023-08-10 08:03:52 -07:00
brendanlaschke f2e872ce3f - context menu vertical 2023-08-10 17:02:47 +02:00
Charles Bochet be9a2cefeb Fix doc 2023-08-09 22:43:47 -07:00
Charles Bochet ecf18312ce Fix typing issue with positive number 2023-08-09 22:40:49 -07:00
Srikar SamudralaandGitHub 4717f4cb90 fix(882): fixes negative number submission for employees input (#1130)
* fix(882): fixes negative number submission for employees input

* formatting

* fix linting
2023-08-09 22:25:57 -07:00
510c466271 Add WSL instruction and IDE setup instruction (#1150)
* Add WSL instruction and IDE setup instruction

* Fix setup

* Fix setup

* Fix

* Update docs/docs/developer/additional/ide-setup.mdx

Co-authored-by: Weiko <[email protected]>

---------

Co-authored-by: Weiko <[email protected]>
2023-08-09 22:24:15 -07:00
WeikoandGitHub a2891e50e6 [opportunities] fix poc being removed after pipeline update (#1148) 2023-08-10 02:52:36 +02:00
WeikoandGitHub cd831af53d Use dedicated EditableFieldEntityIdContext for editable fields instead of CardIds (#1145)
* Use dedicated EntityIdContext for editable fields instead of CardIds

* update context name

* remove unused hook
2023-08-10 01:32:28 +02:00
7dcbc56e69 feat: Add the workspace logo on Twenty logo on the invited route (#1136)
* Add the workspace logo on Twenty logo on the invited route

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>

* Add minor refactors

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>

* Refactor the invite logic

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Mael FOSSO <[email protected]>
2023-08-09 15:00:07 -07:00
Charles Bochet b49c857dc5 Fix lint 2023-08-09 14:11:54 -07:00
4a388b8ed5 Add task and note create option in comand menu (#1115)
* add task and note create option in comand menu

* Re-run CIs

---------

Co-authored-by: Weiko <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-08-09 14:09:32 -07:00
22b4bffcde feat: Add team section on company show (#1119)
* Add team section on company show

Co-authored-by: RubensRafael <[email protected]>

* Add requested changes

Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: v1b3m <[email protected]>

* Fix padding

Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2023-08-09 14:09:01 -07:00
Charles Bochet 92ecb8100a fix prettier 2023-08-09 13:10:59 -07:00
Jay KesarkarandGitHub 7b6ca84e47 Update DropdownMenuSkeletonItem.tsx (#1112) 2023-08-09 11:36:50 -07:00
fc17a0639a chore: New standard fields on People (#1104)
* Add New standard fields on People

Co-authored-by: Thiago Nascimbeni <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: Matheus <[email protected]>

---------

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>
2023-08-09 11:36:03 -07:00
b557766eb0 feat: I can upload a photo on person show page (#1103)
* I can upload a photo on person show page

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: Rubens Rafael <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: Rubens Rafael <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: Rubens Rafael <[email protected]>
2023-08-09 11:29:10 -07:00
1f4df67a89 chore: Improve design of comment bar in notes (#1102)
* Improve design of comment bar in notes

Co-authored-by: v1b3m <[email protected]>

* Add autoFocus

Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>

* Align the text area

Co-authored-by: v1b3m <[email protected]>

* Use ref instead of getElementById

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-08-09 11:19:35 -07:00
Emilien ChauvetandGitHub fbac345164 Enable optimistic rendering for pipeline stages (#1139) 2023-08-09 20:07:11 +02:00
Emilien ChauvetandGitHub db8a176342 Add optimistic rendering for tasks (#1140)
* Add optimistic rendering for tasks

* Refetch activities for lists updates
2023-08-09 11:05:08 -07:00
WeikoandGitHub 702b6e5154 fix update pipelineProgress with 0 probability (#1144) 2023-08-09 20:01:44 +02:00
brendanlaschkeandGitHub 3122541f3b Drag to select boards (#1127)
- drag to select boards
2023-08-09 18:25:09 +02:00
brendanlaschkeandGitHub 2b166927d1 Replace default colors for headers in Boards (#1128)
- replace colors for headers
2023-08-09 17:28:55 +02:00
Emilien ChauvetandGitHub 9bd42121d3 Add company creation from people table (#1100)
* Add company creation from people table

* Design
2023-08-09 17:17:35 +02:00
3666980ccc Feat/generic editable board card (#1089)
* Fixed BoardColumnMenu

* Fixed naming

* Optimized board loading

* Added GenericEditableField

* Introduce GenericEditableField for BoardCards

* remove logs

* delete unused files

* fix stories

---------

Co-authored-by: corentin <[email protected]>
2023-08-08 20:08:37 -07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
77d356f78a Bump file-type from 13.0.0 to 16.5.4 in /server (#1105)
Bumps [file-type](https://github.com/sindresorhus/file-type) from 13.0.0 to 16.5.4.
- [Release notes](https://github.com/sindresorhus/file-type/releases)
- [Commits](https://github.com/sindresorhus/file-type/compare/v13.0.0...v16.5.4)

---
updated-dependencies:
- dependency-name: file-type
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-07 14:15:07 -07:00
Vishwash BajpaiandGitHub 0dcb93ca3b fix: [#1079] adding max width to menu items and also the tooltip to show full text value (#1088)
* fix: [#1079] adding max width to menu items and also the tooltip to show full text value

* chore: removed max-width property

* chore: fixed the interaction for people.sortby

* chore: removed unused code

* chore: fixed the interaction for companies.sortby
2023-08-07 13:16:38 -07:00
brendanlaschkeandGitHub 029ba25361 Fix Dark Mode Colors (#1099)
- fix dark mode colors
2023-08-07 19:08:02 +02:00
Emilien ChauvetandGitHub de6ebd96c5 Prevent indexing on docs outside of production (#1054)
* Prevent indexing on docs outside of production

* Add dockerfile arg

* Rename args

* Add logs

* Move arg to the right dockerfile

* Remove log
2023-08-07 09:20:31 -07:00
Moussa BistamiandGitHub 2f0bee5e34 Confirmation before deleting a member (#1074)
* feat: require confirmation before on memeber deletion

* fix: typo

* feat: ConfrimationModal moved to ui/modals/component - confirmation modal storybook

* fix: modal member deletion text

* fix: extra ! operator - remove deletemodal - using styledconfirmationbutton

* fix: story structer

* fix: imports
2023-08-05 21:33:57 -07:00
Charles BochetandGitHub 14f9e892d1 Add ability to force picker width (#1093) 2023-08-05 15:41:18 -07:00
WeikoandGitHub 35395c2e67 [Tasks] Removing task list empty state (#1090)
* [Tasks] Removing task list empty state

* separate no-tasks story in a different file to handle cache issues
2023-08-05 15:05:40 -07:00
PranavandGitHub 2d35db14c0 Fix #1076: Change User icon into User-circle on "Companies" & Settings (#1092)
* Fix #1038: Logout button should be change to gray

* Fix #1059: Replace Inbox by Notifications in navigation

* Fixed lint issues

* Fixed the import

* Fix #1076: Change User icon into User-circle on Companies & Settings
2023-08-06 00:03:34 +02:00
WeikoandGitHub 5166859f80 [Opportunities] fix overlapping borders (#1091)
* [Opportunities] fix overlapping borders

* remove margin on SortAndFilterBar

* add margin-right to StyledBoard
2023-08-05 12:22:52 -07:00
Shobhit GuptaandGitHub 7028a8098e style(urls): Updated link style to round chips (#1010)
* style(urls): Updated link style to round chips

* restored RawLink changes

* feat:(rounded): introduced newchip varient rounded

* feat(rounded-link): added rounded link component
2023-08-05 11:50:59 -07:00
Charles Bochet 2d5ad60aeb Fix login issue 2023-08-05 09:42:31 -07:00
Charles BochetandGitHub 1bf44e0188 Fixes table header (#1087)
* Wrap up Front chat

* Wrap up Front chat

* Disable entity selectionwhen starting from menu
2023-08-04 19:27:48 -07:00
Charles BochetandGitHub 6008789a17 Wrap up Front chat (#1085)
* Wrap up Front chat

* Wrap up Front chat
2023-08-04 19:22:54 -07:00
57c465176a Add support chat (#1066)
* Add support chat

Co-authored-by: v1b3m <[email protected]>

* Refactor the chat logic

Co-authored-by: v1b3m <[email protected]>

* Add HMAC signing

Co-authored-by: v1b3m <[email protected]>

* Update the button styles

Co-authored-by: v1b3m <[email protected]>

* Update the button styles

Co-authored-by: v1b3m <[email protected]>

* Refactor the chat logic

Co-authored-by: v1b3m <[email protected]>

* Fix the chat not loading

Co-authored-by: v1b3m <[email protected]>

* Fix the chat not loading

Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
2023-08-04 16:52:59 -07:00
5e6351e099 Drag To Select Table (#1064)
* - added drag to select on EntityTable

* - moved dragToSelect to own component

* - convert DragSelect to a generic component

* - fixed unused vars

* formatting

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-08-04 16:16:01 -07:00
Charles BochetandGitHub b6e1853d9f Add @air/react-drag-to-select dependency (#1083) 2023-08-04 15:35:36 -07:00
ed1662223a [Refactor] Activity morph: first phase (#1075)
* Add company and person on update and create

* Enable reading with error management on commentable ID

* [CHECKPOINT] backward-compatible

* Migrate data for activity targets

* Revert "Migrate data for activity targets"

This reverts commit f89bc30689.

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-08-04 15:33:50 -07:00
WeikoandGitHub 04297b0556 Add viewFields delete in Workspace delete resolver (#1082) 2023-08-04 15:23:56 -07:00
WeikoandGitHub 0d16053c31 [tasks] add empty state and new task button (#1072)
* [tasks] add empty state

* add refetch + use spacing for padding

* create task auto assigned with dueAt as today

* add unscheduled tasks section

* remove unnecessary assigneeId fetching

* remove unnecessary refetchQueries

* add refetch for delete task

* rename createCommentMutation to deleteActivityMutation in activityActionBar
2023-08-04 11:04:06 -07:00
ThaïsandGitHub c6bec40c90 feat: show/hide table columns (#1078)
Closes #813
2023-08-04 10:44:46 -07:00
ThaïsandGitHub 417ca3d131 feat: add table columns (#1056)
* feat: add table columns

Closes #879

* refactor: ComponentProps first
2023-08-04 10:07:31 -07:00
PranavandGitHub a8856516bd Fix #1059: Replace "Inbox" by "Notifications" in navigation (#1063)
* Fix #1038: Logout button should be change to gray

* Fix #1059: Replace Inbox by Notifications in navigation

* Fixed lint issues

* Fixed the import
2023-08-04 07:41:49 -07:00
Lucas BordeauandGitHub c790cc5d0c First round of refactor EntityBoards (#1067) 2023-08-04 16:16:34 +02:00
WeikoandGitHub 11e7266f8a [FilterDropdownEntitySearchSelect] add missing displayAvatarUrl (#1071)
* [FilterDropdownEntitySearchSelect] add missing displayAvatarUrl

* add missing avatarUrl in activities

* remove console.log
2023-08-03 19:27:04 -07:00
Charles Bochet 057fa0ae04 Remove constraint activity morph relations foreign keys 2023-08-03 16:50:09 -07:00
Charles BochetandGitHub 207d7b6b10 Fix pipeline performance issue (#1070) 2023-08-03 16:47:30 -07:00
WeikoandGitHub 43f20ebf74 [PeoplePicker] fix missing avatar in user search dropdown (#1069) 2023-08-03 16:38:09 -07:00
Charles BochetandGitHub 2b21e05524 Improve mouse tracking (#1061)
* Improve mouse tracking

* Fix lint

* Fix regression on Filters

* Fix according to review
2023-08-03 10:36:11 -07:00
Emilien ChauvetandGitHub 21e3d8fcac Refactor: Morph strategy on PipelineProgress (#1065)
* Deprecate pipelineprogress backref on person to improve naming

* Remove deprecated point of contact fields

* Add company and person entities on pipelineprogress

* Migrate data from old progressable to new entity fields

* Codegen frontend

* Use company Id, deprecate progressableId

* Get rid of deprecated progressableId field

* Remove deprecated progressableType field from pipeline progress

* Remove useless migrations
2023-08-03 09:08:35 -07:00
4252a0a2c3 Feat/filter activity inbox (#1032)
* Move files

* Add filtering for tasks inbox

* Add filter dropdown for single entity

* Minor

* Fill empty button

* Refine logic for filter dropdown

* remove log

* Fix unwanted change

* Set current user as default filter

* Add avatar on filter

* Improve initialization of assignee filter

* Add story for Tasks page

* Add more stories

* Add sotry with no tasks

* Improve dates

* Enh tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-08-02 12:36:16 -07:00
brendanlaschkeandGitHub 2128d44212 Fix Avatars no centered (#1050)
- fix workspace icon now centered
- fix profile avatar now centered
2023-08-02 12:36:00 -07:00
e06588d8a8 Fix: positioning of label to rename columns (#1051)
Fix positioning of label to rename columns

Co-authored-by: Mael FOSSO <[email protected]>
2023-08-02 11:55:46 -07:00
2680289ff7 Sanitize url before fetching favicon and display letter avatar if it can't be retrieved (#1035)
* Sanitize url before fetching favicon and display letter avatar if it can't be retrieved

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Priorotise www for apple.com domain

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Fix the tests

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Change avatar generation strategy

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2023-08-02 11:53:56 -07:00
proof3andGitHub bfd748e175 Closes #710: Add the number of opportunities on each stage (#1011)
* Add the number of oppurtunities on each stage

* Remove excess css properties in Boardcolumn.tsx and use theme

* Remove padding from oppurnities counters
2023-08-02 11:51:17 -07:00
ThaïsandGitHub 3807d62aeb feat: persist resized column widths (#1017)
* feat: persist resized column widths

Closes #981

* test: mock company and person view fields
2023-08-02 11:48:14 -07:00
PranavandGitHub 552fb2378b Fix #1038: Logout button should be change to gray (#1052) 2023-08-02 06:22:48 -07:00
brendanlaschkeandGitHub 0ad35549ac Fix hotkeys for tasks page (#1034)
- fix hotkeys for tasks
2023-08-01 22:11:07 -07:00
991cadbe48 Move trash icon to the top bar of right drawer (#1014)
* Move trash icon to the top bar of right drawer

Co-authored-by: Matheus <[email protected]>

* Fix background

Co-authored-by: Matheus <[email protected]>

* Refactor the code

Co-authored-by: Matheus <[email protected]>

---------

Co-authored-by: Matheus <[email protected]>
2023-08-01 22:10:02 -07:00
55f1e2a5bb In storybook, I see a ButtonIconGroup component (#1039)
Add ButtonIconGroup storybook components

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2023-08-01 22:01:47 -07:00
CorentinandGitHub efbc346b48 [server] set local setup as default in .env.example (#1045) 2023-08-01 19:40:17 -07:00
Emilien ChauvetandGitHub 813fd5a067 Fix env variables for dev setup (#1031) 2023-08-01 12:05:05 +02:00
Charles Bochet 7a6a75a958 Rename SIGN_IN_PREFILLED env variable 2023-07-31 19:21:08 -07:00
Charles Bochet 86fee770e1 Update chromatic CI trigger 2023-07-31 18:23:39 -07:00
Charles Bochet ba76cace3f Update chromatic CI trigger 2023-07-31 18:20:45 -07:00
Charles BochetandGitHub 8b8e4ac4a5 A few polish on tasks (#1023)
A few polishing on tasks
2023-07-31 18:15:08 -07:00
22ca00bb67 Add tasks page (#1015)
* Refactor top bar component

* Add task page with tabs

* Add tasks

* Add logic for task status

* Fix isoweek definition

* Enable click on task

* Deduplicate component

* Lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-31 16:14:35 -07:00
brendanlaschkeandGitHub 700b567320 Scroll to currently softfocus cell (#1008)
* - scroll to currently softfocus cell

* - moved useEffect to CellSoftFocus component
2023-07-31 15:50:08 -07:00
Jérémy MandGitHub f111440e00 feat: implement user impersonation feature (#976)
* feat: wip impersonate user

* feat: add ability to impersonate an user

* fix: remove console.log

* fix: unused import
2023-07-31 15:47:29 -07:00
b028d9fd2a Add deploy buttons and clean environment variables (#974)
* add render.yaml

* Clean environment variables



---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-31 14:36:04 -07:00
Charles BochetandGitHub a90cbac5e6 Fix table mock mode (#1007) 2023-07-31 10:50:02 +02:00
58e5d24261 feat: add column resizing (#975)
* feat: add column resizing

Closes #817

* Use mouse up and down instead of dragging

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-30 20:38:38 -07:00
Charles BochetandGitHub ade5e52e55 Clean and re-organize post table refactoring (#1000)
* Clean and re-organize post table refactoring

* Fix tests
2023-07-30 18:26:32 -07:00
Indrajeet NikamandGitHub 86a2d67efd style: update deactivated state styles in onboarding button (#997)
[952] style: update deactivated state styles in onboarding button
2023-07-30 14:07:58 -07:00
brendanlaschkeandGitHub 20a1946b35 Changes to commands in search window (#996)
- changes to commands in search window
2023-07-30 13:29:10 -07:00
Charles BochetandGitHub eafa30a9cf Fix margin on DeleteModal overlay (#998)
* Fix margin on DeleteModal overlay

* Update chromatic ci triggers

* Update chromatic ci triggers
2023-07-30 13:17:33 -07:00
Indrajeet NikamandGitHub be835af48b docs: fix instructions to start projects in the docker setup flow (#995) 2023-07-30 10:52:31 -07:00
Charles BochetandGitHub 28765fe7c3 Inbox task 2 (#991)
* Add ability to properly cast a string, number, null to an integer

* Adding Tab UI component

* Only trigger chromatic when asked
2023-07-29 21:24:33 -07:00
Charles BochetandGitHub fc7380e0b8 Add ability to properly cast a string, number, null to an integer (#990) 2023-07-29 21:06:03 -07:00
Félix MalfaitandGitHub 55be401204 Add fake characters to prevent password managers from filling fields (#989) 2023-07-29 19:47:54 -07:00
Charles BochetandGitHub 8601ed04ae Add dueDate and assignee on notes (#988)
* Add dueDate and assignee on notes

* Fix tests

* Fix tests
2023-07-29 15:36:21 -07:00
Lucas BordeauandGitHub d9f6ae8663 Feat/generic editable cell all types (#987)
* Added generic relation cell

* Deactivated debug

* Added default warning

* Put back display component

* Removed unused types

* wip

* Renamed to view field

* Use new view field structure to have chip working

* Finished

* Added a temp feature flag

* Added double text chip cell

* Ok

* Finished tables

* Fixed icon size

* Fixed bug on date field

* Use icon index

* Fix

* Fixed naming

* Fix

* removed file from merge

* Fixed tests

* Coverage
2023-07-29 14:48:43 -07:00
Moussa BistamiandGitHub dc18bc40b0 Remove empty values from relation picker (#986)
fix: empty name values in SingleEntitySelectBase
2023-07-29 12:19:15 -07:00
Félix MalfaitandGitHub 5c376cbabb Add profile pictures to people and fix account/workspace deletion (#984)
* Fix LinkedIn URL not redirecting to the right url

* add avatars for people and seeds

* Fix delete account/workspace

* Add people picture on other pages

* Change style of delete button

* Revert modal to previous size

* Fix tests
2023-07-28 15:40:03 -07:00
Charles BochetandGitHub 557e56492a Various fixes on table, board, tasks (#983)
* Misc fixes

* Misc fixes

* Misc fixes

* Fix login
2023-07-28 15:20:32 -07:00
0bc80ce9ee chore: Add ui/tooltip stories (#966)
* Add ui/tooltip stories

Co-authored-by: Thiago Nascimbeni <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

* Fix linting

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>

---------

Co-authored-by: Thiago Nascimbeni <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2023-07-28 11:44:46 -07:00
d3bd248d30 chore: Add ui/modal stories (#967)
* Add ui/modal stories

Co-authored-by: Matheus <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Matheus <[email protected]>

* Fix the formatting

Co-authored-by: Benjamin Mayanja <[email protected]>
Co-authored-by: Matheus <[email protected]>

---------

Co-authored-by: Matheus <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2023-07-28 11:42:39 -07:00
Lucas BordeauandGitHub afaa962758 Feat/generic editable cell chip (#982)
* Added generic relation cell

* Deactivated debug

* Added default warning

* Put back display component

* Removed unused types

* wip

* Renamed to view field

* Use new view field structure to have chip working

* Finished

* Added a temp feature flag
2023-07-28 11:41:06 -07:00
d142376ef9 feat: I can delete my account easily (#977)
* Add support for account deletion

Co-authored-by: v1b3m <[email protected]>

* Add more fixes

Co-authored-by: Benjamin Mayanja <[email protected]>

* Add more fixes

Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
2023-07-28 10:09:43 -07:00
Jérémy MandGitHub 3daebd0e0c feat: search activities (#972) 2023-07-28 10:02:56 -07:00
ThaïsandGitHub 2304823dc6 docs: add DatePicker and ImageInput stories (#980)
Closes #979
2023-07-28 09:40:57 -07:00
Jérémy MandGitHub 44a9c2687f fix: front not running properly (#971) 2023-07-28 11:36:27 +02:00
Charles Bochet 2cc63e14aa Fix storybook tests 2023-07-27 23:40:54 -07:00
d0641084f9 feat: rename comment thread into activity (#939)
* feat: rename commentThread into activity server

* feat: rename commentThread into activity front

* feat: migration only create tables


feat: migration only create tables

* Update activities

* fix: rebase partial fix

* fix: all rebase problems and drop activity target alter

* fix: lint

* Update migration

* Update migration

* Fix conflicts

* Fix conflicts

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-27 23:22:16 -07:00
fcdde024a3 feat: Add workspace delete feature (#896)
* Add workspace delete feature

Co-authored-by: v1b3m <[email protected]>

* Add fixes and refactors

Co-authored-by: v1b3m <[email protected]>

* Add more fixes

Co-authored-by: v1b3m <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>

* Add workspace delete mutation

Co-authored-by: v1b3m <[email protected]>

* Complete v1 of deletion

Co-authored-by: Benjamin Mayanja <[email protected]>

* Revert unwanted changes

Co-authored-by: Benjamin Mayanja <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Update debouce import

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Fix server e2e tests on CI #3

* Fix server e2e tests on CI #4

* Fix server e2e tests on CI #5

* Added generic relation cell (#969)

* Added generic relation cell

* Deactivated debug

* Added default warning

* Put back display component

* Removed unused types

* fix: 906 edit avatar style (#923)

* fix: 906 edit avatar style

* fix: 906 add avatar size enum and mapping for font and height

* fix: 906 remove unused vars

* chore: optimize size of front docker image (#965)

* Enable to drag under New button on pipeline (#970)

* Add minor fix

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
Co-authored-by: 310387 <[email protected]>
Co-authored-by: Lucas Vieira <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-07-27 22:19:20 -07:00
Charles BochetandGitHub 8cf8183342 Enable to drag under New button on pipeline (#970) 2023-07-28 01:50:29 +00:00
Lucas VieiraandGitHub c13d6b4f60 chore: optimize size of front docker image (#965) 2023-07-27 16:39:16 -07:00
310387andGitHub 8c659b8b37 fix: 906 edit avatar style (#923)
* fix: 906 edit avatar style

* fix: 906 add avatar size enum and mapping for font and height

* fix: 906 remove unused vars
2023-07-27 16:37:12 -07:00
Lucas BordeauandGitHub f4b8a3decb Added generic relation cell (#969)
* Added generic relation cell

* Deactivated debug

* Added default warning

* Put back display component

* Removed unused types
2023-07-27 16:28:42 -07:00
Charles Bochet 3b796ee68c Fix server e2e tests on CI #5 2023-07-27 15:38:50 -07:00
Charles Bochet e7eecd5b54 Fix server e2e tests on CI #4 2023-07-27 15:22:10 -07:00
Charles Bochet 37beaa6d92 Fix server e2e tests on CI #3 2023-07-27 15:17:30 -07:00
Charles Bochet 0eac63852c Fix server e2e tests on CI #2 2023-07-27 11:59:11 -07:00
Charles Bochet 61205c2cb0 Fix server e2e tests on CI #1 2023-07-27 11:53:00 -07:00
157e5b9a2e feat: implement e2e test for CompanyResolver (#944)
* feat: wip e2e server test

* feat: use github action postgres & use infra for local

* feat: company e2e test

* feat: add company e2e test for permissions

* Simplify server e2e test run

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-27 09:48:40 -07:00
ThaïsandGitHub 9027406fdf feat: create ViewField model (#961)
* feat: create ViewField model

- Created ViewField prisma model
- Added ViewField server resolvers for findMany/updateOne
- Added getViewFields/updateViewField graphql queries

Closes #849

* chore: update node version in .nvmrc files
2023-07-27 09:12:26 -07:00
Jérémy MandGitHub e90f44bbfb feat: increase upload size limit (#962) 2023-07-27 09:07:38 -07:00
Jérémy MandGitHub 58530be78b feat: upload profile picture from google (#964)
* feat: upload profile picture from google

* fix: only add profile picture if user don't have any
2023-07-27 09:06:50 -07:00
52399d4dde TWNTY-895 - Add ui/checkmark stories (#960)
Add ui/checkmark stories

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: Thiago Nascimbeni <[email protected]>
2023-07-27 09:04:03 -07:00
brendanlaschkeandGitHub e3d5f0b26f Short variant for filter texts (#943)
* - added a short variant for filter labels in the filter bar

* - fixed tests
- moved colon to shortoperand

* - fixed formatting
2023-07-27 08:45:15 -07:00
brendanlaschkeandGitHub 03b619ebb5 Add Timeline End Icon (#945)
* -added timeline end icon

* - fixed styledDiv in component

* - fixed icon size
2023-07-26 23:28:39 -07:00
f62ec94d35 TWNTY-892 - Add ui/title stories (#955)
* Add ui/title stories

Co-authored-by: RubensRafael <[email protected]>

* Add requested changes

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Fix linter issues

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

---------

Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: v1b3m <[email protected]>
2023-07-26 23:00:41 -07:00
Lucas BordeauandGitHub 011d9e840f Feat/improve editable cell (#959)
* Removed isSomeInputInEditMode

* Removed console.log

* Added a first version of generic cell text

* Removed metadata from entity table  V1

* Fix

* Fix

* Fix
2023-07-26 22:53:57 -07:00
DevandGitHub 13f415a859 Update double cell input width to be fixed (#946)
Fix double cell input width to be fixed
2023-07-26 19:48:20 -07:00
Charles BochetandGitHub fb1229247d [Do not merge] Try ergomake (#958)
* Try ergomake

* Try redeploy
2023-07-26 18:46:18 -07:00
fdd3e789e7 Add pull request previews (#954)
Add ergomake

Co-authored-by: Lucas Vieira <[email protected]>
2023-07-26 18:03:19 -07:00
3b50f5969d Add ui/progress-bar stories (#936)
* Add ui/progress-bar stories

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>

* Add requested changes

Co-authored-by: RubensRafael <[email protected]>
Co-authored-by: v1b3m <[email protected]>

---------

Co-authored-by: v1b3m <[email protected]>
Co-authored-by: RubensRafael <[email protected]>
2023-07-26 17:53:35 -07:00
Charles Bochet 574d23084e Fix migrations 2023-07-26 02:59:14 -07:00
Charles Bochet f6faff407a Fix login 2023-07-26 02:44:43 -07:00
Charles BochetandGitHub 66585fce9a Refactor Checkbox (#932)
* Refactor Checkbox

* Complete note completion

* Fixes

* Fix login
2023-07-25 21:58:57 -07:00
Aditya PimpalkarandGitHub 09a019da5d (fix): Filter/sort button positioning (#928) 2023-07-25 17:23:34 -07:00
Lucas BordeauandGitHub b52745533a Added unused imports and vars and fixed lint (#929) 2023-07-25 17:18:25 -07:00
c0700c9b20 #841 Update opportunities confidence attribute (#921)
Co-authored-by: Jessica Li <[email protected]>
2023-07-25 16:55:43 -07:00
51cfc0d82c feat: refactoring casl permission checks for recursive nested operations (#778)
* feat: nested casl abilities

* fix: remove unused packages

* Fixes

* Fix createMany broken

* Fix lint

* Fix lint

* Fix lint

* Fix lint

* Fixes

* Fix CommentThread

* Fix bugs

* Fix lint

* Fix bugs

* Fixed auto routing

* Fixed app path

---------

Co-authored-by: Charles Bochet <[email protected]>
Co-authored-by: Lucas Bordeau <[email protected]>
2023-07-25 16:37:22 -07:00
Charles Bochet 92b9e987a5 Fix vscode using relative imports 2023-07-25 11:34:14 -07:00
59eb10ccc4 fix(#753): add autoComplete attribute for remove suggestion of passwo… (#913)
* fix(#753): add autoComplete attribute for remove suggestion of password managers

* fix(#753): add autoComplete attribute for remove suggestion of password managers

* Update front/src/modules/ui/inplace-input/components/InplaceInputDoubleText.tsx

* Update front/src/modules/ui/inplace-input/components/InplaceInputDoubleText.tsx

* Update front/src/modules/ui/inplace-input/components/InplaceInputDoubleText.tsx

* Update front/src/modules/ui/inplace-input/components/InplaceInputDoubleText.tsx

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-25 11:21:45 -07:00
ThaïsandGitHub a5ca913158 docs: allow custom props in catalog decorator (#916)
Relates to #702
2023-07-25 11:02:13 -07:00
a2ccb643ff Optimize table loading (#866)
* wip

* wip

* Ok

* Deleted unused code

* Fixed lint

* Minor fixes

* Minor fixes

* Minor Fixes

* Minor merge fixes

* Ok

* Fix storybook tests

* Removed console.log

* Fix login

* asd

* Fixed storybook

* Added await

* Fixed await

* Added sleep for failing test

* Fix sleep

* Fix test

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-25 11:00:15 -07:00
c2d6abde65 [Bug fix] Reference container name instead of localhost for postgres url in .env file (#808)
* url should reference container name instead of localhost

* add context for the postgres URL change, when installing with Docker. Also minor grammar/typo changes.

* return the postgres URL to its original value, which corresponds with the recommended (yarn) installation.

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-25 10:17:49 -07:00
Charles BochetandGitHub d6afbe8e8e Introduce accent for chips (#911)
* Introduce accent for chips

* Add top bar on Mobile on Settings pages

* Various fixes

* Fix according to peer review
2023-07-24 16:49:33 -07:00
b2f4108d89 feat: rename commentThread into activity migration (#876)
* feat: rename commentThread into activity migration

* fix: migration

* Only apply creation migration

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-24 14:28:42 -07:00
ThaïsandGitHub c16d420d17 Docs/storybook improvements (#877)
* docs: use PageDecorator

* docs: use decorators in TableHeader stories

* docs: use theming parameter in App stories

* docs: enable auto-generated docs for stories

Closes #702
2023-07-24 11:06:37 -07:00
Charles BochetandGitHub 07180af8c0 Improve tests (#871) 2023-07-24 00:57:56 -07:00
310387andGitHub 2b885f2496 fix: 801 dont show if name empty (#854)
* fix: 801 dont show if name empty

* fix: 801 add same logic to multiple entity
2023-07-23 17:02:21 -07:00
21d5133564 Feat/improve mobile display (#843)
* Ok 1

* Finished

* Fix PR

* Fix PR

* Fix desktop

* Fix

* Fix absolute listen click outside

* console.log

* Fix according to code review

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-23 10:53:35 -07:00
Charles BochetandGitHub 742791bd92 Fix tests (#848)
* Fix tests

* Fix tests

* Fix tests
2023-07-22 23:29:58 -07:00
Charles Bochet 0731487990 Fix tests 2023-07-22 22:19:42 -07:00
Charles Bochet e6ce7f3bb9 Fix code coverage 2023-07-22 19:47:36 -07:00
Charles BochetandGitHub 4ac01f2931 Fix login (#844)
* Fix login

* Fix according to PR

* Fix tests

* Fix tests
2023-07-22 19:43:28 -07:00
310387andGitHub c4468d60f6 fix: 802 if no text dont show avatar (#831)
* fix: 802 if no text dont show avatar

* fix: 802 use guard for empty check and allow whitespace only case
2023-07-22 16:28:33 -07:00
Ashwini GuptaandGitHub 7f6b39339b [807] fix: people page icon (#823) 2023-07-22 18:49:56 +02:00
willkrakowandGitHub 097627fcab Fix typos/language in docs (#824)
* Fix typos/language in docs

* Fix typos
2023-07-22 18:48:31 +02:00
Charles Bochet 9deb46141c Fix tests 2023-07-22 00:48:52 -07:00
Charles Bochet 1ae5c703f5 lower functions coverage temporarily 2023-07-22 00:39:22 -07:00
Ikko Eltociear AshimineandGitHub ad3e0ea340 Fix typo in local-setup.mdx (#822)
PostgresSQL -> PostgreSQL
2023-07-22 00:38:07 -07:00
Lucas BordeauandGitHub 62720944fa Feat/open input not focus (#811)
* Fixed click outside

* Finished

* Fixed tests
2023-07-21 22:09:02 -07:00
0f3f6fa948 Enh/improve skeletton loading (#810)
* Update skeleton styling

* Update skeleton color

* Remove useless color

* Add loading test case

* naming

* Improve test

* Fix colors

* Add import

* Lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-21 22:07:11 -07:00
Charles BochetandGitHub 775b4c353d Refactor login (#748)
* wip refactor login

* wip refactor login

* Fix lint conflicts

* Complete Sign In only

* Feature complete

* Fix test

* Fix test
2023-07-21 22:05:45 -07:00
Emilien ChauvetandGitHub 725a46adfa Feature/edit name from show page (#806)
* Enable company name edition from page

* Enable editing persons as well

* Add styling for titles

* Better manage style with inheritance

* Add stories for poeple editable fields

* Remove failing test

* Revert "Remove failing test"

This reverts commit 02cdeeba64276a26f93cf4af94f5857e47d36fff.

* Fix test

* Update name

* Fix location

* Rename tests

* Fix stories
2023-07-21 15:44:42 -07:00
Emilien ChauvetandGitHub 73e9104b16 Add linkedinUrl and job titles to table views (#809)
* Add linedinUrl and job titles to table views

* Keep address in the end

* Add mock data
2023-07-21 15:18:19 -07:00
ThaïsandGitHub 56cff63c4b docs: use ComponentDecorator (#800)
Related to #702
2023-07-21 12:02:21 -07:00
Charles BochetandGitHub 79fccb0404 Add optimistic rendering on right drawer title (#786)
* Add optimistic rendering on right drawer title

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix
2023-07-20 23:58:21 -07:00
Charles BochetandGitHub e65c7ee6fe Update install (#785) 2023-07-20 22:59:03 -07:00
Charles BochetandGitHub 5b8a454eeb Update seeds and mocks (#784) 2023-07-20 22:15:13 -07:00
Lucas BordeauandGitHub bf41182810 Open link in new tab and added cell url (#782) 2023-07-21 03:40:56 +02:00
Lucas BordeauandGitHub 066b4854d9 Added autofocus on note title (#783) 2023-07-21 03:39:28 +02:00
Charles BochetandGitHub 6562c1527b Update darkTheme (#781)
* Update darkTheme

* Add font color variation to IconButton
2023-07-21 02:33:35 +02:00
Emilien ChauvetandGitHub 9c230f448e Feat/rename and color picker (#780)
* WIP

* Add menu for rename/color select

* Add stories

* Remove useless code

* Fix color name, add icon for selected color

* Remove useless comment

* Unify color vocabulary

* Fix rebase

* Rename story

* Improve hotkeys and imports
2023-07-20 16:45:43 -07:00
a2087da624 feat: disallow removing all comment thread targets (#779)
* feat: disallow removing all comment thread targets

Closes #431

* Rename variables

* Fix console error

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-20 16:17:43 -07:00
872ec9e6bb feat: disable atomic operation on nestjs graphql models (#751)
* feat: no atomic

* feat: update front not atomic operations

* feat: optional fields for person model & use proper gql type

* Fix bug display name

* Fix bug update user

* Fixed bug avatar URL

* Fixed display name on people cell

* Fix lint

* Fixed storybook display name

* Fix storybook requests

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-07-20 19:23:35 +00:00
Max MergenthalerandGitHub 663c4d5c3f doc: Update README.md with suggestions (#773)
Update README.md with suggestions

I changed some minor stuff for readability.
2023-07-20 08:34:19 +02:00
8cd426fab8 Add minor UI updates (#772)
* Add minor UI updates

* Fix lint

* Fix company board card fields

* Fix company board card fields

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-19 22:40:52 -07:00
7670ae5638 Added tooltip on overflowing texts (#771)
* Ok

* Fixes

* Fix according to PR

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-19 21:23:42 -07:00
Charles BochetandGitHub 60b50387a7 Update readmes (#770)
* Update readmes

* Update readmes

* Update readmes
2023-07-19 18:16:33 -07:00
Emilien ChauvetandGitHub 5fb7d753ef Various styling improvements (#766)
* Various styling improvements

* Add card styling

* Fix select when editing fields

* Add colors

* Refactor prevent click
2023-07-19 15:31:53 -07:00
d7efed9f89 Fix flashing title for note (#761)
* Fix flashing title for note

* Remove unused check

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-19 22:05:54 +00:00
Lucas BordeauandGitHub 411266475d Fixed refetch query (#760) 2023-07-19 15:02:41 -07:00
Lucas BordeauandGitHub c8065f82e8 Expand on right drawer (#769)
Ok
2023-07-20 00:00:50 +02:00
Charles BochetandGitHub 3336e6960d Rework gray scale (#768)
* Rework gray scale

* Change grayscale AGAIN

* Change grayscale AGAIN

* Change grayscale AGAIN
2023-07-19 21:56:06 +00:00
Andy RaeandGitHub cafb3259c6 Update README.md (#762) 2023-07-19 14:17:25 -07:00
BonaparaandGitHub 3f522c5e29 Update README.md (#759) 2023-07-19 20:38:20 +02:00
Charles BochetandGitHub 04c9748a96 Improve provisionning new accounts (#757)
* Improve provisionning new accounts

* Fix lint
2023-07-19 11:23:53 -07:00
Lucas BordeauandGitHub 16aa507d50 Minor fixes (#758) 2023-07-19 11:22:51 -07:00
Emilien ChauvetandGitHub 3ed4e7d0d9 Add point of contact field (#754)
* WIP add point of contact field

* Simplify probability field

* Improvements

* Solve bug when new value is 0
2023-07-19 10:29:37 -07:00
Charles Bochet d9c48fb05a Fix broken link in doc 2023-07-19 09:53:15 -07:00
Charles BochetandGitHub ca5191169f Update docs, remove password strong regex, hide tasks (#755)
* Update docs, remove password strong regex, hide tasks

* Update docs
2023-07-19 09:45:31 -07:00
Jérémy MandGitHub ce3e023a00 feat: server lint import & order (#750) 2023-07-19 14:01:32 +02:00
Félix MalfaitandGitHub 8af88d1ab3 README update (#749)
* README update

* Fix linter
2023-07-19 11:50:07 +02:00
Emilien ChauvetandGitHub c2fb8fd040 Add probability picker on Opportunity card (#747)
* Fix padding

* Update date input component

* Add Probability picker component on opportunity card

* lint
2023-07-18 23:54:34 -07:00
8a23a65c17 Fixed story for person show page (#746)
* Fixed story for person show page

* Remove console.logs

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-18 23:51:54 -07:00
Lucas BordeauandGitHub 7ecb098c55 Feat/editable fields update (#743)
* Removed console log

* Used current scope as default parent scope for fields

* Finished editable fields on people show page

* Added stories

* Console log

* Lint
2023-07-19 00:43:16 +00:00
Charles BochetandGitHub 5ee8eaa985 Make color scheme optimistically udpated (#745) 2023-07-19 00:35:03 +00:00
Emilien ChauvetandGitHub f98e49c26e Opportunity fields (#744)
* Add opportunity probability and point of contact

* Have requests sent properly

* Add probaility field
2023-07-19 02:32:15 +02:00
Charles Bochet 87a116d369 Fix upload image 2023-07-18 15:46:30 -07:00
10f7b08fdc Add attachments (#733)
* Add attachments v1

* Refacto

* Add Policy checks

* Fix tests

* Remove generated files from git

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-18 15:24:03 -07:00
Lucas BordeauandGitHub 84018efc7d Added two editable fields on company board card (#738) 2023-07-18 21:02:45 +02:00
9378677744 Updated the Read.me for the HN release (#737)
* Update README.md

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-18 11:22:39 -07:00
19e165fc05 feat: implementing experience page (#718)
* feat: add color scheme toggle
* feat: colorScheme stored in UserSettings model
* feat: add stories
* fix: AnimatePresence exit not working

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-07-18 17:47:27 +00:00
4ec93d4b6a feat: default pipeline provisioning at workspace creation (#728)
* feat: default pipeline and pipeline stage on workspace creation

* Create seed data files, typo

* Naming

---------

Co-authored-by: Emilien <[email protected]>
2023-07-18 10:30:59 -07:00
BonaparaandGitHub f65d2f418e Add readme pictures (#736)
* Delete preview-dark.png

* Delete preview-light.png

* Add new images to static

* Update README.md

* Delete Preview-light.png

* Delete Preview-dark.png

* Add files via upload

* Update README.md
2023-07-18 17:24:56 +00:00
Emilien ChauvetandGitHub b313ba175d Fix warnings for sorts (#735) 2023-07-18 17:17:11 +00:00
5d4fad2d96 feat: select line on checkbox container click (#732)
* feat: select line on checkbox container click

Closes #703

* Make onChange optional

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-18 10:00:48 -07:00
fdb2011a96 feat: add back button in company details top bar (#729)
* feat: add back button in company details top bar

Closes #636

* Add back button on person page

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-18 09:33:37 -07:00
ThaïsandGitHub 434ea605a8 feat: close RightDrawer with ESC key (#719)
Closes #576
2023-07-18 09:02:08 -07:00
Jérémy MandGitHub 4d37270e74 fix: background ugly white dot (#730) 2023-07-18 15:00:57 +02:00
e1b5463841 Add link to company page (#727)
* Add link to company page

* Have company chip background color matchin the card's

* Revert "Have company chip background color matchin the card's"

This reverts commit 8e9575fd933f9efb8d6614ec7287d6be28b81f7e.

* Create chip variants

* Lint

* code style

* Fix tests

* Fix tests

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-18 00:14:56 -07:00
Charles BochetandGitHub 349caacb9f Update local setup doc (#726)
* Update local setup doc

* Update docs
2023-07-17 21:15:57 -07:00
Emilien ChauvetandGitHub 6301bc2fbf Feature/filter and sort board (#725)
* Get pipeline progress from stage IDs

* Rename hooks file

* Addd first amount filter

* Add remaining filters

* Design fixes

* Add filtering on creation date or amount

* Fix card updates and creations with the new state management

* Keep ordering when dropping a card

* Add remainint sorts

* Make board header more generic

* Move available filters and sorts to board options

* Fix decorators for test

* Add pipeline stage ids to mock data

* Adapt mock data

* Linter
2023-07-17 19:32:47 -07:00
Charles Bochet 9895c1d5d6 Fix clicks do not work anymore 2023-07-17 19:15:47 -07:00
Charles BochetandGitHub a972705ce6 Improve test coverage and refactor storybook arch (#723)
* Improve test coverage and refactor storybook arch

* Fix coverage

* Fix tests

* Fix lint

* Fix lint
2023-07-17 17:14:53 -07:00
Lucas BordeauandGitHub 5b21657c4e Feat/harmonize chips cell fields (#724)
* Wip

* Finished

* Fix lint
2023-07-17 17:14:09 -07:00
ThaïsandGitHub 8b7314cd39 fix: fix kanban amount color (#717)
Fixes #673
2023-07-17 11:13:58 +02:00
Félix MalfaitandGitHub 15b09e8b35 Update LICENSE (#714) 2023-07-17 10:08:37 +02:00
Charles BochetandGitHub b76047d255 Fix ImageInput object-fit, fix People page title (#712) 2023-07-17 06:25:41 +00:00
Charles BochetandGitHub 4cb856a180 Design fixes (#696)
* Design fixes

* Fix design

* unused code

* Fix tests
2023-07-16 17:36:40 -07:00
Charles BochetandGitHub 6ced8434bd Uniformize folder structure (#693)
* Uniformize folder structure

* Fix icons

* Fix icons

* Fix tests

* Fix tests
2023-07-16 14:29:28 -07:00
Charles Bochet 900ec5572f Fix linter 2023-07-16 10:36:07 -07:00
Félix MalfaitandGitHub 11405f561f Bug fix: avatar of account owner not displayed (#690)
* Begin - fix account owner not displayed

* Finish - profile pic of account owner not displayed
2023-07-16 10:03:19 -07:00
Charles Bochet 51d25c3e93 Fix merge conflict 2023-07-16 09:54:36 -07:00
Charles BochetandGitHub 037628ab1d Enable Task creation (#688) 2023-07-16 09:39:52 -07:00
Charles Bochet 098cd038bd Fix bugs on pipeline new card creation and checkboxes not scrollable 2023-07-16 01:19:26 -07:00
Charles Bochet fcdc82c07a Fix glitch on pipeline update stage title 2023-07-15 19:43:49 -07:00
Charles Bochet a2fcc3082f Fix according to peer review 2023-07-15 19:33:59 -07:00
Emilien ChauvetandGitHub 91c8068db1 Enable column edition, and fix ordering (#683)
* Enable column edition, and fix ordering

* Move queries to services

* Add total amounts for board columns

* Refactor totals selector as a family

* Fix 0-index issue

* Lint

* Rename selector

* Remove useless header

* Address PR comments

* Optimistically update board column names
2023-07-15 19:32:16 -07:00
Lucas BordeauandGitHub be21392737 Feat/company card fields (#686)
* wip

* Ok

* asd

* Fixed cancel submit

* Renamed

* Fixed
2023-07-15 19:17:31 -07:00
7959308e0b Add search to cmd bar (#667)
* Move useFilteredSearchEntityQuery from relation picker to search module

* refactor duplicated code with useFilteredSearchCompanyQuery

* Implement similar pattern for people than for companies with useFilteredSearchEntityQuery

* Fix warning from a previous PR

* Enable search from menu

* Add companies to search

* Fix ESLint

* Refactor

* Fix according to peer review

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-15 15:23:37 -07:00
Charles BochetandGitHub b982788100 Fix checkbox issues (#681)
* Fix checkbox issues

* Fix theme
2023-07-15 14:16:02 -07:00
Charles BochetandGitHub 2bbcf6980a Fix pipeline bug on scroll (#666)
* Fix pipeline bug on scroll

* Fix lint

* Fix lint
2023-07-15 11:00:32 -07:00
Emilien ChauvetandGitHub efd4ed16d6 Update checkbox API (#663)
* Update checkbox API

* Fix test
2023-07-14 18:44:32 -07:00
Charles BochetandGitHub b971464fe5 Design fixes (#665) 2023-07-14 18:43:16 -07:00
Emilien ChauvetandGitHub 0a319bcf86 Refacto board (#661)
* Refacto pipeline progress board to be entity agnostic

* Abstract hooks as well

* Move files

* Pass specific components as props

* Move board hook to the generic component

* Make dnd and update logic part of the board

* Remove useless call and getch pipelineProgress from hook

* Minot

* improve typing

* Revert "improve typing"

This reverts commit 49bf7929b6.

* wip

* Get board from initial component

* Move files again

* Lint

* Fix story

* Lint

* Mock pipeline progress

* Fix storybook

* WIP refactor recoil

* Checkpoint: compilation

* Fix dnd

* Fix unselect card

* Checkpoint: compilation

* Checkpoint: New card OK

* Checkpoint: feature complete

* Fix latency for delete

* Linter

* Fix rebase

* Move files

* lint

* Update Stories tests

* lint

* Fix test

* Refactor hook for company progress indexing

* Remove useless type

* Move boardState

* remove gardcoded Id

* Nit

* Fix

* Rename state
2023-07-14 17:51:16 -07:00
Charles BochetandGitHub e93a96b3b1 Refactor hotkyes in its own lib folder (#660)
* Refactor hotkyes in its own lib folder

* Lint

* Fix PR comments

* rename hotkeysScope into hotkeyScope
2023-07-14 12:27:26 -07:00
Félix MalfaitandGitHub 7bcea343e2 Design fixes for #615 and #637 (#658)
Fixes #615 and #637
2023-07-14 12:36:48 +02:00
Emilien ChauvetandGitHub ff69b17210 Reorder company columns (#656) 2023-07-13 21:41:12 -07:00
Jérémy MandGitHub 03364330d1 feat: snack-bar component (#626)
* feat: SnackBarProvider and queuing

* feat: use snack bar on onboarding errors

* feat: workspace copy use snackBar

* fix: remove magic number
2023-07-14 04:27:09 +00:00
Charles BochetandGitHub 551c3b5e60 Persist table cell values on cell close (#655)
* Persist table cell values on cell close

* Apply to all cells
2023-07-14 06:20:08 +02:00
ca1723f2e6 fix: fix cell border radius on soft focus (#649)
* refactor: add RootDecorator

* docs: add EditableCellText stories

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-07-14 00:03:23 +02:00
Lucas BordeauandGitHub d70234f918 Fix/table remove and mock data (#653)
* Removed tanstack react table

* Fixed remove table feature without tanstack table

* Fixed delete people and companies

* Fixed hotkeys on editable date cell

* Fixed double text

* Fixed company mock mode

* Fixed lint

* Fixed right click selection
2023-07-13 12:43:00 -07:00
Félix MalfaitandGitHub e8bd3b7a14 Design improvements (#645)
* Redesign checkbox components

* Fix spacing issue

* Fix cell hover color in dark mode

* Revert column order change because of commit conflict
2023-07-13 21:00:12 +02:00
Félix MalfaitandGitHub 15685018df Fix dark mode background (#643) 2023-07-13 20:57:26 +02:00
734e18e01a Refactor/remove react table (#642)
* Refactored tables without tan stack
* Fixed checkbox behavior with multiple handlers on click
* Fixed hotkeys scope
* Fix debounce in editable cells
* Lowered coverage

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-13 17:08:13 +00:00
e7d48d5373 Add validation on onboarding flow inputs (#556)
* feat: wip react-hook-form

* feat: use react-hook-form for password login

* feat: clean regex

* feat: add react-hook-form on create workspace

* feat: add react-hook-form on create profile page

* fix: clean rebased code

* fix: rebase issue

* fix: add new stories to go over 65%

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-12 16:53:48 -07:00
Emilien ChauvetandGitHub ab3d326000 Set title and icon for topbar (#627) 2023-07-12 14:40:29 -07:00
Félix MalfaitandGitHub e7a0f60ea0 Add total deal amount on top of pipeline column (#622)
Add total on top of pipeline column
2023-07-12 09:22:25 -07:00
Félix MalfaitandGitHub 1c3d68a537 Add click to reveal password (#624) 2023-07-12 07:59:01 -07:00
Félix MalfaitandGitHub daad2bab75 Fix spacing issue on show page (#623) 2023-07-12 07:54:16 -07:00
Deepak SinghandGitHub 6f90046779 fix: BUG - Left drawer profile menu item not hovered (#625) 2023-07-12 14:09:37 +02:00
5e0e449e4c Fix/table rerenders (#609)
* Fixed top bar rerenders

* Fixed rerender on editable cell

* Fix lint

* asd

* Fix

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-11 20:51:24 -07:00
b5de2abd48 Move filter and sort compoenets in a separate lib (#612)
* Move filter and sort compoenets in a separate lib

* Add SortAndFilterBar to the filter lib

* Abstract hotkeys scopes

* Fix hotkeys on filters

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-11 20:42:15 -07:00
Emilien ChauvetandGitHub e8d77833a7 Move code to a lib, remove table dependancy (#606)
* Move code to a lib, remove table dependancy

* Abstract yable context from filters

* Update missing hook

* Remove wording of active filter, simplify naming for edited filters

* lint
2023-07-11 17:05:08 -07:00
Charles BochetandGitHub 4150a7bb51 Fixing BlockNote readability darkMode + fixing impossible to create cards for companies without name or domainName (#605)
fix-first-feedbacks
2023-07-11 14:33:15 -07:00
Emilien ChauvetandGitHub 14caaf298a Feat/add invite link (#603)
* Add UI for invite link

* Use invite link

* Isolate link component

* Improve UX
2023-07-11 13:35:43 -07:00
Emilien ChauvetandGitHub 24bc2b72f9 Use seed for id generation in tests (#585)
* Use seed for id generation in tests

* Revert "Use seed for id generation in tests"

This reverts commit c5ae9ac6bf.

* Add hardcoded ids
2023-07-11 10:58:22 -07:00
Jérémy MandGitHub 718ad721cf feat: auth race condition & optimize ApolloFactory & too many pageview (#602) 2023-07-11 19:50:25 +02:00
Charles BochetandGitHub 55576cb638 Add possibility to invite members to workspace (#579)
* Add possibility to invite members to workspace

* Update endpoints

* Wrap up front end

* Fix according to review

* Fix lint
2023-07-10 23:33:15 -07:00
Charles BochetandGitHub e1161e96a9 Fix right drawer bug (#584) 2023-07-10 21:46:20 -07:00
Emilien ChauvetandGitHub ebf5f67f63 Fix board card glitches (#583) 2023-07-10 20:24:57 -07:00
5f98b70c6a Fix/scope hotkeys (#581)
* WIP

* asd

* Fix

* Fix lint

* Removed console log

* asd

* Removed isDefined

* Fix/debounce company card onchange (#580)

* Add internal state and debounce for editable text card

* Use debounce for date fields too

* Update refetch

* Nit

* Removed comments

* Ménage

---------

Co-authored-by: Emilien Chauvet <[email protected]>
2023-07-11 01:53:46 +00:00
Emilien ChauvetandGitHub 1c8aaff39d Fix/debounce company card onchange (#580)
* Add internal state and debounce for editable text card

* Use debounce for date fields too

* Update refetch

* Nit
2023-07-11 03:19:46 +02:00
Charles BochetandGitHub 03c6d1f19d Enable pipeline stage ordering (#577)
* Enable pipeline stage ordering

* Removing migration

* Remove Save button
2023-07-10 17:20:37 -07:00
Emilien ChauvetandGitHub eae583209e Use correct Query name (#575) 2023-07-10 16:26:39 -07:00
Emilien ChauvetandGitHub aa252612c1 Run codegen (#574) 2023-07-10 16:21:13 -07:00
Charles BochetandGitHub 5d071187f5 Fix bug autofill title (#573)
* Fix bug autofill title

* Remove useless loading
2023-07-10 15:20:57 -07:00
25eeada92c Design fixes (#555)
* Change placeholder color and design fixes for show page / sidebar

* Replace hardcoded border radiuses

* Improve border display for middle of button group

* Editor styling

* Editor font size

* Comment Bar positioning and remove scrollbar for 1px

* Add Comments section title

* Nit: match css style

---------

Co-authored-by: Emilien <[email protected]>
2023-07-10 11:24:20 -07:00
3079747c83 feat: colored avatar (#554)
* feat: colored avatar

* fix: use id instead of name & remove unused

* fix: remove unused

* Allow empty ID to avoid empty string

* Fix tests

* Add person chip story

---------

Co-authored-by: Emilien <[email protected]>
2023-07-10 11:24:09 -07:00
c9292365c0 feat: workspace update name and logo (#553)
* feat: workspace update name and logo

* fix: remove logs

* fix: disable warning until refacto

* Fix text

---------

Co-authored-by: Emilien <[email protected]>
2023-07-10 11:23:58 -07:00
Félix MalfaitandGitHub a2da3a5f09 Add ButtonGroup concept + Soon pill on button + implement in timeline (#551)
* Add ButtonGroup concept

* Add soon pill

* Fix incorrect wrapping behavior

* Implement button group in timeline
2023-07-10 14:06:35 +02:00
Jérémy MandGitHub c529c49ea6 Workspace member (#552)
* fix: clean small back-end issues

* fix: apollo factory causing infinite loop on token renew

* feat: small refactor and add ability to remove workspace member

* fix: test
2023-07-10 09:25:11 +00:00
Charles Bochet f2c49907a8 Fix bug latency on commentThread title edition 2023-07-09 23:14:09 -07:00
Charles Bochet 5b532dcfe7 Fix bug latency on commentThread title edition 2023-07-09 22:49:21 -07:00
94a913a41f Add "show company / people" view and "Notes" concept (#528)
* Begin adding show view and refactoring threads to become notes

* Progress on design

* Progress redesign timeline

* Dropdown button, design improvement

* Open comment thread edit mode in drawer

* Autosave local storage and commentThreadcount

* Improve display and fix missing key issue

* Remove some hardcoded CSS properties

* Create button

* Split company show into ui/business + fix eslint

* Fix font weight

* Begin auto-save on edit mode

* Save server-side query result to Apollo cache

* Fix save behavior

* Refetch timeline after creating note

* Rename createCommentThreadWithComment

* Improve styling

* Revert "Improve styling"

This reverts commit 9fbbf2db00.

* Improve CSS styling

* Bring back border radius inadvertently removed

* padding adjustment

* Improve blocknote design

* Improve edit mode display

* Remove Comments.tsx

* Remove irrelevant comment stories

* Removed un-necessary panel component

* stop using fragment, move trash icon

* Add a basic story for CompanyShow

* Add a basic People show view

* Fix storybook tests

* Add very basic Person story

* Refactor PR1

* Refactor part 2

* Refactor part 3

* Refactor part 4

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-09 22:25:34 -07:00
Félix MalfaitandGitHub ca180acf9f Update robots.txt (#549) 2023-07-09 14:37:49 -07:00
Charles Bochet 12ad852184 Remove bucket creation 2023-07-09 10:37:32 -07:00
Emilien ChauvetandGitHub 49c20907e8 Fix infinite loop when opening relation picker in comments pane (#548)
* Typo

* Remove hotkeys for relation picker
2023-07-08 20:09:00 -07:00
Charles Bochet fffb8c99cb Fix right drawer not capture keys conflicting with app shortcuts 2023-07-08 20:05:02 -07:00
Charles BochetandGitHub 691da0ef57 Fix Opportunities page bug, make image urls support base64 (#547) 2023-07-08 18:43:55 -07:00
795bead1bb Fix/relation picker (#546)
* FIx pickers

* Fix

* Fix lint

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-08 18:43:41 -07:00
Charles BochetandGitHub 9d25d003ca Bug Fix: company create from people + scroll settings (#545) 2023-07-08 18:15:39 -07:00
Emilien ChauvetandGitHub ce14d22744 Order users by first name (#543) 2023-07-08 18:09:29 -07:00
Lucas BordeauandGitHub 09efc49ef2 Fix text input bug (#544)
* Fix text input bug

* 200
2023-07-08 18:08:48 -07:00
Charles BochetandGitHub be7731b71a Upload Workspace logo during onboarding (#542)
* Upload image

* Upload image

* Fix tests

* Remove pictures from seeds

* Fix storybook

* Fix storybook

* Fix storybook
2023-07-08 16:46:04 -07:00
Lucas BordeauandGitHub e03d5ed8a7 Refactor/inplace input (#541)
* wip

* Changed all other components

* Removed console log

* Console.log

* lint

* Removed internal state

* Fix

* Lint
2023-07-08 16:45:52 -07:00
Charles BochetandGitHub b3d0061e0d Remove MockMode mocking apollo queries + Add profile picture image upload during onboarding (#539)
* Remove MockMode mocking apollo queries + Add profile picture image upload

* lower line code coverage until we have tests on hotkyes
2023-07-08 15:13:14 -07:00
Emilien ChauvetandGitHub 9cd5f7c057 Feat/navigate to signup if email does not exist (#540)
* Add userExists route

* Fix demo mode for login

* Improve sign in/up flow

* Remove redundant password length constraint

* Fix test
2023-07-08 15:02:39 -07:00
Charles BochetandGitHub 36ace6cc03 Add ability to remove profile picture on Profile Settings (#538)
* Add ability to remove profile picture on Profile Settings

* Fix lint

* Fix according to review
2023-07-08 10:41:16 -07:00
Charles BochetandGitHub e2822ed095 Fix tests (#537)
* Fix tests

* Fix lint
2023-07-07 23:11:38 -07:00
Emilien ChauvetandGitHub c26a7fda9a Add workspace members (#536)
* Add workspace members

* Remove workspace provider

* Lint
2023-07-07 18:56:22 -07:00
66dcc9b2e1 Feat/better hotkeys scope (#526)
* Working version

* fix

* Fixed console log

* Fix lint

* wip

* Fix

* Fix

* consolelog

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-07 18:53:05 -07:00
Charles BochetandGitHub 611cda1f41 Revert "Refacto/abstract inplace input" (#535)
Revert "Refacto/abstract inplace input (#530)"

This reverts commit c847bca293.
2023-07-07 18:10:51 -07:00
Charles BochetandGitHub 94ca61c887 Revert "Refacto/remaining inplace input cells" (#534)
Revert "Refacto/remaining inplace input cells (#531)"

This reverts commit 6446692f25.
2023-07-07 18:10:32 -07:00
Charles BochetandGitHub a975935f49 Connect profile picture upload to backend (#533)
* Connect profile picture upload to backend

* Fix tests

* Revert onboarding state changes
2023-07-07 17:50:02 -07:00
Emilien ChauvetandGitHub 6446692f25 Refacto/remaining inplace input cells (#531)
* Add inplace date input component

* Add inplace phone input component

* Add inplace double text input component

* Add inplace chip input component

* Remove useless styled component

* Reduce code through props destructuring
2023-07-07 15:00:01 -07:00
Charles BochetandGitHub f62fdc1219 Fix authentication with debug mode (#532)
Fix authent with debug mode
2023-07-07 14:10:04 -07:00
Emilien ChauvetandGitHub c847bca293 Refacto/abstract inplace input (#530)
* Move code to new folder

* Deduplicate code, remove dependancy on table

* Remove more table dependency

* Move close logic to input

* Migrate editable text cell

* Rename EditableTextInput

* Fix component test id
2023-07-07 12:11:57 -07:00
Charles BochetandGitHub 26b033abc9 Refactor client config (#529)
* Refactor client config

* Fix server tests

* Fix lint
2023-07-07 11:10:42 -07:00
Charles BochetandGitHub 11d18cc269 Fix auth (#527)
* Fix auth

* fix lint
2023-07-06 20:11:04 -07:00
Charles Bochet f6cf416bb2 Fix storybook build 2023-07-06 18:53:26 -07:00
Emilien ChauvetandGitHub 7d6adbaa73 Update company card (#512)
* Add card rows

* WIP - add amount

* Refactor board state to separate pipeline progress data and company data

* Add migration and generated code

* Pass pipeline progress properties to the comapny card

* WIP-editable

* Enable amount edition

* Nits

* Remove useless import

* Fix empty board bug

* Use cell for editable values on company card

* Add fields

* Enable edition for closeDate

* Add dummy edits for recurring and probability

* Nits

* remove useless fields

* Nits

* Fix user provider

* Add generated code

* Fix nits, reorder migrations, fix login

* Fix tests

* Fix lint
2023-07-06 18:41:44 -07:00
1144bd13ed feat: onboarding & profile edition (#507)
* feat: wip onboarding

* fix: generate graphql front

* wip: onboarding

* feat: login/register and edit profile

* fix: unused import

* fix: test

* Use DEBUG_MODE instead of STAGE and mute typescript depth exceed errors

* Fix seeds

* Fix onboarding when coming from google

* Fix

* Fix lint

* Fix ci

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-07-06 17:05:15 -07:00
Jérémy MandGitHub 0b7a023f3d fix: missing client query (#524) 2023-07-05 17:20:12 +02:00
Charles BochetandGitHub 3db15929a5 Hot Fix merge conflicts (#523) 2023-07-05 16:58:47 +02:00
Jérémy MandGitHub 2961fed932 feat: refactor storage module (#521)
* feat: refactor storage module

* fix: folder need to be kebab case

* fix: comment wrong auth
2023-07-05 14:34:39 +00:00
Deepak SinghandGitHub 6e1ffdcc72 feat: Skeleton loading #404 (#458)
* feat: Skeleton loading #404

* fix: skeleton loading

* fix: skeleton loading

* feat: Skeleton loading #404

* fix: skeleton loading

* fix: skeleton loading

* Update CompanyPickerSkeleton.tsx

* updated changes
2023-07-05 15:50:36 +02:00
Charles BochetandGitHub 9ea765fcfd Make auth module optional to conditionnaly load auth providers (#518)
* Make auth module optional to conditionnaly load auth providers

* Fixes
2023-07-05 15:46:09 +02:00
Charles Bochet 463994df1f Fix CI 2023-07-05 09:24:46 +02:00
Charles Bochet 1d7b20e1d6 Fix CI 2023-07-05 09:16:45 +02:00
Charles Bochet 67453ce925 Fix CI 2023-07-05 09:13:47 +02:00
Charles Bochet 81f851b362 Fix CI 2023-07-05 09:10:40 +02:00
Charles Bochet c86e548088 Fix CI 2023-07-05 09:09:29 +02:00
Deepak SinghandGitHub 9c09da18db fix: Create a client config function that is retrieved when app is loading (#496)
* fix: Create a client config function that is retrieved when app is loaded

* update index.tsx

* fixed linter issues
2023-07-05 00:28:59 +02:00
Charles Bochet 41edcd81d8 Fix CI on main 2023-07-05 00:04:05 +02:00
Charles BochetandGitHub 2afe933055 Make google auth optional on server side (#508)
* Make google auth optional on server side

* fix lint

* Fix according to review
2023-07-04 23:53:53 +02:00
Jérémy MandGitHub 6fc416da76 fix: displayName return undefined and drop displayName from user table (#505) 2023-07-04 20:08:15 +02:00
Emilien ChauvetandGitHub d83313cd93 Add hover effect for navbar collapsable button (#492) 2023-07-04 18:28:32 +02:00
Jérémy MandGitHub 5e1fc1ad11 feat: upload module (#486)
* feat: wip upload module

* feat: local storage and serve local images

* feat: protect against injections

* feat: server local and s3 files

* fix: use storage location when serving local files

* feat: cross field env validation
2023-07-04 14:02:44 +00:00
Lucas BordeauandGitHub 820ef184d3 Refactor/filters (#498)
* wip

* - Added scopes on useHotkeys
- Use new EditableCellV2
- Implemented Recoil Scoped State with specific context
- Implemented soft focus position
- Factorized open/close editable cell
- Removed editable relation old components
- Broke down entity table into multiple components
- Added Recoil Scope by CellContext
- Added Recoil Scope by RowContext

* First working version

* Use a new EditableCellSoftFocusMode

* Fixes

* wip

* wip

* wip

* Use company filters

* Refactored FilterDropdown into multiple components

* Refactored entity search select in dropdown

* Renamed states

* Fixed people filters

* Removed unused code

* Cleaned states

* Cleaned state

* Better naming

* fixed rebase

* Fix

* Fixed stories and mocked data and displayName bug

* Fixed cancel sort

* Fixed naming

* Fixed dropdown height

* Fix

* Fixed lint
2023-07-04 13:54:58 +00:00
Emilien ChauvetandGitHub 580e6024d0 Fix drag and drop for opportunity board (#503) 2023-07-03 16:40:51 -07:00
Emilien ChauvetandGitHub db5dfb3bdf Enable opportunity card deletion (#490)
* Add checkbox

* Add state management for selected opportunities

* Use recoil for selected items state, show action bar

* Deduplicate code

* Add delete action

* Enable delete

* Add color for selected cards

* update board state on delete

* Add stories

* Enable empty board

* Fix story

* Handle dark mdoe

* Nits

* Rename module

* Better naming

* Fix naming confusion process<>progress
2023-07-03 23:11:39 +02:00
Félix MalfaitandGitHub c871d1cc10 Commandbar and dark mode UI fixes (#491)
* Improve dark mode

* Improve commandbar style and add interactions
2023-07-01 08:38:45 -07:00
Félix MalfaitandGitHub 256bc24a8c Add cal.com office hours (#488)
Add office hours
2023-06-30 17:14:43 -07:00
Charles BochetandGitHub 8684a8d517 Fix hotkeys blocking comments (#487)
* Fix hotkeys blocking comments

* Fix tests
2023-07-01 02:09:49 +03:00
Jérémy MandGitHub f08ff68530 fix: google auth issue (#485) 2023-06-30 13:43:04 +02:00
Jérémy MandGitHub 19a1f2b9f8 feat: ui settings (#465) 2023-06-30 09:35:01 +00:00
Jérémy MandGitHub 91608a37f2 fix: fix auth in prod env (#481) 2023-06-30 09:34:45 +00:00
Jérémy MandGitHub cca36cf50f fix: rename event module into analytics and clean (#482) 2023-06-30 09:24:05 +00:00
Jérémy MandGitHub 7893d5dba5 fix: remove not working part (#484) 2023-06-30 11:55:35 +03:00
Jérémy MandGitHub 8e319900d0 fix: github actions (#483)
fix: test unused
2023-06-30 11:35:59 +03:00
Jérémy MandGitHub 433962321a feat: onboarding ui flow (#464)
* feat: onboarding ui flow

* fix: route naming and auth

* fix: clean unused imports

* fix: remove react.fc

* fix: infra dev remove package.json

* fix: remove usefull memoization

* fix: button stories

* fix: use type instead of interface

* fix: remove debug
2023-06-30 06:26:06 +00:00
Félix MalfaitandGitHub 3731380ce6 Fix tests on main (#479) 2023-06-29 22:30:56 -07:00
Félix MalfaitandGitHub eb7fb2ba8e Add Telemetry (#466)
* Telemetry v1

* Add package-lock.json to gitignore
2023-06-29 17:36:48 -07:00
Charles BochetandGitHub 74ea2718ca Fix table focus taking over auth and filter and sort (#478) 2023-06-30 00:24:06 +03:00
Emilien ChauvetandGitHub 30fd3320b7 Rename test commands (coverage storybook) (#476)
* Rename test commands

* Add coverage command in doc
2023-06-29 14:06:15 -07:00
Emilien ChauvetandGitHub fdfcae6ac5 Fix typo, add file tree (#475) 2023-06-29 11:36:40 -07:00
Morning1139AngelandGitHub 695ddd7a92 Func style allowing arrow (#461)
* eslint func-style rule added to server

* eslint func-style rule added to front-end
2023-06-29 11:19:03 -07:00
Jérémy MandGitHub 097b278b11 fix: add firstName and lastName to user model (#473)
* fix: add firstname and lastanme to user model

* fix: avoid undefined in displayName resolve field

* fix: user firstName and lastName instead of firstname lastname

* fix: person table proper naming firstName lastName

* fix: migrate front with firstName and lastName

* fix: make front-graphql-generate not working
2023-06-29 15:11:15 +00:00
Jérémy MandGitHub d9af205ccb feat: clean prisma file, add validation, add prisma editor (#472) 2023-06-29 15:41:58 +02:00
aa612b5fc9 Add tab hotkey on table page (#457)
* wip

* wip

* - Added scopes on useHotkeys
- Use new EditableCellV2
- Implemented Recoil Scoped State with specific context
- Implemented soft focus position
- Factorized open/close editable cell
- Removed editable relation old components
- Broke down entity table into multiple components
- Added Recoil Scope by CellContext
- Added Recoil Scope by RowContext

* First working version

* Use a new EditableCellSoftFocusMode

* Fixed initialize soft focus

* Fixed enter mode

* Added TODO

* Fix

* Fixes

* Fix tests

* Fix lint

* Fixes

---------

Co-authored-by: Lucas Bordeau <[email protected]>
2023-06-28 14:06:44 +02:00
Charles BochetandGitHub a6b2fd75ba Enable comment deletion on CommentDrawer (#460)
* Enable comment deletion on people and companies page

* Add storybook test
2023-06-27 18:00:14 +02:00
Jérémy MandGitHub c9038bb93a Front small ui fixes (#428)
* fix: add ellipsis in all table cells

* fix: workspace click redirect to home

* fix: add company chip story and edit comment cell story

* fix: remove cursor pointer on workspace name

* fix: snoop pill height

* fix: rebase
2023-06-27 17:56:48 +02:00
edee69bc07 Fix double Run CI (#459)
Co-authored-by: Charles Bochet <[email protected]>
2023-06-27 17:55:07 +02:00
Deepak SinghandGitHub 7a880bc9e8 fix: Correct space between menu icons and menu items text #423 (#456)
* fix: Correct space between menu icons and menu items text #423
2023-06-27 07:40:12 -07:00
Charles BochetandGitHub d6364a9fdd Apply new theme (#449)
* Apply new theme

* Fix storybook

* Fixes

* Fix regressions
2023-06-26 19:13:04 -07:00
Deepak SinghandGitHub 2a42ebb70d fix: Correct sorting sub-menu font-size #426 (#430) 2023-06-26 11:10:08 -07:00
Charles BochetandGitHub 7f43b3d04f Enable workflow to run on fork pull requests (#435) 2023-06-26 10:21:51 -07:00
827d6390e4 Refactoring shortcuts and commandbar (#412)
* Begin refactoring shortcuts and commandbar

* Continue refacto hotkeys

* Remove debug logs

* Add new story

* Simplify hotkeys

* Simplify hotkeys

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-06-25 22:25:31 -07:00
Charles BochetandGitHub 9bd8f6df01 Design fixes (#422) 2023-06-25 20:02:09 -07:00
Charles BochetandGitHub 643d090091 A few design fixes (#424) 2023-06-25 19:28:02 -07:00
Charles BochetandGitHub f0bbfb11ee Fix avatar storybook issue + fix Autosize input send button color (#389)
* Fix avatar storybook issue + fix Autosize input send button color

* Fix storybook font-size
2023-06-25 14:58:34 -07:00
Charles BochetandGitHub 3c5a270eca Update install instruction in docs (#376) 2023-06-25 13:14:23 -07:00
Charles BochetandGitHub 9c21975d2b Fix comment creation bug (#371) 2023-06-24 11:18:13 -07:00
31145c5518 feat: align auth api with front convention (#370)
* feat: align auth api with front convention

* fix: email password auth

* fix: proper file naming

* Fix login

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-06-23 22:43:54 -07:00
Jérémy MandGitHub c6708b2c1f feat: rewrite auth (#364)
* feat: wip rewrite auth

* feat: restructure folders and fix stories and tests

* feat: remove auth provider and fix tests
2023-06-23 08:49:50 -07:00
Félix MalfaitandGitHub 1c7980b270 Disable linter on generated code (#363) 2023-06-23 08:43:41 -07:00
Lucas BordeauandGitHub ceaf482f62 First working version of new dropdown UI (#360)
* First working version of new dropdown UI

* Removed consolelog

* Fixed test storybook

* Cleaned optional args
2023-06-23 10:39:16 +00:00
Charles Bochet 703f31632d Fix permissions 2023-06-22 15:38:33 -07:00
Charles BochetandGitHub 1b8b78d615 Various fixes (#362) 2023-06-22 14:57:08 -07:00
Charles BochetandGitHub ba1dd07e53 Fix mock mode transition to regular mode on login (#361) 2023-06-22 14:09:51 -07:00
Jérémy MandGitHub c4ad0171b0 feat: add missing abilities (#354)
feat: add all missing abilities rules on resolvers
2023-06-22 11:09:17 -07:00
Lucas BordeauandGitHub 4a2797c491 Feat/account owner picker (#359)
* Added account owner picker

* Regenerated graphql files

* Fixed pickers staying in edit mode with a new generic hook

* Fixed lint
2023-06-22 19:47:04 +02:00
Jérémy MandGitHub cd70209502 fix: workspace shouldn't be hidden in the output (#358) 2023-06-22 13:50:52 +00:00
Jérémy MandGitHub 06acfb8aab fix: token expires in not set properly (#357) 2023-06-22 15:15:04 +02:00
Jérémy MandGitHub ca283a2196 feat: prisma typed select (#347)
* feat: wip prisma gql select

* feat: stronger api using decorator

* feat: add PrismaSelect everywhere

* fix: remove unused

* fix: remove seed debug
2023-06-22 11:17:31 +02:00
Charles BochetandGitHub eb9be6894e Redesign settings profile (#353)
* Redesign settings profile

* Fix spacing

* Fix Company creation
2023-06-21 23:50:24 -07:00
3c1851b3c9 Improve auth and seeds (#352)
* Improve seeds

* Autofill password on local environment

* Fix PR

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-06-21 23:47:24 -07:00
Charles Bochet df6376dce0 Fix padding EditableCell DoubleText 2023-06-21 22:42:38 -07:00
Charles BochetandGitHub 817d6dcb05 Add ability to associate a new company to pipeline (#350)
* Add ability to associate a new company to pipeline

* Fix tests
2023-06-21 22:31:19 -07:00
Félix MalfaitandGitHub a65853dc2e Improve documentation (#349)
* Improve documentation content
* Improve documentation style
2023-06-21 16:23:31 -07:00
e679f45615 Feat/single entity select relation picker (#345)
* - Implemented recoil scoped state
- Implemented SingleEntitySelect
- Implemented keyboard shortcut up/down select

* Added useRecoilScopedValue

* Fix storybook

* Fix storybook

* Fix storybook

* Fix storybook

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-06-21 13:29:07 -07:00
Charles BochetandGitHub 8a330b9746 Use Graphql types in FE and complete mappers removal (#348)
Fix Typescript build issues
2023-06-21 10:52:00 -07:00
Jérémy MandGitHub b179d1f1f0 feat: wip casl policies (#334)
* feat: wip casl policies

* feat: add ability guard on pipeline resolvers

* fix: test
2023-06-20 19:31:11 -07:00
Sammy TeilletandGitHub 294b290939 338 on opportunities page when i associate a new company to a pipelinestage its persisted in db (#339)
* feature: add navigation for opportunities

* chore: add companies in pipeline seed

* feature: make the board scrollable

* feature: make the board scrollable vertically

* feature: remove board container

* feature: fix newButton style

* feature: add onClickNew method on board

* feature: call backend with hardcoded id for new pipeline progressable

* feature: refetch board on click on new

* feature: use pipelineProgressId instead of entityId to ensure unicity of itemKey

* feature: avoid rerender of columns when refetching
2023-06-20 19:27:02 -07:00
Charles BochetandGitHub 8790369f72 Implement Authentication with email + password (#343)
* Implement Login screen ui and add RequireNotAuth guard

* Perform login through auth/password-login flow
2023-06-20 19:17:31 -07:00
Charles BochetandGitHub e2d8c3a2ec Add tests on top of ui/buttons, ui/links and ui/inputs (#342) 2023-06-20 18:47:00 -07:00
Lucas BordeauandGitHub e2eb40c1ea Relation picker module (#335)
- Created a relation picker module
- Added a CustomeEntityForSelect type
2023-06-20 09:06:53 +00:00
Sammy TeilletandGitHub c120903a45 Persist update on board drag and drop (#328)
* chore: move dnd lib comment aligned with import

* feature: add onUpdate on board

* chore: remove multi entity pipelines

* feature: add pipelineProgressableType field

* feature: fetch progressableType in board

* feature: implement on update to persist progress change
2023-06-20 10:56:36 +02:00
Lucas BordeauandGitHub 950a0b77fe Fixed refetch query for GetCommentThreadsByTargets (#336)
* Fixed refetch query for GetCommentThreadsByTargets

* Improvement : use apollo util getOperationName to de-hard code refetch queries arrays
2023-06-19 15:44:05 +00:00
96a53ad765 refactor: remove mappers (#326)
* refactor: remove mappers

* chore: generate graphql types

* lint: remove useless import

* Remove preset-react-create-app from storybook addons

* test: remove old tests

* Upgrade storybook version

* Remove sb preset-cra and add sb svgr loader

* chore: remove figma image url from storybook

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-06-19 14:07:16 +00:00
Lucas BordeauandGitHub c8c4a953c2 309 have comment relation picker show up above the relation field (#332)
* Added a floating ui manual offset to have the dropdown on top of the relation box

* Autofocus on dropdown search
2023-06-19 15:51:35 +02:00
Charles BochetandGitHub 5904a39362 Design Auth index (#325) 2023-06-18 23:51:59 +02:00
Charles BochetandGitHub ffa8318e2e Add Auth Index page (#323) 2023-06-18 00:18:13 +02:00
Charles BochetandGitHub 49462c69a2 Refactor Layout (#322)
* Refactor Layout

* Fix storybook

* Fixing tests by forcing msw version before regression
2023-06-17 21:24:15 +02:00
Félix MalfaitandGitHub 5ae5f28dcb Add new story for darkmode (#317)
* Add a new story for dark mode

* Reorganize storybook menu

* Fix command menu margins

* Fix tests
2023-06-17 14:52:49 +02:00
299ca293a8 feat: refactoring auth & add email password login (#318)
* feat: wip

* fix: issues

* feat: clean controllers and services

* fix: test

* Fix auth

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-06-17 13:42:02 +02:00
d13ceb98fa 306 implement multi relation picker for person and try to factorize relation picker (#319)
* Removed useless folder

* First working version

* Refactored MultipleEntitySelect and splitted into 2 components

* Added TODO

* Removed useless Query

* Fixed refetch

* Fixed naming

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-06-17 10:13:30 +02:00
Charles BochetandGitHub 7f25f16766 Fix some icon display size + fix padding issue on EditableChip component (#314)
* Fix some icon display size + fix padding issue on EditableChip component

* Fix according to PR

* Fix server generate and deploy scripts

* Fix image size on Opportunities board

* Fix lint

* Fix according to PR
2023-06-16 14:16:35 +02:00
Charles Bochet 98127d1d4c Fix server deploy script 2023-06-16 13:31:29 +02:00
Jérémy MandGitHub 2cd081234f chore: refacto NestJS in modules (#308)
* chore: wip refacto in modules

* fix: rollback port

* fix: jwt guard in wrong folder

* chore: rename folder exception-filter in filters

* fix: tests are running

* fix: excessive stack depth comparing types

* fix: auth issue

* chore: move createUser in UserService

* fix: test

* fix: guards

* fix: jwt guard don't handle falsy user
2023-06-16 10:38:11 +02:00
Félix MalfaitandGitHub 5921c7f11d Split theme into files (#313) 2023-06-16 08:50:48 +02:00
Charles BochetandGitHub 540ad4929d Felix icons (#312)
* Fix icon size in table top bar

* Replace building icon

* Replace Employees icon

* Replace map icon

* Replace calendar icon

* Replace Target icon
2023-06-15 18:07:56 +02:00
Lucas BordeauandGitHub d28a762661 Finished relation picker for companies (#305)
* Finished relation picker for companies

* Minor fixes
2023-06-15 16:53:59 +02:00
Charles BochetandGitHub f0910b3fbb Fix doc setup (#302) 2023-06-15 10:37:00 +00:00
Jérémy MandGitHub 467a1618f0 Update doc & split prisma generate (#299)
* feat: split prisma generate

* fix: update doc
2023-06-15 12:15:57 +02:00
Charles BochetandGitHub 763534ff45 Add update, create and delete pipelineProgress endpoints (#297) 2023-06-15 12:08:13 +02:00
fdfb6f10e2 Implemented comment thread target picker with new dropdown components (#295)
* First draft of new relation picker and usage in comments
---------

Co-authored-by: Charles Bochet <[email protected]>
2023-06-14 18:48:26 +02:00
Charles BochetandGitHub 2a1804c153 Update graphql schema and upgrade yarn lock files (#296)
* Update graphql schema
2023-06-14 18:30:24 +02:00
Charles BochetandGitHub d5817608a7 Fix production deploy scripts (#294)
* Fix production server deploy

* Fix production server deploy
2023-06-14 17:53:21 +02:00
Charles Bochet deee7a0f64 Fix production server deploy 2023-06-14 17:26:14 +02:00
Charles Bochet ab9643bbb2 Fix prod install scripts 2023-06-14 17:25:16 +02:00
Charles Bochet 16fbe5a607 Fix prod install scripts 2023-06-14 17:23:48 +02:00
Félix MalfaitandGitHub c20108e088 Add VSCode extensions (#283) 2023-06-14 17:20:12 +02:00
Charles Bochet 7a0cdbcd05 Fix production docs deploy 2023-06-14 17:11:12 +02:00
Charles Bochet 78ab7e235f Fix production front deploy 2023-06-14 17:10:08 +02:00
Sammy TeilletandGitHub 287168f691 289 on opportunities page i see person and company card layout read only (#293)
* feature: create boardCard component

* test: add snapshot for BoardCards

* feature: fix typename of company

* feature: add max width on BoardItem

* feature: design CompanyBoardCard

* feature: Add People picture and name

* feature: design PeopleCard

* feature: fix font weight for card header

* test: fix storybook for board

* test: add unit test for column optimistic renderer
2023-06-14 17:06:50 +02:00
Charles BochetandGitHub 5381e28253 Add workspace scoping to pipeline progress and expose findManyPipelineeProgress on graphql (#292)
Add workspace scoping to pipeline progress and expose findManyPipelineProgress on graphql
2023-06-14 17:05:15 +02:00
31f3950439 Add a custom rule to prevent colors from being hardcoded outside of theme (#288)
* Add a custom rule to prevent colors from being hardcoded in ESLint

* Refactor colors

* Create packages folder and fix colors

* Remove external dependency for css alphabetical order linting

* Fix install with yarn

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-06-14 16:56:29 +02:00
Sammy TeilletandGitHub bf6fb0ba70 282 on opportunities page data pipeline + companies + people is fetched from be (#285)
* feature: get pipelines columns from backend

* feature: display item not found instead of crashing

* feature: add BoardCard component

* feature: display items from the backend

* refactor: extract useBoard in a hook

* refactor: export only loading and error from useBoard

* refactor: create var pipelineStage

* feature: implement support for Company boards
2023-06-14 10:37:44 +02:00
Félix MalfaitandGitHub eb8fc50ff1 Add rule to order css in styled components alphabetically (#284)
* Add plugin

* Run plugin
2023-06-14 07:59:16 +02:00
Félix MalfaitandGitHub 830b76cd9a Icon refactoring (#287)
* Refactor icons

* Fix additional icons
2023-06-14 07:55:54 +02:00
Félix MalfaitandGitHub 7e73f013d1 Enable Turbosnap for Chromatic (#286) 2023-06-13 18:45:18 +02:00
Félix MalfaitandGitHub b9c41a1dcd Add settings page (#273)
* Add settings page

* Add 'soon' pill and logout

* Refactor components and layout

* Begin improving mobile display

* Add stories and refactor
2023-06-13 17:10:57 +02:00
Sammy TeilletandGitHub c20fd458ae 278 refactor uiboard opportunitiesboard + put state in recoil (#280)
* refactor: move Board file to opportunities

* refactor: dropable props are move in ui component

* refactor: rename provided in droppableProvided

* refactor: rename provided in draggableProvided

* refactor: rename BoardCard in BoardItem

* refactor: rename BoardCard in BoardItem file

* refactor: BoardItem use children instead of content

* refactor: Extract StyledColumnContainer

* refactor: create method to get optimistic new board after update

* refactor: move getOptimisticNewBoard in board UI

* refactor: make provided nullable

* lint: remove unused import
2023-06-13 17:02:09 +02:00
Lucas BordeauandGitHub 3a719001de Refactor/dropdown menu (#279)
* Created dropdown menu UI component with story

* Added all components for composing Dropdown Menus

* Better component naming and reordered stories

* Solved comment thread from review
2023-06-13 15:15:19 +02:00
Charles BochetandGitHub 16e1b862d9 Refresh comments threads and count on new comment (#276)
* Refresh comments threads and count on new comment

* Fix tests
2023-06-12 19:32:18 +02:00
Félix MalfaitandGitHub 3341539eb2 Add arrow up/down+enter navigation to select relation (#275)
* Add arrow up/down+enter navigation to select relation
2023-06-12 17:52:16 +02:00
Charles BochetandGitHub be863a22c9 Truncate comment user name when too long (#274) 2023-06-12 16:39:56 +02:00
Félix MalfaitandGitHub c99fa74e2f Fix frontend test: no need to convert to UTC (#266) 2023-06-12 13:33:58 +02:00
Lucas BordeauandGitHub 05d22c1b06 Lucas/t 295 fix checkbox column width (#261)
* wip

* Fixed table and column width

* Use last resizable column instead of table width 100%

* Removed comments

* Fix lint

* Fixed table theme

* Removed left clickable margin

* Removed overflow

* Added table width
2023-06-12 10:47:35 +00:00
Charles BochetandGitHub 551cd00790 Auto deploy on main (#272)
* Auto deploy on main
2023-06-11 21:01:08 +02:00
Félix MalfaitandGitHub c53be4febc Add Right click to take action (#263)
* Add Right click to take action

* Create Position type and style row with background when selected
2023-06-09 18:36:39 +02:00
Félix MalfaitandGitHub f6e1e626fd Make the sidebar collapsable (#260)
* Make the sidebar collapsable

* Fix padding

* Automatically collapase sidebar and hide container on mobile

* Hide navbar content when navbar is collapsed

* Update naming convention for states
2023-06-09 15:09:21 +02:00
Lucas BordeauandGitHub 1d6f1f4551 Fixed space between filter & sort button is too large (#259)
Fixed filters CSS
2023-06-09 11:07:11 +02:00
Lucas BordeauandGitHub ab1f1a3f67 Added shadow effect on table cell hover (#258)
Added shadow effect to replace border resizing components
2023-06-09 11:06:01 +02:00
Félix MalfaitandGitHub 024adb9221 Add cmd k to navigate pages (#254)
* Begin styled command bar

* Add 2 commands and improve styling

* Add storybook

* Move z-index to variables and use hotkey hook
2023-06-08 18:28:02 +02:00
Lucas BordeauandGitHub 4727c00a0a Lucas/t 365 on comment drawer i see a add comment section with severa (#256)
* Added comments and authors on drawer with proper resolving

* Fixed generated front graphql from rebase

* Fixed comment chip

* wip

* wip 2

* - Added string typing for DateTime scalar
- Refactored user in a recoil state and workspace using it
- Added comment creation

* Put theme and user state in generic providers

* Fix from rebase

* Fixed app theme provider removed from storybook

* Wip

* Fix graphql front

* Fixed backend bug

* - Added comment fetching in creation mode
- Fixed drawer overflows and heights

* - Fixed autosize validation button CSS bug

* Fixed CSS bug with drawer changing height if overflow

* Fixed text input too many event catched and useless error message

* Removed console.log

* Fixed comment cell chip

* Create comment thread on each comment action bar click

* Fixed lint

* Fixed TopBar height
2023-06-08 17:40:58 +02:00
Sammy TeilletandGitHub 49a99c8ae6 Sammy/t 392 aau i can drag and drop opportunities (#257)
* refactor: extract data from Board component

* feature: display board on opportunities page

* test: add strict mode in storybook

* chore: replace dnd to make it work with React 18 and strict mode

Atlassion has not fixed this issue in a year so we use the fork @hello-pangea/dnd
https://github.com/atlassian/react-beautiful-dnd/issues/2350

* refactor: move mocked-data in a file

* chore: use real column names in mock data

* feature: design columns

* feature: add New button at bottum of columns

* bugfix: move header out of dragable so the cards does not flicker on drop

* lint: remove useless imports

* refactor: rename board item key
2023-06-08 17:40:25 +02:00
Sammy TeilletandGitHub b827716d1b Sammy/t 394 aadev i have a storybook with drag and drop features (#255)
* feature: add Board component

* feature: add BoardColumn

* feature: add BoardCard

* chore: install react beautiful dnd

* refactor: use children instead of item parameter

* feature: wrap board in DragDropContext

* feature: wrap columns in dropable

* feature: wrap boardCard in draggable

* feature: add a second column

* refactor: rename columns to initialBoard

* refactor: use itemKeys instead if item directly

* feature: add key for react to render

* refactor: type the onDragEnd callback

* feature: drag and drop elements between columns
2023-06-08 15:09:40 +02:00
Lucas BordeauandGitHub ce4ba10f7b Lucas/t 369 on comment drawer i can reply to a comment thread and it (#206)
* Added prisma to suggested extension in container

* Added comments and authors on drawer with proper resolving

* Fix lint

* Fix console log

* Fixed generated front graphql from rebase

* Fixed right drawer width and shared in theme

* Added date packages and tooltip

* Added date utils and tests

* Added comment thread components

* Fixed comment chip

* wip

* wip 2

* - Added string typing for DateTime scalar
- Refactored user in a recoil state and workspace using it
- Added comment creation

* Prepared EditableCell refactor

* Fixed line height and tooltip

* Fix lint
2023-06-08 08:36:37 +00:00
Lucas BordeauandGitHub 5e2673a2a4 Lucas/t 366 on comment drawer when i have comments on the selected (#201)
* Fixed right drawer width and shared in theme

* Added date packages and tooltip

* Added date utils and tests

* Added comment thread components

* Fixed comment chip

* Fix from rebase

* Fix from rebase

* Fix margin right

* Fixed CSS and graphql
2023-06-07 10:48:44 +00:00
Sammy TeilletandGitHub b1bf050936 test: add story for table header (#204)
* test: add story for table header

* feature: wrap chips in a container and set shrink to 0 so they don't grow vertically

* feature: cancel button is darker

* feature: set gap between chip to 4px instead of 8

* lint: remove unused code

* bugfix: ChipContainer has a starting margin
2023-06-06 17:45:07 +02:00
Sammy TeilletandGitHub 86e00c3a03 Sammy/t 362 on people view when i click on comment bubble icon row level (#202)
* test: add empty comment test

* test: comments section opens on click on comments chip

* test: add a failing test for opening comment section

* feature: open comments drawer on click on comment chip

* test: refactor company test, create folders
2023-06-06 14:34:35 +02:00
Félix MalfaitandGitHub 2315504ee4 Add square logo without border radius (#199) 2023-06-06 09:37:42 +02:00
Felix Malfait 41fe78bc4c Enable dark mode and fix theme 2023-06-05 22:20:55 +02:00
Félix MalfaitandGitHub 3ae6405f4d Add Algolia Search + other quick improvements to docs (#198) 2023-06-05 18:48:12 +02:00
Sammy TeilletandGitHub c70bea9513 feature: display a message when user is not defined (#196)
* feature: display a message when user is not defined

* feature: display text in a fadein in case redirection is slow
2023-06-05 15:55:45 +00:00
Sammy TeilletandGitHub 4cde1d68e8 Sammy/t 367 on comment drawer update top right close icon to match figma (#195)
* style: add a story for right drawer topbar

* style: use same cross from Tb but rotate it
2023-06-05 15:46:28 +00:00
Sammy TeilletandGitHub 236437e4ff Sammy/t fix display of comment section (#197)
* feature: do not display commentChip if no comments

* style: add mocked data for comment sections
2023-06-05 17:36:56 +02:00
Sammy TeilletandGitHub 063ef8a4eb Sammy/t refactor services use generated code (#194)
* refactor: use generated queries for Companies

* refactor: remove useQuery from service, use generated code

* refactor: rename to ts file instead of tsx

* bugfix: use generatd queries, and fix non existing id in workspace member query
2023-06-05 17:36:14 +02:00
Lucas BordeauandGitHub fe70f30a29 Lucas/t 364 on comment drawer i can fetch all comment threads with (#193)
* Added prisma to suggested extension in container

* Added comments and authors on drawer with proper resolving

* Fix lint

* Fix console log

* Fixed generated front graphql from rebase
2023-06-05 15:23:29 +02:00
Sammy TeilletandGitHub 6de90024ef Sammy/t 363 comments count at row level depends on total comments number (#192)
* feature: add rightEndContent to editable cell

* refactor: use rightEndContent instead of comments sections

* refactor: move commentCount in a var

* feature: get commentsCount from backend

* refactor: use an index

* feature: use commentCount from backend on people

* refactor: rename commentCount for companies

* refactor: use generated queries, instead of useQuery
2023-06-05 14:41:27 +02:00
Charles BochetandGitHub d3684b34c5 Refactor Editable Cell (#191) 2023-06-04 22:47:49 +02:00
Charles BochetandGitHub 7b858fd7c9 Reorganize frontend and install Craco to alias modules (#190) 2023-06-04 11:23:09 +02:00
Charles BochetandGitHub bbc80cd543 Refactor backend and add exception handlers (#189) 2023-06-04 00:21:36 +02:00
Lucas BordeauandGitHub a2fe159c2c Feat/open comment drawer from comment chip (#187)
* wip

* Can open comment right drawer from company name cell
2023-06-02 17:51:17 +02:00
Lucas BordeauandGitHub 69c1095055 Created ComponentChip and CellComponentChip and their stories (#186)
* Created ComponentChip and CellComponentChip and their stories

* Fixed from comments

* Fixed icon color

* Fixed needle in a haystack bug
2023-06-02 17:22:48 +02:00
Charles BochetandGitHub a618636180 Add tests on Editable relation (#188) 2023-06-02 16:48:44 +02:00
Charles BochetandGitHub 97274db8b4 Expose pipeline and pipelinestage in graphql (#185) 2023-06-02 14:39:34 +02:00
Charles BochetandGitHub f23bbb9a68 Rename pipeline schema (#184) 2023-06-02 12:39:58 +02:00
Charles BochetandGitHub 0609994477 Implement comment count on person and company (#183) 2023-06-02 12:35:20 +02:00
Charles BochetandGitHub 2395f791c8 Add Pipelines models in server (#182)
* Hide workspace and refresh token from schema

* Add pipe models and migrations

* Add seeds

* Update FE graphql schema
2023-06-02 11:20:21 +02:00
Lucas BordeauandGitHub bf3097500a Lucas/t 223 i can add comments to companies or people using the right (#181)
* wip

* Implemented comment input text component

* Improved behavior
2023-06-01 19:49:37 +02:00
Félix MalfaitandGitHub f906533b29 Fix broken GraphiQL in documentation (#180) 2023-06-01 19:23:15 +02:00
Charles BochetandGitHub a1fe16812e Setup our own icons library (#177) 2023-06-01 19:22:35 +02:00
Charles BochetandGitHub 9ffd347655 Apply various frontend fixes (#179) 2023-06-01 19:22:26 +02:00
Félix MalfaitandGitHub 05c8fac6d6 Add docs CI and fix docs build (#176)
* Add docs CI and fix docs build

* Fix CI name
2023-06-01 16:21:31 +02:00
Lucas BordeauandGitHub 58bbadcc30 Lucas/t 353 checkbox should change state when clicking on their whole (#167)
* Added on click on Checkbox component

* - Added test in story
- Added sleep util
- Fixed click target collision (thanks to test !)

* Use a new CheckboxCell to wrap Checkbox

* Fixed lint

* Refactored CSS after comment

* Fixed tests
2023-06-01 13:29:53 +00:00
Félix MalfaitandGitHub 14c0119c4b Update documentation, add GraphiQL to docs (#175)
* Update docusaurus and fix security vulnerabilities

* Begin cleanup docs

* Remove redocusaurus

* Add graphiql in doc

* Add architecture schema

* New tableIcons and cleanup docs
2023-06-01 15:05:53 +02:00
Lucas BordeauandGitHub 52582124f9 Removed borders on workspace container (#171)
* Wip

* Added mocks on main App story and fixed small mock bugs

* Removed borders on WorkspaceContainer
2023-06-01 12:01:27 +02:00
Charles Bochet 621c3c3213 Build Storybook on main 2023-06-01 11:40:50 +02:00
Charles BochetandGitHub 51790d8484 Add chromatic testing (#170) 2023-06-01 11:20:05 +02:00
Félix MalfaitandGitHub e8f1146ae1 CLI to install project (#164)
* CLI to install project

* CLI fixes

* Update README.md

* Cleanup gitignore
2023-06-01 09:19:49 +02:00
Charles Bochet 7d87598953 Fix design filter dropdown 2023-06-01 09:12:23 +02:00
Charles Bochet 1ff1dd252c Fix tests 2023-06-01 01:09:48 +02:00
Charles Bochet 5b545e5bc6 Fix design Add button in top bar 2023-06-01 01:01:17 +02:00
Charles BochetandGitHub 902aa28150 Apply a few frontend fixes on dropdown (#169) 2023-06-01 00:56:32 +02:00
Charles Bochet 0881c098f0 Fix user workspace not returned 2023-05-31 18:40:08 +02:00
Charles BochetandGitHub e3402cc753 Two minor fixes on be (#168) 2023-05-31 18:33:26 +02:00
Lucas BordeauandGitHub 723ea462e8 Lucas/t 352 i dont want another input cell to open when i click outside (#163)
* Added logic to handle global edit mode

* Added recoil global edit mode state into generic editable components

* Fix lint

* Added tests
2023-05-31 16:33:11 +02:00
Félix MalfaitandGitHub c61beb1066 Reorganize icons for doc and manigest.json (#166)
* Reorganize icons for doc and manigest.json

* Fix icons path

* Fix path in index.html
2023-05-31 15:44:38 +02:00
Charles BochetandGitHub a3a3c1924f Add comments to Prisma Schema and GraphQL server (#162)
* Lowercase all relations in prisma/graphql schema

* Add Comments data model and graphql schema

* Make comments availalble on the api through resolvers and guard them

* Update front graphql schema

* Fix PR
2023-05-31 15:41:53 +02:00
Félix MalfaitandGitHub 8bd91139ca Update Readme title (#165) 2023-05-31 14:07:49 +02:00
Charles BochetandGitHub c0658e1591 Update company logo fetch api (#161) 2023-05-31 11:08:35 +02:00
Lucas BordeauandGitHub ed03111439 Fix linting after prisma generate (#158)
* fix: lint generated prisma files.

* Put lint command in server package.json
2023-05-31 08:39:47 +00:00
Charles BochetandGitHub 910d49f559 Fix layout behavior with Right panel open (#160) 2023-05-31 09:52:17 +02:00
Lucas BordeauandGitHub cb259d5cf1 Feat/add right drawer (#159)
* Added right drawer component and logic

* Refactored layout to accept right drawer
2023-05-30 21:03:50 +02:00
Charles BochetandGitHub 3674365e6f Scope server with workspace (#157)
* Rename User to AuthUser to avoid naming conflict with user business entity

* Prevent query by workspace in graphql

* Make full user and workspace object available in graphql resolvers

* Add Seed to create companies and people accross two workspace

* Check workspace on all entities findMany, find, create, update)
2023-05-30 20:40:04 +02:00
Charles BochetandGitHub 0f9c6dede7 Clean server post refactor to remove Hasura (#156)
* Clean BE post refactor to remove Hasura

* Add server CI
2023-05-29 22:42:24 +02:00
Charles BochetandGitHub 30d2337462 Add tests on companies page (#155) 2023-05-29 22:08:01 +02:00
Charles BochetandGitHub 2f50cdc07e Update FE case to match BE graphql case (camelCase) (#154) 2023-05-29 19:45:55 +02:00
BonaparaandGitHub de9cf61689 Added Progress section into Readme (#153) 2023-05-29 13:59:45 +02:00
Charles BochetandGitHub f935a6b723 Re-write test with storybook testing library (#150)
* Re-write test with storybook testing library

* Update CI
2023-05-29 11:02:38 +02:00
8f88605f32 Lucas/refactored table state with recoil (#149)
* Fixed ActionBar paddings and added transition on button hover

* Added recoil library for state management

* Refactor table state with recoil :

- Removed table internal states
- Added refetchQueries to plug apollo store directly into tables
- Added an action bar component that manages itself
- Use recoil state and selector for row selection
- Refactored Companies and People tables

* Moved hook

* Cleaned some files

* Fix bug infinite re-compute table row selection

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-05-27 08:41:26 +02:00
BonaparaandGitHub 9a3aa1d3d2 Readme visual update (#146)
* new header for Readme

* new header for Readme

* new header for Readme

* Correct naming and changed assets

* Applied Strapi method for dark-mode images

* Corrected logo-square-dark look

* Corrected a typo

* Corrected spacing
2023-05-27 08:39:26 +02:00
Charles BochetandGitHub b95ac8b40b Add logo on navbar workspace container (#147) 2023-05-26 17:41:21 +02:00
Charles BochetandGitHub 29fb781c26 Updating server configuration (#145)
Update server deploy staging
2023-05-26 16:30:41 +02:00
Charles BochetandGitHub 26d3716ae7 Implement scoping on be (#144) 2023-05-26 14:00:32 +02:00
Félix MalfaitandGitHub f79a45e7e6 Add svg logos to docs (#143) 2023-05-26 09:59:09 +02:00
Charles BochetandGitHub 112aa3720b Fix graphql Queries (#142) 2023-05-26 08:33:33 +02:00
Charles Bochet 17f5cf1766 Fix graphql queries 2023-05-26 00:31:43 +02:00
b0044ed1a2 Lucas/t 231 timebox i can create a company at the same time im creating (#140)
This PR is a bit messy:

adding graphql schema
adding create company creation on company select on People page
some frontend refactoring to be continued

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-05-25 23:09:23 +02:00
Sammy TeilletandGitHub fecf45f3bc Sammy/t 245 implement resolvers matching hasura (#139)
* chore: remove old resolvers

* refactor: move generated file in code base

* feature: use only necessary code in graphql

* feature: implement query companies

* feature: implement companies and relations

* feature: implement all companies resolvers

* feature: implement all people resolver

* feature: add use resolvers

* feature: implement resolvers for workspace and users
2023-05-25 17:10:00 +02:00
Charles BochetandGitHub 61099f99b8 Simplify setup again to run in vscode (#138) 2023-05-25 16:58:33 +02:00
Charles BochetandGitHub 34543b7fea Simplify local dev (#137) 2023-05-25 15:56:28 +02:00
Charles BochetandGitHub 80f9cc8797 Re-implement authentication (#136)
* Remove hasura and hasura-auth

* Implement authentication
2023-05-25 11:51:15 +02:00
5d06398d2e Remove hasura and hasura-auth (#134)
* Remove hasura and hasura-auth

* Move all models to prisma

* Start implementing graphql

* chore: clean package json

* chore: make the code build

* chore: get initial graphql.tsx file

* feature: use typegql as qgl server

* refactor: small refactoring

* refactor: clean tests

* bugfix: make all filters not case sensitive

* chore: remove unused imports

---------

Co-authored-by: Sammy Teillet <[email protected]>
2023-05-24 17:20:15 +02:00
Félix MalfaitandGitHub 7192457d0a Create SECURITY.md (#135)
Add a security policy and email address to the repo
2023-05-24 15:47:21 +02:00
Charles BochetandGitHub 67353eda8e Add all filters to tables + make column width fixed (#133)
* Add additional filters on companies and people page

* Make colunn width fixed

* Remove duplicate declaration of Unknown type
2023-05-21 22:47:18 +02:00
Charles BochetandGitHub 3370499ad8 Make many small frontend fixes (icons update, paddings, font-sizes) (#132) 2023-05-21 18:52:23 +02:00
Charles BochetandGitHub 5adc5b833c Enable filtering by creation date with datepicker (#131)
Enable to filter by date with datepicker
2023-05-19 13:17:32 +02:00
Charles BochetandGitHub 192b89a7b7 Make companies employees type a number (#130)
Make companies employees type a number to be consistent with api
2023-05-19 11:53:50 +02:00
Charles BochetandGitHub 20bf89ab1e Add employees and address filter on companies table page (#129) 2023-05-18 18:15:07 +02:00
Charles BochetandGitHub 5286dfd695 Refactor Filter type to accept Is, Is Not, Contains, Does not Contain (#128)
* Refactor Filter type to accept Is, Is Not, Contains, Does not Contain

* Remove any and add tests
2023-05-18 15:32:57 +02:00
Charles BochetandGitHub 4211d5872b Update favicon, manifest, page border (#127) 2023-05-18 10:07:47 +02:00
Charles BochetandGitHub cdc9e24ac0 Simplifies search through relations usage (#126) 2023-05-17 23:10:00 +02:00
Charles BochetandGitHub 434e020846 Restructure project (#124) 2023-05-17 22:31:16 +02:00
baca6150f5 Sammy/t 240 frontend filtering search is refactored (#122)
* refactor: use AnyEntity instead of any

* refactor: remove any and brand company type

* refactor: add typename for user and people

* bugfix: await company to be created before displaying it

* feature: await deletion before removing the lines

* refactor: remove default tyep for filters

* refactor: remove default type AnyEntity

* refactor: remove USers from filterable types

* refactor: do not depend on Filter types in Table

* Add tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-05-17 21:49:34 +02:00
Charles BochetandGitHub bc49815ff0 Make all fields optional on entities (#121)
* Make all fields optional on entities

* Rewrite tests

* Add test on TableHeader Cancel button
2023-05-17 14:50:49 +02:00
Sammy TeilletandGitHub 2facb383a2 bugfix: use row id instead of index to keep row selection after table… (#120)
* bugfix: use row id instead of index to keep row selection after table update

* bugfix: await creation before displaying the row and refetching
2023-05-17 14:43:09 +02:00
Charles BochetandGitHub 499752ed6b Refactor Filters and Search (#119) 2023-05-17 13:25:33 +02:00
Félix MalfaitandGitHub 96e3f2c7ea Small fixes: broken links and unused files (#116)
* Remove node modules and package.json from root
* Remove unused references to FontAwesome
* Fix documentation link
2023-05-12 10:35:06 +02:00
Charles BochetandGitHub 7208ec9e5a Fix bug get current user (#115)
* Fix bug get current user

* Add tests

* Fix design on Workspace section in Navbar
2023-05-12 09:02:39 +02:00
Charles BochetandGitHub 6b2ccd460d Update Favicon with new logo (#114) 2023-05-09 17:18:42 +02:00
Charles BochetandGitHub 2212900663 Enable deletion on table views (#113)
* Enable deletion on table views

* Add tests

* Enable deletion on table views for companies too
2023-05-08 23:26:37 +02:00
Charles BochetandGitHub 94ea9835a9 Enable multi-selection on table views (#112)
* Enable multi-selection on table views

* Enable multi-selection
2023-05-08 10:58:53 +02:00
Charles BochetandGitHub 48a75358b4 Enable add person on People Table (#111)
Add possibility to add Person on People table
2023-05-08 00:15:32 +02:00
Charles BochetandGitHub 50a4a97145 Add new line on Table Views (#110)
Add addition on Companies table
2023-05-07 23:41:22 +02:00
Charles BochetandGitHub 8c7815af79 Hide Opportunities as nothing is built yet and make company table fully editable (#109)
* Hide Opportunities as nothing is built yet and make company table fully editable

* Fix tests
2023-05-06 19:08:47 +02:00
Charles BochetandGitHub 760a49c5e3 Redesign DatePicker (#108) 2023-05-06 18:13:16 +02:00
Charles BochetandGitHub 41c46c36ed Create and EditableRelation component and make it generic (#107)
* Create and EditableRelation component and make it generic

* Refactor EditableCell component to be more flexible

* Complete Company picker on people page

* Fix lint
2023-05-06 16:08:45 +02:00
Charles BochetandGitHub 7ac2f8e1a6 Fix Cancel button behavior on TopFilterAndSort bar (#106) 2023-05-06 08:27:14 +02:00
354cdb6ad9 Sammy/t 195 aau i see filters and sort on company (#104)
* feature: add company filter by name

* feature: add fitler on URL

* feature: set icons for sorts

* feature: add creation date and address sorts

* Add tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-05-06 07:59:30 +02:00
Charles BochetandGitHub 406e1dc02e Enable Date edition on People view (#105)
* Enable Date edition on People view

* Fix linter
2023-05-05 18:52:04 +02:00
Sammy TeilletandGitHub b8cd842633 Sammy/t 194 aau when i set sort back and forth the (#103)
* bugfix: use original row id in cells to make sure it rerenders

* feature: implement multiple sorts

* bugfix: recreate new array to make sure component rerenders

* feature: orderBy is an array to keep orders

* test: snapshot the searchTemplate methods

* feature: remove the console log and return undefined

* feature: use orderByTemplate instead of hardcoded orderBy

* refactor: move sort and where filters helpers out of service

* refactor: rename file helper

* refactor: move assert function in test
2023-05-05 16:22:47 +02:00
Sammy TeilletandGitHub f022bf8335 Sammy/t 190 aau i see other filters city on people (#101)
* feature: add email filter

* feature: add city filter

* test: fix company search tests

* test: use the right value in test

* refactor: test all the filters in a loop
2023-05-05 12:16:25 +02:00
Charles BochetandGitHub 55eff2b7a2 Create Editable chip to edit cells containing chips (#102)
* Create Editable chip to edit cells containing chips

* Fix icons vertical alignment

* Fix linter

* Fix coverage
2023-05-05 12:15:41 +02:00
Sammy TeilletandGitHub 9cd57083f1 Sammy/t 192 aau whan i select does not include it is (#99)
* feature: add operand list to filters

* feature: implement not include

* feature: add operand on filters

* feature: use filters operand instead of defaults

* test: adapt test with new operands

* refactor: remove useless %% in gql where

* test: test fullname filter

* test: add test for where rendering of filters
2023-05-05 10:25:06 +02:00
89dc5b4d60 Make full name editable on People page (#100)
Co-authored-by: Charles Bochet <[email protected]>
2023-05-04 18:38:29 +02:00
f6b691945c Make phone editable on people's page (#98)
* Make phone editable on people's page

* Make City editable

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-05-04 17:27:27 +02:00
e65fd3d6a5 Update Edit Inplace behavior and style (#97)
Co-authored-by: Charles Bochet <[email protected]>
2023-05-04 16:03:13 +02:00
Sammy TeilletandGitHub 3605c0034c feature: display only 5 results in filter search (#96)
* feature: display only 5 results in filter search

* feature: Display laoding in a dropdown item

* test: use testid insread of text
2023-05-04 12:58:43 +00:00
6a8a8f0728 Add Filters on Table views (#95)
* Add filter search logic

WIP Filter search

Implement filters

test: fix sorts tests

test: fix filter test

feature: search person and display firstname in results

feature: fix test for filter component

test: mock search filters

refactor: create a useSearch hook

refactor: move debounce in useSearch and reset status of filter selection

feature: debounce set filters

refactor: remove useless setSorts

feature: add where variable to people query

feature: strongly type Filters

feature: update WhereTemplate method

feature: implement filtering on full name

feature: type the useSearch hook

feature: use where reducer

refactor: create a type for readability

feature: use query and mapper from filters

feature: implement filter by company

feature: search filter results on filter select

feature: add loading and results to search results in filters

refactor: move render search results in a function

feature: display a LOADING when it loads

feature: split search input and search filter for different debounce

refactor: remove some warnings

refactor: remove some warnings

* Write test 1

* Write test 2

* test: useSearch is tested

* test: update names of default people data

* test: add a filter search

* Test 3

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-05-04 13:54:46 +02:00
27d5edc031 Fetch workspace and user from database (#94)
Co-authored-by: Charles Bochet <[email protected]>
2023-05-04 11:09:06 +02:00
Felix Malfait 1490f986f2 Fix previous PR (.npmrc no longer needed) 2023-05-03 17:32:22 +02:00
9bc3aa1fb9 Replace Fontawesome Pro by React-Icons/FA (#93)
* Fontawesome -> ReactIcons cleanup

* No need for npmrc anymore

* Complete migration

* Fix tests

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-05-03 17:24:07 +02:00
f28edd405f I can open the project in GitHub (#92)
* Ignore node_modules

* Use bash-compatible dotenv format

While still being compatible with dotenv, this
also allows sourcing the file to export all
variables in bash.

* Add prettier extension to recommendations

* Move to port 5001 to avoid conflict with macOS services

* Add workspace

* Add devcontainer

This automatically starts with all environment
variables available locally.

It brings up services which are dependent on each
other individually and verifies health before
moving on to the next service.

* Split init into clean, up, and logs tasks.

This allows the developer to set up .env and .npmrc
files before running services, and does not require
starting from a clean db every time the devcontainer
is restarted.

* Copy .env when creating codespace

* Automatically run UP command upon devcontainer creation

* Fix log message

---------

Co-authored-by: Felix Malfait <[email protected]>
2023-05-03 11:34:10 +02:00
Anders BorchandGitHub 27070b374e In place edit company info (#90)
* Add update company functionality

* Fix padding in cells with chips

* Add icons to table headers
2023-04-28 06:50:04 +00:00
Anders BorchandGitHub d5c1bd6365 Handle missing account owner (#89) 2023-04-28 07:40:40 +02:00
571cb6ed5c Style filter key in bold in filter and search bar (#86)
Co-authored-by: Charles Bochet <[email protected]>
2023-04-27 17:28:17 +02:00
Anders BorchandGitHub 00f0a36457 Implicitly start hasura console (#88) 2023-04-27 17:28:04 +02:00
Anders BorchandGitHub d4b1b2f661 Companies table (#79)
* Add columns to companies:
* account_owner_id
* employees
* address

Add foreign key constraint companies_account_owner_id_fkey
to auth.users.id

* Add select permissions to:
* account_owner_id
* employees
* address

Add relationship between companies and auth.users.

* Update Companies interface to include:
* account_owner_id
* employees
* address

Opportunity is expected to be replace by actual opportunity in a separate PR.

* Add GetCompanies query

* Add initial companies table

* Update test to use mock apollo provider

* Update to match changed company column names

* Add company interface mapping tests

* Test entire object

* Add test for companies being rendered in table.

* Add test for sorting reduce.

* Fix prettier errors
2023-04-27 12:46:43 +02:00
Félix MalfaitandGitHub 42bf653e4a Improve documentation (#82)
* Propose new doc architecture

* Many improvements to documentation (styling, structure...)

* Remove modules added inadvertently + continue improving styling

* Swizzle navbar item to add support for custom icon

* Additional doc styling

* Setup docs for API and redirect homepage for docs
2023-04-26 19:10:17 +02:00
Sammy TeilletandGitHub 35cf3ee801 Sammy/t 138 when i select an option i see it (#84)
* feature: remove selected filter item

* feature: add searchable field in dropdown
2023-04-26 19:10:05 +02:00
cabe6d4c36 Add empty opportunity page (#83)
* Add empty opportunity page

* Fix coverage

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-04-26 18:00:06 +02:00
Sammy TeilletandGitHub 884080a9da refactor: extract render into methods (#81) 2023-04-26 17:38:05 +02:00
Charles Bochet 04051e737f Fix long table scroll 2023-04-26 17:29:00 +02:00
6c7eb53333 Add seeds and move to uuid (#80)
Co-authored-by: Charles Bochet <[email protected]>
2023-04-26 16:42:01 +02:00
Sammy TeilletandGitHub 5aec7ca730 Sammy/t 134 i see all filters in the dropdown (#78)
* feature: add filter dropdown

* test: add story for FilterDropdown

* feature: display filterOperand on top of dropdown

* feature: display filter operand

* feature: fix index and display selected filter

* refactor: set TopOption button inside dropdown file

* feature: move availableFilters outside the fitler component

* refactor: make the available sorts and filter optionnal

* refactor: rename availableSorts

* feature: add a resetState property on onOutsideClick

* feature: add filters and set  filters on Dropdown component

* feature: set filters on click in dropdown

* test: verify button is active after filters are set

* feature: display sorts and filters

* refactor: move SelectedFilters in SortAndFilter

* refactor: move SelectedFilters in dedicated file

* refactor: remove Id and use Key
2023-04-26 14:19:34 +00:00
1c8a4058c3 Fix html entities and newline handling (#77)
* Fix html entities and newline handling

This forces contenteditable to behave as single line input,
and properly handles html entities.

* Proposal without reacteditable

* Fix tests and re-add focus styleé

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-04-26 11:58:40 +02:00
Anders BorchandGitHub e19a85a5d0 Build fixes (#76)
* Fix compose syntax error

It turns out that docker compose does not like a literal `true`
but it will accept a `"true"` string.

* Added missing && operators
2023-04-26 09:53:11 +02:00
Charles Bochet 04d498668d Remove broken link in doc 2023-04-25 23:50:31 +02:00
Charles Bochet 4fa80663f6 Build docs for production 2023-04-25 23:46:39 +02:00
Charles Bochet 86586b70c7 Fix Dockerfile docs 2023-04-25 23:27:51 +02:00
d2c6a71c9e Fix server local build (#75)
* Fix server local build

* Build docs locally and for prod

---------

Co-authored-by: Charles Bochet <[email protected]>
2023-04-25 17:47:15 +02:00
ae7bad65ca Setup GraphQL Code Generator (#74)
* chore: add types of schema

* Ease codegen use on FE

* chore: ignore prettier in generated files

* lint: generated files

* feature: strongly type filter of query

* chore: ignore generated files in prettier

* chore: eslint ignore generated files

---------

Co-authored-by: Sammy Teillet <[email protected]>
Co-authored-by: Charles Bochet <[email protected]>
2023-04-25 17:25:30 +02:00
Sammy TeilletandGitHub a93c92c65c Sammy/t 131 i see a ascending descending option in (#73)
* refactor: use safe css selector

* feature: onclick update the order option

* feature: set option in the dropdown

* feature: display icon for sort options

* refactor: indent key so react does not complain of conflicting keys

* feature: align icon and text

* feature: fix size of icon to align text

* feature: create design for TopOption in dropdown

* refactor: set font weight in style

* feature: finalise design of TopOption

* refactor: rename option to sort

* refactor: remove order from the sortType

* refactor: move sort mapper in service

* test: selection of Descending in SortDropdownButton

* refactor: fix styme-component warning

* feature: add sorting by people

* refactor: set SortFields types for tables

* feature: add sort by company

* refactor: rename sortFields to singular

* refactor: rename option to SortDirection
2023-04-25 16:29:08 +02:00
Anders Borch 463b5f4ec9 Mock apollo client.
Remove unit test argument.
2023-04-25 12:55:27 +02:00
Anders Borch a6254197b1 Add contenteditable change event test 2023-04-25 12:55:27 +02:00
Anders Borch 4e517fa8f9 Add map back to gql person 2023-04-25 12:55:27 +02:00
Anders Borch 443f8ed663 Added update test 2023-04-25 12:55:27 +02:00
Anders Borch 8ed09d61ef Refactor GraphqlPerson to GraphqlQueryPerson
A GraphqlQueryPerson has an id which is used in mutations.
2023-04-25 12:55:27 +02:00
Anders Borch b6c7149b66 Use EditableCell for email 2023-04-25 12:55:27 +02:00
Anders Borch b62fac3aee Map Person to GraphqlMutationPerson 2023-04-25 12:55:27 +02:00
Anders Borch 38132749c2 Add updatePerson function 2023-04-25 12:55:27 +02:00
Anders Borch 24a228bd44 Add EditableCell 2023-04-25 12:55:27 +02:00
Charles BochetandGitHub cf9afcc90f Merge pull request #71 from twentyhq/cbo-design-fixes
Fix small design feedbacks
2023-04-25 12:16:34 +02:00
Charles BochetandGitHub 6284677fca Merge pull request #72 from twentyhq/cbo-horizontal-scroll
Add horizontal scroll on tables
2023-04-25 12:16:12 +02:00
Charles Bochet 8de2d345ed Add horizontal scroll on tables 2023-04-25 12:14:31 +02:00
Charles Bochet 63feef5727 Fix small design feedbacks 2023-04-25 11:34:04 +02:00
Charles BochetandGitHub 67e4e79623 Merge pull request #69 from twentyhq/sammy/t-130-when-a-sort-is-selected-i-see-the-sort
feature: add property isActive for dropdown buttons
2023-04-24 18:39:35 +02:00
Sammy Teillet f7c53dbdeb feature: set the right sort on click 2023-04-24 18:17:01 +02:00
Sammy Teillet 0f4dcc1957 refactor: extract dropdown for Sort dropdown 2023-04-24 18:05:29 +02:00
Charles Bochet 9971da59a6 Fix server build 2023-04-24 18:04:55 +02:00
Charles Bochet 250b51ec4a Fix server build 2023-04-24 17:36:28 +02:00
Sammy Teillet 795f9e7af8 refactor: create SortDropdownButton 2023-04-24 17:35:43 +02:00
Charles Bochet fc4a7d1486 Fix server build 2023-04-24 17:30:12 +02:00
Charles Bochet f6341a422b Fix server build 2023-04-24 17:24:58 +02:00
Charles Bochet 7b2033e5a4 Fix bug prisma build on server 2023-04-24 17:20:20 +02:00
Charles Bochet f1058ffcf5 Fix bug prisma build on server 2023-04-24 17:19:21 +02:00
Charles Bochet ec245f20c6 Build prisma client based on schema 2023-04-24 17:10:50 +02:00
Sammy Teillet 7cf1f913b0 feature: add property isActive for dropdown buttons 2023-04-24 17:01:26 +02:00
Charles BochetandGitHub d4152fdcff Merge pull request #68 from twentyhq/cbo-add-user-to-workspaces-on-signup
Assign user to workspace on signin
2023-04-24 17:01:24 +02:00
Charles Bochet 7ae7efb523 Fix 2023-04-24 17:00:14 +02:00
Charles Bochet 29b6109e54 Fix tests 2023-04-24 16:53:24 +02:00
Sammy TeilletandGitHub 911eb48250 Merge pull request #67 from twentyhq/sammy/t-129-i-see-all-text-sorts-available-in-the
feature: Add all sortable fields of People table
2023-04-24 15:47:35 +02:00
Sammy Teillet 19385e00c0 feature: fix background color of dropdown item to be fully transparent 2023-04-24 15:39:36 +02:00
Sammy Teillet 4e3acf21d2 feature: set the right border radius for dropdown items 2023-04-24 15:29:24 +02:00
Sammy Teillet bb8f61212b feature: add all the sortable fields for people 2023-04-24 15:01:18 +02:00
Sammy Teillet 19903219c3 refactor: move sorts in peolpe-table 2023-04-24 14:59:53 +02:00
Sammy Teillet 99aa39f2ba refactor: keep type of sortsAvailable while having type assertion 2023-04-24 14:57:57 +02:00
Sammy Teillet c3da5fa5f4 feature: put react app in strict mode 2023-04-24 14:56:44 +02:00
Sammy Teillet 6e353f590c feature: add email in sorts fields 2023-04-24 14:56:20 +02:00
Charles Bochet 6d2c8bbdf9 Assign user to workspace on signin 2023-04-24 14:53:48 +02:00
Sammy Teillet a5909bd6ff feature: keep callbacks between two renders 2023-04-24 14:49:40 +02:00
Sammy Teillet 2acd98370d bugfix: remove infinite renderloop of onSortUpdate 2023-04-24 14:46:39 +02:00
Sammy Teillet c7dc9cf83b bugfix: fix direction and zindex of dropdown 2023-04-24 14:18:22 +02:00
Sammy Teillet be947bdc8f refactor: strongly type keys of sorts 2023-04-24 14:02:38 +02:00
Sammy Teillet 095a6886ae refactor: move sortable fields in People 2023-04-24 14:00:14 +02:00
Sammy Teillet bc91e97695 refactor: move sortable fields in table 2023-04-24 13:55:13 +02:00
Charles BochetandGitHub 00ad3a89b5 Merge pull request #66 from twentyhq/anders/t-166-i-can-update-people-and-company-data-in
Add write permissions for user to people and companies
2023-04-24 13:28:28 +02:00
Charles BochetandGitHub 8e290c8933 Merge pull request #65 from twentyhq/anders/t-162-dev-refactor-data-layer-to-a-different
Refactor people query into separate file.
2023-04-24 13:27:52 +02:00
Anders Borch efd6138877 Use GET_PEOPLE in mock 2023-04-24 12:28:22 +02:00
Anders Borch b5cbf219e3 Add write permissions for user to people and companies
Add insert, update, delete permissions without any custom checks.

It is assumes that custom checks will be added as a part of the
workspace authorization ticket.
2023-04-24 11:53:28 +02:00
Anders Borch 47bdabd5aa Refactor people query into separate file. 2023-04-24 11:10:56 +02:00
Charles BochetandGitHub a5bfeef2d6 Merge pull request #64 from twentyhq/cbo-fetch-jwt-token
Refresh JWT when expired
2023-04-21 17:33:39 +02:00
Charles BochetandGitHub 1fdce4ee03 Merge pull request #63 from twentyhq/anders/t-105-i-see-a-sales-pipeline-designed-with
Add pipe chip
2023-04-21 17:32:26 +02:00
Charles Bochet d3e9709e08 Refresh token when token has expired 2023-04-21 17:31:17 +02:00
Anders Borch 06aa78bc00 Set default pipe icon 2023-04-21 16:28:25 +02:00
Anders Borch be601c58b1 Add pipe chip 2023-04-21 16:03:29 +02:00
Charles BochetandAnders Borch 049664b98e Require accessToken to browse pages 2023-04-21 15:53:47 +02:00
Charles BochetandGitHub 4655544197 Merge pull request #61 from twentyhq/cbo-fetch-jwt-token
Fetch jwt token from hasura-auth with refresh_token
2023-04-21 14:39:08 +02:00
Charles Bochet 678363d8fd Fix according to PR 2023-04-21 14:37:46 +02:00
Charles BochetandGitHub aac70a635a Merge pull request #60 from twentyhq/anders/t-112-i-see-a-cancel-button-to-cancel-a-sort
Add cancel button
2023-04-21 14:21:23 +02:00
Charles BochetandGitHub e1aaebc31c Merge pull request #58 from twentyhq/add-docs
Add Docusaurus
2023-04-21 14:18:52 +02:00
Anders Borch 4885e3598a Add cancel button.
Add test to ensure that cancel button can remove an item.
2023-04-21 14:17:09 +02:00
Charles Bochet c5f2850a3b Fetch jwt token from hasura-auth with refresh_token 2023-04-21 14:07:02 +02:00
Charles BochetandGitHub f98f0e942e Merge pull request #57 from twentyhq/cbo-fetch-refresh-token
Store refresh token on login
2023-04-21 09:37:48 +02:00
Charles Bochet cd18e952b9 Store refresh token on login 2023-04-21 09:33:57 +02:00
Charles BochetandGitHub fe10c0ba7d Merge pull request #59 from twentyhq/cbo-finalize-filters
Finalize sort created_at filter
2023-04-21 09:04:47 +02:00
Charles Bochet 79e8d9c84b Finalize sort created_at filter 2023-04-21 09:03:19 +02:00
Charles Bochet 0f09464f14 Finalize sort created_at filter 2023-04-21 09:00:50 +02:00
Felix Malfait 1e3540863a Improve styling 2023-04-20 22:57:55 +02:00
Charles BochetandGitHub 007debcee2 Merge pull request #56 from twentyhq/sammy/t-111-when-created-at-sort-is-applied-table
Sammy/t 111 when created at sort is applied table
2023-04-20 18:47:50 +02:00
Sammy Teillet 3a7b1077f8 test: wait for rows to be displayed 2023-04-20 18:44:43 +02:00
Felix Malfait ae5a73b347 Begin setup search 2023-04-20 18:11:55 +02:00
Sammy Teillet b5affcce3f test: fix mocks for person request 2023-04-20 18:08:20 +02:00
Sammy Teillet a915d15573 refactor: remove useless vars 2023-04-20 18:03:15 +02:00
Sammy Teillet 7d745ab143 refactor: rename setSorts to onSortsUpdate 2023-04-20 17:58:26 +02:00
Felix Malfait db62346bfa Cleanup and start organizing docs 2023-04-20 17:35:16 +02:00
Sammy Teillet e0a19bdd43 refactor: rename and remove default data 2023-04-20 16:59:03 +02:00
Sammy Teillet fbd338ee7d feature: apply the sorts to the query 2023-04-20 16:56:42 +02:00
Sammy Teillet 33473aea92 feature: add setSorts from parent component 2023-04-20 16:38:29 +02:00
Sammy Teillet 9122815b07 feature: order people results 2023-04-20 15:56:59 +02:00
Sammy Teillet b3acfa465b refactor: move mapper in interface 2023-04-20 15:41:18 +02:00
Sammy Teillet b8032e9605 refactor: move person types in interface 2023-04-20 15:39:56 +02:00
Sammy TeilletandGitHub 7ade04b79e Merge pull request #55 from twentyhq/fix-hasura-file
bugfix: rename hasura file
2023-04-20 15:13:54 +02:00
Sammy Teillet 08f6e82e5b bugfix: rename hasura file 2023-04-20 15:13:32 +02:00
Charles Bochet c6938caf93 Add API url in front build 2023-04-20 15:02:20 +02:00
Sammy TeilletandGitHub d330fdbb8b Merge pull request #54 from twentyhq/sammy/t-107-i-see-a-people-data-model-and-graphql
feature: add person schema in hasura
2023-04-20 14:55:01 +02:00
Sammy Teillet e4edaf183f test: fix People test 2023-04-20 14:42:17 +02:00
Sammy Teillet 7a89e5591d refactor: extract mapper 2023-04-20 13:58:54 +02:00
Sammy Teillet 33e12a52c7 refactor: rename default data file 2023-04-20 13:58:54 +02:00
Sammy Teillet d5ebff5b53 refactor: etract type in file 2023-04-20 13:58:54 +02:00
Sammy Teillet c1883d381e feature: strongly type Table component 2023-04-20 13:58:53 +02:00
Sammy Teillet 887a7af5e2 feature: wip get persons and map it 2023-04-20 13:58:53 +02:00
Sammy Teillet 7f2ec0c260 feature: fix Apollo client 2023-04-20 13:58:53 +02:00
Sammy Teillet 38e2e930b6 feature: add creation dates 2023-04-20 13:58:53 +02:00
Sammy Teillet 63c31b4290 feature: add company and link person to company and workspace 2023-04-20 13:58:53 +02:00
Sammy Teillet 79f274c355 feature: add person schema in hasura 2023-04-20 13:58:52 +02:00
Sammy Teillet 874b920571 chore: introduce different creation dates 2023-04-20 13:58:52 +02:00
Sammy Teillet 8555df6f3f refactor: move style in Cell component 2023-04-20 13:58:52 +02:00
Sammy Teillet f2dcffd8f0 refactor: move data types and table definition out of People component 2023-04-20 13:58:52 +02:00
Charles Bochet 6fa71e12b5 Migrate database to default locally 2023-04-20 13:45:59 +02:00
Charles Bochet ead01b4184 Migrate database to default 2023-04-20 12:35:51 +02:00
Charles Bochet 7ed8d60a00 Migrate database to twenty 2023-04-20 12:26:38 +02:00
Charles BochetandGitHub b660da88be Merge pull request #53 from twentyhq/cbo-add-lint-in-ci
Add linter on CI
2023-04-20 11:54:59 +02:00
Charles Bochet b8d089395f Add linter on CI 2023-04-20 11:51:04 +02:00
Charles BochetandGitHub 5469d27911 Merge pull request #47 from twentyhq/cbo-sort-filter-2
Add sorting bar on table views
2023-04-19 23:17:16 +02:00
Charles Bochet 5a1baf9121 Filter ongoing 2023-04-19 23:15:08 +02:00
Charles BochetandGitHub ff90a3c67b Merge pull request #51 from twentyhq/sammy/t-104-i-see-a-localized-date
Sammy/t 104 i see a localized date
2023-04-19 18:55:09 +02:00
Sammy Teillet 3c7bd5cd28 bugfix: fix pointer propagation of links behind the before element 2023-04-19 18:31:03 +02:00
Sammy Teillet 630447a2f6 refactor: put TD up back in the table 2023-04-19 18:21:42 +02:00
Charles BochetandGitHub 9ee1ded419 Merge pull request #50 from twentyhq/fix-checkbox
feature: adjust checkbox size
2023-04-19 18:01:40 +02:00
Sammy Teillet a4e7211625 feature: adjust checkbox size 2023-04-19 18:00:30 +02:00
Charles BochetandGitHub 84a4b527a2 Merge pull request #46 from twentyhq/anders/t-113-i-see-hasura-auth-provided-locally
I see hasura auth provided locally
2023-04-19 17:53:36 +02:00
Anders Borch 3cea61d9ed Add mailhog for local smtp 2023-04-19 17:51:15 +02:00
Anders BorchandCharles Bochet 39ffb0f90b Setup Hasura-auth locally 2023-04-19 17:49:09 +02:00
Charles BochetandGitHub db6b51c74e Merge pull request #49 from twentyhq/sammy/t-91-i-can-see-hover-states-on-table-cells
Sammy/t 91 i can see hover states on table cells
2023-04-19 17:30:28 +02:00
Sammy Teillet 8fa9c7f1db chore: make sure darktheme implement sames keys as light theme 2023-04-19 17:26:18 +02:00
Sammy Teillet b4915895fe feature: display a border when hovering the component 2023-04-19 17:22:16 +02:00
Sammy Teillet 71c18e864f feature: move TD creation to cells 2023-04-19 17:10:37 +02:00
Sammy Teillet 05c5272c93 feature: make border transparent instead of 0px 2023-04-19 16:47:34 +02:00
Sammy Teillet 74990a3686 feature: clickableCell left space should be inside the border 2023-04-19 16:19:35 +02:00
Charles BochetandGitHub acf190cd5c Merge pull request #48 from twentyhq/sammy/t-101-i-see-a-more-compact-table-view-to-match
Sammy/t 101 i see a more compact table view to match
2023-04-19 16:04:05 +02:00
Sammy Teillet 1a70a5ba65 feature: update icons of People table 2023-04-19 15:58:38 +02:00
Sammy Teillet 0f779f9d43 feature: change the border color again 2023-04-19 15:45:46 +02:00
Sammy Teillet a361d7732e feature: remove border of table container 2023-04-19 15:40:08 +02:00
Sammy Teillet 28af85fcb7 feature: set table text colors 2023-04-19 15:35:55 +02:00
Sammy Teillet d1f05993be feature: fix default padding of table 2023-04-19 15:24:18 +02:00
Sammy Teillet 6e9b612409 feature: fix color of border 2023-04-19 15:23:09 +02:00
Sammy Teillet 6f9506b924 feature: fix borders of table 2023-04-19 15:19:10 +02:00
Sammy Teillet 0844490c13 feature: wrap all elements in a cell 2023-04-19 15:13:26 +02:00
Sammy Teillet a843d7d76e feature: add a left padding in cells 2023-04-19 15:00:22 +02:00
Sammy Teillet b0b81ba40d feature: fix table layout 2023-04-19 14:46:54 +02:00
Sammy TeilletandGitHub 43e71c6c93 Merge pull request #44 from twentyhq/sammy/t-102-i-see-people-chip-designed-with-picture
Sammy/t 102 i see people chip designed with picture
2023-04-19 14:38:41 +02:00
Sammy Teillet 59f64695a2 test: test PersonChip displays image or placeholder 2023-04-19 14:37:36 +02:00
Sammy Teillet 97457f54cb test: rename test and remove useless nav wrapper 2023-04-19 14:25:27 +02:00
Charles BochetandGitHub 83e55a3e85 Merge pull request #45 from twentyhq/cbo-table-filters
Add dropdown on Sort button on table
2023-04-19 14:24:21 +02:00
Charles Bochet 1e635b9d2f Add dropdown on Sort button on table 2023-04-19 14:22:51 +02:00
Sammy Teillet b434f3da45 feature: make the person picture circle 2023-04-19 12:40:57 +02:00
Sammy Teillet bb5ae02c3a refactor: use PersonChip in people page 2023-04-19 12:35:19 +02:00
Sammy Teillet 16a1aadba9 feature: add alt tag for image in company chip 2023-04-19 12:28:32 +02:00
Sammy Teillet 8d321013f3 refactor: remove useless ClickableCell props 2023-04-19 12:25:20 +02:00
Sammy Teillet 5962140656 refactor: rename CellLink to ClickableCell 2023-04-19 12:24:25 +02:00
Sammy Teillet 3696bf2617 feature: CellLinkacceptd children 2023-04-19 12:23:27 +02:00
Sammy Teillet 471d6743ad refactor: create company chip 2023-04-19 12:20:19 +02:00
Sammy TeilletandGitHub bb40c1b40a Merge pull request #43 from twentyhq/sammy/t-103-i-see-company-chip-designed-with-picture
Sammy/t 103 i see company chip designed with picture
2023-04-19 11:49:38 +02:00
Sammy Teillet ddebb35865 refactor: use theme spacings 2023-04-19 11:00:43 +02:00
Félix Malfait c93f003f91 Remove blog from docs 2023-04-19 10:57:35 +02:00
Sammy Teillet b6bfefe846 feat: set design of Company chip 2023-04-19 10:55:06 +02:00
Sammy Teillet 38cc857f77 feat: use favicon icon in company chip 2023-04-19 10:51:37 +02:00
Félix Malfait 167426e41c Install Docusaurus 2023-04-19 10:47:23 +02:00
Sammy Teillet 51fc383b1a refactor: rename logo to domain 2023-04-19 10:34:31 +02:00
Charles Bochet 5560476ea0 Fix front deploy 2023-04-18 23:48:53 +02:00
Charles BochetandGitHub 4018ac45b0 Merge pull request #42 from twentyhq/sammy/t-79-i-can-see-checkboxes-ui
feature: add checkbox on people cells
2023-04-18 18:37:09 +02:00
Sammy Teillet 3e09dab7fc test: add checkbox test 2023-04-18 18:27:54 +02:00
Sammy Teillet 4d23390989 feature: align checkbox and cellLink 2023-04-18 18:13:56 +02:00
Sammy Teillet 0d9b04ea14 feature: set the right color for unchecked checkbox 2023-04-18 18:07:55 +02:00
Sammy Teillet 8701d752d8 refactor: use color from theme 2023-04-18 17:37:20 +02:00
Sammy Teillet a855c474a0 refactor: create Checkbox component 2023-04-18 17:33:59 +02:00
Sammy TeilletandGitHub 21a94b76f1 Merge pull request #40 from twentyhq/fix-dev-env
bugfix: sync server files in server container
2023-04-18 16:42:25 +02:00
Sammy Teillet 81da0f4e03 feature: add checkbox on people cells 2023-04-18 16:40:49 +02:00
Sammy Teillet 09ee4c91e2 chore: fix version of node images 2023-04-18 16:21:38 +02:00
Sammy Teillet bba8c592ac chore: fix build command and improve installation steps 2023-04-18 16:17:01 +02:00
Sammy Teillet 24a3a9d828 docs: lint readme 2023-04-18 15:37:05 +02:00
Sammy Teillet 77c387e14a chore: update way to store npm secrets 2023-04-18 15:34:08 +02:00
Sammy Teillet babd9208e7 chore: change way to store npm secrets 2023-04-18 15:31:58 +02:00
Sammy Teillet e8f85f2a29 bugfix: sync server files in server container 2023-04-18 15:23:47 +02:00
Charles BochetandGitHub 4a213915a9 Merge pull request #39 from twentyhq/st-server-dockerfile
chore: add prod dockerfile for server
2023-04-18 14:47:48 +02:00
Sammy Teillet 0639c9d863 chore: add lockfile before npm install 2023-04-18 14:41:07 +02:00
Sammy Teillet a9bc05372d chore: run build and start built version 2023-04-18 14:22:52 +02:00
Sammy Teillet b60ed70e4a chore: remove libs from production image 2023-04-18 14:22:29 +02:00
Sammy Teillet dfcd22d66f feat: use healthz 2023-04-14 17:03:18 +02:00
Sammy Teillet 0d82751b9b feat: register health controller 2023-04-14 16:56:18 +02:00
Sammy Teillet bd884c7407 feat: create a health controller 2023-04-14 16:52:57 +02:00
Sammy Teillet 5468442d1e chore: remove static server 2023-04-14 16:49:33 +02:00
Sammy Teillet eea7671d3e feat: move install at top to keep layer in cache 2023-04-14 16:05:24 +02:00
Sammy Teillet b82660667e chore: add prod dockerfile for server 2023-04-14 16:02:05 +02:00
Charles BochetandGitHub f3b916f20b Merge pull request #38 from twentyhq/cbo-table-styling
Improve Table Header style
2023-04-14 13:17:35 +02:00
Charles BochetandGitHub d767160b03 Merge pull request #37 from twentyhq/cbo-install-fa-pro
Migrate to FontAwesome pro
2023-04-14 12:42:35 +02:00
Charles Bochet c4cc6a397a Rework Table Header 2023-04-14 12:38:40 +02:00
Charles Bochet c317d4bcf6 Migrate to FontAwesome pro 2023-04-14 12:09:17 +02:00
Charles BochetandGitHub 1b1b5c9584 Merge pull request #36 from twentyhq/cbo-frontend
Add font sizes to themes
2023-04-14 11:22:30 +02:00
Charles Bochet d08066fb9d Add font sizes to themes 2023-04-14 11:06:20 +02:00
Charles BochetandAnders Borch 0445c03b51 Setup first hasura schema 2023-04-14 08:38:35 +02:00
Anders BorchandGitHub b9d1d80f64 Merge pull request #33 from twentyhq/add-ci
Add continous integration
2023-04-14 08:35:15 +02:00
Charles Bochet 1499c845e8 Add continous integration 2023-04-13 18:12:57 +02:00
Charles BochetandGitHub 6fe63b430a Merge pull request #31 from twentyhq/table-cell-styling
Table cell styling
2023-04-13 18:11:40 +02:00
Anders Borch 02fe9ee506 Add email link 2023-04-13 17:28:28 +02:00
Anders Borch 27d4867488 Format creation date 2023-04-13 17:28:09 +02:00
Anders Borch caf7c168aa Format phone number 2023-04-13 17:27:33 +02:00
Anders Borch a58735925f Add libphonenumber-js dependency
This is used e.g. for formatting phone numbers in the People list.
2023-04-13 17:26:31 +02:00
Anders Borch 3d976577c1 Add CellLink 2023-04-13 17:25:35 +02:00
Charles Bochet eea3060652 Fix Dockerfile front for production 2023-04-13 14:17:40 +02:00
Charles BochetandGitHub 0ae9644f43 Merge pull request #32 from twentyhq/cbo-production-dockerfiles
Create Dockerfile for front production
2023-04-13 12:52:00 +02:00
Charles Bochet afab5940b3 Create Dockerfile for front production 2023-04-13 12:45:50 +02:00
Anders Borch 8f8315b9bc Add person placeholder image 2023-04-13 10:55:12 +02:00
Anders Borch 759f91b066 Add name, company and pipe styling 2023-04-13 10:54:51 +02:00
Anders Borch f5b16c7f6d Rename People type to Person 2023-04-13 10:53:39 +02:00
Anders BorchandGitHub c6a60824b3 Merge pull request #29 from twentyhq/cbo-add-table
Add simple styled table
2023-04-13 10:50:08 +02:00
Charles BochetandGitHub 0b76e0fe5a Merge pull request #30 from twentyhq/cbo-provision-hasura-locally
Setup Hasura locally
2023-04-13 10:49:58 +02:00
Anders Borch 5619078abd Hide table footer when all groups are empty 2023-04-13 10:26:09 +02:00
Anders Borch 7887e724d5 Add people styling
* Add styled PeopleHeader tag
* Add icon prefix to view name
2023-04-13 10:26:08 +02:00
Anders Borch 7111f99cff Add table styling 2023-04-12 19:24:35 +02:00
Charles Bochet 93fb5896b8 Setup Hasura locally 2023-04-12 15:54:16 +02:00
Anders Borch b7e43de670 Add icon property to table. 2023-04-12 13:30:13 +02:00
Charles Bochet cb3a209380 Setting up first table in frontend 2023-04-12 11:39:46 +02:00
Charles BochetandGitHub c63b7df25d Merge pull request #28 from twentyhq/add-license
Create LICENSE
2023-04-11 14:30:30 +02:00
Félix MalfaitandGitHub 6709782894 Create LICENSE
I didn't know whether we should chose GPL or MIT.
Let's just assume people have good intentions, and not overly restrict usage by using a copyleft licence. 
The risk is someone hijacking the project (e.g. a well-funded company forking the project, then building a direct competitor on top of it), but  our choices shouldn't be driven by the worst possible outcome, they should be driven by the best possible outcome, which is that a lot of creative people use our project and take it in a successful direction we couldn't have seen ourselves
2023-04-11 13:55:45 +02:00
Charles Bochet b629d48cc5 Upgrade storybook version 2023-04-10 21:31:55 +00:00
Charles BochetandGitHub 693ed5746d Merge pull request #27 from twentyhq/cbo-frontend-crm-start
Implement new UI
2023-04-10 18:06:52 +02:00
Charles Bochet f25f80c199 Implement new UI 2023-04-10 18:04:49 +02:00
Charles BochetandGitHub 58d8d7c090 Merge pull request #26 from twentyhq/setup-github-actions
Setup GitHub actions
2023-04-07 11:26:18 +02:00
Charles Bochet 5c651831a7 Setup github actions 2023-04-07 11:25:05 +02:00
Charles Bochet 2c23defeaf Setup GitHub actions 2023-04-05 16:07:07 +02:00
Charles BochetandGitHub 3d80751be6 Merge pull request #25 from twentyhq/cbo-refresh-install-scripts
Refresh install scripts
2023-04-05 15:02:43 +02:00
Charles Bochet dc28c97df6 Refresh install scripts 2023-04-05 15:01:20 +02:00
Charles BochetandGitHub eac43d1e64 Merge pull request #24 from twentyhq/charles-bochet-simplify-infra
Simplify infrastructure to one container
2023-03-06 19:15:03 +01:00
Charles Bochet c2833cad53 Simplify infrastructure to one container 2023-03-06 19:13:59 +01:00
Félix Malfait 2ddb191556 ADD DS_Store to .gitignore 2023-02-23 11:04:05 +01:00
Charles Bochet 26651b1ad0 Fix api deploy 2023-02-03 20:13:29 +01:00
Charles BochetandGitHub 44c9d350a3 Merge pull request #23 from twentyhq/charles-bochet-separate-tenant-users
Separate auth0 users depending on tenants
2023-02-03 20:08:19 +01:00
Charles Bochet d58af82c51 Separate auth0 users depending on tenants 2023-02-03 20:07:49 +01:00
Charles BochetandGitHub d94ed13f4e Merge pull request #21 from twentyhq/charles-bochet-hasura-ci-setup
Add CircleCI workflow to deploy CI to canary and production
2023-02-02 20:44:25 +01:00
Charles BochetandGitHub fe22ea087a Merge pull request #22 from twentyhq/charles-bochet-profile
Create Profile Hooks to fetch current user
2023-02-02 20:42:15 +01:00
Charles Bochet fcdc9aaec4 Create Profile Hooks to fetch current user 2023-02-02 20:40:44 +01:00
Charles Bochet 0c93182436 Add CircleCI workflow to deploy CI to canary and production 2023-02-01 14:05:49 +01:00
Charles BochetandGitHub 0eef9871f0 Merge pull request #20 from twentyhq/charles-bochet-hasura-init
Setup API (Hasura) console to version changes in code
2023-01-31 19:38:07 +01:00
Charles Bochet e72ea96fad Setup API (Hasura) console to version changes in code 2023-01-31 19:20:59 +01:00
Charles BochetandGitHub f91f14e72a Merge pull request #19 from twentyhq/charles-bochet-moving-env-variables
Move all run environment variable to infra
2023-01-29 09:49:18 +01:00
Charles Bochet 89f9f12ea2 Move all run environment variable to infra 2023-01-29 09:47:45 +01:00
Charles BochetandGitHub c2295a44b7 Merge pull request #18 from twentyhq/charles-bochet-moving-env-variables
Move all run environment variable to infra
2023-01-29 09:39:19 +01:00
Charles Bochet ca0bbd5fa6 Move all run environment variable to infra 2023-01-29 09:25:01 +01:00
Charles BochetandGitHub 180e6b17ca Merge pull request #17 from twentyhq/charles-bochet-env-variables-2
Add environment variable to build:latest too
2023-01-28 18:36:32 +01:00
Charles Bochet e9f2e374e8 Add environment variable to build:latest too 2023-01-28 18:34:14 +01:00
Charles BochetandGitHub 95dd1b1b12 Merge pull request #16 from twentyhq/charles-bochet-env-variables
Add environment variable to containers at build time
2023-01-28 17:56:22 +01:00
Charles Bochet fe7031f8dc Add environment variable to docker containers 2023-01-28 17:54:13 +01:00
Charles BochetandGitHub e8db5136bb Merge pull request #15 from twentyhq/charles-bochet-add-login
Generate Token through Auth0
2023-01-28 11:02:05 +01:00
Charles Bochet 8e0dc44bf6 Generate Token through Auth0 2023-01-28 10:58:04 +01:00
Charles BochetandGitHub 54acb16db8 Merge pull request #14 from twentyhq/charles-bochet-add-hasura
Add Hasura
2023-01-04 13:13:15 +01:00
Charles Bochet 9fb4f21180 Add Hasura 2022-12-28 22:55:46 +01:00
Charles BochetandGitHub 9b749c6de3 Merge pull request #13 from twentyhq/charles-bochet-dockerify-and-add-hasura
Add Hasura and dockerify dev env
2022-12-28 21:20:08 +01:00
Charles Bochet aeee5b5fca Add Hasura and dockerify dev env 2022-12-28 21:19:12 +01:00
Charles BochetandGitHub 092d486c12 Merge pull request #12 from twentyhq/charles-bochet-enable-health-check-route
Enable Health Check route
2022-12-28 17:00:31 +01:00
Charles Bochet d9ecc56787 Enable Health Check route 2022-12-28 16:59:22 +01:00
Charles BochetandGitHub 737e0bf3aa Merge pull request #11 from twentyhq/charles-bochet-dummy-pr-to-test-ci
This is a dummy commit, to test e2e CI/CD process
2022-12-28 12:11:58 +01:00
Charles Bochet 3f63810dc8 This is a dummy commit, to test e2e CI/CD process 2022-12-28 12:10:19 +01:00
Charles BochetandGitHub a76bc928ff Merge pull request #10 from twentyhq/charles-bochet-circleci
Add CI and CD to the project
2022-12-28 12:03:14 +01:00
Charles Bochet bc6764b3b9 Initiate circle-ci config 2022-12-28 12:01:09 +01:00
Charles BochetandGitHub e4eacf6f24 Merge pull request #9 from twentyhq/cbo-add-booking-and-messages
Add content to the Discussion Panel
2022-12-06 11:39:12 +01:00
Charles Bochet fd56c69970 Add content to the Discussion Panel 2022-12-06 11:37:43 +01:00
Charles BochetandGitHub 33c30e0770 Merge pull request #8 from twentyhq/cbo-add-central-panel
Rename tabs to Inbox, Contacts, Insights
2022-12-05 23:00:40 +01:00
Charles Bochet b4032d508d Add Plugin Panel 2022-12-05 22:59:56 +01:00
Charles Bochet 374573871c Move stories and tests inside each component folders 2022-12-05 21:56:53 +01:00
Charles Bochet 92267701ff Rename tabs to Inbox, Contacts, Insights 2022-12-05 21:47:17 +01:00
Charles BochetandGitHub dcfc4c9e45 Merge pull request #7 from twentyhq/cbo-left-nav
Add Task list on Tasks page
2022-12-05 00:51:09 +01:00
Charles Bochet 235ae1859d Add Task list on Tasks page 2022-12-05 00:49:45 +01:00
Charles BochetandGitHub c724bc7907 Merge pull request #6 from twentyhq/cbo-add-navbar
Add Navbar component, emotion for css and storybook
2022-12-04 23:01:35 +01:00
Charles Bochet 0f2d8a556e Add Navbar component, emotion for css and storybook 2022-12-04 22:59:30 +01:00
Charles Bochet eba76274c6 Add Routing on the app 2022-12-02 12:39:15 +01:00
Charles BochetandGitHub 017df9dae2 Merge pull request #3 from twentyhq/cbo-add-app-layout
Migrate to Typescript, add prettier and add linter
2022-12-02 12:07:32 +01:00
Charles Bochet f685be3d22 Migrate to Typescript, add prettier and add linter 2022-12-02 12:06:22 +01:00
Charles BochetandGitHub 64d07b907c Merge pull request #2 from twentyhq/cbo-configure-deploy-on-aws
Configure AWS codebuild to automate deploy
2022-12-02 10:12:40 +01:00
Charles Bochet 919788dc6b Configure AWS codebuild to automate deploy 2022-12-02 10:12:11 +01:00
Charles BochetandGitHub d80afd0ce3 Merge pull request #1 from twentyhq/cbo-setup-nest-and-react
Setup Nest and React projects
2022-12-01 16:45:34 +01:00
Charles Bochet cfc3a37e1f Setup Nest and React projects 2022-12-01 15:58:08 +01:00
Charles BochetandGitHub e75c8276ab Initial commit 2022-12-01 14:04:40 +01:00
4609 changed files with 364087 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
.git
.env
node_modules
.nx/cache
+160
View File
@@ -0,0 +1,160 @@
module.exports = {
root: true,
extends: ['plugin:prettier/recommended'],
plugins: [
'@nx',
'prefer-arrow',
'import',
'simple-import-sort',
'unused-imports',
'unicorn',
],
rules: {
'func-style': ['error', 'declaration', { allowArrowFunctions: true }],
'no-console': ['warn', { allow: ['group', 'groupCollapsed', 'groupEnd'] }],
'no-control-regex': 0,
'no-debugger': 'error',
'no-duplicate-imports': 'error',
'no-undef': 'off',
'no-unused-vars': 'off',
'@nx/enforce-module-boundaries': [
'error',
{
enforceBuildableLibDependency: true,
allow: [],
depConstraints: [
{
sourceTag: 'scope:shared',
onlyDependOnLibsWithTags: ['scope:shared'],
},
{
sourceTag: 'scope:backend',
onlyDependOnLibsWithTags: ['scope:shared', 'scope:backend'],
},
{
sourceTag: 'scope:frontend',
onlyDependOnLibsWithTags: ['scope:shared', 'scope:frontend'],
},
],
},
],
'import/no-relative-packages': 'error',
'import/no-useless-path-segments': 'error',
'import/no-duplicates': ['error', { considerQueryString: true }],
'prefer-arrow/prefer-arrow-functions': [
'error',
{
disallowPrototype: true,
singleReturnOnly: false,
classPropertiesAllowed: false,
},
],
'simple-import-sort/imports': [
'error',
{
groups: [
// Packages
['^react', '^@?\\w'],
// Internal modules
['^(@|~|src|@ui)(/.*|$)'],
// Side effect imports
['^\\u0000'],
// Relative imports
['^\\.\\.(?!/?$)', '^\\.\\./?$'],
['^\\./(?=.*/)(?!/?$)', '^\\.(?!/?$)', '^\\./?$'],
// CSS imports
['^.+\\.?(css)$'],
],
},
],
'simple-import-sort/exports': 'error',
'unused-imports/no-unused-imports': 'warn',
'unused-imports/no-unused-vars': [
'warn',
{
vars: 'all',
varsIgnorePattern: '^_',
args: 'after-used',
argsIgnorePattern: '^_',
},
],
},
overrides: [
{
files: ['**/*.ts', '**/*.tsx'],
extends: ['plugin:@nx/typescript'],
rules: {
'@typescript-eslint/ban-ts-comment': 'error',
'@typescript-eslint/consistent-type-imports': [
'error',
{ prefer: 'no-type-imports' },
],
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-empty-interface': [
'error',
{
allowSingleExtends: true,
},
],
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-unused-vars': [
'warn',
{
vars: 'all',
varsIgnorePattern: '^_',
args: 'after-used',
argsIgnorePattern: '^_',
},
],
},
},
{
files: ['*.js', '*.jsx'],
extends: ['plugin:@nx/javascript'],
rules: {},
},
{
files: ['*.spec.@(ts|tsx|js|jsx)', '*.test.@(ts|tsx|js|jsx)'],
env: {
jest: true,
},
rules: {
'@typescript-eslint/no-non-null-assertion': 'off',
},
},
{
files: ['**/constants/*.ts', '**/*.constants.ts'],
rules: {
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'variable',
format: ['UPPER_CASE'],
},
],
'unicorn/filename-case': [
'warn',
{
cases: {
pascalCase: true,
},
},
],
'@nx/workspace-max-consts-per-file': ['error', { max: 1 }],
},
},
{
files: ['*.json'],
parser: 'jsonc-eslint-parser',
},
],
};
+90
View File
@@ -0,0 +1,90 @@
var path = require('path');
module.exports = {
extends: [
'plugin:@nx/react',
'plugin:react/recommended',
'plugin:react-hooks/recommended',
'plugin:storybook/recommended',
],
plugins: ['react-hooks', 'react-refresh'],
overrides: [
{
files: ['*.ts', '*.tsx'],
parserOptions: {
project: ['./tsconfig.base.{json,*.json}'],
},
rules: {
'no-restricted-imports': [
'error',
{
patterns: [
{
group: ['@tabler/icons-react'],
message: 'Please import icons from `twenty-ui`',
},
{
group: ['react-hotkeys-web-hook'],
importNames: ['useHotkeys'],
message:
'Please use the custom wrapper: `useScopedHotkeys` from `twenty-ui`',
},
{
group: ['lodash'],
message:
"Please use the standalone lodash package (for instance: `import groupBy from 'lodash.groupby'` instead of `import { groupBy } from 'lodash'`)",
},
],
},
],
'@nx/workspace-effect-components': 'error',
'@nx/workspace-no-hardcoded-colors': 'error',
'@nx/workspace-matching-state-variable': 'error',
'@nx/workspace-sort-css-properties-alphabetically': 'error',
'@nx/workspace-styled-components-prefixed-with-styled': 'error',
'@nx/workspace-no-state-useref': 'error',
'@nx/workspace-component-props-naming': 'error',
'@nx/workspace-explicit-boolean-predicates-in-if': 'error',
'@nx/workspace-use-getLoadable-and-getValue-to-get-atoms': 'error',
'@nx/workspace-useRecoilCallback-has-dependency-array': 'error',
'@nx/workspace-no-navigate-prefer-link': 'error',
'react/no-unescaped-entities': 'off',
'react/prop-types': 'off',
'react/jsx-key': 'off',
'react/display-name': 'off',
'react/jsx-uses-react': 'off',
'react/react-in-jsx-scope': 'off',
'react/jsx-no-useless-fragment': 'off',
'react/jsx-props-no-spreading': [
'error',
{
explicitSpread: 'ignore',
},
],
'react-hooks/exhaustive-deps': [
'warn',
{
additionalHooks: 'useRecoilCallback',
},
],
},
},
{
files: ['*.stories.@(ts|tsx|js|jsx)'],
rules: {
'@typescript-eslint/no-non-null-assertion': 'off',
},
},
{
files: ['.storybook/main.@(js|cjs|mjs|ts)'],
rules: {
'storybook/no-uninstalled-addons': [
'error',
{
packageJsonLocation: path.resolve(__dirname, './package.json'),
},
],
},
},
],
};
+22
View File
@@ -0,0 +1,22 @@
# Contributor License Agreement
The following terms are used throughout this agreement:
- You - the person or legal entity including its affiliates asked to accept this agreement. An affiliate is any entity that controls or is controlled by the legal entity, or is under common control with it.
- Project - is an umbrella term that refers to any and all Twenty.com PBC open source projects.
- Contribution - any type of work that is submitted to a Project, including any modifications or additions to existing work.
- Submitted - conveyed to a Project via a pull request, commit, issue, or any form of electronic, written, or verbal communication with Twenty.com PBC, contributors or maintainers.
# Grant of Copyright License.
Subject to the terms and conditions of this agreement, You grant to the Projects maintainers, contributors, users and to Twenty.com PBC a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your contributions and such derivative works. Except for this license, You reserve all rights, title, and interest in your contributions.
# Grant of Patent License.
Subject to the terms and conditions of this agreement, You grant to the Projects maintainers, contributors, users and to Twenty.com PBC a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer your contributions, where such license applies only to those patent claims licensable by you that are necessarily infringed by your contribution or by combination of your contribution with the project to which this contribution was submitted.
If any entity institutes patent litigation - including cross-claim or counterclaim in a lawsuit - against You alleging that your contribution or any project it was submitted to constitutes or is responsible for direct or contributory patent infringement, then any patent licenses granted to that entity under this agreement shall terminate as of the date such litigation is filed.
# Source of Contribution.
Your contribution is either your original creation, based upon previous work that, to the best of your knowledge, is covered under an appropriate open source license and you have the right under that license to submit that work with modifications, whether created in whole or in part by you, or you have clearly identified the source of the contribution and any license or other restriction (like related patents, trademarks, and license agreements) of which you are personally aware.
+59
View File
@@ -0,0 +1,59 @@
# Contributor Code of Conduct
## Twenty's Pledge
The contributors and maintainers of this project pledge to ensure a harassment-free experience for everyone in the community. This commitment applies to individuals of all backgrounds, including age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity, experience, education, socio-economic status, nationality, appearance, race, religion. It also applies to individuals of all sexual identities and orientations.
The focus of both contributors and maintainers is on acting and interacting in ways that promote an open, welcoming, friendly, diverse, inclusive, and healthy community.
## Twenty's Standards
Examples of behavior that contributes to a positive environment for this
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Respectfully giving and accepting constructive feedback
* Accepting responsibility and apologizing to those affected by mistakes,
and learning from the experience
* Focusing on what's best, not just for each individual but also for the community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* The use of aggressive language
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct inappropriate in a professional setting.
## Enforcement Responsibilities
Community leaders and maintainers of this repository are responsible for clarifying and enforcing Twenty's standards of acceptable behavior. They will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
Community leaders and maintainers of this repository have the right and responsibility to remove, edit, or reject comments, commits, code, issues, and other contributions that aren't aligned with this Code of Conduct. They will also communicate reasons for moderation decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing this community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Attribution
This Code of Conduct is an adaption of the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines draw inspiration from [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
+91
View File
@@ -0,0 +1,91 @@
# Contributing to Twenty
Thank you for considering contributing to Twenty! All community contributions are welcome.
This guide outlines the process for contributing to this project. Please make sure to go through the [documentation](https://docs.twenty.com) before making your contribution.
> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation:
> - Star the project
> - Tweet about it
<br>
## Getting Started
Good first issues are a great way to start contributing to the project and get familiar with the codebase. Here's how to find them:
1. Visit the "[Issues](https://github.com/twentyhq/twenty/issues)" tab on the main [repository](https://github.com/twentyhq/twenty).
2. Use the "Labels" filter and select "[Good First Issue](https://github.com/twentyhq/twenty/labels/good%20first%20issue)" to see a list of beginner-friendly tasks.
3. Choose an issue that interests you, fork the project, and start working on it. Once you solve and test the issue, open a PR for review.
Note: We are aware that having multiple contributors address the same issue can cause frustration. To prevent this, we adhere to a specific guideline: if a core team member has assigned an issue to a contributor, either as the issue assignee or through explicit assignment in the issue comments within the past three days, that contributor's pull request takes precedence. Otherwise, the first PR submitted will be given priority. This delay is reduced to one day for PR tagged with "size: minutes" and extended to a week for PR tagged "size: days".
Therefore, ensure you are assigned to an issue before beginning work on it.
<br>
## Contributing Guidelines
1. **Fork the Repository:** Click on the 'Fork' button in the upper right corner of the repository's GitHub page. This will create a copy of the repository in your GitHub account.
2. **Clone the Repository:** Clone your forked repository to your local machine using `git clone`.
```shell
git clone https://github.com/yourusername/twenty.git
cd twenty
```
3. **Make Changes:** Make your desired changes and ensure that your code adheres to Twenty's coding standards.
4. **Test Locally:** Test your changes locally to ensure they work as expected.
5. **Commit Changes:** Commit your changes with a clear and concise commit message.
```shell
git commit -m "Add your detailed description here"
```
6. **Push Changes:** Push your changes to your forked repository.
```shell
git push origin branch-name
```
7. **Create a Pull Request:** Go to the original Twenty repository and create a pull request. Please provide a detailed description of your changes. To have your pull request accepted, you must sign a CLA.
8. **Code Review:** Your pull request will undergo a code review. Note that you might need to make any necessary adjustments based on feedback.
9. **Merge:** Once approved, maintainers will merge your pull request into the main repository.
<br>
## Code of Conduct
Please note that by contributing to this project, you're expected to follow Twenty's [Code of Conduct](./CODE_OF_CONDUCT.md). All maintainers strive to maintain a welcoming, friendly, and inclusive community for all contributors.
<br>
## Reporting Issues
If you encounter any issues or have suggestions for improvements, please feel free to (create an issue on Twenty's GitHub repository)[https://github.com/twentyhq/twenty/issues/new]. When reporting issues, please provide as much detail as possible to help in understanding and addressing the problem effectively.
---
Thank you for considering contributing to Twenty. Your contributions help make Twenty's CRM platform even better!
@@ -0,0 +1,55 @@
---
name: Add new feature / behavior
about: Describe the desired product increment
title: 'Ex: Add custom field from Companies / People table options menu'
labels: ''
assignees: ''
---
## Scope & Context
**Example:**
```
We are working on enabling users to add custom fields in their workspace.
The ticket is about adding the custom field feature on Companies and People pages only.
```
## Current behavior
A clear and concise description of what the current behavior is.
Please also add **screenshots** of the existing application.
**Example:**
```
On Companies and People pages, the "field" menu item from the option menu shows both displayed columns, and hidden columns
[screenshot]
```
## Expected behavior
A clear and concise description of what you want to happen.
Please also add **figma screenshots or figma links** if available
**Example:**
```
The "field" menu item from the option menu should only display visible columns. To display a new column, the user should click on "Add field" at the bottom of the menu.
[figma screenshot 1]
[figma link 1]
Clicking on this button should swap the menu with the same menu that is used by pressing the "+" button on the table title bar, showing "Add custom field option"
[figma screenshot 2]
[figma link 2]
Clicking on "Add custom field" should open swap the menu with the "field type" menu
...
```
## Technical inputs
**Example:**
```
- Modify TableOptionsDropdownContent to add the new "Add field Item" using a MenuItem component
- Create an internal state 'isAddingField' to track the progress in the flow. Set this state to true on "Add field Item" onClick
- ...
```
+36
View File
@@ -0,0 +1,36 @@
---
name: Report a bug
about: Report a bug or a functional regression
title: 'Ex: In DarkMode, a blank square appears in bottom right corner while scrolling'
labels: ['type: bug']
assignees: ''
---
## Bug Description
A clear and concise description of what the current behavior is.
Please also add **screenshots** of the existing application.
**Example:**
```
In DarkMode, when scrollbar are displayed (for example on Companies page, with enough companies in the list), we see a blank square in the bottom right corner
[screenshot]
```
## Expected behavior
A clear and concise description of what the expected behavior is.
**Example:**
```
The blank square should be transparent (invisible)
```
## Technical inputs
**Example:**
```
- We are displaying custom scrollbars that disappear when the user is not scrolling. See ScrollWrapper.
- Probably fixable with CSS
```
@@ -0,0 +1,33 @@
---
name: Request technical chore
about: Request technical work that does not provide any product increment (aka refactoring)
title: ''
labels: ['type: chore']
assignees: ''
---
## Scope & Context
**Example:**
```
In previous PRs: #1667 and #1636, we have introduced a new MenuItem draggable in the dropdown and implemented a drag and drop behavior.
This is working but it would be great to refactor this into separated components so we can re-use them.
```
## Technical inputs
A clear and detailed description of what the expected change is.
Describe components, files and folders that should be touch and how.
Using a Task list can be helpful
**Example:**
```
Having a list that is draggable will be useful, not only in dropdown.
Create a folder @/ui/draggable-list with a DraggableList component
This component should take as prop: itemsComponents, onDragEnd((previousIndex, nextIndex) => {})
Use this component in ViewFieldsVisibilityDropdownSection (move the logic from ViewFieldsVisibilityDropdownSection to DraggableList) by passing a list of DraggableMenuItems
Add a storybook test on this list (we don't know how to actually test the draggable behavior, but we can at least make sure the component renders correctly a list of items)
```
+31
View File
@@ -0,0 +1,31 @@
# Security Policy
## Reporting a Vulnerability
Reporting any potential vulnerabilities is strongly encouraged.
If you suspect a vulnerability, please take the following steps:
- Contact the team at `security at twenty.com`.
- Include a comprehensive description of the potential vulnerability and steps to reproduce the issue, if possible. The more information you can provide, the quicker Twenty can address the problem.
You can expect a response to your initial report within one business day.
While the core team works on addressing the issue, please maintain confidentiality about the vulnerability to ensure the security of all users.
Please refrain from exploiting the vulnerability or revealing the problem to others.
While Twenty doesn't have a formal bug bounty program right now due to the project's nascent stage, rest assured that:
- You will get a response within one business day.
- Your report and all accompanying data will receive the highest level of confidentiality.
- Your contribution is greatly appreciated, and Twenty would acknowledge your role in the vulnerability fix, if you opt for identification.
- Twenty will grant you permission to publicly discuss your findings once users have had a reasonable time to apply the patch after it becomes available.
- Twenty guarantees not to pursue any legal action as long as the vulnerability is not exploited.
## Security Features
Efforts are continually made to enhance the security of the product.
If you have any recommendations or feature request that could enhance the product's security, please share them via the discussion forum.
⚠️ Note this does not apply to security vulnerabilities. If you're in doubt, then always follow the security vulnerability process
+4
View File
@@ -0,0 +1,4 @@
template: |
## What's Changed
$CHANGES
+86
View File
@@ -0,0 +1,86 @@
extends: conditional
message: "'%s' has no definition."
level: warning
ignorecase: false
scope: paragraph
# Ensures that the existence of 'first' implies the existence of 'second'.
first: '\b([A-Z]{3,5})\b'
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
# ... with the exception of these:
exceptions:
- API
- ASP
- CLI
- CPU
- CMS
- CRM
- CSS
- CSV
- DEBUG
- DOM
- DPI
- FAQ
- GCC
- GDB
- GET
- GPU
- GQL
- GTK
- GUI
- HTML
- HTTP
- HTTPS
- IDE
- JAR
- JSON
- JSX
- LESS
- LLDB
- NET
- NOTE
- NVDA
- ORM
- OSS
- PATH
- PDF
- PHP
- POST
- PII
- RAM
- REPL
- RSA
- SCM
- SCSS
- SDK
- SQL
- SSH
- SSL
- SVG
- TBD
- TCP
- TODO
- TSX
- URI
- URL
- USB
- UTF
- WSL
- XML
- XSS
- YAML
- ZIP
- AWS
- REST
- MDX
- NPM
- SMS
- SID
- VIP
- UPS
- RMA
- JSONB
- USD
- SASL
- SCRAM
- FIRST
- CORS
+119
View File
@@ -0,0 +1,119 @@
extends: substitution
message: "Consider using '%s' instead of '%s'."
ignorecase: true
level: suggestion
action:
name: replace
swap:
"approximate(?:ly)?": about
abundance: plenty
accelerate: speed up
accentuate: stress
accompany: go with
accomplish: carry out|do
accorded: given
accordingly: so
accrue: add
accurate: right|exact
acquiesce: agree
acquire: get|buy
additional: more|extra
address: discuss
addressees: you
adjacent to: next to
adjustment: change
admissible: allowed
advantageous: helpful
advise: tell
aggregate: total
aircraft: plane
alleviate: ease
allocate: assign|divide
alternatively: or
alternatives: choices|options
ameliorate: improve
amend: change
anticipate: expect
apparent: clear|plain
ascertain: discover|find out
assistance: help
attain: meet
attempt: try
authorize: allow
belated: late
bestow: give
cease: stop|end
collaborate: work together
commence: begin
compensate: pay
component: part
comprise: form|include
concept: idea
concerning: about
confer: give|award
consequently: so
consolidate: merge
constitutes: forms
contains: has
convene: meet
demonstrate: show|prove
depart: leave
designate: choose
desire: want|wish
determine: decide|find
detrimental: bad|harmful
disclose: share|tell
discontinue: stop
disseminate: send|give
eliminate: end
elucidate: explain
employ: use
enclosed: inside|included
encounter: meet
endeavor: try
enumerate: count
equitable: fair
equivalent: equal
exclusively: only
expedite: hurry
facilitate: ease
females: women
finalize: complete|finish
frequently: often
identical: same
incorrect: wrong
indication: sign
initiate: start|begin
itemized: listed
jeopardize: risk
liaise: work with|partner with
maintain: keep|support
methodology: method
modify: change
monitor: check|watch
multiple: many
necessitate: cause
notify: tell
numerous: many
objective: aim|goal
obligate: bind|compel
optimum: best|most
permit: let
portion: part
possess: own
previous: earlier
previously: before
prioritize: rank
procure: buy
provide: give|offer
purchase: buy
relocate: move
solicit: request
state-of-the-art: latest
subsequent: later|next
substantial: large
sufficient: enough
terminate: end
transmit: send
utilization: use
utilize: use
+49
View File
@@ -0,0 +1,49 @@
extends: substitution
message: "Use '%s' instead of '%s'."
level: suggestion
ignorecase: true
action:
name: replace
swap:
are not: aren't
cannot: can't
could not: couldn't
did not: didn't
do not: don't
does not: doesn't
has not: hasn't
have not: haven't
how is: how's
is not: isn't
'it is(?!\.)': it's
'it''s(?=\.)': it is
should not: shouldn't
'that is(?!\.)': that's
'that''s(?=\.)': that is
'they are(?!\.)': they're
'they''re(?=\.)': they are
was not: wasn't
'we are(?!\.)': we're
'we''re(?=\.)': we are
'we have(?!\.)': we've
'we''ve(?=\.)': we have
were not: weren't
'what is(?!\.)': what's
'what''s(?=\.)': what is
'when is(?!\.)': when's
'when''s(?=\.)': when is
'where is(?!\.)': where's
'where''s(?=\.)': where is
will not: won't
+15
View File
@@ -0,0 +1,15 @@
extends: existence
message: "Avoid using first person (such as '%s')"
ignorecase: true
level: error
nonword: true
tokens:
- (?:^|\s)I\s
- (?:^|\s)I,\s
- \bI'd\b
- \bI'll\b
- \bI'm\b
- \bI've\b
- \bme\b
- \bmy\b
- \bmine\b
+10
View File
@@ -0,0 +1,10 @@
extends: substitution
message: "Use '%s' instead of '%s'."
ignorecase: true
level: error
nonword: true
action:
name: replace
swap:
'\b(?:eg|e\.g\.)[\s,]': for example
'\b(?:ie|i\.e\.)[\s,]': that is
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Don't use '%s'."
level: error
ignorecase: true
tokens:
- he/she
- s/he
@@ -0,0 +1,7 @@
extends: existence
message: "Capitalize '%s'."
nonword: true
level: warning
scope: heading
tokens:
- ':\s[a-z]'
@@ -0,0 +1,13 @@
extends: existence
message: "Don't use end punctuation in headings."
link: https://medusajs.notion.site/Style-Guide-Docs-fad86dd1c5f84b48b145e959f36628e0#a5043fc5f8bc4b0b84f3ba494f817e42
nonword: true
level: warning
scope: heading
action:
name: edit
params:
- remove
- '.?!'
tokens:
- '[a-z][.?!](?:\s|$)'
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Consider adding npm2yarn to ```bash"
level: warning
scope: raw
ignorecase: true
raw:
- '```bash[\n]+npm'
+10
View File
@@ -0,0 +1,10 @@
extends: substitution
message: Use '%s' instead of '%s'
level: error
scope: raw
ignorecase: false
# swap maps tokens in form of bad: good
swap:
npm i: npm install
npm start: npm run start
npm build: npm run build
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "The -g option should be added at the end of the command"
level: error
scope: raw
ignorecase: true
raw:
- '(npm (i|install) (-g|--global)|npm (-g|--global) (i|install))'
+13
View File
@@ -0,0 +1,13 @@
extends: existence
message: "Numbers must be spelled out"
level: warning
ignorecase: true
scope: paragraph
tokens:
- '.*[0-9]+\s(?!(AM|PM))+' #need to match words before to add exceptions
- '.*[0-9][.]'
exceptions:
- '[pP]ort [0-9]+'
- 'WSL2'
- '[vV]ersions? [0-9]'
- '[v.]+[0-9]+'
+12
View File
@@ -0,0 +1,12 @@
extends: existence
message: "Don't add -ly to an ordinal number."
level: suggestion
action:
name: edit
params:
- trim
- ly
tokens:
- firstly
- secondly
- thirdly
+6
View File
@@ -0,0 +1,6 @@
extends: existence
message: "Avoid using our"
level: warning
ignorecase: true
tokens:
- ours?
+8
View File
@@ -0,0 +1,8 @@
extends: existence
message: "Use the Oxford comma in '%s'."
link: https://docs.microsoft.com/en-us/style-guide/punctuation/commas
scope: sentence
level: suggestion
nonword: true
tokens:
- '(?:[^\s,]+,){1,} \w+ (?:and|or) \w+[.?!]'
+183
View File
@@ -0,0 +1,183 @@
extends: existence
message: "'%s' looks like passive voice."
ignorecase: true
level: warning
raw:
- \b(am|are|were|being|is|been|was|be)\b\s*
tokens:
- '[\w]+ed'
- awoken
- beat
- become
- been
- begun
- bent
- beset
- bet
- bid
- bidden
- bitten
- bled
- blown
- born
- bought
- bound
- bred
- broadcast
- broken
- brought
- built
- burnt
- burst
- cast
- caught
- chosen
- clung
- come
- cost
- crept
- cut
- dealt
- dived
- done
- drawn
- dreamt
- driven
- drunk
- dug
- eaten
- fallen
- fed
- felt
- fit
- fled
- flown
- flung
- forbidden
- foregone
- forgiven
- forgotten
- forsaken
- fought
- found
- frozen
- given
- gone
- gotten
- ground
- grown
- heard
- held
- hidden
- hit
- hung
- hurt
- kept
- knelt
- knit
- known
- laid
- lain
- leapt
- learnt
- led
- left
- lent
- let
- lighted
- lost
- made
- meant
- met
- misspelt
- mistaken
- mown
- overcome
- overdone
- overtaken
- overthrown
- paid
- pled
- proven
- put
- quit
- read
- rid
- ridden
- risen
- run
- rung
- said
- sat
- sawn
- seen
- sent
- set
- sewn
- shaken
- shaven
- shed
- shod
- shone
- shorn
- shot
- shown
- shrunk
- shut
- slain
- slept
- slid
- slit
- slung
- smitten
- sold
- sought
- sown
- sped
- spent
- spilt
- spit
- split
- spoken
- spread
- sprung
- spun
- stolen
- stood
- stridden
- striven
- struck
- strung
- stuck
- stung
- stunk
- sung
- sunk
- swept
- swollen
- sworn
- swum
- swung
- taken
- taught
- thought
- thrived
- thrown
- thrust
- told
- torn
- trodden
- understood
- upheld
- upset
- wed
- wept
- withheld
- withstood
- woken
- won
- worn
- wound
- woven
- written
- wrung
+6
View File
@@ -0,0 +1,6 @@
extends: existence
message: "Use a numeral plus the units."
nonword: true
level: error
tokens:
- '\b[a-zA-z]+\spercent\b'
@@ -0,0 +1,6 @@
extends: occurrence
message: "Try to keep sentences short (< 30 words)."
scope: sentence
level: suggestion
max: 30
token: \b(\w+)\b
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "'%s' should have one space."
level: warning
nonword: true
tokens:
- '[a-z][.?!] {2,}[A-Z]'
- '[a-z][.?!][A-Z]'
+8
View File
@@ -0,0 +1,8 @@
extends: substitution
message: Consider using '%s' instead of '%s'
level: warning
scope: raw
ignorecase: false
# swap maps tokens in form of bad: good
swap:
e-commerce: ecommerce
+7
View File
@@ -0,0 +1,7 @@
extends: existence
message: "Consider using typescript instead of tsx"
level: suggestion
scope: raw
ignorecase: true
raw:
- '```tsx'
+9
View File
@@ -0,0 +1,9 @@
extends: existence
message: "Avoid using first-person plural like '%s'."
level: warning
ignorecase: true
tokens:
- we
- we'(?:ve|re)
- us
- let's
+121
View File
@@ -0,0 +1,121 @@
extends: substitution
message: "Consider using '%s' instead of '%s'."
ignorecase: true
level: suggestion
action:
name: replace
swap:
(?:give|gave) rise to: lead to
(?:previous|prior) to: before
a (?:large)? majority of: most
a (?:large)? number of: many
a myriad of: myriad
adversely impact: hurt
all across: across
all of a sudden: suddenly
all of these: these
all of: all
all-time record: record
almost all: most
almost never: seldom
along the lines of: similar to
an adequate number of: enough
an appreciable number of: many
an estimated: about
any and all: all
are in agreement: agree
as a matter of fact: in fact
as a means of: to
as a result of: because of
as of yet: yet
as per: per
at a later date: later
at all times: always
at the present time: now
at this point in time: at this point
based in large part on: based on
based on the fact that: because
basic necessity: necessity
because of the fact that: because
came to a realization: realized
came to an abrupt end: ended abruptly
carry out an evaluation of: evaluate
close down: close
closed down: closed
complete stranger: stranger
completely separate: separate
concerning the matter of: regarding
conduct a review of: review
conduct an investigation: investigate
conduct experiments: experiment
continue on: continue
despite the fact that: although
disappear from sight: disappear
drag and drop: drag
drag-and-drop: drag
doomed to fail: doomed
due to the fact that: because
during the period of: during
during the time that: while
emergency situation: emergency
except when: unless
excessive number: too many
extend an invitation: invite
fall down: fall
fell down: fell
for the duration of: during
gather together: gather
has the ability to: can
has the capacity to: can
has the opportunity to: could
hold a meeting: meet
if this is not the case: if not
in a careful manner: carefully
in a thoughtful manner: thoughtfully
in a timely manner: timely
in an effort to: to
in between: between
in lieu of: instead of
in many cases: often
in most cases: usually
in order to: to
in some cases: sometimes
in spite of the fact that: although
in spite of: despite
in the (?:very)? near future: soon
in the event that: if
in the neighborhood of: roughly
in the vicinity of: close to
it would appear that: apparently
lift up: lift
made reference to: referred to
make reference to: refer to
mix together: mix
none at all: none
not in a position to: unable
not possible: impossible
of major importance: important
perform an assessment of: assess
pertaining to: about
place an order: order
plays a key role in: is essential to
present time: now
readily apparent: apparent
some of the: some
span across: span
subsequent to: after
successfully complete: complete
sufficient number (?:of)?: enough
take action: act
take into account: consider
the question as to whether: whether
there is no doubt but that: doubtless
this day and age: this age
this is a subject that: this subject
time (?:frame|period): time
under the provisions of: under
until such time as: until
used for fuel purposes: used for fuel
whether or not: whether
with regard to: regarding
with the exception of: except for
@@ -0,0 +1,9 @@
extends: metric
message: "Try to keep the Flesch-Kincaid grade level (%s) below 8."
link: https://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests
formula: |
(0.39 * (words / sentences)) + (11.8 * (syllables / words)) - 15.59
condition: "> 8"
level: suggestion
@@ -0,0 +1,14 @@
kanban
kanbans
Kanban
Kanbans
automation
automations
Automation
Automations
S3
PNGs
PNG
JPEG
JPEGs
US
+702
View File
@@ -0,0 +1,702 @@
extends: existence
message: "Try to avoid using clichés like '%s'."
ignorecase: true
level: warning
tokens:
- a chip off the old block
- a clean slate
- a dark and stormy night
- a far cry
- a fine kettle of fish
- a loose cannon
- a penny saved is a penny earned
- a tough row to hoe
- a word to the wise
- ace in the hole
- acid test
- add insult to injury
- against all odds
- air your dirty laundry
- all fun and games
- all in a day's work
- all talk, no action
- all thumbs
- all your eggs in one basket
- all's fair in love and war
- all's well that ends well
- almighty dollar
- American as apple pie
- an axe to grind
- another day, another dollar
- armed to the teeth
- as luck would have it
- as old as time
- as the crow flies
- at loose ends
- at my wits end
- avoid like the plague
- babe in the woods
- back against the wall
- back in the saddle
- back to square one
- back to the drawing board
- bad to the bone
- badge of honor
- bald faced liar
- ballpark figure
- banging your head against a brick wall
- baptism by fire
- barking up the wrong tree
- bat out of hell
- be all and end all
- beat a dead horse
- beat around the bush
- been there, done that
- beggars can't be choosers
- behind the eight ball
- bend over backwards
- benefit of the doubt
- bent out of shape
- best thing since sliced bread
- bet your bottom dollar
- better half
- better late than never
- better mousetrap
- better safe than sorry
- between a rock and a hard place
- beyond the pale
- bide your time
- big as life
- big cheese
- big fish in a small pond
- big man on campus
- bigger they are the harder they fall
- bird in the hand
- bird's eye view
- birds and the bees
- birds of a feather flock together
- bit the hand that feeds you
- bite the bullet
- bite the dust
- bitten off more than he can chew
- black as coal
- black as pitch
- black as the ace of spades
- blast from the past
- bleeding heart
- blessing in disguise
- blind ambition
- blind as a bat
- blind leading the blind
- blood is thicker than water
- blood sweat and tears
- blow off steam
- blow your own horn
- blushing bride
- boils down to
- bolt from the blue
- bone to pick
- bored stiff
- bored to tears
- bottomless pit
- boys will be boys
- bright and early
- brings home the bacon
- broad across the beam
- broken record
- brought back to reality
- bull by the horns
- bull in a china shop
- burn the midnight oil
- burning question
- burning the candle at both ends
- burst your bubble
- bury the hatchet
- busy as a bee
- by hook or by crook
- call a spade a spade
- called onto the carpet
- calm before the storm
- can of worms
- can't cut the mustard
- can't hold a candle to
- case of mistaken identity
- cat got your tongue
- cat's meow
- caught in the crossfire
- caught red-handed
- checkered past
- chomping at the bit
- cleanliness is next to godliness
- clear as a bell
- clear as mud
- close to the vest
- cock and bull story
- cold shoulder
- come hell or high water
- cool as a cucumber
- cool, calm, and collected
- cost a king's ransom
- count your blessings
- crack of dawn
- crash course
- creature comforts
- cross that bridge when you come to it
- crushing blow
- cry like a baby
- cry me a river
- cry over spilt milk
- crystal clear
- curiosity killed the cat
- cut and dried
- cut through the red tape
- cut to the chase
- cute as a bugs ear
- cute as a button
- cute as a puppy
- cuts to the quick
- dark before the dawn
- day in, day out
- dead as a doornail
- devil is in the details
- dime a dozen
- divide and conquer
- dog and pony show
- dog days
- dog eat dog
- dog tired
- don't burn your bridges
- don't count your chickens
- don't look a gift horse in the mouth
- don't rock the boat
- don't step on anyone's toes
- don't take any wooden nickels
- down and out
- down at the heels
- down in the dumps
- down the hatch
- down to earth
- draw the line
- dressed to kill
- dressed to the nines
- drives me up the wall
- dull as dishwater
- dyed in the wool
- eagle eye
- ear to the ground
- early bird catches the worm
- easier said than done
- easy as pie
- eat your heart out
- eat your words
- eleventh hour
- even the playing field
- every dog has its day
- every fiber of my being
- everything but the kitchen sink
- eye for an eye
- face the music
- facts of life
- fair weather friend
- fall by the wayside
- fan the flames
- feast or famine
- feather your nest
- feathered friends
- few and far between
- fifteen minutes of fame
- filthy vermin
- fine kettle of fish
- fish out of water
- fishing for a compliment
- fit as a fiddle
- fit the bill
- fit to be tied
- flash in the pan
- flat as a pancake
- flip your lid
- flog a dead horse
- fly by night
- fly the coop
- follow your heart
- for all intents and purposes
- for the birds
- for what it's worth
- force of nature
- force to be reckoned with
- forgive and forget
- fox in the henhouse
- free and easy
- free as a bird
- fresh as a daisy
- full steam ahead
- fun in the sun
- garbage in, garbage out
- gentle as a lamb
- get a kick out of
- get a leg up
- get down and dirty
- get the lead out
- get to the bottom of
- get your feet wet
- gets my goat
- gilding the lily
- give and take
- go against the grain
- go at it tooth and nail
- go for broke
- go him one better
- go the extra mile
- go with the flow
- goes without saying
- good as gold
- good deed for the day
- good things come to those who wait
- good time was had by all
- good times were had by all
- greased lightning
- greek to me
- green thumb
- green-eyed monster
- grist for the mill
- growing like a weed
- hair of the dog
- hand to mouth
- happy as a clam
- happy as a lark
- hasn't a clue
- have a nice day
- have high hopes
- have the last laugh
- haven't got a row to hoe
- head honcho
- head over heels
- hear a pin drop
- heard it through the grapevine
- heart's content
- heavy as lead
- hem and haw
- high and dry
- high and mighty
- high as a kite
- hit paydirt
- hold your head up high
- hold your horses
- hold your own
- hold your tongue
- honest as the day is long
- horns of a dilemma
- horse of a different color
- hot under the collar
- hour of need
- I beg to differ
- icing on the cake
- if the shoe fits
- if the shoe were on the other foot
- in a jam
- in a jiffy
- in a nutshell
- in a pig's eye
- in a pinch
- in a word
- in hot water
- in the gutter
- in the nick of time
- in the thick of it
- in your dreams
- it ain't over till the fat lady sings
- it goes without saying
- it takes all kinds
- it takes one to know one
- it's a small world
- it's only a matter of time
- ivory tower
- Jack of all trades
- jockey for position
- jog your memory
- joined at the hip
- judge a book by its cover
- jump down your throat
- jump in with both feet
- jump on the bandwagon
- jump the gun
- jump to conclusions
- just a hop, skip, and a jump
- just the ticket
- justice is blind
- keep a stiff upper lip
- keep an eye on
- keep it simple, stupid
- keep the home fires burning
- keep up with the Joneses
- keep your chin up
- keep your fingers crossed
- kick the bucket
- kick up your heels
- kick your feet up
- kid in a candy store
- kill two birds with one stone
- kiss of death
- knock it out of the park
- knock on wood
- knock your socks off
- know him from Adam
- know the ropes
- know the score
- knuckle down
- knuckle sandwich
- knuckle under
- labor of love
- ladder of success
- land on your feet
- lap of luxury
- last but not least
- last hurrah
- last-ditch effort
- law of the jungle
- law of the land
- lay down the law
- leaps and bounds
- let sleeping dogs lie
- let the cat out of the bag
- let the good times roll
- let your hair down
- let's talk turkey
- letter perfect
- lick your wounds
- lies like a rug
- life's a bitch
- life's a grind
- light at the end of the tunnel
- lighter than a feather
- lighter than air
- like clockwork
- like father like son
- like taking candy from a baby
- like there's no tomorrow
- lion's share
- live and learn
- live and let live
- long and short of it
- long lost love
- look before you leap
- look down your nose
- look what the cat dragged in
- looking a gift horse in the mouth
- looks like death warmed over
- loose cannon
- lose your head
- lose your temper
- loud as a horn
- lounge lizard
- loved and lost
- low man on the totem pole
- luck of the draw
- luck of the Irish
- make hay while the sun shines
- make money hand over fist
- make my day
- make the best of a bad situation
- make the best of it
- make your blood boil
- man of few words
- man's best friend
- mark my words
- meaningful dialogue
- missed the boat on that one
- moment in the sun
- moment of glory
- moment of truth
- money to burn
- more power to you
- more than one way to skin a cat
- movers and shakers
- moving experience
- naked as a jaybird
- naked truth
- neat as a pin
- needle in a haystack
- needless to say
- neither here nor there
- never look back
- never say never
- nip and tuck
- nip it in the bud
- no guts, no glory
- no love lost
- no pain, no gain
- no skin off my back
- no stone unturned
- no time like the present
- no use crying over spilled milk
- nose to the grindstone
- not a hope in hell
- not a minute's peace
- not in my backyard
- not playing with a full deck
- not the end of the world
- not written in stone
- nothing to sneeze at
- nothing ventured nothing gained
- now we're cooking
- off the top of my head
- off the wagon
- off the wall
- old hat
- older and wiser
- older than dirt
- older than Methuselah
- on a roll
- on cloud nine
- on pins and needles
- on the bandwagon
- on the money
- on the nose
- on the rocks
- on the spot
- on the tip of my tongue
- on the wagon
- on thin ice
- once bitten, twice shy
- one bad apple doesn't spoil the bushel
- one born every minute
- one brick short
- one foot in the grave
- one in a million
- one red cent
- only game in town
- open a can of worms
- open and shut case
- open the flood gates
- opportunity doesn't knock twice
- out of pocket
- out of sight, out of mind
- out of the frying pan into the fire
- out of the woods
- out on a limb
- over a barrel
- over the hump
- pain and suffering
- pain in the
- panic button
- par for the course
- part and parcel
- party pooper
- pass the buck
- patience is a virtue
- pay through the nose
- penny pincher
- perfect storm
- pig in a poke
- pile it on
- pillar of the community
- pin your hopes on
- pitter patter of little feet
- plain as day
- plain as the nose on your face
- play by the rules
- play your cards right
- playing the field
- playing with fire
- pleased as punch
- plenty of fish in the sea
- point with pride
- poor as a church mouse
- pot calling the kettle black
- pretty as a picture
- pull a fast one
- pull your punches
- pulling your leg
- pure as the driven snow
- put it in a nutshell
- put one over on you
- put the cart before the horse
- put the pedal to the metal
- put your best foot forward
- put your foot down
- quick as a bunny
- quick as a lick
- quick as a wink
- quick as lightning
- quiet as a dormouse
- rags to riches
- raining buckets
- raining cats and dogs
- rank and file
- rat race
- reap what you sow
- red as a beet
- red herring
- reinvent the wheel
- rich and famous
- rings a bell
- ripe old age
- ripped me off
- rise and shine
- road to hell is paved with good intentions
- rob Peter to pay Paul
- roll over in the grave
- rub the wrong way
- ruled the roost
- running in circles
- sad but true
- sadder but wiser
- salt of the earth
- scared stiff
- scared to death
- sealed with a kiss
- second to none
- see eye to eye
- seen the light
- seize the day
- set the record straight
- set the world on fire
- set your teeth on edge
- sharp as a tack
- shoot for the moon
- shoot the breeze
- shot in the dark
- shoulder to the wheel
- sick as a dog
- sigh of relief
- signed, sealed, and delivered
- sink or swim
- six of one, half a dozen of another
- skating on thin ice
- slept like a log
- slinging mud
- slippery as an eel
- slow as molasses
- smart as a whip
- smooth as a baby's bottom
- sneaking suspicion
- snug as a bug in a rug
- sow wild oats
- spare the rod, spoil the child
- speak of the devil
- spilled the beans
- spinning your wheels
- spitting image of
- spoke with relish
- spread like wildfire
- spring to life
- squeaky wheel gets the grease
- stands out like a sore thumb
- start from scratch
- stick in the mud
- still waters run deep
- stitch in time
- stop and smell the roses
- straight as an arrow
- straw that broke the camel's back
- strong as an ox
- stubborn as a mule
- stuff that dreams are made of
- stuffed shirt
- sweating blood
- sweating bullets
- take a load off
- take one for the team
- take the bait
- take the bull by the horns
- take the plunge
- takes one to know one
- takes two to tango
- the more the merrier
- the real deal
- the real McCoy
- the red carpet treatment
- the same old story
- there is no accounting for taste
- thick as a brick
- thick as thieves
- thin as a rail
- think outside of the box
- third time's the charm
- this day and age
- this hurts me worse than it hurts you
- this point in time
- three sheets to the wind
- through thick and thin
- throw in the towel
- tie one on
- tighter than a drum
- time and time again
- time is of the essence
- tip of the iceberg
- tired but happy
- to coin a phrase
- to each his own
- to make a long story short
- to the best of my knowledge
- toe the line
- tongue in cheek
- too good to be true
- too hot to handle
- too numerous to mention
- touch with a ten foot pole
- tough as nails
- trial and error
- trials and tribulations
- tried and true
- trip down memory lane
- twist of fate
- two cents worth
- two peas in a pod
- ugly as sin
- under the counter
- under the gun
- under the same roof
- under the weather
- until the cows come home
- unvarnished truth
- up the creek
- uphill battle
- upper crust
- upset the applecart
- vain attempt
- vain effort
- vanquish the enemy
- vested interest
- waiting for the other shoe to drop
- wakeup call
- warm welcome
- watch your p's and q's
- watch your tongue
- watching the clock
- water under the bridge
- weather the storm
- weed them out
- week of Sundays
- went belly up
- wet behind the ears
- what goes around comes around
- what you see is what you get
- when it rains, it pours
- when push comes to shove
- when the cat's away
- when the going gets tough, the tough get going
- white as a sheet
- whole ball of wax
- whole hog
- whole nine yards
- wild goose chase
- will wonders never cease?
- wisdom of the ages
- wise as an owl
- wolf at the door
- words fail me
- work like a dog
- world weary
- worst nightmare
- worth its weight in gold
- wrong side of the bed
- yanking your chain
- yappy as a dog
- years young
- you are what you eat
- you can run but you can't hide
- you only live once
- you're the boss
- young and foolish
- young and vibrant
@@ -0,0 +1,32 @@
extends: existence
message: "Try to avoid using '%s'."
ignorecase: true
level: suggestion
tokens:
- am
- are
- aren't
- be
- been
- being
- he's
- here's
- here's
- how's
- i'm
- is
- isn't
- it's
- she's
- that's
- there's
- they're
- was
- wasn't
- we're
- were
- weren't
- what's
- where's
- who's
- you're
@@ -0,0 +1,11 @@
extends: repetition
message: "'%s' is repeated!"
level: warning
alpha: true
action:
name: edit
params:
- truncate
- " "
tokens:
- '[^\s]+'
+183
View File
@@ -0,0 +1,183 @@
extends: existence
message: "'%s' may be passive voice. Use active voice if you can."
ignorecase: true
level: warning
raw:
- \b(am|are|were|being|is|been|was|be)\b\s*
tokens:
- '[\w]+ed'
- awoken
- beat
- become
- been
- begun
- bent
- beset
- bet
- bid
- bidden
- bitten
- bled
- blown
- born
- bought
- bound
- bred
- broadcast
- broken
- brought
- built
- burnt
- burst
- cast
- caught
- chosen
- clung
- come
- cost
- crept
- cut
- dealt
- dived
- done
- drawn
- dreamt
- driven
- drunk
- dug
- eaten
- fallen
- fed
- felt
- fit
- fled
- flown
- flung
- forbidden
- foregone
- forgiven
- forgotten
- forsaken
- fought
- found
- frozen
- given
- gone
- gotten
- ground
- grown
- heard
- held
- hidden
- hit
- hung
- hurt
- kept
- knelt
- knit
- known
- laid
- lain
- leapt
- learnt
- led
- left
- lent
- let
- lighted
- lost
- made
- meant
- met
- misspelt
- mistaken
- mown
- overcome
- overdone
- overtaken
- overthrown
- paid
- pled
- proven
- put
- quit
- read
- rid
- ridden
- risen
- run
- rung
- said
- sat
- sawn
- seen
- sent
- set
- sewn
- shaken
- shaven
- shed
- shod
- shone
- shorn
- shot
- shown
- shrunk
- shut
- slain
- slept
- slid
- slit
- slung
- smitten
- sold
- sought
- sown
- sped
- spent
- spilt
- spit
- split
- spoken
- spread
- sprung
- spun
- stolen
- stood
- stridden
- striven
- struck
- strung
- stuck
- stung
- stunk
- sung
- sunk
- swept
- swollen
- sworn
- swum
- swung
- taken
- taught
- thought
- thrived
- thrown
- thrust
- told
- torn
- trodden
- understood
- upheld
- upset
- wed
- wept
- withheld
- withstood
- woken
- won
- worn
- wound
- woven
- written
- wrung
+27
View File
@@ -0,0 +1,27 @@
Based on [write-good](https://github.com/btford/write-good).
> Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too.
```
The MIT License (MIT)
Copyright (c) 2014 Brian Ford
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
+5
View File
@@ -0,0 +1,5 @@
extends: existence
message: "Don't start a sentence with '%s'."
level: error
raw:
- '(?:[;-]\s)so[\s,]|\bSo[\s,]'
@@ -0,0 +1,6 @@
extends: existence
message: "Don't start a sentence with '%s'."
ignorecase: false
level: error
raw:
- '(?:[;-]\s)There\s(is|are)|\bThere\s(is|are)\b'
+219
View File
@@ -0,0 +1,219 @@
extends: existence
message: "'%s' is too wordy."
ignorecase: true
level: warning
tokens:
- a number of
- abundance
- accede to
- accelerate
- accentuate
- accompany
- accomplish
- accorded
- accrue
- acquiesce
- acquire
- additional
- adjacent to
- adjustment
- admissible
- advantageous
- adversely impact
- advise
- aforementioned
- aggregate
- aircraft
- all of
- all things considered
- alleviate
- allocate
- along the lines of
- already existing
- alternatively
- amazing
- ameliorate
- anticipate
- apparent
- appreciable
- as a matter of fact
- as a means of
- as far as I'm concerned
- as of yet
- as to
- as yet
- ascertain
- assistance
- at the present time
- at this time
- attain
- attributable to
- authorize
- because of the fact that
- belated
- benefit from
- bestow
- by means of
- by virtue of
- by virtue of the fact that
- cease
- close proximity
- commence
- comply with
- concerning
- consequently
- consolidate
- constitutes
- demonstrate
- depart
- designate
- discontinue
- due to the fact that
- each and every
- economical
- eliminate
- elucidate
- employ
- endeavor
- enumerate
- equitable
- equivalent
- evaluate
- evidenced
- exclusively
- expedite
- expend
- facilitate
- factual evidence
- feasible
- finalize
- first and foremost
- for all intents and purposes
- for the most part
- for the purpose of
- forfeit
- formulate
- have a tendency to
- honest truth
- however
- if and when
- impacted
- implement
- in a manner of speaking
- in a timely manner
- in a very real sense
- in accordance with
- in addition
- in all likelihood
- in an effort to
- in between
- in excess of
- in lieu of
- in light of the fact that
- in many cases
- in my opinion
- in order to
- in regard to
- in some instances
- in terms of
- in the case of
- in the event that
- in the final analysis
- in the nature of
- in the near future
- in the process of
- inception
- incumbent upon
- indicate
- indication
- initiate
- irregardless
- is applicable to
- is authorized to
- is responsible for
- it is
- it is essential
- it seems that
- it was
- magnitude
- maximum
- methodology
- minimize
- minimum
- modify
- monitor
- multiple
- necessitate
- nevertheless
- not certain
- not many
- not often
- not unless
- not unlike
- notwithstanding
- null and void
- numerous
- objective
- obligate
- obtain
- on the contrary
- on the other hand
- one particular
- optimum
- overall
- owing to the fact that
- participate
- particulars
- pass away
- pertaining to
- point in time
- portion
- possess
- preclude
- previously
- prior to
- prioritize
- procure
- proficiency
- provided that
- purchase
- put simply
- readily apparent
- refer back
- regarding
- relocate
- remainder
- remuneration
- requirement
- reside
- residence
- retain
- satisfy
- shall
- should you wish
- similar to
- solicit
- span across
- strategize
- subsequent
- substantial
- successfully complete
- sufficient
- terminate
- the month of
- the point I am trying to make
- therefore
- time period
- took advantage of
- transmit
- transpire
- until such time as
- utilization
- utilize
- validate
- various different
- what I mean to say is
- whether or not
- with respect to
- with the exception of
- witnessed
+206
View File
@@ -0,0 +1,206 @@
extends: existence
message: "'%s' is a weasel word!"
ignorecase: true
level: warning
tokens:
- absolutely
- accidentally
- additionally
- allegedly
- alternatively
- angrily
- anxiously
- approximately
- awkwardly
- badly
- barely
- beautifully
- blindly
- boldly
- bravely
- brightly
- briskly
- bristly
- bubbly
- busily
- calmly
- carefully
- carelessly
- cautiously
- cheerfully
- clearly
- closely
- coldly
- completely
- consequently
- correctly
- courageously
- crinkly
- cruelly
- crumbly
- cuddly
- currently
- daily
- daringly
- deadly
- definitely
- deliberately
- doubtfully
- dumbly
- eagerly
- early
- easily
- elegantly
- enormously
- enthusiastically
- equally
- especially
- eventually
- exactly
- exceedingly
- exclusively
- extremely
- fairly
- faithfully
- fatally
- fiercely
- finally
- fondly
- few
- foolishly
- fortunately
- frankly
- frantically
- generously
- gently
- giggly
- gladly
- gracefully
- greedily
- happily
- hardly
- hastily
- healthily
- heartily
- helpfully
- honestly
- hourly
- hungrily
- hurriedly
- immediately
- impatiently
- inadequately
- ingeniously
- innocently
- inquisitively
- interestingly
- irritably
- jiggly
- joyously
- justly
- kindly
- largely
- lately
- lazily
- likely
- literally
- lonely
- loosely
- loudly
- loudly
- luckily
- madly
- many
- mentally
- mildly
- monthly
- mortally
- mostly
- mysteriously
- neatly
- nervously
- nightly
- noisily
- normally
- obediently
- occasionally
- openly
- painfully
- particularly
- patiently
- perfectly
- politely
- poorly
- powerfully
- presumably
- previously
- promptly
- punctually
- quarterly
- quickly
- quietly
- rapidly
- rarely
- really
- recently
- recklessly
- regularly
- remarkably
- relatively
- reluctantly
- repeatedly
- rightfully
- roughly
- rudely
- sadly
- safely
- selfishly
- sensibly
- seriously
- sharply
- shortly
- shyly
- significantly
- silently
- simply
- sleepily
- slowly
- smartly
- smelly
- smoothly
- softly
- solemnly
- sparkly
- speedily
- stealthily
- sternly
- stupidly
- substantially
- successfully
- suddenly
- surprisingly
- suspiciously
- swiftly
- tenderly
- tensely
- thoughtfully
- tightly
- timely
- truthfully
- unexpectedly
- unfortunately
- usually
- very
- victoriously
- violently
- vivaciously
- warmly
- waverly
- weakly
- wearily
- weekly
- wildly
- wisely
- worldly
- wrinkly
- yearly
+4
View File
@@ -0,0 +1,4 @@
{
"feed": "https://github.com/errata-ai/write-good/releases.atom",
"vale_version": ">=1.0.0"
}
@@ -0,0 +1,21 @@
name: Nx Affected CI
inputs:
parallel:
required: false
types: [number]
default: 3
tag:
required: false
types: [string]
tasks:
required: true
types: [string]
runs:
using: "composite"
steps:
- name: Get last successful commit
uses: nrwl/nx-set-shas@v4
- name: Run affected command
shell: bash
run: npx nx affected --nxBail --configuration=ci -t=${{ inputs.tasks }} --parallel=${{ inputs.parallel }} --exclude='*,!tag:${{ inputs.tag }}'
@@ -0,0 +1,31 @@
name: Restore Tasks Cache CI
inputs:
tag:
required: false
types: [string]
tasks:
required: false
types: [string]
default: all
suffix:
required: false
types: [string]
runs:
using: "composite"
steps:
- name: Compute tasks key
id: tasks-key
shell: bash
run: echo "key=${{ inputs.tasks }}" | tr , - >> $GITHUB_OUTPUT
- name: Restore tasks cache
uses: actions/cache@v3
with:
path: |
.cache
.nx/cache
node_modules/.cache
packages/*/node_modules/.cache
key: tasks-cache-${{ github.ref_name }}-${{ inputs.tag }}-${{ steps.tasks-key.outputs.key }}${{ inputs.suffix }}-${{ github.sha }}
restore-keys: |
tasks-cache-${{ github.ref_name }}-${{ inputs.tag }}-${{ steps.tasks-key.outputs.key }}${{ inputs.suffix }}-
@@ -0,0 +1,23 @@
name: Yarn Install
runs:
using: "composite"
steps:
- name: Setup Node.js and get yarn cache
uses: actions/setup-node@v3
with:
node-version: "18"
cache: yarn
- name: Cache node modules
id: node-modules-cache
uses: actions/cache@v3
with:
path: |
node_modules
packages/*/node_modules
key: root-node_modules-${{ hashFiles('yarn.lock') }}
restore-keys: root-node_modules-
- name: Install Dependencies
shell: bash
run: yarn --immutable --check-cache
if: steps.node-modules-cache.outputs.cache-hit != 'true'
+16
View File
@@ -0,0 +1,16 @@
name: CD deploy main
on:
push:
branches:
- main
jobs:
deploy-main:
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.TWENTY_INFRA_TOKEN }}
repository: twentyhq/twenty-infra
event-type: auto-deploy-main
client-payload: '{"github": ${{ toJson(github) }}}' # Passes the entire github context to the downstream workflow
+16
View File
@@ -0,0 +1,16 @@
name: CD deploy tag
on:
push:
tags:
- 'v*'
jobs:
deploy-tag:
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.TWENTY_INFRA_TOKEN }}
repository: twentyhq/twenty-infra
event-type: auto-deploy-tag
client-payload: '{"github": ${{ toJson(github) }}}' # Passes the entire github context to the downstream workflow
@@ -0,0 +1,32 @@
name: CI Chrome Extension
on:
push:
branches:
- main
paths:
- 'package.json'
- 'packages/twenty-chrome-extension/**'
pull_request:
paths:
- 'package.json'
- 'packages/twenty-chrome-extension/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
chrome-extension-build:
runs-on: ubuntu-latest
env:
VITE_SERVER_BASE_URL: http://localhost:3000
VITE_FRONT_BASE_URL: http://localhost:3001
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Chrome Extension / Run build
run: npx nx build twenty-chrome-extension
+142
View File
@@ -0,0 +1,142 @@
name: CI Front
on:
push:
branches:
- main
paths:
- 'package.json'
- 'packages/twenty-front/**'
- 'packages/twenty-ui/**'
pull_request:
paths:
- 'package.json'
- 'packages/twenty-front/**'
- 'packages/twenty-ui/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
front-sb-build:
runs-on: ubuntu-latest
env:
REACT_APP_SERVER_BASE_URL: http://localhost:3000
NX_REJECT_UNKNOWN_LOCAL_CACHE: 0
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Fetch local actions
uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Front / Restore Storybook Task Cache
uses: ./.github/workflows/actions/task-cache
with:
tag: scope:frontend
tasks: storybook:build
- name: Front / Write .env
run: npx nx reset:env twenty-front
- name: Front / Build storybook
run: npx nx storybook:build twenty-front --configuration=test
front-sb-test:
runs-on: ci-8-cores
needs: front-sb-build
strategy:
matrix:
storybook_scope: [pages, modules]
env:
REACT_APP_SERVER_BASE_URL: http://localhost:3000
NX_REJECT_UNKNOWN_LOCAL_CACHE: 0
steps:
- name: Fetch local actions
uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Install Playwright
run: cd packages/twenty-front && npx playwright install
- name: Front / Restore Storybook Task Cache
uses: ./.github/workflows/actions/task-cache
with:
tag: scope:frontend
tasks: storybook:build
- name: Front / Write .env
run: npx nx reset:env twenty-front
- name: Run storybook tests
run: npx nx storybook:static:test twenty-front --configuration=${{ matrix.storybook_scope }}
front-sb-test-performance:
runs-on: ci-8-cores
env:
REACT_APP_SERVER_BASE_URL: http://localhost:3000
NX_REJECT_UNKNOWN_LOCAL_CACHE: 0
steps:
- name: Fetch local actions
uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Install Playwright
run: cd packages/twenty-front && npx playwright install
- name: Front / Write .env
run: npx nx reset:env twenty-front
- name: Run storybook tests
run: npx nx storybook:performance:test twenty-front
front-chromatic-deployment:
if: contains(github.event.pull_request.labels.*.name, 'run-chromatic') || github.event_name == 'push'
needs: front-sb-build
runs-on: ubuntu-latest
env:
REACT_APP_SERVER_BASE_URL: http://127.0.0.1:3000
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
NX_REJECT_UNKNOWN_LOCAL_CACHE: 0
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Front / Restore Storybook Task Cache
uses: ./.github/workflows/actions/task-cache
with:
tag: scope:frontend
tasks: storybook:build
- name: Front / Write .env
run: |
cd packages/twenty-front
touch .env
echo "REACT_APP_SERVER_BASE_URL: $REACT_APP_SERVER_BASE_URL" >> .env
- name: Publish to Chromatic
run: npx nx run twenty-front:chromatic:ci
front-task:
runs-on: ubuntu-latest
env:
NX_REJECT_UNKNOWN_LOCAL_CACHE: 0
strategy:
matrix:
task: [lint, typecheck, test]
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Fetch custom Github Actions and base branch history
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Front / Restore ${{ matrix.task }} task cache
uses: ./.github/workflows/actions/task-cache
with:
tag: scope:frontend
tasks: ${{ matrix.task }}
- name: Reset .env
uses: ./.github/workflows/actions/nx-affected
with:
tag: scope:frontend
tasks: reset:env
- name: Run ${{ matrix.task }} task
uses: ./.github/workflows/actions/nx-affected
with:
tag: scope:frontend
tasks: ${{ matrix.task }}
+44
View File
@@ -0,0 +1,44 @@
name: "Release: create"
on:
workflow_dispatch:
inputs:
version:
required: true
description: Version to release, without the v (e.g. 1.2.3)
ref:
default: main
description: Ref to start the release from (e.g. main, sha)
create_release:
type: boolean
default: true
description: Create a release after merging the PR
jobs:
create_pr:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
ref: ${{ github.event.inputs.ref }}
- name: Sanitize version
id: sanitize
run: |
echo version=$(echo ${{ github.event.inputs.version }} | sed 's/^v//') >> $GITHUB_OUTPUT
- name: Update versions
run: |
echo ${{ steps.sanitize.outputs.version }} > version.txt
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
branch: release/${{ steps.sanitize.outputs.version }}
commit-message: "chore: release v${{ steps.sanitize.outputs.version }}"
committer: Github Action Deploy <[email protected]>
author: Github Action Deploy <[email protected]>
title: Release v${{ steps.sanitize.outputs.version }}
labels: |
release
${{ github.event.inputs.create_release == true && 'create_release' || '' }}
+47
View File
@@ -0,0 +1,47 @@
name: "Release: on merge"
on:
pull_request:
types:
- closed
jobs:
tag_and_release:
runs-on: ubuntu-latest
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release')
steps:
- name: Check PR Author
id: check_author
run: |
if [[ "${{ github.event.pull_request.user.login }}" != "github-actions[bot]" ]]; then
echo "PR author (${AUTHOR}) is not trusted. Exiting."
exit 1
fi
- name: Checkout
uses: actions/checkout@v2
with:
ref: main
- name: Get version from PR title
id: extract_version
run: |
VERSION=$(echo "${{ github.event.pull_request.title }}" | sed -n 's/.*Release v\([0-9.]*\).*/\1/p')
if [ -z "$VERSION" ]; then
echo "No valid version found in PR title. Exiting."
exit 1
fi
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Push new tag
run: |
git config --global user.name 'Github Action Deploy'
git config --global user.email '[email protected]'
git tag v${{ env.VERSION }}
git push origin v${{ env.VERSION }}
- uses: release-drafter/release-drafter@v5
if: contains(github.event.pull_request.labels.*.name, 'create_release')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag: v${{ env.VERSION }}
+58
View File
@@ -0,0 +1,58 @@
name: CI Server
on:
push:
branches:
- main
paths:
- 'package.json'
- 'packages/twenty-server/**'
- 'packages/twenty-emails/**'
pull_request:
paths:
- 'package.json'
- 'packages/twenty-server/**'
- 'packages/twenty-emails/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
server-test:
runs-on: ubuntu-latest
env:
NX_REJECT_UNKNOWN_LOCAL_CACHE: 0
services:
postgres:
image: twentycrm/twenty-postgres
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
ports:
- 5432:5432
steps:
- name: Fetch custom Github Actions and base branch history
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Server / Restore Tasks Cache
uses: ./.github/workflows/actions/task-cache
with:
tag: scope:backend
- name: Server / Run lint & typecheck
uses: ./.github/workflows/actions/nx-affected
with:
tag: scope:backend
tasks: lint,typecheck
- name: Server / Run tests
uses: ./.github/workflows/actions/nx-affected
with:
tag: scope:backend
tasks: test
- name: Server / Build
run: npx nx build twenty-server
- name: Server / Write .env
run: npx nx reset:env twenty-server
- name: Worker / Run
run: MESSAGE_QUEUE_TYPE=sync npx nx worker twenty-server
@@ -0,0 +1,59 @@
name: 'Test Docker Compose'
on:
pull_request:
paths:
- 'packages/twenty-docker/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run compose
run: |
echo "Patching docker-compose.yml..."
# change image to localbuild using yq
yq eval 'del(.services.server.image)' -i docker-compose.yml
yq eval '.services.server.build.context = "../../"' -i docker-compose.yml
yq eval '.services.server.build.dockerfile = "./packages/twenty-docker/twenty/Dockerfile"' -i docker-compose.yml
yq eval '.services.server.restart = "no"' -i docker-compose.yml
yq eval 'del(.services.db.image)' -i docker-compose.yml
yq eval '.services.db.build.context = "../../"' -i docker-compose.yml
yq eval '.services.db.build.dockerfile = "./packages/twenty-docker/twenty-postgres/Dockerfile"' -i docker-compose.yml
echo "Setting up .env file..."
cp .env.example .env
echo "Generating secrets..."
echo "# === Randomly generated secrets ===" >>.env
echo "ACCESS_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "LOGIN_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "REFRESH_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "FILE_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "POSTGRES_ADMIN_PASSWORD=$(openssl rand -base64 32)" >>.env
echo "Starting server..."
docker compose up -d
docker compose logs db server -f &
pid=$!
echo "Waiting for server to start..."
count=0
while [ ! $(docker inspect --format='{{.State.Health.Status}}' twenty-server-1) = "healthy" ]; do
sleep 1;
count=$((count+1));
if [ $(docker inspect --format='{{.State.Status}}' twenty-server-1) = "exited" ]; then
echo "Server exited"
exit 1
fi
if [ $count -gt 300 ]; then
echo "Failed to start server"
exit 1
fi
done
working-directory: ./packages/twenty-docker/
+43
View File
@@ -0,0 +1,43 @@
name: CI Utils
on:
# it's usually not recommended to use pull_request_target
# but we consider it's safe here if we keep the same steps
# see: https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
# and: https://github.com/facebook/react-native/pull/34370/files
pull_request_target:
types: [opened, synchronize, reopened, closed]
permissions:
actions: write
checks: write
contents: write
issues: write
pull-requests: write
statuses: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
danger-js:
runs-on: ubuntu-latest
if: github.event.action != 'closed'
steps:
- uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Utils / Run Danger.js
run: cd packages/twenty-utils && npx nx danger:ci
env:
DANGER_GITHUB_API_TOKEN: ${{ github.token }}
congratulate:
runs-on: ubuntu-latest
if: github.event.action == 'closed' && github.event.pull_request.merged == true
steps:
- uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Run congratulate-dangerfile.js
run: cd packages/twenty-utils && npx nx danger:congratulate
env:
DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+39
View File
@@ -0,0 +1,39 @@
name: CI Website
on:
push:
branches:
- main
paths:
- 'package.json'
- 'packages/twenty-website/**'
pull_request:
paths:
- 'package.json'
- 'packages/twenty-website/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
website-build:
runs-on: ubuntu-latest
services:
postgres:
image: twentycrm/twenty-postgres
env:
POSTGRES_PASSWORD: twenty
POSTGRES_USER: twenty
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/workflows/actions/yarn-install
- name: Website / Run migrations
run: npx nx database:migrate twenty-website
env:
DATABASE_PG_URL: postgres://twenty:twenty@localhost:5432/default
- name: Website / Build Website
run: npx nx build twenty-website
env:
DATABASE_PG_URL: postgres://twenty:twenty@localhost:5432/default
+30
View File
@@ -0,0 +1,30 @@
**/**/.env
.DS_Store
/.idea
**/**/node_modules/
.cache
# yarn is the recommended package manager across the project
**/**/.package-lock.json
.nx/installation
.nx/cache
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.vercel
**/**/logs/**
coverage
dist
storybook-static
*.tsbuildinfo
.eslintcache
.cache
.nyc_output
+1
View File
@@ -0,0 +1 @@
18.17.1
+115
View File
@@ -0,0 +1,115 @@
"use strict";
// This file should be committed to your repository! It wraps Nx and ensures
// that your local installation matches nx.json.
// See: https://nx.dev/recipes/installation/install-non-javascript for more info.
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require('fs');
const path = require('path');
const cp = require('child_process');
const installationPath = path.join(__dirname, 'installation', 'package.json');
function matchesCurrentNxInstall(currentInstallation, nxJsonInstallation) {
if (!currentInstallation.devDependencies ||
!Object.keys(currentInstallation.devDependencies).length) {
return false;
}
try {
if (currentInstallation.devDependencies['nx'] !==
nxJsonInstallation.version ||
require(path.join(path.dirname(installationPath), 'node_modules', 'nx', 'package.json')).version !== nxJsonInstallation.version) {
return false;
}
for (const [plugin, desiredVersion] of Object.entries(nxJsonInstallation.plugins || {})) {
if (currentInstallation.devDependencies[plugin] !== desiredVersion) {
return false;
}
}
return true;
}
catch {
return false;
}
}
function ensureDir(p) {
if (!fs.existsSync(p)) {
fs.mkdirSync(p, { recursive: true });
}
}
function getCurrentInstallation() {
try {
return require(installationPath);
}
catch {
return {
name: 'nx-installation',
version: '0.0.0',
devDependencies: {},
};
}
}
function performInstallation(currentInstallation, nxJson) {
fs.writeFileSync(installationPath, JSON.stringify({
name: 'nx-installation',
devDependencies: {
nx: nxJson.installation.version,
...nxJson.installation.plugins,
},
}));
try {
cp.execSync('npm i', {
cwd: path.dirname(installationPath),
stdio: 'inherit',
});
}
catch (e) {
// revert possible changes to the current installation
fs.writeFileSync(installationPath, JSON.stringify(currentInstallation));
// rethrow
throw e;
}
}
function ensureUpToDateInstallation() {
const nxJsonPath = path.join(__dirname, '..', 'nx.json');
let nxJson;
try {
nxJson = require(nxJsonPath);
if (!nxJson.installation) {
console.error('[NX]: The "installation" entry in the "nx.json" file is required when running the nx wrapper. See https://nx.dev/recipes/installation/install-non-javascript');
process.exit(1);
}
}
catch {
console.error('[NX]: The "nx.json" file is required when running the nx wrapper. See https://nx.dev/recipes/installation/install-non-javascript');
process.exit(1);
}
try {
ensureDir(path.join(__dirname, 'installation'));
const currentInstallation = getCurrentInstallation();
if (!matchesCurrentNxInstall(currentInstallation, nxJson.installation)) {
performInstallation(currentInstallation, nxJson);
}
}
catch (e) {
const messageLines = [
'[NX]: Nx wrapper failed to synchronize installation.',
];
if (e instanceof Error) {
messageLines.push('');
messageLines.push(e.message);
messageLines.push(e.stack);
}
else {
messageLines.push(e.toString());
}
console.error(messageLines.join('\n'));
process.exit(1);
}
}
if (!process.env.NX_WRAPPER_SKIP_INSTALL) {
ensureUpToDateInstallation();
}
require('./installation/node_modules/nx/bin/nx');
+4
View File
@@ -0,0 +1,4 @@
# Add files here to ignore them from prettier formatting
/dist
/coverage
/.nx/cache
+5
View File
@@ -0,0 +1,5 @@
{
"singleQuote": true,
"trailingComma": "all",
"endOfLine": "auto"
}
+17
View File
@@ -0,0 +1,17 @@
StylesPath = .github/vale-styles
MinAlertLevel = suggestion
Packages = write-good
[*.{md,mdx}]
BasedOnStyles = Vale, write-good, docs
Vale.Spelling=warning
write-good.E-Prime=No
write-good.So=No
write-good.ThereIs=No
Vale.Terms=No
[formats]
mdx = md
+19
View File
@@ -0,0 +1,19 @@
{
"recommendations": [
"arcanis.vscode-zipfs",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"figma.figma-vscode-extension",
"firsttris.vscode-jest-runner",
"graphql.vscode-graphql-syntax",
"GraphQL.vscode-graphql",
"graphql.vscode-graphql",
"ms-vscode-remote.remote-containers",
"ms-vscode.makefile-tools",
"nrwl.angular-console",
"styled-components.vscode-styled-components",
"unifiedjs.vscode-mdx",
"xyc.vscode-mdx-preview",
"yoavbls.pretty-ts-errors"
]
}
+56
View File
@@ -0,0 +1,56 @@
{
"version": "0.2.0",
"resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"],
"configurations": [
{
"name": "twenty-server - start debug",
"type": "node",
"request": "launch",
"runtimeExecutable": "yarn",
"runtimeVersion": "18",
"runtimeArgs": [
"nx",
"run",
"twenty-server:start",
],
"outputCapture": "std",
"internalConsoleOptions": "openOnSessionStart",
"console": "internalConsole",
"cwd": "${workspaceFolder}/packages/twenty-server/"
},
{
"name": "twenty-server - worker debug",
"type": "node",
"request": "launch",
"runtimeExecutable": "yarn",
"runtimeVersion": "18",
"runtimeArgs": [
"nx",
"run",
"twenty-server:worker",
],
"outputCapture": "std",
"internalConsoleOptions": "openOnSessionStart",
"console": "internalConsole",
"cwd": "${workspaceFolder}/packages/twenty-server/"
},
{
"name": "twenty-server - command debug example",
"type": "node",
"request": "launch",
"runtimeExecutable": "npx",
"runtimeVersion": "18",
"runtimeArgs": [
"nx",
"run",
"twenty-server:command",
"my-command",
"--my-parameter value",
],
"outputCapture": "std",
"internalConsoleOptions": "openOnSessionStart",
"console": "internalConsole",
"cwd": "${workspaceFolder}/packages/twenty-server/"
}
]
}
+46
View File
@@ -0,0 +1,46 @@
{
"editor.formatOnSave": false,
"files.eol": "auto",
"[typescript]": {
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.addMissingImports": "always"
}
},
"[javascript]": {
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.addMissingImports": "always"
}
},
"[typescriptreact]": {
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.addMissingImports": "always"
}
},
"[json]": {
"editor.formatOnSave": true
},
"javascript.format.enable": false,
"typescript.format.enable": false,
"cSpell.enableFiletypes": [
"!javascript",
"!json",
"!typescript",
"!typescriptreact",
"md",
"mdx"
],
"cSpell.words": [
"twentyhq"
],
"typescript.preferences.importModuleSpecifier": "non-relative",
"search.exclude": {
"**/.yarn": true,
},
"eslint.debug": true
}
+13
View File
@@ -0,0 +1,13 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "start",
"path": "server",
"problemMatcher": [],
"label": "yarn: start - server",
"detail": "yarn start"
}
]
}
+102
View File
@@ -0,0 +1,102 @@
{
"folders": [
{
"name": "ROOT",
"path": "../"
},
{
"name": "packages/twenty-chrome-extension",
"path": "../packages/twenty-chrome-extension"
},
{
"name": "packages/twenty-docker",
"path": "../packages/twenty-docker"
},
{
"name": "packages/twenty-front",
"path": "../packages/twenty-front"
},
{
"name": "packages/twenty-postgres",
"path": "../packages/twenty-postgres"
},
{
"name": "packages/twenty-server",
"path": "../packages/twenty-server"
},
{
"name": "packages/twenty-utils",
"path": "../packages/twenty-utils"
},
{
"name": "packages/twenty-zapier",
"path": "../packages/twenty-zapier"
},
{
"name": "tools/eslint-rules",
"path": "../tools/eslint-rules"
},
],
"settings": {
"editor.formatOnSave": false,
"files.eol": "auto",
"[typescript]": {
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.addMissingImports": "always"
}
},
"[javascript]": {
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.addMissingImports": "always"
}
},
"[typescriptreact]": {
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.addMissingImports": "always"
}
},
"[json]": {
"editor.formatOnSave": true
},
"javascript.format.enable": false,
"typescript.format.enable": false,
"cSpell.enableFiletypes": [
"!javascript",
"!json",
"!typescript",
"!typescriptreact",
"md",
"mdx"
],
"cSpell.words": [
"twentyhq"
],
"typescript.preferences.importModuleSpecifier": "non-relative",
"[javascript][typescript][typescriptreact]": {
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.addMissingImports": "always"
}
},
"search.exclude": {
"**/.yarn": true,
},
"files.exclude": {
"packages/": true
},
"jest.runMode": "on-demand",
"jest.disabledWorkspaceFolders": [
"ROOT",
"packages/twenty-zapier",
"packages/twenty-docker",
"packages/twenty-utils",
"packages/twenty-postgres"
]
}
}
+893
View File
File diff suppressed because one or more lines are too long
+5
View File
@@ -0,0 +1,5 @@
enableInlineHunks: true
nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.0.2.cjs
+661
View File
@@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.
+26
View File
@@ -0,0 +1,26 @@
docker-dev-build:
make -C packages/twenty-docker dev-build
docker-dev-up:
make -C packages/twenty-docker dev-up
docker-dev-start:
make -C packages/twenty-docker dev-start
docker-dev-stop:
make -C packages/twenty-docker dev-stop
docker-dev-sh:
make -C packages/twenty-docker dev-sh
postgres-on-docker:
make -C packages/twenty-postgres provision-on-docker
postgres-on-macos-arm:
make -C packages/twenty-postgres provision-on-macos-arm
postgres-on-macos-intel:
make -C packages/twenty-postgres provision-on-macos-intel
postgres-on-linux:
make -C packages/twenty-postgres provision-on-linux
+170
View File
@@ -0,0 +1,170 @@
<br>
<p align="center">
<a href="https://www.twenty.com">
<img src="./packages/twenty-website/public/images/core/logo.svg" width="100px" alt="Twenty logo" />
</a>
</p>
<h2 align="center" >The #1 Open-Source CRM </h3>
<p align="center">Tailored to your unique business needs</p>
<p align="center"><a href="https://twenty.com">🌐 Website</a> · <a href="https://twenty.com/developers">📚 Documentation</a> · <a href="https://discord.gg/cx5n4Jzs57"><img src="./packages/twenty-website/public/images/readme/discord-icon.svg" width="12" height="12"/> Discord</a> · <a href="https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twenty"><img src="./packages/twenty-website/public/images/readme/figma-icon.png" width="12" height="12"/> Figma</a><p>
<br />
<p align="center">
<a href="https://www.twenty.com">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/preview-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/preview-light.png">
<img src="./packages/twenty-docs/static/img/preview-light.png" alt="Companies view" />
</picture>
</a>
</p>
<br>
Weve spent thousands of hours grappling with traditional CRMs like Pipedrive and Salesforce to align them with our business needs, only to end up frustrated — customizations are complex and the closed ecosystems of these platforms can feel restrictive.
We felt the need for a CRM platform that empowers rather than constrains. We believe the next great CRM will come from the open-source community. Weve packed Twenty with powerful features to give you full control and help you run your business efficiently.
<br>
# Demo
Go to <a href="https://demo.twenty.com/">demo.twenty.com</a> and login with the following credentials:
```
email: [email protected]
password: Applecar2025
```
See also:
🚀 [Self-hosting](https://twenty.com/developers/section/self-hosting)
🖥️ [Local Setup](https://twenty.com/developers/local-setup)
# Why Choose Twenty?
We understand that the CRM landscape is vast. So why should you choose us?
⛓️ **Full control, Full Freedom:** Contribute, self-host, fork. Break free from vendor lock-in and join us in shaping the open future of CRM.
📊 **Data, Your Way:** The days when the role of CRM platforms was to shift manual data entries to a database are over. Now, the data is already there. CRM 2.0 should be built around your data, allowing you to access and visualize any existing sources, not forcing you to retrofit your data into predefined objects on a remote cloud.
🎨 **Effortlessly Intuitive:** We set out to create something that we ourselves would always enjoy using. The main application draws inspiration from Notion, a tool known for its user-friendly interface and customization capabilities.
<br>
<br>
# What You Can Do With Twenty
We're currently in the development phase of Twenty's alpha version.
Please feel free to flag any specific need you have need by creating an issue.
Below are some features we have implemented to date:
+ [Add, filter, sort, edit, and track customers](#add-filter-sort-edit-and-track-customers)
+ [Create one or several opportunities for each company](#create-one-or-several-opportunities-for-each-company)
+ [See rich notes tasks displayed in a timeline](#see-rich-notes-tasks-displayed-in-a-timeline)
+ [Create tasks on records](#create-tasks-on-records)
+ [Navigate quickly through the app using keyboard shortcuts and search](#navigate-quickly-through-the-app-using-keyboard-shortcuts-and-search)
## Add, filter, sort, edit, and track customers:
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/index-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/index-light.png">
<img src="./packages/twenty-docs/static/img/visualise-customer-light.png" alt="Companies view" />
</picture>
</p>
## Create one or several opportunities for each company:
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/kanban-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/kanban-light.png">
<img src="./packages/twenty-docs/static/img/follow-your-deals-light.png" alt="Companies view" />
</picture>
</p>
## Track deals effortlessly with the email integration:
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/emails-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/emails-light.png">
<img src="./packages/twenty-docs/static/img/rich-notes-light.png" alt="Companies view" />
</picture>
</p>
## Tailor your data model to meet business needs:
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/data-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/data-light.png">
<img src="./packages/twenty-docs/static/img/rich-notes-light.png" alt="Companies view" />
</picture>
</p>
## See rich notes displayed in a timeline:
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/notes-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/notes-light.png">
<img src="./packages/twenty-docs/static/img/rich-notes-light.png" alt="Companies view" />
</picture>
</p>
## Create tasks on records
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/tasks-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/tasks-light.png">
<img src="./packages/twenty-docs/static/img/create-tasks-light.png" alt="Companies view" />
</picture>
</p>
## Navigate quickly through the app using keyboard shortcuts and search:
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/keyboard-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/keyboard-light.png">
<img src="./packages/twenty-docs/static/img/shortcut-navigation-light.png" alt="Companies view" />
</picture>
</p>
## Connect your CRM to all your tools through our APIs and Webhooks.
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/api-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/twentyhq/twenty/v0.12.0/packages/twenty-docs/static/img/api-light.png">
<img src="./packages/twenty-docs/static/img/shortcut-navigation-light.png" alt="Companies view" />
</picture>
</p>
<br>
# What's In Store
Heres what you can look forward to:
**Frequent updates:** Were shipping fast! Expect regular updates and new features that enhance your experience.
🔗 **Extensibility:** Were putting the power in your hands. Soon, youll have the tools to extend and customize Twenty with plugins and more.
<br>
# Join the Community
- Star the repo
- Join [discussions](https://github.com/twentyhq/twenty/discussions) and track [issues](https://github.com/twentyhq/twenty/issues)
- Follow us on [Twitter](https://twitter.com/twentycrm) or [LinkedIn](https://www.linkedin.com/company/twenty/)
- Join our [Discord](https://discord.gg/cx5n4Jzs57)
- [Contributions](https://github.com/twentyhq/twenty/contribute) are, of course, most welcome!
Executable
+167
View File
@@ -0,0 +1,167 @@
#!/bin/bash
echo "🔧 Checking dependencies..."
if ! command -v docker &>/dev/null; then
echo -e "\t❌ Docker is not installed or not in PATH. Please install Docker first.\n\t\tSee https://docs.docker.com/get-docker/"
exit 1
fi
# Check if docker compose plugin is installed
if ! docker compose version &>/dev/null; then
echo -e "\t❌ Docker Compose is not installed or not in PATH (n.b. docker-compose is deprecated)\n\t\tUpdate docker or install docker-compose-plugin\n\t\tOn Linux: sudo apt-get install docker-compose-plugin\n\t\tSee https://docs.docker.com/compose/install/"
exit 1
fi
# Check if docker is started
if ! docker info &>/dev/null; then
echo -e "\t❌ Docker is not running.\n\t\tPlease start Docker Desktop, Docker or check documentation at https://docs.docker.com/config/daemon/start/"
exit 1
fi
if ! command -v curl &>/dev/null; then
echo -e "\t❌ Curl is not installed or not in PATH.\n\t\tOn macOS: brew install curl\n\t\tOn Linux: sudo apt install curl"
exit 1
fi
# Check if docker compose version is >= 2
if [ "$(docker compose version --short | cut -d' ' -f3 | cut -d'.' -f1)" -lt 2 ]; then
echo -e "\t❌ Docker Compose is outdated. Please update Docker Compose to version 2 or higher.\n\t\tSee https://docs.docker.com/compose/install/linux/"
exit 1
fi
# Check if docker-compose is installed, if so issue a warning if version is < 2
if command -v docker-compose &>/dev/null; then
if [ "$(docker-compose version --short | cut -d' ' -f3 | cut -d'.' -f1)" -lt 2 ]; then
echo -e "\n\t⚠️ 'docker-compose' is installed but outdated. Make sure to use 'docker compose' or to upgrade 'docker-compose' to version 2.\n\t\tSee https://docs.docker.com/compose/install/standalone/\n"
fi
fi
# Catch errors
set -e
function on_exit {
# $? is the exit status of the last command executed
local exit_status=$?
if [ $exit_status -ne 0 ]; then
echo "❌ Something went wrong, exiting: $exit_status"
fi
}
trap on_exit EXIT
# Use environment variables VERSION and BRANCH, with defaults if not set
version=${VERSION:-$(curl -s https://api.github.com/repos/twentyhq/twenty/releases/latest | grep '"tag_name":' | cut -d '"' -f 4)}
branch=${BRANCH:-main}
echo "🚀 Using version $version and branch $branch"
dir_name="twenty"
function ask_directory {
read -p "📁 Enter the directory name to setup the project (default: $dir_name): " answer
if [ -n "$answer" ]; then
dir_name=$answer
fi
}
ask_directory
while [ -d "$dir_name" ]; do
read -p "🚫 Directory '$dir_name' already exists. Do you want to overwrite it? (y/N) " answer
if [ "$answer" = "y" ]; then
break
else
ask_directory
fi
done
# Create a directory named twenty
echo "📁 Creating directory '$dir_name'"
mkdir -p "$dir_name" && cd "$dir_name" || { echo "❌ Failed to create/access directory '$dir_name'"; exit 1; }
# Copy the twenty/packages/twenty-docker/docker-compose.yml file in it
echo -e "\t• Copying docker-compose.yml"
curl -sLo docker-compose.yml https://raw.githubusercontent.com/twentyhq/twenty/$branch/packages/twenty-docker/docker-compose.yml
# Copy twenty/packages/twenty-docker/.env.example to .env
echo -e "\t• Setting up .env file"
curl -sLo .env https://raw.githubusercontent.com/twentyhq/twenty/$branch/packages/twenty-docker/.env.example
# Replace TAG=latest by TAG=<latest_release or version input>
if [[ $(uname) == "Darwin" ]]; then
# Running on macOS
sed -i '' "s/TAG=latest/TAG=$version/g" .env
else
# Assuming Linux
sed -i'' "s/TAG=latest/TAG=$version/g" .env
fi
# Generate random strings for secrets
echo "# === Randomly generated secrets ===" >>.env
echo "ACCESS_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "LOGIN_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "REFRESH_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "FILE_TOKEN_SECRET=$(openssl rand -base64 32)" >>.env
echo "" >>.env
echo "POSTGRES_ADMIN_PASSWORD=$(openssl rand -base64 32)" >>.env
echo -e "\t• .env configuration completed"
port=3000
# Check if command nc is available
if command -v nc &> /dev/null; then
# Check if port 3000 is already in use, propose to change it
while nc -zv localhost $port &>/dev/null; do
read -p "🚫 Port $port is already in use. Do you want to use another port? (Y/n) " answer
if [ "$answer" = "n" ]; then
continue
fi
read -p "Enter a new port number: " new_port
if [[ $(uname) == "Darwin" ]]; then
sed -i '' "s/$port:$port/$new_port:$port/g" docker-compose.yml
else
sed -i'' "s/$port:$port/$new_port:$port/g" docker-compose.yml
fi
port=$new_port
done
fi
# Ask user if they want to start the project
read -p "🚀 Do you want to start the project now? (Y/n) " answer
if [ "$answer" = "n" ]; then
echo "✅ Project setup completed. Run 'docker compose up -d' to start."
exit 0
else
echo "🐳 Starting Docker containers..."
docker compose up -d
# Check if port is listening
echo "Waiting for server to be healthy, it might take a few minutes while we initialize the database..."
# Tail logs of the server until it's ready
docker compose logs -f server &
pid=$!
while [ ! $(docker inspect --format='{{.State.Health.Status}}' twenty-server-1) = "healthy" ]; do
sleep 1
done
kill $pid
echo ""
echo "✅ Server is up and running"
fi
function ask_open_browser {
read -p "🌐 Do you want to open the project in your browser? (Y/n) " answer
if [ "$answer" = "n" ]; then
echo "✅ Setup completed. Access your project at http://localhost:$port"
exit 0
fi
}
# Ask user if they want to open the project
# Running on macOS
if [[ $(uname) == "Darwin" ]]; then
ask_open_browser
open "http://localhost:$port"
# Assuming Linux
else
# xdg-open is not installed, we could be running in a non gui environment
if command -v xdg-open >/dev/null 2>&1; then
ask_open_browser
xdg-open "http://localhost:$port"
else
echo "✅ Setup completed. Your project is available at http://localhost:$port"
fi
fi
+5
View File
@@ -0,0 +1,5 @@
import { getJestProjects } from '@nx/jest';
export default {
projects: getJestProjects(),
};
+3
View File
@@ -0,0 +1,3 @@
const nxPreset = require('@nx/jest/preset').default;
module.exports = { ...nxPreset };
Executable
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
command -v node >/dev/null 2>&1 || { echo >&2 "Nx requires NodeJS to be available. To install NodeJS and NPM, see: https://nodejs.org/en/download/ ."; exit 1; }
command -v npm >/dev/null 2>&1 || { echo >&2 "Nx requires npm to be available. To install NodeJS and NPM, see: https://nodejs.org/en/download/ ."; exit 1; }
path_to_root=$(dirname $BASH_SOURCE)
node $path_to_root/.nx/nxw.js $@
+306
View File
@@ -0,0 +1,306 @@
{
"namedInputs": {
"default": ["{projectRoot}/**/*"],
"excludeStories": [
"default",
"!{projectRoot}/.storybook/*",
"!{projectRoot}/**/tsconfig.storybook.json",
"!{projectRoot}/**/*.stories.(ts|tsx)",
"!{projectRoot}/**/__stories__/*"
],
"excludeTests": [
"default",
"!{projectRoot}/**/jest.config.(js|ts)",
"!{projectRoot}/**/tsconfig.spec.json",
"!{projectRoot}/**/*.test.(ts|tsx)",
"!{projectRoot}/**/*.spec.(ts|tsx)",
"!{projectRoot}/**/__tests__/*"
],
"production": [
"default",
"excludeStories",
"excludeTests",
"!{projectRoot}/**/__mocks__/*",
"!{projectRoot}/**/testing/*"
]
},
"targetDefaults": {
"build": {
"cache": true,
"inputs": ["^production", "production"],
"dependsOn": ["^build"]
},
"start": {
"cache": true,
"dependsOn": ["^build"]
},
"lint": {
"executor": "@nx/eslint:lint",
"cache": true,
"outputs": ["{options.outputFile}"],
"options": {
"eslintConfig": "{projectRoot}/.eslintrc.cjs",
"cache": true,
"cacheLocation": "{workspaceRoot}/.cache/eslint",
"ignorePath": "{workspaceRoot}/.gitignore"
},
"configurations": {
"ci": { "cacheStrategy": "content" },
"fix": { "fix": true }
}
},
"fmt": {
"executor": "nx:run-commands",
"cache": true,
"options": {
"cwd": "{projectRoot}",
"command": "prettier {args.files} --check --cache {args.cache} --cache-location {args.cacheLocation} --write {args.write} --cache-strategy {args.cacheStrategy}",
"cache": true,
"cacheLocation": "../../.cache/prettier/{projectRoot}",
"cacheStrategy": "metadata",
"write": false
},
"configurations": {
"ci": { "cacheStrategy": "content" },
"fix": { "write": true }
}
},
"typecheck": {
"executor": "nx:run-commands",
"cache": true,
"options": {
"cwd": "{projectRoot}",
"command": "tsc -b tsconfig.json --incremental"
},
"configurations": {
"watch": { "watch": true }
}
},
"test": {
"executor": "@nx/jest:jest",
"cache": true,
"dependsOn": ["^build"],
"inputs": [
"^default",
"excludeStories",
"{workspaceRoot}/jest.preset.js"
],
"outputs": ["{projectRoot}/coverage"],
"options": {
"jestConfig": "{projectRoot}/jest.config.ts",
"coverage": true,
"coverageReporters": ["text-summary"],
"cacheDirectory": "../../.cache/jest/{projectRoot}"
},
"configurations": {
"ci": {
"ci": true,
"maxWorkers": 3
},
"coverage": { "coverageReporters": ["lcov", "text"] },
"watch": { "watch": true }
}
},
"test:e2e": {
"cache": true,
"dependsOn": ["^build"]
},
"storybook:build": {
"executor": "nx:run-commands",
"cache": true,
"dependsOn": ["^build"],
"inputs": ["^default", "excludeTests"],
"outputs": ["{projectRoot}/{options.output-dir}"],
"options": {
"cwd": "{projectRoot}",
"command": "storybook build",
"output-dir": "storybook-static",
"config-dir": ".storybook"
},
"configurations": {
"test": {
"command": "storybook build --test"
}
}
},
"storybook:dev": {
"executor": "nx:run-commands",
"cache": true,
"dependsOn": ["^build"],
"options": {
"cwd": "{projectRoot}",
"command": "storybook dev",
"config-dir": ".storybook"
}
},
"storybook:static": {
"executor": "nx:run-commands",
"dependsOn": ["storybook:build"],
"options": {
"cwd": "{projectRoot}",
"command": "npx http-server {args.staticDir} -a={args.host} --port={args.port} --silent={args.silent}",
"staticDir": "storybook-static",
"host": "localhost",
"port": 6006,
"silent": true
},
"configurations": {
"test": {}
}
},
"storybook:coverage": {
"executor": "nx:run-commands",
"cache": true,
"inputs": [
"^default",
"excludeTests",
"{projectRoot}/coverage/storybook/coverage-storybook.json"
],
"outputs": [
"{projectRoot}/coverage/storybook",
"!{projectRoot}/coverage/storybook/coverage-storybook.json"
],
"options": {
"command": "npx nyc report --reporter={args.reporter} --reporter=text-summary -t {args.coverageDir} --report-dir {args.coverageDir} --check-coverage --cwd={projectRoot}",
"coverageDir": "coverage/storybook",
"reporter": "lcov"
},
"configurations": {
"text": { "reporter": "text" }
}
},
"storybook:test": {
"executor": "nx:run-commands",
"cache": true,
"inputs": ["^default", "excludeTests"],
"outputs": ["{projectRoot}/coverage/storybook"],
"options": {
"cwd": "{projectRoot}",
"commands": [
"test-storybook --url http://localhost:{args.port} --maxWorkers=3 --coverage --coverageDirectory={args.coverageDir}",
"nx storybook:coverage {projectName} --coverageDir={args.coverageDir}"
],
"parallel": false,
"coverageDir": "coverage/storybook",
"port": 6006
}
},
"storybook:test:nocoverage": {
"executor": "nx:run-commands",
"inputs": ["^default", "excludeTests"],
"options": {
"cwd": "{projectRoot}",
"commands": [
"test-storybook --url http://localhost:{args.port} --maxWorkers=3"
],
"port": 6006
}
},
"storybook:static:test": {
"executor": "nx:run-commands",
"options": {
"commands": [
"npx concurrently --kill-others --success=first -n SB,TEST 'nx storybook:static {projectName} --port={args.port} --configuration=test' 'npx wait-on tcp:{args.port} && nx storybook:test {projectName} --port={args.port}'"
],
"port": 6006
}
},
"storybook:performance:test": {
"executor": "nx:run-commands",
"options": {
"commands": [
"npx concurrently --kill-others --success=first -n SB,TEST 'nx storybook:dev {projectName} --configuration=performance --port={args.port}' 'npx wait-on tcp:{args.port} && nx storybook:test:nocoverage {projectName} --port={args.port} --configuration=performance'"
],
"port": 6006
}
},
"chromatic": {
"executor": "nx:run-commands",
"options": {
"cwd": "{projectRoot}",
"commands": [
{
"command": "nx storybook:build {projectName} --configuration=test",
"forwardAllArgs": false
},
"cross-var chromatic --project-token=$CHROMATIC_PROJECT_TOKEN --storybook-build-dir=storybook-static {args.ci}"
],
"parallel": false
},
"configurations": {
"ci": {
"ci": "--exit-zero-on-changes"
}
}
},
"@nx/jest:jest": {
"cache": true,
"inputs": [
"^default",
"excludeStories",
"{workspaceRoot}/jest.preset.js"
],
"options": {
"passWithNoTests": true
},
"configurations": {
"ci": {
"ci": true,
"codeCoverage": true
}
}
},
"@nx/eslint:lint": {
"cache": true,
"inputs": [
"default",
"{workspaceRoot}/.eslintrc.js",
"{workspaceRoot}/tools/eslint-rules/**/*"
]
},
"@nx/vite:test": {
"cache": true,
"inputs": ["default", "^default"]
},
"@nx/vite:build": {
"cache": true,
"dependsOn": ["^build"],
"inputs": ["default", "^default"]
}
},
"installation": {
"version": "18.3.3"
},
"generators": {
"@nx/react": {
"application": {
"style": "@emotion/styled",
"linter": "eslint",
"bundler": "vite",
"compiler": "swc",
"unitTestRunner": "jest",
"projectNameAndRootFormat": "derived"
},
"library": {
"style": "@emotion/styled",
"linter": "eslint",
"bundler": "vite",
"compiler": "swc",
"unitTestRunner": "jest",
"projectNameAndRootFormat": "derived"
},
"component": {
"style": "@emotion/styled"
}
}
},
"tasksRunnerOptions": {
"default": {
"options": {
"cacheableOperations": ["storybook:build"]
}
}
},
"useInferencePlugins": false,
"defaultBase": "main"
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

+368
View File
@@ -0,0 +1,368 @@
{
"dependencies": {
"@air/react-drag-to-select": "^5.0.8",
"@apollo/client": "^3.7.17",
"@apollo/server": "^4.7.3",
"@aws-sdk/client-s3": "^3.363.0",
"@aws-sdk/credential-providers": "^3.363.0",
"@blocknote/core": "^0.12.1",
"@blocknote/react": "^0.12.2",
"@chakra-ui/accordion": "^2.3.0",
"@chakra-ui/system": "^2.6.0",
"@codesandbox/sandpack-react": "^2.13.5",
"@dagrejs/dagre": "^1.1.2",
"@docusaurus/core": "^3.1.0",
"@docusaurus/preset-classic": "^3.1.0",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@envelop/on-resolve": "^4.1.0",
"@floating-ui/react": "^0.24.3",
"@google-cloud/local-auth": "2.1.0",
"@graphiql/plugin-explorer": "^1.0.2",
"@graphql-tools/schema": "^10.0.0",
"@hello-pangea/dnd": "^16.2.0",
"@hookform/resolvers": "^3.1.1",
"@jsdevtools/rehype-toc": "^3.0.2",
"@linaria/core": "^6.2.0",
"@linaria/react": "^6.2.1",
"@mdx-js/react": "^3.0.0",
"@nestjs/apollo": "^11.0.5",
"@nestjs/axios": "^3.0.1",
"@nestjs/cli": "^9.0.0",
"@nestjs/common": "^9.0.0",
"@nestjs/config": "^2.3.2",
"@nestjs/core": "^9.0.0",
"@nestjs/event-emitter": "^2.0.3",
"@nestjs/jwt": "^10.0.3",
"@nestjs/passport": "^9.0.3",
"@nestjs/platform-express": "^9.0.0",
"@nestjs/serve-static": "^4.0.1",
"@nestjs/terminus": "^9.2.2",
"@nestjs/typeorm": "^10.0.0",
"@nivo/calendar": "^0.84.0",
"@nivo/core": "^0.84.0",
"@nx/eslint-plugin": "^17.2.8",
"@octokit/graphql": "^7.0.2",
"@ptc-org/nestjs-query-core": "^4.2.0",
"@ptc-org/nestjs-query-typeorm": "4.2.1-alpha.2",
"@react-email/components": "0.0.12",
"@react-email/render": "0.0.10",
"@sentry/node": "^7.99.0",
"@sentry/profiling-node": "^1.3.4",
"@sentry/react": "^7.88.0",
"@sentry/tracing": "^7.99.0",
"@sniptt/guards": "^0.2.0",
"@stoplight/elements": "^8.0.5",
"@storybook/icons": "^1.2.9",
"@swc/jest": "^0.2.29",
"@tabler/icons-react": "^2.44.0",
"@types/dompurify": "^3.0.5",
"@types/facepaint": "^1.2.5",
"@types/lodash.camelcase": "^4.3.7",
"@types/lodash.merge": "^4.6.7",
"@types/lodash.pick": "^4.3.7",
"@types/nodemailer": "^6.4.14",
"@types/passport-microsoft": "^1.0.3",
"@wyw-in-js/vite": "^0.5.3",
"add": "^2.0.6",
"addressparser": "^1.0.1",
"afterframe": "^1.0.2",
"apollo-server-express": "^3.12.0",
"apollo-upload-client": "^17.0.0",
"axios": "^1.6.2",
"bcrypt": "^5.1.1",
"better-sqlite3": "^9.2.2",
"body-parser": "^1.20.2",
"bullmq": "^4.14.0",
"bytes": "^3.1.2",
"class-transformer": "^0.5.1",
"clsx": "^2.1.1",
"cross-env": "^7.0.3",
"danger-plugin-todos": "^1.3.1",
"dataloader": "^2.2.2",
"date-fns": "^2.30.0",
"date-fns-tz": "^2.0.0",
"debounce": "^2.0.0",
"deep-equal": "^2.2.2",
"docusaurus-node-polyfills": "^1.0.0",
"dompurify": "^3.0.11",
"dotenv-cli": "^7.2.1",
"drizzle-orm": "^0.29.3",
"esbuild-plugin-svgr": "^2.1.0",
"facepaint": "^1.2.1",
"file-type": "16.5.4",
"framer-motion": "^10.12.17",
"googleapis": "105",
"graphiql": "^3.1.1",
"graphql": "16.8.0",
"graphql-fields": "^2.0.3",
"graphql-middleware": "^6.1.35",
"graphql-rate-limit": "^3.3.0",
"graphql-scalars": "^1.23.0",
"graphql-subscriptions": "2.0.0",
"graphql-tag": "^2.12.6",
"graphql-type-json": "^0.3.2",
"graphql-upload": "^13.0.0",
"graphql-yoga": "^4.0.4",
"hex-rgb": "^5.0.0",
"iframe-resizer-react": "^1.1.0",
"immer": "^10.0.2",
"jest-mock-extended": "^3.0.4",
"js-cookie": "^3.0.5",
"js-levenshtein": "^1.1.6",
"json-2-csv": "^5.4.0",
"jsonwebtoken": "^9.0.0",
"libphonenumber-js": "^1.10.26",
"lodash.camelcase": "^4.3.0",
"lodash.compact": "^3.0.1",
"lodash.debounce": "^4.0.8",
"lodash.groupby": "^4.6.0",
"lodash.identity": "^3.0.0",
"lodash.isempty": "^4.4.0",
"lodash.isequal": "^4.5.0",
"lodash.isobject": "^3.0.2",
"lodash.kebabcase": "^4.1.1",
"lodash.mapvalues": "^4.6.0",
"lodash.merge": "^4.6.2",
"lodash.omit": "^4.5.0",
"lodash.pick": "^4.4.0",
"lodash.pickby": "^4.6.0",
"lodash.snakecase": "^4.1.1",
"lodash.upperfirst": "^4.3.1",
"luxon": "^3.3.0",
"microdiff": "^1.3.2",
"moize": "^6.1.6",
"nest-commander": "^3.12.0",
"next": "14.0.4",
"next-mdx-remote": "^4.4.1",
"nodemailer": "^6.9.8",
"openapi-types": "^12.1.3",
"overlayscrollbars": "^2.6.1",
"overlayscrollbars-react": "^0.5.4",
"passport": "^0.7.0",
"passport-google-oauth20": "^2.0.0",
"passport-jwt": "^4.0.1",
"passport-local": "^1.0.0",
"passport-microsoft": "^2.0.0",
"patch-package": "^8.0.0",
"pg": "^8.11.3",
"pg-boss": "^9.0.3",
"planer": "^1.2.0",
"pluralize": "^8.0.0",
"prettier": "^3.0.3",
"prism-react-renderer": "^2.1.0",
"qs": "^6.11.2",
"react": "^18.2.0",
"react-data-grid": "7.0.0-beta.13",
"react-datepicker": "^6.7.1",
"react-dom": "^18.2.0",
"react-dropzone": "^14.2.3",
"react-error-boundary": "^4.0.11",
"react-helmet-async": "^1.3.0",
"react-hook-form": "^7.45.1",
"react-hotkeys-hook": "^4.4.4",
"react-icons": "^4.12.0",
"react-imask": "^7.6.0",
"react-intersection-observer": "^9.5.2",
"react-loading-skeleton": "^3.3.1",
"react-phone-number-input": "^3.3.4",
"react-responsive": "^9.0.2",
"react-router-dom": "^6.4.4",
"react-textarea-autosize": "^8.4.1",
"react-tooltip": "^5.13.1",
"reactflow": "^11.11.3",
"recoil": "^0.7.7",
"rehype-slug": "^6.0.0",
"remark-behead": "^3.1.0",
"remark-gfm": "^3.0.1",
"rimraf": "^3.0.2",
"rxjs": "^7.2.0",
"scroll-into-view": "^1.16.2",
"semver": "^7.5.4",
"sharp": "^0.32.1",
"stripe": "^14.17.0",
"ts-key-enum": "^2.0.12",
"tslib": "^2.3.0",
"tsup": "^8.0.1",
"type-fest": "4.10.1",
"typeorm": "^0.3.20",
"use-context-selector": "^2.0.0",
"use-debounce": "^10.0.0",
"uuid": "^9.0.0",
"vite-tsconfig-paths": "^4.2.1",
"xlsx-ugnis": "^0.19.3",
"zod": "3.23.8"
},
"devDependencies": {
"@babel/core": "^7.14.5",
"@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.24.6",
"@crxjs/vite-plugin": "^1.0.14",
"@docusaurus/module-type-aliases": "^3.1.0",
"@docusaurus/tsconfig": "3.1.0",
"@graphql-codegen/cli": "^3.3.1",
"@graphql-codegen/client-preset": "^4.1.0",
"@graphql-codegen/typescript": "^3.0.4",
"@graphql-codegen/typescript-operations": "^3.0.4",
"@graphql-codegen/typescript-react-apollo": "^3.3.7",
"@nestjs/cli": "^9.0.0",
"@nestjs/schematics": "^9.0.0",
"@nestjs/testing": "^9.0.0",
"@next/eslint-plugin-next": "^14.1.4",
"@nx/eslint": "18.3.3",
"@nx/eslint-plugin": "18.3.3",
"@nx/jest": "18.3.3",
"@nx/js": "18.3.3",
"@nx/react": "18.3.3",
"@nx/storybook": "18.3.3",
"@nx/vite": "18.3.3",
"@nx/web": "18.3.3",
"@sentry/types": "^7.109.0",
"@storybook/addon-actions": "^7.6.3",
"@storybook/addon-coverage": "^1.0.0",
"@storybook/addon-essentials": "^7.6.7",
"@storybook/addon-interactions": "^7.6.7",
"@storybook/addon-links": "^7.6.7",
"@storybook/addon-onboarding": "^1.0.10",
"@storybook/blocks": "^7.6.3",
"@storybook/core-server": "7.6.3",
"@storybook/jest": "^0.2.3",
"@storybook/react": "^7.6.3",
"@storybook/react-vite": "^7.6.3",
"@storybook/test": "^7.6.3",
"@storybook/test-runner": "^0.16.0",
"@storybook/testing-library": "^0.2.2",
"@stylistic/eslint-plugin": "^1.5.0",
"@swc-node/register": "1.8.0",
"@swc/cli": "^0.3.12",
"@swc/core": "~1.3.100",
"@swc/helpers": "~0.5.2",
"@testing-library/jest-dom": "^6.1.5",
"@testing-library/react": "14.0.0",
"@types/addressparser": "^1.0.3",
"@types/apollo-upload-client": "^17.0.2",
"@types/bcrypt": "^5.0.0",
"@types/better-sqlite3": "^7.6.8",
"@types/bytes": "^3.1.1",
"@types/chrome": "^0.0.267",
"@types/deep-equal": "^1.0.1",
"@types/express": "^4.17.13",
"@types/graphql-fields": "^1.3.6",
"@types/graphql-upload": "^8.0.12",
"@types/jest": "^29.5.11",
"@types/js-cookie": "^3.0.3",
"@types/lodash.camelcase": "^4.3.7",
"@types/lodash.compact": "^3.0.9",
"@types/lodash.debounce": "^4.0.7",
"@types/lodash.groupby": "^4.6.9",
"@types/lodash.identity": "^3.0.9",
"@types/lodash.isempty": "^4.4.7",
"@types/lodash.isequal": "^4.5.7",
"@types/lodash.isobject": "^3.0.7",
"@types/lodash.kebabcase": "^4.1.7",
"@types/lodash.mapvalues": "^4.6.9",
"@types/lodash.omit": "^4.5.9",
"@types/lodash.pickby": "^4.6.9",
"@types/lodash.snakecase": "^4.1.7",
"@types/lodash.upperfirst": "^4.3.7",
"@types/luxon": "^3.3.0",
"@types/ms": "^0.7.31",
"@types/node": "18.19.26",
"@types/passport-google-oauth20": "^2.0.11",
"@types/passport-jwt": "^3.0.8",
"@types/react": "^18.2.39",
"@types/react-datepicker": "^6.2.0",
"@types/react-dom": "^18.2.15",
"@types/scroll-into-view": "^1.16.0",
"@types/supertest": "^2.0.11",
"@types/uuid": "^9.0.2",
"@typescript-eslint/eslint-plugin": "6.21.0",
"@typescript-eslint/experimental-utils": "^5.62.0",
"@typescript-eslint/parser": "6.21.0",
"@typescript-eslint/utils": "6.21.0",
"@vitejs/plugin-react-swc": "^3.5.0",
"@vitest/ui": "1.4.0",
"chromatic": "^6.18.0",
"concurrently": "^8.2.2",
"cross-var": "^1.1.0",
"danger": "^11.3.0",
"dotenv-cli": "^7.2.1",
"drizzle-kit": "^0.20.14",
"esbuild": "^0.20.2",
"eslint": "^8.53.0",
"eslint-config-next": "14.0.4",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-jsx-a11y": "^6.8.0",
"eslint-plugin-prefer-arrow": "^1.2.3",
"eslint-plugin-prettier": "^5.1.2",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.4",
"eslint-plugin-simple-import-sort": "^10.0.0",
"eslint-plugin-storybook": "^0.6.15",
"eslint-plugin-unicorn": "^51.0.1",
"eslint-plugin-unused-imports": "^3.0.0",
"http-server": "^14.1.1",
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"jest-environment-node": "^29.4.1",
"jest-fetch-mock": "^3.0.3",
"jsdom": "~22.1.0",
"msw": "^2.0.11",
"msw-storybook-addon": "2.0.0--canary.122.b3ed3b1.0",
"nx": "18.3.3",
"playwright": "^1.40.1",
"prettier": "^3.1.1",
"raw-loader": "^4.0.2",
"rimraf": "^5.0.5",
"source-map-support": "^0.5.20",
"storybook": "^7.6.3",
"storybook-addon-cookie": "^3.2.0",
"storybook-addon-pseudo-states": "^2.1.2",
"storybook-dark-mode": "^4.0.1",
"supertest": "^6.1.3",
"ts-jest": "^29.1.1",
"ts-loader": "^9.2.3",
"ts-node": "10.9.1",
"tsconfig-paths": "^4.2.0",
"tsx": "^4.7.2",
"typescript": "5.3.3",
"vite": "^5.0.0",
"vite-plugin-checker": "^0.6.2",
"vite-plugin-dts": "3.8.1",
"vite-plugin-svgr": "^4.2.0",
"vitest": "1.4.0"
},
"engines": {
"node": "^18.17.1",
"npm": "please-use-yarn",
"yarn": ">=4.0.2"
},
"license": "AGPL-3.0",
"name": "twenty",
"packageManager": "[email protected]",
"resolutions": {
"graphql": "16.8.0",
"type-fest": "4.10.1",
"typescript": "5.3.3"
},
"version": "0.2.1",
"nx": {},
"scripts": {
"start": "npx nx run-many -t start -p twenty-server twenty-front"
},
"workspaces": {
"packages": [
"packages/twenty-chrome-extension",
"packages/twenty-front",
"packages/twenty-server",
"packages/twenty-emails",
"packages/twenty-ui",
"packages/twenty-utils",
"packages/twenty-zapier",
"packages/twenty-website",
"tools/eslint-rules"
]
}
}
@@ -0,0 +1,6 @@
VITE_SERVER_BASE_URL=https://api.twenty.com
VITE_FRONT_BASE_URL=https://app.twenty.com
VITE_MODE=production
# Used to generate packages/twenty-chrome-extension/src/generated/graphql.tsx
AUTH_TOKEN=<YOUR-TOKEN-HERE>
@@ -0,0 +1,6 @@
module.exports = {
extends: ['./.eslintrc.cjs'],
rules: {
'no-console': 'error',
},
};
@@ -0,0 +1,15 @@
module.exports = {
extends: ['../../.eslintrc.cjs', '../../.eslintrc.react.cjs'],
ignorePatterns: ['!**/*', 'node_modules', 'dist', '**/generated/*'],
overrides: [
{
files: ['*.ts', '*.tsx'],
parserOptions: {
project: ['packages/twenty-chrome-extension/tsconfig.{json,*.json}'],
},
rules: {
'@nx/workspace-explicit-boolean-predicates-in-if': 'warn',
},
},
],
};
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
@@ -0,0 +1 @@
src/generated
@@ -0,0 +1,60 @@
# Twenty Chrome Extension.
This extension allows you to save `company` and `people` information to your twenty workspace directly from LinkedIn.
To install the extension in development mode with hmr (hot module reload), follow these steps.
- STEP 1: Clone the repository and run `yarn install` in the root directory.
- STEP 2: Once the dependencies installation succeeds, create a file with env variables by executing the following command in the root directory.
```
cp ./packages/twenty-chrome-extension/.env.example ./packages/twenty-chrome-extension/.env
```
- STEP 3 (optional): Update values of the environment variables to match those of your instance for `twenty-front` and `twenty-server`. If you want to work on your local machine with the default setup from `Twenty Docs`, replace everything in the .env file with the following.
```
VITE_SERVER_BASE_URL=http://localhost:3000
VITE_FRONT_BASE_URL=http://localhost:3001
```
- STEP 4: Now, execute the following command in the root directory to start up the development server on Port 3002. This will create a `dist` folder in `twenty-chrome-extension`.
```
npx nx start twenty-chrome-extension
```
- STEP 5: Open Google Chrome and head to the extensions page by typing `chrome://extensions` in the address bar.
<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/01-img-one.png" width="600" />
</p>
- STEP 6: Turn on the `Developer mode` from the top-right corner and click `Load unpacked`.
<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/02-img-two.png" width="600" />
</p>
- STEP 7: Select the `dist` folder from `twenty-chrome-extension`.
<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/03-img-three.png" width="600" />
</p>
- STEP 8: This opens up the `options` page, where you must enter your API key.
<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/04-img-four.png" width="600" />
</p>
- STEP 9: Reload any LinkedIn page that you opened before installing the extension for seamless experience.
- STEP 10: Visit any individual or company profile on LinkedIn and click the `Add to Twenty` button to test.
<p align="center">
<img src="../twenty-chrome-extension/public/readme-images/05-img-five.png" width="600" />
</p>
To install the extension in production mode without hmr (hot module reload), replace the command in STEP FOUR with `npx nx build twenty-chrome-extension`. You may or may not want to execute STEP THREE based on your requirements.
@@ -0,0 +1,34 @@
import { CodegenConfig } from '@graphql-codegen/cli';
const config: CodegenConfig = {
schema: [
{
[`${import.meta.env.VITE_SERVER_BASE_URL}/graphql`]: {
// some of the mutations and queries require authorization (people or companies)
// so to regenerate the schema with types we need to pass an auth token
headers: {
Authorization: `Bearer ${import.meta.env.AUTH_TOKEN}`,
},
},
},
],
overwrite: true,
documents: ['./src/**/*.ts', '!src/generated/**/*.*'],
generates: {
'./src/generated/graphql.tsx': {
plugins: [
'typescript',
'typescript-operations',
'typescript-react-apollo',
],
config: {
skipTypename: true,
withHooks: true,
withHOC: false,
withComponent: false,
},
},
},
};
export default config;
@@ -0,0 +1,12 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/icons/android/android-launchericon-48-48.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Twenty</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/options/loading-index.tsx"></script>
</body>
</html>
@@ -0,0 +1,10 @@
{
"name": "twenty-chrome-extension",
"description": "",
"private": true,
"version": "0.0.1",
"type": "module",
"scripts": {
"build": "npx vite build"
}
}
@@ -0,0 +1,12 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/icons/android/android-launchericon-48-48.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Twenty</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/options/page-inaccessible-index.tsx"></script>
</body>
</html>
@@ -0,0 +1,70 @@
{
"name": "twenty-chrome-extension",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"projectType": "application",
"tags": ["scope:frontend"],
"targets": {
"build": {
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "{projectRoot}/dist"
}
},
"start": {
"executor": "nx:run-commands",
"dependsOn": ["build"],
"options": {
"cwd": "packages/twenty-chrome-extension",
"command": "VITE_MODE=development vite"
}
},
"preview": {
"executor": "@nx/vite:preview-server",
"options": {
"buildTarget": "twenty-chrome-extension:build",
"port": 3002,
"open": true
}
},
"reset:env": {
"executor": "nx:run-commands",
"inputs": ["{projectRoot}/.env.example"],
"outputs": ["{projectRoot}/.env"],
"cache": true,
"options": {
"cwd": "{projectRoot}",
"command": "cp .env.example .env"
}
},
"typecheck": {},
"lint": {
"options": {
"lintFilePatterns": [
"{projectRoot}/src/**/*.{ts,tsx,json}",
"{projectRoot}/package.json"
],
"maxWarnings": 0,
"reportUnusedDisableDirectives": "error"
},
"configurations": {
"ci": { "eslintConfig": "{projectRoot}/.eslintrc-ci.cjs" },
"fix": {}
}
},
"fmt": {
"options": {
"files": "src"
},
"configurations": {
"fix": {}
}
},
"graphql:generate": {
"executor": "nx:run-commands",
"options": {
"cwd": "{projectRoot}",
"command": "graphql-codegen"
}
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

@@ -0,0 +1,12 @@
<svg width="32" height="32" viewBox="0 0 136 136" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2343_96406)">
<path d="M136 2.28882e-05H0L0.000144482 136H136V2.28882e-05ZM27.27 50.6401C27.27 43.2101 33.3 37.1801 40.73 37.1801H66.64C67.02 37.1801 67.37 37.4101 67.53 37.7601C67.69 38.1101 67.62 38.5201 67.36 38.8101L61.68 44.9801C60.69 46.0501 59.3 46.6701 57.84 46.6701H40.8C38.57 46.6701 36.76 48.4801 36.76 50.7101V60.8901C36.76 62.2001 35.7 63.2601 34.39 63.2601H29.65C28.34 63.2601 27.28 62.2001 27.28 60.8901V50.6401H27.27ZM107.88 85.3601C107.88 92.7901 101.85 98.82 94.42 98.82H83.41C75.98 98.82 69.95 92.7901 69.95 85.3601V66.0901C69.95 64.7801 70.44 63.5201 71.33 62.5501L77.75 55.5801C78.02 55.2901 78.44 55.1901 78.82 55.3301C79.19 55.4801 79.44 55.83 79.44 56.23V85.3001C79.44 87.5301 81.25 89.3401 83.48 89.3401H94.36C96.59 89.3401 98.4 87.5301 98.4 85.3001V50.7101C98.4 48.4801 96.59 46.6701 94.36 46.6701H81.71C80.26 46.6701 78.88 47.2801 77.89 48.3401L40.16 89.3401H62.83C64.14 89.3401 65.2 90.4001 65.2 91.7101V96.4501C65.2 97.7601 64.14 98.82 62.83 98.82H32.28C29.51 98.82 27.26 96.5701 27.26 93.8001V91.29C27.26 90.03 27.73 88.8201 28.59 87.8901L70.89 41.9401C73.69 38.9001 77.62 37.1801 81.75 37.1801H94.41C101.84 37.1801 107.87 43.2101 107.87 50.6401V85.3601H107.88Z" fill="black"/>
<path d="M27.27 50.6401C27.27 43.2101 33.3 37.1801 40.73 37.1801H66.64C67.02 37.1801 67.37 37.4101 67.53 37.7601C67.69 38.1101 67.62 38.5201 67.36 38.8101L61.68 44.9801C60.69 46.0501 59.3 46.6701 57.84 46.6701H40.8C38.57 46.6701 36.76 48.4801 36.76 50.7101V60.8901C36.76 62.2001 35.7 63.2601 34.39 63.2601H29.65C28.34 63.2601 27.28 62.2001 27.28 60.8901V50.6401H27.27Z" fill="white"/>
<path d="M107.88 85.3601C107.88 92.7901 101.85 98.82 94.42 98.82H83.41C75.98 98.82 69.95 92.7901 69.95 85.3601V66.0901C69.95 64.7801 70.44 63.5201 71.33 62.5501L77.75 55.5801C78.02 55.2901 78.44 55.1901 78.82 55.3301C79.19 55.4801 79.44 55.83 79.44 56.23V85.3001C79.44 87.5301 81.25 89.3401 83.48 89.3401H94.36C96.59 89.3401 98.4 87.5301 98.4 85.3001V50.7101C98.4 48.4801 96.59 46.6701 94.36 46.6701H81.71C80.26 46.6701 78.88 47.2801 77.89 48.3401L40.16 89.3401H62.83C64.14 89.3401 65.2 90.4001 65.2 91.7101V96.4501C65.2 97.7601 64.14 98.82 62.83 98.82H32.28C29.51 98.82 27.26 96.5701 27.26 93.8001V91.29C27.26 90.03 27.73 88.8201 28.59 87.8901L70.89 41.9401C73.69 38.9001 77.62 37.1801 81.75 37.1801H94.41C101.84 37.1801 107.87 43.2101 107.87 50.6401V85.3601H107.88Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_2343_96406">
<rect width="136" height="136" rx="16" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 KiB

Some files were not shown because too many files have changed in this diff Show More