Fixed bug where proper file extension wasn't appended to filename. (#2151)

#892
This commit is contained in:
AlexFsmn
2018-08-06 20:54:58 +02:00
committed by Karl Burtram
parent 220e4feb1d
commit 21b913845f
2 changed files with 46 additions and 11 deletions

View File

@@ -17,7 +17,7 @@ import { IOutputService, IOutputChannel, IOutputChannelRegistry, Extensions as O
import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration';
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
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 URI from 'vs/base/common/uri';
import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService';
@@ -148,7 +148,8 @@ export class ResultSerializer {
filepathPlaceHolder = path.join(filepathPlaceHolder, this.getResultsDefaultFilename(saveRequest));
return this._windowService.showSaveDialog({
title: nls.localize('resultsSerializer.saveAsFileTitle', 'Choose Results File'),
defaultPath: paths.normalize(filepathPlaceHolder, true)
defaultPath: paths.normalize(filepathPlaceHolder, true),
filters: this.getResultsFileExtension(saveRequest)
}).then(filePath => {
prevSavePath = filePath;
return Promise.resolve(filePath);
@@ -176,6 +177,40 @@ export class ResultSerializer {
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 {
let saveResultsParams = <SaveResultsRequestParams>{ resultFormat: SaveFormat.CSV as string };
@@ -325,14 +360,14 @@ export class ResultSerializer {
this._editorService.openEditor(input, { pinned: true })
.then(
(success) => {
},
(error: any) => {
this._notificationService.notify({
severity: Severity.Error,
message: error
});
}
(success) => {
},
(error: any) => {
this._notificationService.notify({
severity: Severity.Error,
message: error
});
}
);
}
}