diff --git a/README.md b/README.md index e46c903d76..01b56d0f84 100644 --- a/README.md +++ b/README.md @@ -57,5 +57,5 @@ You can see a live demo of CloudBeaver here: https://demo.cloudbeaver.io As a community-driven open-source project, we warmly welcome contributions through GitHub pull requests. [We are happy to reward](https://dbeaver.com/help-dbeaver/) our most active contributors every major sprint. -The most significant contribution to our code for the major release 24.2.0 was made by: -1. [matthieukhl](https://github.com/matthieukhl) +The most significant contribution to our code for the major release 24.3.0 was made by: +1. [cashlifei](https://github.com/cashlifei) diff --git a/osgi-app.properties b/osgi-app.properties index 1681d2bbb2..e4e5098873 100644 --- a/osgi-app.properties +++ b/osgi-app.properties @@ -5,7 +5,8 @@ featuresPaths=\ bundlesPaths=\ dbeaver-common/modules;\ dbeaver/plugins;\ - cloudbeaver/server/bundles; + cloudbeaver/server/bundles;\ + dbeaver-jdbc-libsql testLibraries=\ org.junit;\ org.mockito.mockito-core;\ diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/local/LocalResourceController.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/local/LocalResourceController.java index 173d45d5c9..e64f4adb84 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/local/LocalResourceController.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/local/LocalResourceController.java @@ -511,7 +511,7 @@ public void deleteResource(@NotNull String projectId, @NotNull String resourcePa log.warn("Failed to remove resources properties", e); } try { - if (targetPath.toFile().isDirectory()) { + if (Files.isDirectory(targetPath)) { IOUtils.deleteDirectory(targetPath); } else { Files.delete(targetPath); diff --git a/webapp/packages/core-blocks/src/StatusMessage.tsx b/webapp/packages/core-blocks/src/StatusMessage.tsx index fa0daa8a5d..4ff92676f4 100644 --- a/webapp/packages/core-blocks/src/StatusMessage.tsx +++ b/webapp/packages/core-blocks/src/StatusMessage.tsx @@ -39,13 +39,18 @@ export const StatusMessage = observer(function StatusMessage({ const errorDetails = useErrorDetails(exception); const isError = type === ENotificationType.Error || exception !== null; - if (Array.isArray(message)) { - message = message.map(m => translate(m)).join(', '); - } else if (message !== null) { - message = translate(message); + function translateMessage(message: string | string[] | null | undefined) { + if (Array.isArray(message)) { + message = message.map(m => translate(m)).join(', '); + } else if (message !== null) { + message = translate(message); + } + + return message; } - message = message ?? errorDetails.message; + message = translateMessage(message) || translateMessage(errorDetails.message); + let icon = '/icons/info_icon.svg'; if (isError) { diff --git a/webapp/packages/core-connections/src/ConnectionInfoResource.ts b/webapp/packages/core-connections/src/ConnectionInfoResource.ts index 2d1fcd1a99..fb975d1612 100644 --- a/webapp/packages/core-connections/src/ConnectionInfoResource.ts +++ b/webapp/packages/core-connections/src/ConnectionInfoResource.ts @@ -421,20 +421,18 @@ export class ConnectionInfoResource extends CachedMapResource { - await this.performUpdate(key, [], async () => { - const connectionNavigatorViewSettings = this.get(key)?.navigatorSettings || DEFAULT_NAVIGATOR_VIEW_SETTINGS; - const { connection } = await this.graphQLService.sdk.setConnectionNavigatorSettings({ - connectionId: key.connectionId, - projectId: key.projectId, - settings: { ...connectionNavigatorViewSettings, ...settings }, - ...this.getDefaultIncludes(), - ...this.getIncludesMap(key), - }); - - this.set(createConnectionParam(connection), connection); - this.onDataOutdated.execute(key); + const connectionNavigatorViewSettings = this.get(key)?.navigatorSettings || DEFAULT_NAVIGATOR_VIEW_SETTINGS; + const { connection } = await this.graphQLService.sdk.setConnectionNavigatorSettings({ + connectionId: key.connectionId, + projectId: key.projectId, + settings: { ...connectionNavigatorViewSettings, ...settings }, + ...this.getDefaultIncludes(), + ...this.getIncludesMap(key), }); + this.set(createConnectionParam(connection), connection); + this.onDataOutdated.execute(key); + return this.get(key)!; } diff --git a/webapp/packages/core-ui/src/Form/FormPart.ts b/webapp/packages/core-ui/src/Form/FormPart.ts index 65f78ff32d..995a22626d 100644 --- a/webapp/packages/core-ui/src/Form/FormPart.ts +++ b/webapp/packages/core-ui/src/Form/FormPart.ts @@ -88,6 +88,7 @@ export abstract class FormPart implements IFormPar if (this.loading) { return; } + this.loading = true; try { diff --git a/webapp/packages/plugin-authentication-administration/src/Administration/Users/Teams/GrantedUsers/GrantedUsersTableHeader/GrantedUsersTableInnerHeader.tsx b/webapp/packages/plugin-authentication-administration/src/Administration/Users/Teams/GrantedUsers/GrantedUsersTableHeader/GrantedUsersTableInnerHeader.tsx index 6508115c54..47c29cb055 100644 --- a/webapp/packages/plugin-authentication-administration/src/Administration/Users/Teams/GrantedUsers/GrantedUsersTableHeader/GrantedUsersTableInnerHeader.tsx +++ b/webapp/packages/plugin-authentication-administration/src/Administration/Users/Teams/GrantedUsers/GrantedUsersTableHeader/GrantedUsersTableInnerHeader.tsx @@ -26,7 +26,7 @@ export const GrantedUsersTableInnerHeader = observer(function GrantedUser {translate('administration_teams_team_granted_users_user_id')} {showUserTeamRole && ( - + {translate('plugin_authentication_administration_team_user_team_role_supervisor')} )} diff --git a/webapp/packages/plugin-authentication-administration/src/Administration/Users/Teams/GrantedUsers/GrantedUsersTableItem.tsx b/webapp/packages/plugin-authentication-administration/src/Administration/Users/Teams/GrantedUsers/GrantedUsersTableItem.tsx index 5782909738..f43388d8d1 100644 --- a/webapp/packages/plugin-authentication-administration/src/Administration/Users/Teams/GrantedUsers/GrantedUsersTableItem.tsx +++ b/webapp/packages/plugin-authentication-administration/src/Administration/Users/Teams/GrantedUsers/GrantedUsersTableItem.tsx @@ -49,7 +49,7 @@ export const GrantedUsersTableItem = observer(function GrantedUsersTableI {name} {teamRoles.length > 0 && ( - + onTeamRoleAssign(id, value ? USER_TEAM_ROLE_SUPERVISOR : null)}