mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Fixed bug where proper file extension wasn't appended to filename. (#2151)
#892
This commit is contained in:
@@ -17,7 +17,7 @@ import { IOutputService, IOutputChannel, IOutputChannelRegistry, Extensions as O
|
|||||||
import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration';
|
import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration';
|
||||||
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
|
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||||
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
|
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
|
||||||
import { IWindowsService, IWindowService } from 'vs/platform/windows/common/windows';
|
import { IWindowsService, IWindowService, FileFilter } from 'vs/platform/windows/common/windows';
|
||||||
import { Registry } from 'vs/platform/registry/common/platform';
|
import { Registry } from 'vs/platform/registry/common/platform';
|
||||||
import URI from 'vs/base/common/uri';
|
import URI from 'vs/base/common/uri';
|
||||||
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
|
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
|
||||||
@@ -148,7 +148,8 @@ export class ResultSerializer {
|
|||||||
filepathPlaceHolder = path.join(filepathPlaceHolder, this.getResultsDefaultFilename(saveRequest));
|
filepathPlaceHolder = path.join(filepathPlaceHolder, this.getResultsDefaultFilename(saveRequest));
|
||||||
return this._windowService.showSaveDialog({
|
return this._windowService.showSaveDialog({
|
||||||
title: nls.localize('resultsSerializer.saveAsFileTitle', 'Choose Results File'),
|
title: nls.localize('resultsSerializer.saveAsFileTitle', 'Choose Results File'),
|
||||||
defaultPath: paths.normalize(filepathPlaceHolder, true)
|
defaultPath: paths.normalize(filepathPlaceHolder, true),
|
||||||
|
filters: this.getResultsFileExtension(saveRequest)
|
||||||
}).then(filePath => {
|
}).then(filePath => {
|
||||||
prevSavePath = filePath;
|
prevSavePath = filePath;
|
||||||
return Promise.resolve(filePath);
|
return Promise.resolve(filePath);
|
||||||
@@ -176,6 +177,40 @@ export class ResultSerializer {
|
|||||||
return fileName;
|
return fileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private getResultsFileExtension(saveRequest: ISaveRequest): FileFilter[] {
|
||||||
|
var fileFilters = new Array<FileFilter>();
|
||||||
|
var fileFilter = new FileFilter();
|
||||||
|
|
||||||
|
switch (saveRequest.format) {
|
||||||
|
case SaveFormat.CSV:
|
||||||
|
fileFilter.name = nls.localize('resultsSerializer.saveAsFileExtensionCSVTitle', 'CSV (Comma delimited)');
|
||||||
|
fileFilter.extensions = ['csv'];
|
||||||
|
break;
|
||||||
|
case SaveFormat.JSON:
|
||||||
|
var fileFilter = new FileFilter();
|
||||||
|
fileFilter.name = nls.localize('resultsSerializer.saveAsFileExtensionJSONTitle', 'JSON');
|
||||||
|
fileFilter.extensions = ['json'];
|
||||||
|
break;
|
||||||
|
case SaveFormat.EXCEL:
|
||||||
|
var fileFilter = new FileFilter();
|
||||||
|
fileFilter.name = nls.localize('resultsSerializer.saveAsFileExtensionExcelTitle', 'Excel Workbook');
|
||||||
|
fileFilter.extensions = ['xlsx'];
|
||||||
|
break;
|
||||||
|
case SaveFormat.XML:
|
||||||
|
var fileFilter = new FileFilter();
|
||||||
|
fileFilter.name = nls.localize('resultsSerializer.saveAsFileExtensionXMLTitle', 'XML');
|
||||||
|
fileFilter.extensions = ['xml'];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
var fileFilter = new FileFilter();
|
||||||
|
fileFilter.name = nls.localize('resultsSerializer.saveAsFileExtensionTXTTitle', 'Plain Text');
|
||||||
|
fileFilter.extensions = ['txt'];
|
||||||
|
}
|
||||||
|
|
||||||
|
fileFilters.push(fileFilter);
|
||||||
|
return fileFilters;
|
||||||
|
}
|
||||||
|
|
||||||
private getConfigForCsv(): SaveResultsRequestParams {
|
private getConfigForCsv(): SaveResultsRequestParams {
|
||||||
let saveResultsParams = <SaveResultsRequestParams>{ resultFormat: SaveFormat.CSV as string };
|
let saveResultsParams = <SaveResultsRequestParams>{ resultFormat: SaveFormat.CSV as string };
|
||||||
|
|
||||||
@@ -325,14 +360,14 @@ export class ResultSerializer {
|
|||||||
|
|
||||||
this._editorService.openEditor(input, { pinned: true })
|
this._editorService.openEditor(input, { pinned: true })
|
||||||
.then(
|
.then(
|
||||||
(success) => {
|
(success) => {
|
||||||
},
|
},
|
||||||
(error: any) => {
|
(error: any) => {
|
||||||
this._notificationService.notify({
|
this._notificationService.notify({
|
||||||
severity: Severity.Error,
|
severity: Severity.Error,
|
||||||
message: error
|
message: error
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ export interface OpenDialogOptions {
|
|||||||
message?: string;
|
message?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FileFilter {
|
export class FileFilter {
|
||||||
extensions: string[];
|
extensions: string[];
|
||||||
name: string;
|
name: string;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user