Deprecate old relations completely (#12482)
# What Fully deprecate old relations because we have one bug tied to it and it make the codebase complex # How I've made this PR: 1. remove metadata datasource (we only keep 'core') => this was causing extra complexity in the refactor + flaky reset 2. merge dev and demo datasets => as I needed to update the tests which is very painful, I don't want to do it twice 3. remove all code tied to RELATION_METADATA / relation-metadata.resolver, or anything tied to the old relation system 4. Remove ONE_TO_ONE and MANY_TO_MANY that are not supported 5. fix impacts on the different areas : see functional testing below # Functional testing ## Functional testing from the front-end: 1. Database Reset ✅ 2. Sign In ✅ 3. Workspace sign-up ✅ 5. Browsing table / kanban / show ✅ 6. Assigning a record in a one to many / in a many to one ✅ 7. Deleting a record involved in a relation ✅ => broken but not tied to this PR 8. "Add new" from relation picker ✅ => broken but not tied to this PR 9. Creating a Task / Note, Updating a Task / Note relations, Deleting a Task / Note (from table, show page, right drawer) ✅ => broken but not tied to this PR 10. creating a relation from settings (custom / standard x oneToMany / manyToOne) ✅ 11. updating a relation from settings should not be possible ✅ 12. deleting a relation from settings (custom / standard x oneToMany / manyToOne) ✅ 13. Make sure timeline activity still work (relation were involved there), espacially with Task / Note => to be double checked ✅ => Cannot convert undefined or null to object 14. Workspace deletion / User deletion ✅ 15. CSV Import should keep working ✅ 16. Permissions: I have tested without permissions V2 as it's still hard to test v2 work and it's not in prod yet ✅ 17. Workflows global test ✅ ## From the API: 1. Review open-api documentation (REST) ✅ 2. Make sure REST Api are still able to fetch relations ==> won't do, we have a coupling Get/Update/Create there, this requires refactoring 3. Make sure REST Api is still able to update / remove relation => won't do same ## Automated tests 1. lint + typescript ✅ 2. front unit tests: ✅ 3. server unit tests 2 ✅ 4. front stories: ✅ 5. server integration: ✅ 6. chromatic check : expected 0 7. e2e check : expected no more that current failures ## Remove // Todos 1. All are captured by functional tests above, nothing additional to do ## (Un)related regressions 1. Table loading state is not working anymore, we see the empty state before table content 2. Filtering by Creator Tim Ap return empty results 3. Not possible to add Tasks / Notes / Files from show page # Result ## New seeds that can be easily extended <img width="1920" alt="image" src="https://github.com/user-attachments/assets/d290d130-2a5f-44e6-b419-7e42a89eec4b" /> ## -5k lines of code ## No more 'metadata' dataSource (we only have 'core) ## No more relationMetadata (I haven't drop the table yet it's not referenced in the code anymore) ## We are ready to fix the 6 months lag between current API results and our mocked tests ## No more bug on relation creation / deletion --------- Co-authored-by: Weiko <corentin@twenty.com> Co-authored-by: Félix Malfait <felix@twenty.com>
This commit is contained in:
+1
-1
@@ -7,7 +7,7 @@ export const STRIPE_ID = '1f70157c-4ea5-4d81-bc49-e1401abfbb94';
|
||||
export const FIGMA_ID = '9d5bcf43-7d38-4e88-82cb-d6d4ce638bf0';
|
||||
export const NOTION_ID = '06290608-8bf0-4806-99ae-a715a6a93fad';
|
||||
|
||||
export const companyPrefillData = async (
|
||||
export const prefillCompanies = async (
|
||||
entityManager: WorkspaceEntityManager,
|
||||
schemaName: string,
|
||||
) => {
|
||||
+2
-3
@@ -6,10 +6,9 @@ import {
|
||||
FIGMA_ID,
|
||||
NOTION_ID,
|
||||
STRIPE_ID,
|
||||
} from 'src/engine/workspace-manager/standard-objects-prefill-data/company';
|
||||
} from 'src/engine/workspace-manager/standard-objects-prefill-data/prefill-companies';
|
||||
|
||||
// FixMe: Is this file a duplicate of src/database/typeorm-seeds/workspace/people.ts
|
||||
export const personPrefillData = async (
|
||||
export const prefillPeople = async (
|
||||
entityManager: WorkspaceEntityManager,
|
||||
schemaName: string,
|
||||
) => {
|
||||
+45
-1
@@ -1,9 +1,53 @@
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { WorkspaceEntityManager } from 'src/engine/twenty-orm/entity-manager/workspace-entity-manager';
|
||||
import { ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { companiesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/companies-all.view';
|
||||
import { customAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/custom-all.view';
|
||||
import { notesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/notes-all.view';
|
||||
import { opportunitiesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/opportunities-all.view';
|
||||
import { opportunitiesByStageView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/opportunity-by-stage.view';
|
||||
import { peopleAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/people-all.view';
|
||||
import { tasksAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-all.view';
|
||||
import { tasksAssignedToMeView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-assigned-to-me';
|
||||
import { tasksByStatusView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-by-status.view';
|
||||
import { workflowRunsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-runs-all.view';
|
||||
import { workflowVersionsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-versions-all.view';
|
||||
import { workflowsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflows-all.view';
|
||||
|
||||
export const createWorkspaceViews = async (
|
||||
export const prefillViews = async (
|
||||
entityManager: WorkspaceEntityManager,
|
||||
schemaName: string,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const customObjectMetadataItems = objectMetadataItems.filter(
|
||||
(item) => item.isCustom,
|
||||
);
|
||||
|
||||
const customViews = customObjectMetadataItems.map((item) =>
|
||||
customAllView(item),
|
||||
);
|
||||
|
||||
const views = [
|
||||
companiesAllView(objectMetadataItems),
|
||||
peopleAllView(objectMetadataItems),
|
||||
opportunitiesAllView(objectMetadataItems),
|
||||
opportunitiesByStageView(objectMetadataItems),
|
||||
notesAllView(objectMetadataItems),
|
||||
tasksAllView(objectMetadataItems),
|
||||
tasksAssignedToMeView(objectMetadataItems),
|
||||
tasksByStatusView(objectMetadataItems),
|
||||
workflowsAllView(objectMetadataItems),
|
||||
workflowVersionsAllView(objectMetadataItems),
|
||||
workflowRunsAllView(objectMetadataItems),
|
||||
...customViews,
|
||||
];
|
||||
|
||||
return createWorkspaceViews(entityManager, schemaName, views);
|
||||
};
|
||||
|
||||
const createWorkspaceViews = async (
|
||||
entityManager: WorkspaceEntityManager,
|
||||
schemaName: string,
|
||||
viewDefinitions: ViewDefinition[],
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { WorkspaceEntityManager } from 'src/engine/twenty-orm/entity-manager/workspace-entity-manager';
|
||||
|
||||
const tableName = 'favorite';
|
||||
|
||||
export const prefillWorkspaceFavorites = async (
|
||||
viewIds: string[],
|
||||
entityManager: WorkspaceEntityManager,
|
||||
schemaName: string,
|
||||
) => {
|
||||
await entityManager
|
||||
.createQueryBuilder(undefined, undefined, undefined, {
|
||||
shouldBypassPermissionChecks: true,
|
||||
})
|
||||
.insert()
|
||||
.into(`${schemaName}.${tableName}`, ['id', 'viewId', 'position'])
|
||||
.values(
|
||||
viewIds.map((viewId, index) => ({
|
||||
id: v4(),
|
||||
viewId,
|
||||
position: index,
|
||||
})),
|
||||
)
|
||||
.execute();
|
||||
};
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { WorkspaceEntityManager } from 'src/engine/twenty-orm/entity-manager/workspace-entity-manager';
|
||||
import { createWorkspaceViews } from 'src/engine/workspace-manager/standard-objects-prefill-data/create-workspace-views';
|
||||
import { companiesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/companies-all.view';
|
||||
import { notesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/notes-all.view';
|
||||
import { opportunitiesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/opportunities-all.view';
|
||||
import { opportunitiesByStageView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/opportunity-by-stage.view';
|
||||
import { peopleAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/people-all.view';
|
||||
import { tasksAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-all.view';
|
||||
import { tasksAssignedToMeView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-assigned-to-me';
|
||||
import { tasksByStatusView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-by-status.view';
|
||||
import { workflowRunsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-runs-all.view';
|
||||
import { workflowVersionsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-versions-all.view';
|
||||
import { workflowsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflows-all.view';
|
||||
|
||||
export const seedViewWithDemoData = async (
|
||||
entityManager: WorkspaceEntityManager,
|
||||
schemaName: string,
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
) => {
|
||||
const viewDefinitions = [
|
||||
companiesAllView(objectMetadataStandardIdToIdMap),
|
||||
peopleAllView(objectMetadataStandardIdToIdMap),
|
||||
opportunitiesAllView(objectMetadataStandardIdToIdMap),
|
||||
opportunitiesByStageView(objectMetadataStandardIdToIdMap),
|
||||
notesAllView(objectMetadataStandardIdToIdMap),
|
||||
tasksAllView(objectMetadataStandardIdToIdMap),
|
||||
tasksAssignedToMeView(objectMetadataStandardIdToIdMap),
|
||||
tasksByStatusView(objectMetadataStandardIdToIdMap),
|
||||
workflowsAllView(objectMetadataStandardIdToIdMap),
|
||||
workflowVersionsAllView(objectMetadataStandardIdToIdMap),
|
||||
workflowRunsAllView(objectMetadataStandardIdToIdMap),
|
||||
];
|
||||
|
||||
return createWorkspaceViews(entityManager, schemaName, viewDefinitions);
|
||||
};
|
||||
+11
-34
@@ -1,58 +1,35 @@
|
||||
import { DataSource } from 'typeorm';
|
||||
|
||||
import { seedWorkspaceFavorites } from 'src/database/typeorm-seeds/workspace/favorites';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { WorkspaceEntityManager } from 'src/engine/twenty-orm/entity-manager/workspace-entity-manager';
|
||||
import { shouldSeedWorkspaceFavorite } from 'src/engine/utils/should-seed-workspace-favorite';
|
||||
import { companyPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/company';
|
||||
import { personPrefillData } from 'src/engine/workspace-manager/standard-objects-prefill-data/person';
|
||||
import { seedViewWithDemoData } from 'src/engine/workspace-manager/standard-objects-prefill-data/seed-view-with-demo-data';
|
||||
import { prefillCompanies } from 'src/engine/workspace-manager/standard-objects-prefill-data/prefill-companies';
|
||||
import { prefillPeople } from 'src/engine/workspace-manager/standard-objects-prefill-data/prefill-people';
|
||||
import { prefillViews } from 'src/engine/workspace-manager/standard-objects-prefill-data/prefill-views';
|
||||
import { prefillWorkspaceFavorites } from 'src/engine/workspace-manager/standard-objects-prefill-data/prefill-workspace-favorites';
|
||||
|
||||
export const standardObjectsPrefillData = async (
|
||||
mainDataSource: DataSource,
|
||||
schemaName: string,
|
||||
objectMetadata: ObjectMetadataEntity[],
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const objectMetadataMap = objectMetadata.reduce((acc, object) => {
|
||||
if (!object.standardId) {
|
||||
throw new Error('Standard Id is not set for object: ${object.name}');
|
||||
}
|
||||
|
||||
// @ts-expect-error legacy noImplicitAny
|
||||
acc[object.standardId] = {
|
||||
id: object.id,
|
||||
fields: object.fields.reduce((acc, field) => {
|
||||
if (!field.standardId) {
|
||||
throw new Error('Standard Id is not set for field: ${field.name}');
|
||||
}
|
||||
|
||||
// @ts-expect-error legacy noImplicitAny
|
||||
acc[field.standardId] = field.id;
|
||||
|
||||
return acc;
|
||||
}, {}),
|
||||
};
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
mainDataSource.transaction(async (entityManager: WorkspaceEntityManager) => {
|
||||
await companyPrefillData(entityManager, schemaName);
|
||||
await personPrefillData(entityManager, schemaName);
|
||||
const viewDefinitionsWithId = await seedViewWithDemoData(
|
||||
await prefillCompanies(entityManager, schemaName);
|
||||
await prefillPeople(entityManager, schemaName);
|
||||
const viewDefinitionsWithId = await prefillViews(
|
||||
entityManager,
|
||||
schemaName,
|
||||
objectMetadataMap,
|
||||
objectMetadataItems,
|
||||
);
|
||||
|
||||
await seedWorkspaceFavorites(
|
||||
await prefillWorkspaceFavorites(
|
||||
viewDefinitionsWithId
|
||||
.filter(
|
||||
(view) =>
|
||||
view.key === 'INDEX' &&
|
||||
shouldSeedWorkspaceFavorite(
|
||||
view.objectMetadataId,
|
||||
objectMetadataMap,
|
||||
objectMetadataItems,
|
||||
),
|
||||
)
|
||||
.map((view) => view.id),
|
||||
|
||||
+45
-29
@@ -1,6 +1,5 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
COMPANY_STANDARD_FIELD_IDS,
|
||||
@@ -8,12 +7,19 @@ import {
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
export const companiesAllView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const companyObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.company,
|
||||
);
|
||||
|
||||
if (!companyObjectMetadata) {
|
||||
throw new Error('Company object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'All Companies',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.company].id,
|
||||
objectMetadataId: companyObjectMetadata.id ?? '',
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
@@ -23,18 +29,23 @@ export const companiesAllView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.company].fields[
|
||||
COMPANY_STANDARD_FIELD_IDS.name
|
||||
],
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) => field.standardId === COMPANY_STANDARD_FIELD_IDS.name,
|
||||
)?.id ??
|
||||
'' ??
|
||||
'',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 180,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.company].fields[
|
||||
COMPANY_STANDARD_FIELD_IDS.domainName
|
||||
],
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.domainName,
|
||||
)?.id ??
|
||||
'' ??
|
||||
'',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 100,
|
||||
@@ -42,36 +53,40 @@ export const companiesAllView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.company].fields[
|
||||
COMPANY_STANDARD_FIELD_IDS.createdBy
|
||||
],
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.company].fields[
|
||||
COMPANY_STANDARD_FIELD_IDS.accountOwner
|
||||
],
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.accountOwner,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.company].fields[
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS.createdAt
|
||||
],
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.company].fields[
|
||||
COMPANY_STANDARD_FIELD_IDS.employees
|
||||
],
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.employees,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -79,9 +94,10 @@ export const companiesAllView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.company].fields[
|
||||
COMPANY_STANDARD_FIELD_IDS.linkedinLink
|
||||
],
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.linkedinLink,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 170,
|
||||
@@ -89,9 +105,9 @@ export const companiesAllView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.company].fields[
|
||||
COMPANY_STANDARD_FIELD_IDS.address
|
||||
],
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) => field.standardId === COMPANY_STANDARD_FIELD_IDS.address,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 170,
|
||||
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
|
||||
export const customAllView = (objectMetadataItem: ObjectMetadataEntity) => {
|
||||
const nameField = objectMetadataItem.fields.find(
|
||||
(field) => field.name === 'name',
|
||||
);
|
||||
|
||||
const otherFields = objectMetadataItem.fields.filter(
|
||||
(field) => field.name !== 'name',
|
||||
);
|
||||
|
||||
if (!nameField) {
|
||||
throw new Error(
|
||||
`Name field not found while creating All ${objectMetadataItem.namePlural} view`,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
name: `All ${objectMetadataItem.namePlural}`,
|
||||
objectMetadataId: objectMetadataItem.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
kanbanFieldMetadataId: '',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataItem.fields.find((field) => field.name === 'name')
|
||||
?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 180,
|
||||
},
|
||||
...otherFields.map((field, index) => ({
|
||||
fieldMetadataId: field.id,
|
||||
position: index + 1,
|
||||
isVisible: true,
|
||||
size: 180,
|
||||
})),
|
||||
],
|
||||
};
|
||||
};
|
||||
+27
-22
@@ -1,18 +1,22 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
NOTE_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
export const notesAllView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
) => {
|
||||
export const notesAllView = (objectMetadataItems: ObjectMetadataEntity[]) => {
|
||||
const noteObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.note,
|
||||
);
|
||||
|
||||
if (!noteObjectMetadata) {
|
||||
throw new Error('Note object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'All Notes',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.note].id,
|
||||
objectMetadataId: noteObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
@@ -22,45 +26,46 @@ export const notesAllView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.note].fields[
|
||||
NOTE_STANDARD_FIELD_IDS.title
|
||||
],
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) => field.standardId === NOTE_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.note].fields[
|
||||
NOTE_STANDARD_FIELD_IDS.noteTargets
|
||||
],
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) => field.standardId === NOTE_STANDARD_FIELD_IDS.noteTargets,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.note].fields[
|
||||
NOTE_STANDARD_FIELD_IDS.bodyV2
|
||||
],
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) => field.standardId === NOTE_STANDARD_FIELD_IDS.bodyV2,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.note].fields[
|
||||
NOTE_STANDARD_FIELD_IDS.createdBy
|
||||
],
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) => field.standardId === NOTE_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.note].fields[
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS.createdAt
|
||||
],
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
|
||||
+35
-17
@@ -1,16 +1,22 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { OPPORTUNITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
export const opportunitiesAllView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const opportunityObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.opportunity,
|
||||
);
|
||||
|
||||
if (!opportunityObjectMetadata) {
|
||||
throw new Error('Opportunity object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'All Opportunities',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity].id,
|
||||
objectMetadataId: opportunityObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
@@ -20,16 +26,19 @@ export const opportunitiesAllView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.name],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.amount],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.amount,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -37,16 +46,20 @@ export const opportunitiesAllView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.createdBy],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.closeDate],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.closeDate,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -54,16 +67,21 @@ export const opportunitiesAllView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.company],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.company,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.pointOfContact],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
OPPORTUNITY_STANDARD_FIELD_IDS.pointOfContact,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
|
||||
+61
-33
@@ -1,75 +1,93 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { OPPORTUNITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
export const opportunitiesByStageView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const opportunityObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.opportunity,
|
||||
);
|
||||
|
||||
if (!opportunityObjectMetadata) {
|
||||
throw new Error('Opportunity object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'By Stage',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity].id,
|
||||
objectMetadataId: opportunityObjectMetadata.id,
|
||||
type: 'kanban',
|
||||
key: null,
|
||||
position: 2,
|
||||
icon: 'IconLayoutKanban',
|
||||
kanbanFieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity].fields[
|
||||
OPPORTUNITY_STANDARD_FIELD_IDS.stage
|
||||
],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
kanbanAggregateOperation: AggregateOperations.MIN,
|
||||
kanbanAggregateOperationFieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity].fields[
|
||||
OPPORTUNITY_STANDARD_FIELD_IDS.amount
|
||||
],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.amount,
|
||||
)?.id ?? '',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.name],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.amount],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.amount,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.createdBy],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.closeDate],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.closeDate,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.company],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.company,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.pointOfContact],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
OPPORTUNITY_STANDARD_FIELD_IDS.pointOfContact,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -78,40 +96,50 @@ export const opportunitiesByStageView = (
|
||||
groups: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'NEW',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'SCREENING',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'MEETING',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'PROPOSAL',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'CUSTOMER',
|
||||
position: 4,
|
||||
|
||||
+58
-30
@@ -1,38 +1,47 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { OPPORTUNITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
export const opportunitiesTableByStageView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const opportunityObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.opportunity,
|
||||
);
|
||||
|
||||
if (!opportunityObjectMetadata) {
|
||||
throw new Error('Opportunity object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'By Stage',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity].id,
|
||||
objectMetadataId: opportunityObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: null,
|
||||
position: 1,
|
||||
icon: 'IconList',
|
||||
kanbanFieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity].fields[
|
||||
OPPORTUNITY_STANDARD_FIELD_IDS.stage
|
||||
],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.name],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.amount],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.amount,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -40,16 +49,20 @@ export const opportunitiesTableByStageView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.createdBy],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.closeDate],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.closeDate,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -57,8 +70,10 @@ export const opportunitiesTableByStageView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.company],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.company,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -66,8 +81,11 @@ export const opportunitiesTableByStageView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.pointOfContact],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
OPPORTUNITY_STANDARD_FIELD_IDS.pointOfContact,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -76,40 +94,50 @@ export const opportunitiesTableByStageView = (
|
||||
groups: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'NEW',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'SCREENING',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'MEETING',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'PROPOSAL',
|
||||
position: 3,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.opportunity]
|
||||
.fields[OPPORTUNITY_STANDARD_FIELD_IDS.stage],
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'CUSTOMER',
|
||||
position: 4,
|
||||
|
||||
+43
-37
@@ -1,19 +1,23 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
PERSON_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
export const peopleAllView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
) => {
|
||||
export const peopleAllView = (objectMetadataItems: ObjectMetadataEntity[]) => {
|
||||
const personObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.person,
|
||||
);
|
||||
|
||||
if (!personObjectMetadata) {
|
||||
throw new Error('Person object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'All People',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].id,
|
||||
objectMetadataId: personObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
@@ -23,18 +27,18 @@ export const peopleAllView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
PERSON_STANDARD_FIELD_IDS.name
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
PERSON_STANDARD_FIELD_IDS.emails
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.emails,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -42,27 +46,27 @@ export const peopleAllView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
PERSON_STANDARD_FIELD_IDS.createdBy
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
PERSON_STANDARD_FIELD_IDS.company
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.company,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
PERSON_STANDARD_FIELD_IDS.phones
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.phones,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -70,9 +74,10 @@ export const peopleAllView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS.createdAt
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -80,36 +85,37 @@ export const peopleAllView = (
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
PERSON_STANDARD_FIELD_IDS.city
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.city,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
PERSON_STANDARD_FIELD_IDS.jobTitle
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.jobTitle,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
PERSON_STANDARD_FIELD_IDS.linkedinLink
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === PERSON_STANDARD_FIELD_IDS.linkedinLink,
|
||||
)?.id ?? '',
|
||||
position: 8,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.person].fields[
|
||||
PERSON_STANDARD_FIELD_IDS.xLink
|
||||
],
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.xLink,
|
||||
)?.id ?? '',
|
||||
position: 9,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
|
||||
+36
-31
@@ -1,18 +1,22 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
TASK_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
export const tasksAllView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
) => {
|
||||
export const tasksAllView = (objectMetadataItems: ObjectMetadataEntity[]) => {
|
||||
const taskObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.task,
|
||||
);
|
||||
|
||||
if (!taskObjectMetadata) {
|
||||
throw new Error('Task object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'All Tasks',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].id,
|
||||
objectMetadataId: taskObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
@@ -32,72 +36,73 @@ export const tasksAllView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.title
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.taskTargets
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.taskTargets,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.createdBy
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.dueAt
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.dueAt,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.assignee
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.assignee,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.bodyV2
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.bodyV2,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS.createdAt
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 8,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
|
||||
+48
-41
@@ -1,5 +1,4 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
TASK_STANDARD_FIELD_IDS,
|
||||
@@ -7,12 +6,19 @@ import {
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
export const tasksAssignedToMeView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const taskObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.task,
|
||||
);
|
||||
|
||||
if (!taskObjectMetadata) {
|
||||
throw new Error('Task object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'Assigned to Me',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].id,
|
||||
objectMetadataId: taskObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: null,
|
||||
position: 2,
|
||||
@@ -21,9 +27,9 @@ export const tasksAssignedToMeView = (
|
||||
filters: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.assignee
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.assignee,
|
||||
)?.id ?? '',
|
||||
displayValue: 'Me',
|
||||
operand: 'is',
|
||||
value: JSON.stringify({
|
||||
@@ -35,9 +41,9 @@ export const tasksAssignedToMeView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.title
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
@@ -53,54 +59,55 @@ export const tasksAssignedToMeView = (
|
||||
},*/
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.taskTargets
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.taskTargets,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.createdBy
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.dueAt
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.dueAt,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.assignee
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.assignee,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.body
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.body,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS.createdAt
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 8,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -109,36 +116,36 @@ export const tasksAssignedToMeView = (
|
||||
groups: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'TODO',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'IN_PROGRESS',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'DONE',
|
||||
position: 2,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: '',
|
||||
position: 3,
|
||||
|
||||
+39
-32
@@ -1,5 +1,4 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
TASK_STANDARD_FIELD_IDS,
|
||||
@@ -7,20 +6,27 @@ import {
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
|
||||
export const tasksByStatusView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const taskObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.task,
|
||||
);
|
||||
|
||||
if (!taskObjectMetadata) {
|
||||
throw new Error('Task object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'By Status',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].id,
|
||||
objectMetadataId: taskObjectMetadata.id,
|
||||
type: 'kanban',
|
||||
key: null,
|
||||
position: 1,
|
||||
icon: 'IconLayoutKanban',
|
||||
kanbanFieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
filters: [] /* [
|
||||
{
|
||||
fieldMetadataId:
|
||||
@@ -35,45 +41,46 @@ export const tasksByStatusView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.title
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.dueAt
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.dueAt,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.assignee
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.assignee,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS.createdAt
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
@@ -94,27 +101,27 @@ export const tasksByStatusView = (
|
||||
groups: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'TODO',
|
||||
position: 0,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'IN_PROGRESS',
|
||||
position: 1,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'DONE',
|
||||
position: 2,
|
||||
|
||||
-1
@@ -1 +0,0 @@
|
||||
// TODO
|
||||
+36
-17
@@ -1,16 +1,22 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { WORKFLOW_RUN_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
|
||||
import { ViewOpenRecordInType } from 'src/modules/view/standard-objects/view.workspace-entity';
|
||||
|
||||
export const workflowRunsAllView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const workflowRunObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.workflowRun,
|
||||
);
|
||||
|
||||
if (!workflowRunObjectMetadata) {
|
||||
throw new Error('Workflow run object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'All Workflow Runs',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowRun].id,
|
||||
objectMetadataId: workflowRunObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
@@ -21,48 +27,61 @@ export const workflowRunsAllView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowRun]
|
||||
.fields[WORKFLOW_RUN_STANDARD_FIELD_IDS.name],
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowRun]
|
||||
.fields[WORKFLOW_RUN_STANDARD_FIELD_IDS.workflow],
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.workflow,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowRun]
|
||||
.fields[WORKFLOW_RUN_STANDARD_FIELD_IDS.status],
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowRun]
|
||||
.fields[WORKFLOW_RUN_STANDARD_FIELD_IDS.startedAt],
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.startedAt,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowRun]
|
||||
.fields[WORKFLOW_RUN_STANDARD_FIELD_IDS.createdBy],
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowRun]
|
||||
.fields[WORKFLOW_RUN_STANDARD_FIELD_IDS.workflowVersion],
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
WORKFLOW_RUN_STANDARD_FIELD_IDS.workflowVersion,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
|
||||
+31
-15
@@ -1,5 +1,4 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
WORKFLOW_VERSION_STANDARD_FIELD_IDS,
|
||||
@@ -8,12 +7,19 @@ import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync
|
||||
import { ViewOpenRecordInType } from 'src/modules/view/standard-objects/view.workspace-entity';
|
||||
|
||||
export const workflowVersionsAllView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const workflowVersionObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.workflowVersion,
|
||||
);
|
||||
|
||||
if (!workflowVersionObjectMetadata) {
|
||||
throw new Error('Workflow version object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'All Workflow Versions',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowVersion].id,
|
||||
objectMetadataId: workflowVersionObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
@@ -24,40 +30,50 @@ export const workflowVersionsAllView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowVersion]
|
||||
.fields[WORKFLOW_VERSION_STANDARD_FIELD_IDS.name],
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_VERSION_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowVersion]
|
||||
.fields[WORKFLOW_VERSION_STANDARD_FIELD_IDS.workflow],
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_VERSION_STANDARD_FIELD_IDS.workflow,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowVersion]
|
||||
.fields[WORKFLOW_VERSION_STANDARD_FIELD_IDS.status],
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_VERSION_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowVersion]
|
||||
.fields[BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt],
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflowVersion]
|
||||
.fields[WORKFLOW_VERSION_STANDARD_FIELD_IDS.runs],
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_VERSION_STANDARD_FIELD_IDS.runs,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
|
||||
+33
-23
@@ -1,5 +1,4 @@
|
||||
import { ObjectMetadataStandardIdToIdMap } from 'src/engine/metadata-modules/object-metadata/interfaces/object-metadata-standard-id-to-id-map';
|
||||
|
||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
WORKFLOW_STANDARD_FIELD_IDS,
|
||||
@@ -8,12 +7,19 @@ import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync
|
||||
import { ViewOpenRecordInType } from 'src/modules/view/standard-objects/view.workspace-entity';
|
||||
|
||||
export const workflowsAllView = (
|
||||
objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
const workflowObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.workflow,
|
||||
);
|
||||
|
||||
if (!workflowObjectMetadata) {
|
||||
throw new Error('Workflow object metadata not found');
|
||||
}
|
||||
|
||||
return {
|
||||
name: 'All Workflows',
|
||||
objectMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflow].id,
|
||||
objectMetadataId: workflowObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
@@ -24,54 +30,58 @@ export const workflowsAllView = (
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflow].fields[
|
||||
WORKFLOW_STANDARD_FIELD_IDS.name
|
||||
],
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) => field.standardId === WORKFLOW_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflow].fields[
|
||||
WORKFLOW_STANDARD_FIELD_IDS.statuses
|
||||
],
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_STANDARD_FIELD_IDS.statuses,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflow].fields[
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt
|
||||
],
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflow].fields[
|
||||
WORKFLOW_STANDARD_FIELD_IDS.createdBy
|
||||
],
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflow].fields[
|
||||
WORKFLOW_STANDARD_FIELD_IDS.versions
|
||||
],
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_STANDARD_FIELD_IDS.versions,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.workflow].fields[
|
||||
WORKFLOW_STANDARD_FIELD_IDS.runs
|
||||
],
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) => field.standardId === WORKFLOW_STANDARD_FIELD_IDS.runs,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
|
||||
Reference in New Issue
Block a user