twenty/.vscode/twenty.code-workspace

107 lines
2.5 KiB
Plaintext
Raw Normal View History

2023-12-11 17:45:45 +03:00
{
"folders": [
{
"name": "ROOT",
"path": "../"
},
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 <charles@twenty.com>
2024-02-12 14:30:23 +03:00
{
"name": "packages/twenty-chrome-extension",
"path": "../packages/twenty-chrome-extension"
},
2023-12-11 17:45:45 +03:00
{
"name": "packages/twenty-docker",
"path": "../packages/twenty-docker"
},
{
"name": "packages/twenty-front",
"path": "../packages/twenty-front"
},
feat: add new ACTOR field type and createdBy standard fields (#6324) This pull request introduces a new `FieldMetadataType` called `ACTOR`. The primary objective of this new type is to add an extra column to the following objects: `person`, `company`, `opportunity`, `note`, `task`, and all custom objects. This composite type contains three properties: - `source` ```typescript export enum FieldActorSource { EMAIL = 'EMAIL', CALENDAR = 'CALENDAR', API = 'API', IMPORT = 'IMPORT', MANUAL = 'MANUAL', } ``` - `workspaceMemberId` - This property can be `undefined` in some cases and refers to the member who created the record. - `name` - Serves as a fallback if the `workspaceMember` is deleted and is used for other source types like `API`. ### Functionality The pre-hook system has been updated to allow real-time argument updates. When a record is created, a pre-hook can now compute and update the arguments accordingly. This enhancement enables the `createdBy` field to be populated with the correct values based on the `authContext`. The `authContext` now includes: - An optional User entity - An optional ApiKey entity - The workspace entity This provides access to the necessary data for the `createdBy` field. In the GraphQL API, only the `source` can be specified in the `createdBy` input. This allows the front-end to specify the source when creating records from a CSV file. ### Front-End Handling On the front-end, `orderBy` and `filter` are only applied to the name property of the `ACTOR` composite type. Currently, we are unable to apply these operations to the workspace member relation. This means that if a workspace member changes their first name or last name, there may be a mismatch because the name will differ from the new one. The name displayed on the screen is based on the workspace member entity when available. ### Missing Components Currently, this PR does not include a `createdBy` value for the `MAIL` and `CALENDAR` sources. These records are created in a job, and at present, we only have access to the workspaceId within the job. To address this, we should use a function similar to `loadServiceWithContext`, which was recently removed from `TwentyORM`. This function would allow us to pass the `authContext` to the jobs without disrupting existing jobs. Another PR will be created to handle these cases. ### Related Issues Fixes issue #5155. ### Additional Notes This PR doesn't include the migrations of the current records and views. Everything works properly when the database is reset but this part is still missing for now. We'll add that in another PR. - There is a minor issue: front-end tests are broken since this commit: [https://github.com/twentyhq/twenty/commit/80c0fc7ff108d61c0e8d89fd334da64bd224f7aa](https://github.com/twentyhq/twenty/commit/80c0fc7ff108d61c0e8d89fd334da64bd224f7aa). --------- Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com> Co-authored-by: Charles Bochet <charles@twenty.com>
2024-08-03 16:43:31 +03:00
{
"name": "packages/twenty-ui",
"path": "../packages/twenty-ui"
},
{
"name": "packages/twenty-emails",
"path": "../packages/twenty-emails"
},
2023-12-11 17:45:45 +03:00
{
"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"
},
2023-12-11 17:45:45 +03:00
],
"settings": {
"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",
"[javascript][typescript][typescriptreact]": {
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.addMissingImports": "always"
}
},
"search.exclude": {
"**/.yarn": true,
},
2023-12-11 17:45:45 +03:00
"files.exclude": {
"packages/": true
},
"jest.runMode": "on-demand",
2023-12-11 17:45:45 +03:00
"jest.disabledWorkspaceFolders": [
"ROOT",
"packages/twenty-zapier",
"packages/twenty-docker",
"packages/twenty-utils",
"packages/twenty-postgres"
]
}
}