From 11f679063013efc1ad784cc3011b0fc51e2b02c8 Mon Sep 17 00:00:00 2001 From: Kim Santiago <31145923+kisantia@users.noreply.github.com> Date: Tue, 28 Apr 2020 15:35:40 -0700 Subject: [PATCH] Add support for target location in tasks (#10179) * Add support for target location in tasks * bump sqltoolsservice to get addition of targetLocation to TaskNode --- extensions/mssql/config.json | 2 +- src/sql/azdata.proposed.d.ts | 4 ++++ .../contrib/tasks/browser/tasksRenderer.ts | 13 ++++++++++--- .../workbench/services/tasks/common/tasksNode.ts | 8 +++++++- .../workbench/services/tasks/common/tasksService.ts | 2 +- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/extensions/mssql/config.json b/extensions/mssql/config.json index afdb9b7109..f56bfed40c 100644 --- a/extensions/mssql/config.json +++ b/extensions/mssql/config.json @@ -1,6 +1,6 @@ { "downloadUrl": "https://github.com/Microsoft/sqltoolsservice/releases/download/v{#version#}/microsoft.sqltools.servicelayer-{#fileName#}", - "version": "2.0.0-release.56", + "version": "2.0.0-release.61", "downloadFileNames": { "Windows_86": "win-x86-netcoreapp2.2.zip", "Windows_64": "win-x64-netcoreapp2.2.zip", diff --git a/src/sql/azdata.proposed.d.ts b/src/sql/azdata.proposed.d.ts index 4e0e1d6b81..65f1672915 100644 --- a/src/sql/azdata.proposed.d.ts +++ b/src/sql/azdata.proposed.d.ts @@ -384,5 +384,9 @@ declare module 'azdata' { */ alwaysShowTabs?: boolean; } + + export interface TaskInfo { + targetLocation?: string; + } } diff --git a/src/sql/workbench/contrib/tasks/browser/tasksRenderer.ts b/src/sql/workbench/contrib/tasks/browser/tasksRenderer.ts index bb029d1716..1812baa519 100644 --- a/src/sql/workbench/contrib/tasks/browser/tasksRenderer.ts +++ b/src/sql/workbench/contrib/tasks/browser/tasksRenderer.ts @@ -103,11 +103,18 @@ export class TaskHistoryRenderer implements IRenderer { templateData.label.textContent = element.taskName + ' ' + taskStatus; templateData.label.title = templateData.label.textContent; + let description: string; // Determine the target name and set hover text equal to that - let description = element.serverName; - if (element.databaseName) { - description += ' | ' + element.databaseName; + // show target location if there is one, otherwise show server and database name + if (element.targetLocation) { + description = element.targetLocation; + } else { + description = element.serverName; + if (element.databaseName) { + description += ' | ' + element.databaseName; + } } + templateData.description.textContent = description; templateData.description.title = templateData.description.textContent; diff --git a/src/sql/workbench/services/tasks/common/tasksNode.ts b/src/sql/workbench/services/tasks/common/tasksNode.ts index 99bb5202b5..179d845d80 100644 --- a/src/sql/workbench/services/tasks/common/tasksNode.ts +++ b/src/sql/workbench/services/tasks/common/tasksNode.ts @@ -43,6 +43,11 @@ export class TaskNode { */ public databaseName?: string; + /** + * Target Location + */ + public targetLocation?: string; + /** * Provider Name */ @@ -99,7 +104,7 @@ export class TaskNode { */ public script?: string; - constructor(taskName: string, serverName?: string, databaseName?: string, taskId: string | undefined = undefined, taskExecutionMode: TaskExecutionMode = TaskExecutionMode.execute, isCancelable: boolean = true) { + constructor(taskName: string, serverName?: string, databaseName?: string, taskId: string | undefined = undefined, taskExecutionMode: TaskExecutionMode = TaskExecutionMode.execute, isCancelable: boolean = true, targetLocation?: string) { this.id = taskId || generateUuid(); this.taskName = taskName; @@ -111,5 +116,6 @@ export class TaskNode { this.hasChildren = false; this.taskExecutionMode = taskExecutionMode; this.isCancelable = isCancelable; + this.targetLocation = targetLocation; } } diff --git a/src/sql/workbench/services/tasks/common/tasksService.ts b/src/sql/workbench/services/tasks/common/tasksService.ts index 2215785ea4..bf4b362d3a 100644 --- a/src/sql/workbench/services/tasks/common/tasksService.ts +++ b/src/sql/workbench/services/tasks/common/tasksService.ts @@ -88,7 +88,7 @@ export class TaskService implements ITaskService { serverName = connectionProfile.serverName; } } - let node: TaskNode = new TaskNode(taskInfo.name, serverName, databaseName, taskInfo.taskId, taskInfo.taskExecutionMode, taskInfo.isCancelable); + let node: TaskNode = new TaskNode(taskInfo.name, serverName, databaseName, taskInfo.taskId, taskInfo.taskExecutionMode, taskInfo.isCancelable, taskInfo.targetLocation); node.providerName = taskInfo.providerName; this.handleNewTask(node); }