drag n drop bounding characters (pgsql fix) (#14376)

* specifies object handling for all current providers

* implements the same for column dragndrop

* adjusted test

* adds pgsql provider name constant
This commit is contained in:
Drew Skwiers-Koballa
2021-03-05 15:22:47 -08:00
committed by GitHub
parent 1d60287795
commit 733c3628a1
3 changed files with 41 additions and 7 deletions

View File

@@ -9,7 +9,7 @@ import { IConnectionManagementService } from 'sql/platform/connection/common/con
import { ITree, IDragAndDrop, IDragOverReaction, DRAG_OVER_ACCEPT_BUBBLE_DOWN, DRAG_OVER_REJECT } from 'vs/base/parts/tree/browser/tree';
import { DragMouseEvent } from 'vs/base/browser/mouseEvent';
import { TreeUpdateUtils } from 'sql/workbench/services/objectExplorer/browser/treeUpdateUtils';
import { UNSAVED_GROUP_ID } from 'sql/platform/connection/common/constants';
import { UNSAVED_GROUP_ID, mssqlProviderName, pgsqlProviderName } from 'sql/platform/connection/common/constants';
import { DataTransfers, IDragAndDropData } from 'vs/base/browser/dnd';
import { TreeNode } from 'sql/workbench/services/objectExplorer/common/treeNode';
import { AsyncServerTree } from 'sql/workbench/services/objectExplorer/browser/asyncServerTree';
@@ -102,18 +102,29 @@ export class ServerTreeDragAndDrop implements IDragAndDrop {
let providerName = this.getProviderNameFromElement(element);
if (providerName === 'KUSTO') {
finalString = element.nodeTypeId !== 'Function' && escapedName.indexOf(' ') > 0 ? `[@"${escapedName}"]` : escapedName;
} else {
} else if (providerName === mssqlProviderName) {
finalString = escapedSchema ? `[${escapedSchema}].[${escapedName}]` : `[${escapedName}]`;
} else if (providerName === pgsqlProviderName) {
finalString = element.metadata.schema ? `"${element.metadata.schema}"."${element.metadata.name}"` : `"${element.metadata.name}"`;
} else {
finalString = element.metadata.schema ? `${element.metadata.schema}.${element.metadata.name}` : `${element.metadata.name}`;
}
originalEvent.dataTransfer.setData(DataTransfers.RESOURCES, JSON.stringify([`${element.nodeTypeId}:${element.id}?${finalString}`]));
}
if (supportsFolderNodeNameDrop(element.nodeTypeId, element.label)) {
// get children
let returnString = '';
let providerName = this.getProviderNameFromElement(element);
for (let child of element.children) {
escapedSchema = escapeString(child.metadata.schema);
escapedName = escapeString(child.metadata.name);
finalString = escapedSchema ? `[${escapedSchema}].[${escapedName}]` : `[${escapedName}]`;
if (providerName === mssqlProviderName) {
finalString = escapedSchema ? `[${escapedSchema}].[${escapedName}]` : `[${escapedName}]`;
} else if (providerName === pgsqlProviderName) {
finalString = child.metadata.schema ? `"${child.metadata.schema}"."${child.metadata.name}"` : `"${child.metadata.name}"`;
} else {
finalString = child.metadata.schema ? `${child.metadata.schema}.${child.metadata.name}` : `${child.metadata.name}`;
}
returnString = returnString ? `${returnString},${finalString}` : `${finalString}`;
}