diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedList/ActivityFeedListV1.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedList/ActivityFeedListV1.component.tsx index 952fe034730..9e49d930607 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedList/ActivityFeedListV1.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedList/ActivityFeedListV1.component.tsx @@ -10,6 +10,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import { Typography } from 'antd'; import ErrorPlaceHolder from 'components/common/error-with-placeholder/ErrorPlaceHolder'; import Loader from 'components/Loader/Loader'; import { ERROR_PLACEHOLDER_TYPE, SIZE } from 'enums/common.enum'; @@ -26,6 +27,7 @@ interface ActivityFeedListV1Props { onFeedClick?: (feed: Thread) => void; activeFeedId?: string; hidePopover: boolean; + emptyPlaceholderText: string; } const ActivityFeedListV1 = ({ @@ -35,6 +37,7 @@ const ActivityFeedListV1 = ({ onFeedClick, activeFeedId, hidePopover = false, + emptyPlaceholderText, }: ActivityFeedListV1Props) => { const [entityThread, setEntityThread] = useState([]); @@ -54,14 +57,18 @@ const ActivityFeedListV1 = ({ } return ( -
+
{entityThread.length === 0 && ( -
+
+ type={ERROR_PLACEHOLDER_TYPE.CUSTOM}> + + {emptyPlaceholderText} + +
)} {entityThread.map((feed) => ( diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedTab/ActivityFeedTab.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedTab/ActivityFeedTab.component.tsx index 430c68d72a0..392f9fc3f56 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedTab/ActivityFeedTab.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedTab/ActivityFeedTab.component.tsx @@ -108,6 +108,16 @@ export const ActivityFeedTab = ({ setActiveThread(); }; + const placeholderText = useMemo(() => { + if (activeTab === ActivityFeedTabs.ALL) { + return t('message.no-activity-feed'); + } else if (activeTab === ActivityFeedTabs.MENTIONS) { + return t('message.no-mentions'); + } else { + return t('message.no-tasks-assigned'); + } + }, [activeTab]); + const fetchFeedsCount = () => { if (!isUserEntity) { // To get conversation count @@ -349,6 +359,7 @@ export const ActivityFeedTab = ({ span { - color: @primary-color; - } - } - .ant-btn-link > span { - color: @text-color-secondary; + color: @primary-color; } } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/EntityLineage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/EntityLineage.component.tsx index 3908da27855..968ec99005b 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/EntityLineage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/EntityLineage.component.tsx @@ -1371,10 +1371,6 @@ const EntityLineageComponent: FunctionComponent = ({ return node; }); - - setTimeout(() => { - reactFlowInstance?.fitView(); - }, 100); }; const handleExpandColumnClick = () => { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/entityLineage.style.less b/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/entityLineage.style.less index 0855e7b5ac4..6a492165ec7 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/entityLineage.style.less +++ b/openmetadata-ui/src/main/resources/ui/src/components/EntityLineage/entityLineage.style.less @@ -153,3 +153,7 @@ background-color: @white; color: @text-color-secondary; } + +.lineage-card .react-flow__edge.animated path { + animation: none; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Explore/ExploreQuickFilters.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Explore/ExploreQuickFilters.tsx index 5d3537f8268..e478b1db5c8 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Explore/ExploreQuickFilters.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Explore/ExploreQuickFilters.tsx @@ -22,6 +22,7 @@ import { getTagSuggestions, getUserSuggestions, } from 'rest/miscAPI'; +import { getTags } from 'rest/tagAPI'; import { MISC_FIELDS, OWNER_QUICK_FILTER_DEFAULT_OPTIONS_KEY, @@ -47,7 +48,12 @@ const ExploreQuickFilters: FC = ({ index: SearchIndex | SearchIndex[], key: string ) => { - const res = await getAdvancedFieldDefaultOptions(index, key); + const [res, tierTags] = await Promise.all([ + getAdvancedFieldDefaultOptions(index, key), + key === 'tier.tagFQN' + ? getTags({ parent: 'Tier' }) + : Promise.resolve(null), + ]); const buckets = res.data.aggregations[`sterms#${key}`].buckets; @@ -57,7 +63,24 @@ const ExploreQuickFilters: FC = ({ count: option.doc_count ?? 0, })); - setOptions(uniqWith(optionsArray, isEqual)); + let options; + if (key === 'tier.tagFQN' && tierTags) { + options = tierTags.data.map((option) => { + const bucketItem = buckets.find( + (item) => item.key === option.fullyQualifiedName + ); + + return { + key: option.fullyQualifiedName ?? '', + label: option.name, + count: bucketItem?.doc_count ?? 0, + }; + }); + } else { + options = optionsArray; + } + + setOptions(uniqWith(options, isEqual)); }; const getInitialOptions = async (key: string) => { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/GlossaryDetails/GlossaryDetails.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/GlossaryDetails/GlossaryDetails.component.tsx index 574420bf3db..c5ac3d7a1ca 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/GlossaryDetails/GlossaryDetails.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/GlossaryDetails/GlossaryDetails.component.tsx @@ -136,6 +136,7 @@ const GlossaryDetails = ({ permissions.EditDescription || permissions.EditAll } isEdit={isDescriptionEditable} + showCommentsIcon={false} onCancel={() => setIsDescriptionEditable(false)} onDescriptionEdit={() => setIsDescriptionEditable(true)} onDescriptionUpdate={onDescriptionUpdate} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/GlossaryTerms/tabs/GlossaryOverviewTab.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/GlossaryTerms/tabs/GlossaryOverviewTab.component.tsx index ce49d1791b8..aa8759931ea 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/GlossaryTerms/tabs/GlossaryOverviewTab.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/GlossaryTerms/tabs/GlossaryOverviewTab.component.tsx @@ -112,6 +112,7 @@ const GlossaryOverviewTab = ({ permissions.EditDescription || permissions.EditAll } isEdit={isDescriptionEditable} + showCommentsIcon={false} onCancel={() => setIsDescriptionEditable(false)} onDescriptionEdit={() => setIsDescriptionEditable(true)} onDescriptionUpdate={onDescriptionUpdate} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/MyData/LeftSidebar/LeftSidebar.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/MyData/LeftSidebar/LeftSidebar.component.tsx index f3d239af099..0fa6680096f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/MyData/LeftSidebar/LeftSidebar.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/MyData/LeftSidebar/LeftSidebar.component.tsx @@ -65,7 +65,7 @@ const LeftSidebar = () => { to={{ pathname: ROUTES.GLOSSARY, }}> - + {t('label.glossary', { lng: 'en-US' })} @@ -83,7 +83,7 @@ const LeftSidebar = () => { to={{ pathname: ROUTES.TAGS, }}> -
+
{t('label.classification', { lng: 'en-US' })} @@ -100,18 +100,17 @@ const LeftSidebar = () => { return (
- + -
+
{t('label.explore', { lng: 'en-US' })} @@ -119,18 +118,17 @@ const LeftSidebar = () => {
- + -
+
{t('label.quality', { lng: 'en-US' })} @@ -138,18 +136,17 @@ const LeftSidebar = () => {
- + -
+
{t('label.insight-plural', { lng: 'en-US' })} @@ -166,18 +163,17 @@ const LeftSidebar = () => { /> - + -
+
{t('label.setting-plural', { lng: 'en-US' })} @@ -185,9 +181,9 @@ const LeftSidebar = () => {
- +
onLogoutHandler()}> diff --git a/openmetadata-ui/src/main/resources/ui/src/components/MyData/LeftSidebar/left-sidebar.less b/openmetadata-ui/src/main/resources/ui/src/components/MyData/LeftSidebar/left-sidebar.less index 0647cfa4fcf..14a9d0e96fc 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/MyData/LeftSidebar/left-sidebar.less +++ b/openmetadata-ui/src/main/resources/ui/src/components/MyData/LeftSidebar/left-sidebar.less @@ -41,7 +41,7 @@ display: flex; align-items: center; flex-direction: column; - padding: 16px; + padding: 16px 8px; } } .page-layout-leftpanel { @@ -57,6 +57,10 @@ svg { color: @text-grey-muted; } + padding: 16px 0; + display: flex; + align-items: center; + flex-direction: column; } .left-panel-item.active, @@ -77,6 +81,7 @@ .ant-menu-item { height: auto !important; padding: 8px 0 0 !important; + margin: 0; } .ant-menu-item:hover, .ant-menu-item-selected { @@ -91,6 +96,9 @@ } .ant-menu-vertical { min-width: 100px !important; + .ant-menu-item { + margin: 0; + } } } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/MyData/MyDataWidget/MyDataWidget.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/MyData/MyDataWidget/MyDataWidget.component.tsx index 280d1daa3ed..087643009eb 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/MyData/MyDataWidget/MyDataWidget.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/MyData/MyDataWidget/MyDataWidget.component.tsx @@ -120,7 +120,7 @@ const MyDataWidgetInternal = () => {
); }) - : t('server.no-owned-entities')} + : t('message.no-owned-data')}
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Widgets/FeedsWidget/FeedsWidget.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Widgets/FeedsWidget/FeedsWidget.component.tsx index 4a8ddcf742a..576e7aee8c7 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Widgets/FeedsWidget/FeedsWidget.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Widgets/FeedsWidget/FeedsWidget.component.tsx @@ -52,7 +52,10 @@ const FeedsWidget = () => { } else if (activeTab === 'tasks') { getFeedData(FeedFilter.OWNER, undefined, ThreadType.Task) .then((data) => { - setTaskCount(data.length); + const openTasks = data.filter( + (item) => item.task?.status === ThreadTaskStatus.Open + ); + setTaskCount(openTasks.length); }) .catch(() => { // ignore since error is displayed in toast in the parent promise. @@ -100,6 +103,7 @@ const FeedsWidget = () => { key: 'all', children: ( { key: 'mentions', children: ( { key: 'tasks', children: ( void; wrapInCard?: boolean; isVersionView?: boolean; + showCommentsIcon?: boolean; } const DescriptionV1 = ({ hasEditAccess, @@ -71,6 +72,7 @@ const DescriptionV1 = ({ entityFqn, wrapInCard = false, isVersionView, + showCommentsIcon = true, }: Props) => { const descriptionThread = entityFieldThreads?.[0]; const history = useHistory(); @@ -89,7 +91,7 @@ const DescriptionV1 = ({ const editButton = () => { const isDescriptionThread = !isUndefined(descriptionThread); - const extraIcons = ( + const extraIcons = showCommentsIcon && ( { - const errorPlaceHolder = useMemo(() => { + const getErrorPlaceHolder = () => { switch (type) { case ERROR_PLACEHOLDER_TYPE.CREATE: return ( @@ -81,9 +81,9 @@ const ErrorPlaceHolder = ({ ); } - }, [type]); + }; - return errorPlaceHolder; + return getErrorPlaceHolder(); }; export default ErrorPlaceHolder; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/title-breadcrumb/title-breadcrumb.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/title-breadcrumb/title-breadcrumb.component.tsx index 4ccdbef9eae..bab7b908593 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/title-breadcrumb/title-breadcrumb.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/title-breadcrumb/title-breadcrumb.component.tsx @@ -61,7 +61,7 @@ const TitleBreadcrumb: FunctionComponent = ({ return (