diff --git a/webapp/packages/core-app/src/shared/useChildren.ts b/webapp/packages/core-app/src/shared/useChildren.ts
index 9e426629cc..490bab7478 100644
--- a/webapp/packages/core-app/src/shared/useChildren.ts
+++ b/webapp/packages/core-app/src/shared/useChildren.ts
@@ -18,6 +18,7 @@ import { NavTreeResource } from './NodesManager/NavTreeResource';
interface Hook {
children: string[] | undefined;
exception: Error | null;
+ limited: boolean;
isLoaded: () => boolean;
isLoading: () => boolean;
isOutdated: () => boolean;
@@ -28,10 +29,13 @@ export function useChildren(navNodeId = ROOT_NODE_PATH): Hook {
const navTreeService = useService(NavigationTreeService);
const navTreeResource = useService(NavTreeResource);
let children = navTreeService.getChildren(navNodeId);
+ let limited = false;
const exception = navTreeResource.getException(navNodeId);
if (children) {
- children = navNodeViewService.limit(children).nodes;
+ const data = navNodeViewService.limit(children);
+ children = data.nodes;
+ limited = data.truncated > 0;
}
const deps = [navNodeId];
@@ -43,6 +47,7 @@ export function useChildren(navNodeId = ROOT_NODE_PATH): Hook {
return {
children,
exception,
+ limited,
isLoaded,
isLoading,
isOutdated,
diff --git a/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/FolderTabRenderer.tsx b/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/FolderTabRenderer.tsx
index b54995e2f8..655c0e8360 100644
--- a/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/FolderTabRenderer.tsx
+++ b/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/FolderTabRenderer.tsx
@@ -10,11 +10,11 @@ import { observer } from 'mobx-react-lite';
import styled from 'reshadow';
import { DBObjectResource, NavNodeViewService, useChildren, useNode } from '@cloudbeaver/core-app';
-import { Tab, TabIcon, TabTitle } from '@cloudbeaver/core-ui';
import { getComputed, Loader, useStateDelay } from '@cloudbeaver/core-blocks';
import { useService } from '@cloudbeaver/core-di';
import { resourceKeyList } from '@cloudbeaver/core-sdk';
import { ComponentStyle, useStyles } from '@cloudbeaver/core-theming';
+import { Tab, TabIcon, TabTitle } from '@cloudbeaver/core-ui';
interface IFolderTabRendererProps {
nodeId: string;
diff --git a/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/NavNodeView/VirtualFolder/VirtualFolderPanel.tsx b/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/NavNodeView/VirtualFolder/VirtualFolderPanel.tsx
index 8cb74438e9..afacd30d06 100644
--- a/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/NavNodeView/VirtualFolder/VirtualFolderPanel.tsx
+++ b/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/NavNodeView/VirtualFolder/VirtualFolderPanel.tsx
@@ -39,7 +39,7 @@ export const VirtualFolderPanel: NavNodeTransformViewComponent = observer(functi
onLoad: async resource => !(await resource.preloadNodeParents(parents, nodeId)),
});
- const { nodes } = navNodeViewService.limit(tree.data || []);
+ const { nodes, truncated } = navNodeViewService.limit(tree.data || []);
const key = resourceKeyList(nodes);
const dbObject = useMapResource(VirtualFolderPanel, DBObjectResource, key, {
async onLoad(resource: DBObjectResource) {
@@ -65,7 +65,7 @@ export const VirtualFolderPanel: NavNodeTransformViewComponent = observer(functi
{translate('plugin_object_viewer_table_no_items')}
) : (
-
+ 0} />
)}
>
diff --git a/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/ObjectPropertyTable/ObjectChildrenPropertyTable.tsx b/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/ObjectPropertyTable/ObjectChildrenPropertyTable.tsx
index dfe374a7cf..0311f5b473 100644
--- a/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/ObjectPropertyTable/ObjectChildrenPropertyTable.tsx
+++ b/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/ObjectPropertyTable/ObjectChildrenPropertyTable.tsx
@@ -10,10 +10,12 @@ import { observer } from 'mobx-react-lite';
import { useState } from 'react';
import styled, { css } from 'reshadow';
-import type { DBObject } from '@cloudbeaver/core-app';
-import { useTabLocalState } from '@cloudbeaver/core-ui';
-import { TableHeader, TableBody, Table, useTable, useControlledScroll, IScrollState } from '@cloudbeaver/core-blocks';
+import { DBObject, NavTreeResource } from '@cloudbeaver/core-app';
+import { TableHeader, TableBody, Table, useTable, useControlledScroll, IScrollState, TableItem, TableColumnValue } from '@cloudbeaver/core-blocks';
+import { useService } from '@cloudbeaver/core-di';
+import { Translate } from '@cloudbeaver/core-localization';
import { composes, useStyles } from '@cloudbeaver/core-theming';
+import { useTabLocalState } from '@cloudbeaver/core-ui';
import { Header } from './Header';
import { Item } from './Item';
@@ -27,6 +29,9 @@ const style = composes(
ObjectPropertyTableFooter {
composes: theme-background-secondary theme-text-on-secondary theme-border-color-background from global;
}
+ TableColumnValue {
+ composes: theme-text-text-hint-on-light from global;
+ }
`,
css`
wrapper {
@@ -48,16 +53,22 @@ const style = composes(
ObjectPropertyTableFooter {
border-top: 1px solid;
}
+ TableColumnValue {
+ composes: theme-typography--caption from global;
+ }
`,
);
interface Props {
objects: DBObject[];
+ truncated?: boolean;
}
export const ObjectChildrenPropertyTable = observer(function ObjectPropertyTable({
objects,
+ truncated,
}) {
+ const navTreeResource = useService(NavTreeResource);
const [scrollBox, setScrollBox] = useState(null);
const styles = useStyles(style);
const table = useTable();
@@ -90,6 +101,13 @@ export const ObjectChildrenPropertyTable = observer(function ObjectProper
columns={properties.length}
/>
))}
+ {truncated && (
+
+
+
+
+
+ )}
diff --git a/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/ObjectPropertyTable/ObjectPropertyTable.tsx b/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/ObjectPropertyTable/ObjectPropertyTable.tsx
index 60cd7841bd..e3de4f4d30 100644
--- a/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/ObjectPropertyTable/ObjectPropertyTable.tsx
+++ b/webapp/packages/plugin-object-viewer/src/ObjectPropertiesPage/ObjectPropertyTable/ObjectPropertyTable.tsx
@@ -81,7 +81,7 @@ export const ObjectPropertyTable = observer(function O
{translate('plugin_object_viewer_table_no_items')}
) : (
-
+ 0} />
)}
>