diff --git a/webapp/packages/core-connections/src/Administration/Connections/ConnectionsAdministrationController.ts b/webapp/packages/core-connections/src/Administration/Connections/ConnectionsAdministrationController.ts index d498e8096d..3549b31ca0 100644 --- a/webapp/packages/core-connections/src/Administration/Connections/ConnectionsAdministrationController.ts +++ b/webapp/packages/core-connections/src/Administration/Connections/ConnectionsAdministrationController.ts @@ -28,14 +28,18 @@ export class ConnectionsAdministrationController { const isBNew = this.connectionsResource.isNew(b.id); if (isANew === isBNew) { - return 0; + return a.name.localeCompare(b.name); } if (isBNew) { return 1; } - return -1; + if (isANew) { + return -1; + } + + return a.name.localeCompare(b.name); }); } diff --git a/webapp/packages/core-connections/src/Administration/ConnectionsResource.ts b/webapp/packages/core-connections/src/Administration/ConnectionsResource.ts index a30f237ac3..5af067024c 100644 --- a/webapp/packages/core-connections/src/Administration/ConnectionsResource.ts +++ b/webapp/packages/core-connections/src/Administration/ConnectionsResource.ts @@ -6,6 +6,7 @@ * you may not use this file except in compliance with the License. */ +import { action } from 'mobx'; import { Observable, Subject } from 'rxjs'; import { injectable } from '@cloudbeaver/core-di'; @@ -93,8 +94,11 @@ export class ConnectionsResource extends CachedMapResource { + @action add(connection: AdminConnection, isNew = false): AdminConnection { this.changed = true; + + this.cleanNewFlags(); + const newConnection: ConnectionNew = { ...connection, [NEW_CONNECTION_SYMBOL]: isNew, @@ -163,6 +167,12 @@ export class ConnectionsResource extends CachedMapResource) { await ResourceKeyUtils.forEachAsync(key, key => this.deleteConnection(key)); await this.onItemDelete.execute(key);