diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/domain/DomainType.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/domain/DomainType.java index 7afe1018004e02..65d4332196c6df 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/domain/DomainType.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/domain/DomainType.java @@ -40,7 +40,8 @@ public class DomainType Constants.OWNERSHIP_ASPECT_NAME, Constants.INSTITUTIONAL_MEMORY_ASPECT_NAME, Constants.STRUCTURED_PROPERTIES_ASPECT_NAME, - Constants.FORMS_ASPECT_NAME); + Constants.FORMS_ASPECT_NAME, + Constants.DISPLAY_PROPERTIES_ASPECT_NAME); private final EntityClient _entityClient; public DomainType(final EntityClient entityClient) { diff --git a/datahub-web-react/src/app/domain/DomainsList.tsx b/datahub-web-react/src/app/domain/DomainsList.tsx index b1095726808fe8..37476bdc2cfe42 100644 --- a/datahub-web-react/src/app/domain/DomainsList.tsx +++ b/datahub-web-react/src/app/domain/DomainsList.tsx @@ -196,6 +196,7 @@ export const DomainsList = () => { }, ownership: null, entities: null, + displayProperties: null, }, pageSize, ); diff --git a/datahub-web-react/src/app/domain/utils.ts b/datahub-web-react/src/app/domain/utils.ts index 8273c33e2c41df..e39e97ac86bb6e 100644 --- a/datahub-web-react/src/app/domain/utils.ts +++ b/datahub-web-react/src/app/domain/utils.ts @@ -72,6 +72,7 @@ export const updateListDomainsCache = ( children: null, dataProducts: null, parentDomains: null, + displayProperties: null, }, 1000, parentDomain, diff --git a/datahub-web-react/src/app/entityV2/shared/containers/profile/header/IconPicker/IconColorPicker.tsx b/datahub-web-react/src/app/entityV2/shared/containers/profile/header/IconPicker/IconColorPicker.tsx index 714e54439e5fbc..574b012241f174 100644 --- a/datahub-web-react/src/app/entityV2/shared/containers/profile/header/IconPicker/IconColorPicker.tsx +++ b/datahub-web-react/src/app/entityV2/shared/containers/profile/header/IconPicker/IconColorPicker.tsx @@ -1,5 +1,4 @@ import { Input, Modal } from 'antd'; -import { debounce } from 'lodash'; import React from 'react'; import styled from 'styled-components'; @@ -53,13 +52,6 @@ const IconColorPicker: React.FC = ({ const [stagedColor, setStagedColor] = React.useState(color || '#000000'); const [stagedIcon, setStagedIcon] = React.useState(icon || 'account_circle'); - // a debounced version of updateDisplayProperties that takes in the same arguments - // eslint-disable-next-line react-hooks/exhaustive-deps - const debouncedUpdateDisplayProperties = React.useCallback( - debounce((...args) => updateDisplayProperties(...args).then(() => setTimeout(() => refetch(), 1000)), 500), - [], - ); - return ( = ({ }, }, }, - }); + }).then(() => refetch()); onChangeColor?.(stagedColor); onChangeIcon?.(stagedIcon); onClose(); @@ -93,44 +85,10 @@ const IconColorPicker: React.FC = ({ marginBottom: 30, marginTop: 15, }} - onChange={(e) => { - setStagedColor(e.target.value); - debouncedUpdateDisplayProperties?.({ - variables: { - urn, - input: { - colorHex: e.target.value, - icon: { - iconLibrary: IconLibrary.Material, - name: stagedIcon, - style: 'Outlined', - }, - }, - }, - }); - }} + onChange={(e) => setStagedColor(e.target.value)} /> Choose an icon for {name || 'Domain'} - { - console.log('picking icon', i); - debouncedUpdateDisplayProperties?.({ - variables: { - urn, - input: { - colorHex: stagedColor, - icon: { - iconLibrary: IconLibrary.Material, - name: capitalize(snakeToCamel(i)), - style: 'Outlined', - }, - }, - }, - }); - setStagedIcon(i); - }} - /> + setStagedIcon(i)} /> ); }; diff --git a/datahub-web-react/src/graphql/domain.graphql b/datahub-web-react/src/graphql/domain.graphql index 1a26e6313916cf..f945590a461c89 100644 --- a/datahub-web-react/src/graphql/domain.graphql +++ b/datahub-web-react/src/graphql/domain.graphql @@ -40,6 +40,9 @@ query getDomain($urn: String!) { forms { ...formsFields } + displayProperties { + ...displayPropertiesFields + } ...domainEntitiesFields ...notes } @@ -64,6 +67,9 @@ query listDomains($input: ListDomainsInput!) { ownership { ...ownershipFields } + displayProperties { + ...displayPropertiesFields + } ...domainEntitiesFields } } diff --git a/datahub-web-react/src/graphql/fragments.graphql b/datahub-web-react/src/graphql/fragments.graphql index dacf5e4c900ae7..fe2b5fddd7ab95 100644 --- a/datahub-web-react/src/graphql/fragments.graphql +++ b/datahub-web-react/src/graphql/fragments.graphql @@ -229,6 +229,9 @@ fragment parentNodesFields on ParentNodesResult { properties { name } + displayProperties { + ...displayPropertiesFields + } } } @@ -238,6 +241,9 @@ fragment parentDomainsFields on ParentDomainsResult { urn type ... on Domain { + displayProperties { + ...displayPropertiesFields + } properties { name description @@ -1259,6 +1265,9 @@ fragment entityDomain on DomainAssociation { ...parentDomainsFields } ...domainEntitiesFields + displayProperties { + ...displayPropertiesFields + } } associatedUrn } diff --git a/datahub-web-react/src/graphql/glossaryNode.graphql b/datahub-web-react/src/graphql/glossaryNode.graphql index 38202872306fbd..9c452c4868f5e8 100644 --- a/datahub-web-react/src/graphql/glossaryNode.graphql +++ b/datahub-web-react/src/graphql/glossaryNode.graphql @@ -54,6 +54,9 @@ query getGlossaryNode($urn: String!) { } } } + displayProperties { + ...displayPropertiesFields + } ...notes } } diff --git a/datahub-web-react/src/graphql/preview.graphql b/datahub-web-react/src/graphql/preview.graphql index 8000f59f2bf258..fbd12935ebb720 100644 --- a/datahub-web-react/src/graphql/preview.graphql +++ b/datahub-web-react/src/graphql/preview.graphql @@ -341,6 +341,9 @@ fragment entityPreview on Entity { parentDomains { ...parentDomainsFields } + displayProperties { + ...displayPropertiesFields + } ...domainEntitiesFields } ... on Container { diff --git a/datahub-web-react/src/graphql/search.graphql b/datahub-web-react/src/graphql/search.graphql index 89ef2709504d53..14e5bc408dad8c 100644 --- a/datahub-web-react/src/graphql/search.graphql +++ b/datahub-web-react/src/graphql/search.graphql @@ -845,6 +845,9 @@ fragment searchResultsWithoutSchemaField on Entity { parentDomains { ...parentDomainsFields } + displayProperties { + ...displayPropertiesFields + } ...domainEntitiesFields structuredProperties { properties { diff --git a/metadata-models/src/main/resources/entity-registry.yml b/metadata-models/src/main/resources/entity-registry.yml index ea9939ad6b4078..87dc120a788e57 100644 --- a/metadata-models/src/main/resources/entity-registry.yml +++ b/metadata-models/src/main/resources/entity-registry.yml @@ -239,6 +239,7 @@ entities: - structuredProperties - forms - testResults + - displayProperties - name: container doc: A container of related data assets. category: core @@ -300,6 +301,7 @@ entities: - forms - testResults - subTypes + - displayProperties - name: dataHubIngestionSource category: internal keyAspect: dataHubIngestionSourceKey