From 0eaee18dc4ad89da0a828bd4656821df38dc11b1 Mon Sep 17 00:00:00 2001 From: Aditya Bist Date: Mon, 27 Jan 2020 12:27:00 -0800 Subject: [PATCH] Fix Run Query for widgets (#8960) * format doc * use new line instead of eol * review comments * return false --- .../browser/widgets/insights/actions.ts | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/sql/workbench/contrib/dashboard/browser/widgets/insights/actions.ts b/src/sql/workbench/contrib/dashboard/browser/widgets/insights/actions.ts index 0d8ce3b776..9382dd4c6f 100644 --- a/src/sql/workbench/contrib/dashboard/browser/widgets/insights/actions.ts +++ b/src/sql/workbench/contrib/dashboard/browser/widgets/insights/actions.ts @@ -5,11 +5,12 @@ import { Action } from 'vs/base/common/actions'; import * as nls from 'vs/nls'; - import { RunQueryOnConnectionMode } from 'sql/platform/connection/common/connectionManagement'; import { InsightActionContext } from 'sql/workbench/browser/actions'; import { openNewQuery } from 'sql/workbench/contrib/query/browser/queryActions'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService'; +import { isString } from 'vs/base/common/types'; export class RunInsightQueryAction extends Action { public static ID = 'runQuery'; @@ -17,12 +18,25 @@ export class RunInsightQueryAction extends Action { constructor( id: string, label: string, - @IInstantiationService private readonly instantiationService: IInstantiationService + @IInstantiationService private readonly instantiationService: IInstantiationService, + @ITextResourcePropertiesService private _textResourcePropertiesService: ITextResourcePropertiesService ) { super(id, label); } public run(context: InsightActionContext): Promise { - return this.instantiationService.invokeFunction(openNewQuery, context.profile, undefined, RunQueryOnConnectionMode.executeQuery).then(() => true, () => false); + let queryString: string = undefined; + let eol: string = this._textResourcePropertiesService.getEOL(undefined); + if (context.insight && context.insight.query) { + if (isString(context.insight.query)) { + queryString = context.insight.query; + } else { + queryString = context.insight.query.join(eol); + } + } else { + return Promise.resolve(false); + } + return this.instantiationService.invokeFunction(openNewQuery, context.profile, queryString, + RunQueryOnConnectionMode.executeQuery).then(() => true, () => false); } }