From 4e6332dccff12bdb78e7a621cf77dcc82e22bdbb Mon Sep 17 00:00:00 2001 From: leejinho Date: Thu, 30 Jan 2020 11:03:34 +0900 Subject: [PATCH] =?UTF-8?q?#=20=EC=9D=B4=EC=8A=88=EC=B2=98=EB=A6=AC=20192?= =?UTF-8?q?=20=EB=8B=A4=EB=A5=B8=20=EC=9D=B4=EB=A6=84=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=20=EC=B7=A8=EC=86=8C=EC=8B=9C=20=ED=8C=9D?= =?UTF-8?q?=EC=97=85=20=EB=AC=B8=EC=9D=98=EA=B1=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ucap-webmessenger-electron/src/index.ts | 5 ++++- .../components/messages.component.ts | 20 +++++++++++-------- .../lib/services/browser-native.service.ts | 15 +++++++++++--- .../lib/services/electron-native.service.ts | 10 ++++++++-- .../src/lib/services/native.service.ts | 5 ++++- 5 files changed, 40 insertions(+), 15 deletions(-) diff --git a/electron-projects/ucap-webmessenger-electron/src/index.ts b/electron-projects/ucap-webmessenger-electron/src/index.ts index dcfc113a..313a4149 100644 --- a/electron-projects/ucap-webmessenger-electron/src/index.ts +++ b/electron-projects/ucap-webmessenger-electron/src/index.ts @@ -603,7 +603,10 @@ ipcMain.on( dialog .showSaveDialog({ defaultPath: args[0] }) .then(obj => { - event.returnValue = obj.filePath; + event.returnValue = { + canceled: obj.canceled, + filePath: obj.filePath + }; }) .catch(obj => { event.returnValue = undefined; diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts index adea76cd..f6e766fb 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts @@ -918,15 +918,19 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { this.nativeService .selectSaveFilePath(value.fileInfo.fileName) .then(result => { - if (!!result && result.length > 0) { - this.saveFile(value, result); + if (!!result && result.filePath.length > 0) { + this.saveFile(value, result.filePath); } else { - this.snackBarService.open( - this.translateService.instant( - 'common.file.errors.failToSpecifyPath' - ), - this.translateService.instant('common.file.errors.label') - ); + if (!!result && result.canceled) { + // ignore.. + } else { + this.snackBarService.open( + this.translateService.instant( + 'common.file.errors.failToSpecifyPath' + ), + this.translateService.instant('common.file.errors.label') + ); + } } }) .catch(reason => { diff --git a/projects/ucap-webmessenger-native-browser/src/lib/services/browser-native.service.ts b/projects/ucap-webmessenger-native-browser/src/lib/services/browser-native.service.ts index 4bbbc99f..7460f818 100644 --- a/projects/ucap-webmessenger-native-browser/src/lib/services/browser-native.service.ts +++ b/projects/ucap-webmessenger-native-browser/src/lib/services/browser-native.service.ts @@ -187,9 +187,18 @@ export class BrowserNativeService extends NativeService { }); } - selectSaveFilePath(defaultPath?: string): Promise { - return new Promise((resolve, reject) => { - resolve(''); + selectSaveFilePath(defaultPath?: string): Promise<{ + canceled: boolean, + filePath: string + }> { + return new Promise<{ + canceled: boolean, + filePath: string + }>((resolve, reject) => { + resolve({ + canceled: false, + filePath: '' + }); }); } diff --git a/projects/ucap-webmessenger-native-electron/src/lib/services/electron-native.service.ts b/projects/ucap-webmessenger-native-electron/src/lib/services/electron-native.service.ts index c54ae3ab..2b37b986 100644 --- a/projects/ucap-webmessenger-native-electron/src/lib/services/electron-native.service.ts +++ b/projects/ucap-webmessenger-native-electron/src/lib/services/electron-native.service.ts @@ -309,8 +309,14 @@ export class ElectronNativeService implements NativeService { }); } - selectSaveFilePath(defaultPath?: string): Promise { - return new Promise((resolve, reject) => { + selectSaveFilePath(defaultPath?: string): Promise<{ + canceled: boolean, + filePath: string + }> { + return new Promise<{ + canceled: boolean, + filePath: string + }>((resolve, reject) => { try { resolve( this.ipcRenderer.sendSync(FileChannel.SelectSaveFilePath, defaultPath) diff --git a/projects/ucap-webmessenger-native/src/lib/services/native.service.ts b/projects/ucap-webmessenger-native/src/lib/services/native.service.ts index 43cc5328..e456dcb0 100644 --- a/projects/ucap-webmessenger-native/src/lib/services/native.service.ts +++ b/projects/ucap-webmessenger-native/src/lib/services/native.service.ts @@ -59,7 +59,10 @@ export abstract class NativeService { abstract openTargetItem(filePath?: string): Promise; abstract getPath(name: NativePathName): Promise; abstract selectDirectory(): Promise; - abstract selectSaveFilePath(defaultPath?: string): Promise; + abstract selectSaveFilePath(defaultPath?: string): Promise<{ + canceled: boolean, + filePath: string + }>; abstract executeProcess(executableName: string): Promise;