Skip to content

Commit c7a8ebe

Browse files
Merge remote-tracking branch 'origin/release_22_2_0' into hotfix/CB-2545-fix-session-context
2 parents c823901 + 59ca63c commit c7a8ebe

10 files changed

Lines changed: 40 additions & 12 deletions

File tree

server/bundles/io.cloudbeaver.service.admin/src/io/cloudbeaver/service/admin/impl/WebServiceAdmin.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,8 +404,9 @@ public WebConnectionInfo copyConnectionConfiguration(
404404

405405
((DataSourceDescriptor) newDataSource).setNavigatorSettings(CBApplication.getInstance().getAppConfiguration().getDefaultNavigatorSettings());
406406
globalDataSourceRegistry.addDataSource(newDataSource);
407-
408-
return new WebConnectionInfo(webSession, newDataSource);
407+
WebConnectionInfo connectionInfo = new WebConnectionInfo(webSession, newDataSource);
408+
webSession.addConnection(connectionInfo);
409+
return connectionInfo;
409410
} catch (DBException e) {
410411
throw new DBWebException("Error copying connection", e);
411412
}

webapp/packages/core-blocks/src/Tree/TreeNode/TreeNodeNestedMessage.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
*/
88

99
interface Props {
10+
big?: boolean;
1011
className?: string;
1112
}
1213

