mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
* fix the server group disapearing issue #1835 * address review comments
This commit is contained in:
@@ -153,6 +153,19 @@ export class ConnectionProfileGroup implements IConnectionProfileGroup {
|
|||||||
return this.parent;
|
return this.parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public isAncestorOf(node: ConnectionProfileGroup | ConnectionProfile): boolean {
|
||||||
|
let isAncestor = false;
|
||||||
|
let currentNode = node;
|
||||||
|
while (currentNode) {
|
||||||
|
if (currentNode.parent && currentNode.parent.id === this.id) {
|
||||||
|
isAncestor = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
currentNode = currentNode.parent;
|
||||||
|
}
|
||||||
|
return isAncestor;
|
||||||
|
}
|
||||||
|
|
||||||
public static getGroupFullNameParts(groupFullName: string): string[] {
|
public static getGroupFullNameParts(groupFullName: string): string[] {
|
||||||
groupFullName = groupFullName ? groupFullName : '';
|
groupFullName = groupFullName ? groupFullName : '';
|
||||||
let groupNames: string[] = groupFullName.split(ConnectionProfileGroup.GroupNameSeparator);
|
let groupNames: string[] = groupFullName.split(ConnectionProfileGroup.GroupNameSeparator);
|
||||||
|
|||||||
@@ -68,12 +68,16 @@ export class ServerTreeDragAndDrop implements IDragAndDrop {
|
|||||||
let canDragOver: boolean = true;
|
let canDragOver: boolean = true;
|
||||||
if (targetElement instanceof ConnectionProfile || targetElement instanceof ConnectionProfileGroup) {
|
if (targetElement instanceof ConnectionProfile || targetElement instanceof ConnectionProfileGroup) {
|
||||||
let targetConnectionProfileGroup = this.getTargetGroup(targetElement);
|
let targetConnectionProfileGroup = this.getTargetGroup(targetElement);
|
||||||
//Verify if the connection can be moved to the target group
|
// Verify if the connection can be moved to the target group
|
||||||
const source = data.getData()[0];
|
const source = data.getData()[0];
|
||||||
if (source instanceof ConnectionProfile) {
|
if (source instanceof ConnectionProfile) {
|
||||||
if (!this._connectionManagementService.canChangeConnectionConfig(source, targetConnectionProfileGroup.id)) {
|
if (!this._connectionManagementService.canChangeConnectionConfig(source, targetConnectionProfileGroup.id)) {
|
||||||
canDragOver = false;
|
canDragOver = false;
|
||||||
}
|
}
|
||||||
|
} else if (source instanceof ConnectionProfileGroup) {
|
||||||
|
// Dropping a group to itself or its descendants nodes is not allowed
|
||||||
|
// to avoid creating a circular structure.
|
||||||
|
canDragOver = source.id !== targetElement.id && !source.isAncestorOf(targetElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@@ -148,7 +152,7 @@ export class ServerTreeDragAndDrop implements IDragAndDrop {
|
|||||||
*/
|
*/
|
||||||
export class RecentConnectionsDragAndDrop implements IDragAndDrop {
|
export class RecentConnectionsDragAndDrop implements IDragAndDrop {
|
||||||
|
|
||||||
constructor( @IConnectionManagementService private connectionManagementService: IConnectionManagementService,
|
constructor(@IConnectionManagementService private connectionManagementService: IConnectionManagementService,
|
||||||
@IInstantiationService private instantiationService: IInstantiationService
|
@IInstantiationService private instantiationService: IInstantiationService
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user