webapp/packages/core-blocks/src/Tree/TreeNode/TreeNodeStyles.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,16 @@ export const TREE_NODE_STYLES = css`
128128
TreeNodeNestedMessage {
129129
composes: theme-typography--caption from global;
130130
padding: 4px 12px;
131+
132+
[big] {
133+
padding: 4px 24px;
134+
}
135+
}
136+
137+
tree-box[|big] {
138+
& TreeNodeNestedMessage {
139+
padding: 4px 24px;
140+
}
131141
}
132142
133143
node TreeNodeControl[big] {

webapp/packages/plugin-data-viewer/src/DataViewerPage/useDataViewerDatabaseDataModel.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import { ILoadableState, isContainsException, useMapResource, useObservableRef }
1313
import { ConnectionInfoResource } from '@cloudbeaver/core-connections';
1414
import { useService } from '@cloudbeaver/core-di';
1515
import { NavNodeManagerService } from '@cloudbeaver/core-navigation-tree';
16-
import { CachedMapAllKey } from '@cloudbeaver/core-sdk';
1716
import type { ITab } from '@cloudbeaver/plugin-navigation-tabs';
1817
import type { IObjectViewerTabState } from '@cloudbeaver/plugin-object-viewer';
1918

@@ -38,26 +37,30 @@ export function useDataViewerDatabaseDataModel(tab: ITab<IObjectViewerTabState>)
3837
const dataPresentationService = useService(DataPresentationService);
3938
const dataViewerDataChangeConfirmationService = useService(DataViewerDataChangeConfirmationService);
4039

41-
const connections = useMapResource(useDataViewerDatabaseDataModel, connectionInfoResource, CachedMapAllKey);
40+
const connection = useMapResource(
41+
useDataViewerDatabaseDataModel,
42+
ConnectionInfoResource,
43+
tab.handlerState.connectionKey ?? null
44+
);
4245

4346
const state = useObservableRef<IDataViewerDatabaseDataModel>(() => ({
4447
_exception: null,
4548
_loading: false,
4649
get exception() {
47-
if (isContainsException(connections.exception)) {
48-
return connections.exception;
50+
if (isContainsException(connection.exception)) {
51+
return connection.exception;
4952
}
5053
return this._exception;
5154
},
5255
isLoading(): boolean {
53-
return connections.isLoading() || this._loading;
56+
return connection.isLoading() || this._loading;
5457
},
5558
isLoaded(): boolean {
56-
return connections.isLoaded() && dataViewerTableService.get(this.tab.handlerState.tableId || '') !== undefined;
59+
return connection.isLoaded() && dataViewerTableService.get(this.tab.handlerState.tableId || '') !== undefined;
5760
},
5861
async reload() {
59-
if (isContainsException(connections.exception)) {
60-
connections.reload?.();
62+
if (isContainsException(connection.exception)) {
63+
connection.reload?.();
6164
}
6265
this.init();
6366
},

webapp/packages/plugin-navigation-tree/src/NavigationTree/ElementsTree/ElementsTree.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ interface Props extends IElementsTreeOptions {
8383
selectionTree?: boolean;
8484
control?: NavTreeControlComponent;
8585
emptyPlaceholder?: React.FC;
86+
big?: boolean;
8687
style?: ComponentStyle;
8788
className?: string;
8889
navNodeFilterCompare?: NavNodeFilterCompareFn;
@@ -103,6 +104,7 @@ export const ElementsTree = observer<Props>(function ElementsTree({
103104
filters = [],
104105
renderers = [],
105106
expandStateGetters,
107+
big,
106108
style,
107109
className,
108110
getChildren,
@@ -288,7 +290,7 @@ export const ElementsTree = observer<Props>(function ElementsTree({
288290
return styled(useStyles(TREE_NODE_STYLES, styles, style))(
289291
<>
290292
<ElementsTreeTools tree={tree} style={style} />
291-
<tree-box>
293+
<tree-box {...use({ big })}>
292294
<ElementsTreeLoader
293295
root={root}
294296
context={context}

webapp/packages/plugin-navigation-tree/src/NavigationTree/ElementsTree/ElementsTreeLoader.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
import { observer } from 'mobx-react-lite';
1010
import styled, { css } from 'reshadow';
1111

12-
import { ILoadableState, Loader } from '@cloudbeaver/core-blocks';
12+
import { ILoadableState, Loader, TreeNodeNestedMessage, TREE_NODE_STYLES } from '@cloudbeaver/core-blocks';
13+
import { Translate } from '@cloudbeaver/core-localization';
1314

1415
import type { IElementsTreeContext } from './ElementsTreeContext';
1516

@@ -59,6 +60,12 @@ export const ElementsTreeLoader = observer<React.PropsWithChildren<Props>>(funct
5960
<Loader />
6061
</center>
6162
);
63+
} else if (context.tree.filtering) {
64+
return styled(TREE_NODE_STYLES)(
65+
<TreeNodeNestedMessage>
66+
<Translate token='app_navigationTree_node_no_results' filter={context.tree.filter} />
67+
</TreeNodeNestedMessage>
68+
);
6269
} else if (context.folderExplorer.root === context.folderExplorer.state.folder) {
6370
return <>{Placeholder && <Placeholder />}</>;
6471
}

webapp/packages/plugin-navigation-tree/src/locales/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default [
1616
['app_navigationTree_node_delete_error', 'Failed to delete "{args.name}'],
1717
['app_navigationTree_node_rename_error', 'Error occurred while renaming'],
1818
['app_navigationTree_node_empty', 'Empty'],
19+
['app_navigationTree_node_no_results', "We're sorry. There no matching results for '{args.filter}'"],
1920
['app_navigationTree_node_not_found', 'Node not found'],
2021
['app_navigationTree_connection_view', 'Connection view'],
2122
['app_navigationTree_connection_view_option_simple', 'Simple'],

webapp/packages/plugin-navigation-tree/src/locales/it.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default [
1616
['app_navigationTree_settings_folders_title', 'Folders'],
1717
['app_navigationTree_settings_folders_description', 'Open any node as tree root node'],
1818
['app_navigationTree_node_empty', 'Empty'],
19+
['app_navigationTree_node_no_results', "We're sorry. There no matching results for '{args.filter}'"],
1920
['app_navigationTree_node_not_found', 'Node not found'],
2021
['app_navigationTree_connection_view', 'Vista di connessione'],
2122
['app_navigationTree_connection_view_option_simple', 'Semplice'],

webapp/packages/plugin-navigation-tree/src/locales/ru.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export default [
1919
['app_navigationTree_node_rename_error', 'Ошибка переименования ноды'],
2020

2121
['app_navigationTree_node_empty', 'Пусто'],
22+
['app_navigationTree_node_no_results', "Извините, не удалось найти элементы содержащие '{args.filter}'"],
2223
['app_navigationTree_node_not_found', 'Элемент не найден'],
2324
['app_navigationTree_connection_view', 'Отображение'],
2425
['app_navigationTree_connection_view_option_simple', 'Упрощенное'],

webapp/packages/plugin-navigation-tree/src/locales/zh.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default [
1515
['app_navigationTree_node_delete_error', 'Failed to delete "{args.name}'],
1616
['app_navigationTree_node_rename_error', 'Error occurred while renaming'],
1717
['app_navigationTree_node_empty', 'Empty'],
18+
['app_navigationTree_node_no_results', "We're sorry. There no matching results for '{args.filter}'"],
1819
['app_navigationTree_openNodeTab', '打开'],
1920
['app_navigationTree_connection_view', '连接视图'],
2021
['app_navigationTree_node_not_found', 'Node not found'],

0 commit comments

Comments
 (0)