diff --git a/electron-projects/ucap-webmessenger-electron/src/app/AppWindow.ts b/electron-projects/ucap-webmessenger-electron/src/app/AppWindow.ts index 6f69c305..25c384a2 100644 --- a/electron-projects/ucap-webmessenger-electron/src/app/AppWindow.ts +++ b/electron-projects/ucap-webmessenger-electron/src/app/AppWindow.ts @@ -88,6 +88,10 @@ export class AppWindow { // windows Focus or Blur state detacted. this.window.on(ElectronBrowserWindowChannel.Focus, () => { + if (__WIN32__) { + this.window.flashFrame(false); + } + this.window.webContents.send( WindowStateChannel.FocuseChanged, ElectronBrowserWindowChannel.Focus @@ -122,9 +126,6 @@ export class AppWindow { this.window.hide(); // } }); - this.window.on(ElectronBrowserWindowChannel.Focus, e => { - this.window.flashFrame(false); - }); } if (__WIN32__) { diff --git a/electron-projects/ucap-webmessenger-electron/src/index.ts b/electron-projects/ucap-webmessenger-electron/src/index.ts index 2784fe61..ad714b2f 100644 --- a/electron-projects/ucap-webmessenger-electron/src/index.ts +++ b/electron-projects/ucap-webmessenger-electron/src/index.ts @@ -7,7 +7,8 @@ import { shell, dialog, BrowserWindow, - clipboard + clipboard, + crashReporter } from 'electron'; import path from 'path'; import fse from 'fs-extra'; @@ -133,6 +134,12 @@ function getUptimeInSeconds() { return (now() - launchTime) / 1000; } +crashReporter.start({ + productName: app.name, + companyName: app.getVersion(), + submitURL: 'https//localhost' +}); + process.on('uncaughtException', (error: Error) => { // error = withSourceMappedStack(error); // reportError(error, getExtraErrorContext()); @@ -212,6 +219,7 @@ function createWindow() { } window.onClose(() => { + process.crash(); appWindow = null; if (!__DARWIN__ && !preventQuit) { app.quit(); @@ -671,9 +679,18 @@ ipcMain.on( properties: ['openDirectory'] }) .then(value => { - event.returnValue = value.filePaths[0]; + if (!!value) { + event.returnValue = value.filePaths[0]; + } else { + log.error( + '[IpcMain / SelectDirectory]', + 'Value is null or undefined' + ); + event.returnValue = undefined; + } }) .catch(reason => { + log.error('[IpcMain / SelectDirectory]', reason); event.returnValue = undefined; }); } diff --git a/package.json b/package.json index c4dcd1f2..2e3a1eda 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ucap-webmessenger", - "version": "1.0.13", + "version": "1.0.14", "author": { "name": "LG CNS", "email": "lgucap@lgcns.com" diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.html index 2ea5f588..1d51a591 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.html @@ -1,5 +1,5 @@ -
-
+
+

{{ 'organization.chart' | translate }}

{{ getRoomNameByRoomUser(_roomUserInfos) }} + + + {{ getSingleRoomUserInfosGrade(_roomUserInfos) }} + + + / {{ getSingleRoomUserInfosLineNumber(_roomUserInfos) }} + + + / {{ getSingleRoomUserInfosHpNumber(_roomUserInfos) }} + + diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/main-contents/messages.component.scss b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/main-contents/messages.component.scss index 72bde422..61e48675 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/main-contents/messages.component.scss +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/main-contents/messages.component.scss @@ -77,6 +77,14 @@ font-size: 0.94rem; line-height: normal; @include ellipsis(1); + + .more-info { + font-size: 0.9rem; + color: #656565; + .callable { + cursor: pointer; + } + } } .room-type { font-size: 0.9rem; diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/main-contents/messages.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/main-contents/messages.component.ts index 27fe6c3e..f5c7cb0e 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/main-contents/messages.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/main-contents/messages.component.ts @@ -27,7 +27,8 @@ import { AlertSnackbarComponent, AlertSnackbarData, TranslateService as UiTranslateService, - TranslatePipe as UiTranslatePipe + TranslatePipe as UiTranslatePipe, + StringFormatterPhonePipe } from '@ucap-webmessenger/ui'; import { Store, select } from '@ngrx/store'; import { NGXLogger } from 'ngx-logger'; @@ -143,6 +144,7 @@ import { EventDownloadRequest } from '@ucap-webmessenger/api-message'; import moment from 'moment'; +import { start } from 'repl'; @Component({ selector: 'app-layout-messenger-messages', @@ -156,6 +158,8 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { openProfile = new EventEmitter(); @Output() closeRightDrawer = new EventEmitter(); + @Output() + sendCall = new EventEmitter(); @ViewChild('chatSearch', { static: false }) private chatSearch: SearchComponent; @@ -532,6 +536,46 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { return roomName; } + getSingleRoomUserInfosGrade(roomUserInfos: any[]) { + if (roomUserInfos.length > 0) { + return new UiTranslatePipe( + this.uiTranslateService, + this.changeDetectorRef + ).transform(roomUserInfos, 'grade', ','); + } + return ''; + } + getSingleRoomUserInfosLineNumber(roomUserInfos: any[]) { + if ( + roomUserInfos.length > 0 && + !!roomUserInfos[0].lineNumber && + roomUserInfos[0].lineNumber.trim().length > 0 + ) { + return `${new StringFormatterPhonePipe().transform( + roomUserInfos[0].lineNumber + )}`; + } + } + getSingleRoomUserInfosHpNumber(roomUserInfos: any[]) { + if ( + roomUserInfos.length > 0 && + !!roomUserInfos[0].hpNumber && + roomUserInfos[0].hpNumber.trim().length > 0 + ) { + return `${new StringFormatterPhonePipe().transform( + roomUserInfos[0].hpNumber + )}`; + } + } + + onClickSendClickToCall(type: string) { + if(type === 'LINE') { + this.sendCall.emit(this._roomUserInfos[0].lineNumber); + } else if(type === 'MOBILE') { + this.sendCall.emit(this._roomUserInfos[0].hpNumber); + } + } + /** 대화전송 가능한 방인지 판단 */ getEnableSend() { if (!this.roomInfoSubject.value) { diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.scss b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.scss index ce98e53e..4c5b57a8 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.scss +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.scss @@ -91,8 +91,8 @@ } &-tab { width: 100%; - height: 100%; - border-bottom: 1px solid #dddddd; + height: calc(100% - 50px); + // border-bottom: 1px solid #dddddd; position: relative; &-tree { display: inline-flex; diff --git a/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.html b/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.html index f565f5a4..95649382 100644 --- a/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.html +++ b/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.html @@ -31,6 +31,7 @@ (openProfile)="onClickOpenProfile($event)" (gotoDeptTree)="onClickGotoDeptTree($event)" (closeRightDrawer)="onCloseRightDrawer()" + (sendCall)="sendClickToCall($event)" (createConference)="conferenceCreate($event)" > diff --git a/projects/ucap-webmessenger-app/src/app/services/notification.service.ts b/projects/ucap-webmessenger-app/src/app/services/notification.service.ts index 335b1586..68db247f 100644 --- a/projects/ucap-webmessenger-app/src/app/services/notification.service.ts +++ b/projects/ucap-webmessenger-app/src/app/services/notification.service.ts @@ -286,16 +286,15 @@ export class AppNotificationService { doNoti = false; } - // // 포커스 아웃일때 무조건 노티. - // // Case 1 : 단순 포커스 아웃. - // // Case 2 : hidden 시 포커스 인 상태이지만 위에서 필터링 됨. - // console.log(windowState); - // if ( - // windowState.windowFocusState !== - // ElectronBrowserWindowChannel.Focus - // ) { - // doNoti = true; - // } + // 포커스 아웃일때 무조건 노티. + // Case 1 : 단순 포커스 아웃. + // Case 2 : hidden 시 포커스 인 상태이지만 위에서 필터링 됨. + if ( + windowState.windowFocusState !== + ElectronBrowserWindowChannel.Focus + ) { + doNoti = true; + } // 방별 알림이 꺼져 있으면 노티 안함. > 우선순위 최상위. if ( diff --git a/projects/ucap-webmessenger-daesang/src/lib/services/daesang-cipher.service.ts b/projects/ucap-webmessenger-daesang/src/lib/services/daesang-cipher.service.ts index d5d81d96..fb231098 100644 --- a/projects/ucap-webmessenger-daesang/src/lib/services/daesang-cipher.service.ts +++ b/projects/ucap-webmessenger-daesang/src/lib/services/daesang-cipher.service.ts @@ -53,7 +53,8 @@ export class DaesangCipherService { encryptForSapErp(pvUserKey: string, employeeNum: string): string { // const txt = '20200221090321_asdfghjk'; // 1QgLAiLqJ6Uo6bE4Qk1o3Yd6mfqxXSnmqXX%2FXLL7DoA%3D // const txt = '20200221101444_asdfghjk'; // Lz1TIdGTQQMui%2BBHMdj8fatYYhXbwJEL%2BJ91C7jUWEs%3D - const str = moment().format('YYYYMMDDHHmmss') + '_' + employeeNum; + const str = + moment().format('YYYYMMDDHHmmss') + '_' + employeeNum.toUpperCase(); const secretKeyToByteArray: Buffer = Buffer.from(pvUserKey, 'utf8').slice( 0, 16 diff --git a/projects/ucap-webmessenger-ui-settings/src/lib/components/chat.component.ts b/projects/ucap-webmessenger-ui-settings/src/lib/components/chat.component.ts index 410ef913..e71f9d0c 100644 --- a/projects/ucap-webmessenger-ui-settings/src/lib/components/chat.component.ts +++ b/projects/ucap-webmessenger-ui-settings/src/lib/components/chat.component.ts @@ -62,7 +62,9 @@ export class ChatComponent implements OnInit { this.emit({ ...this.setting, downloadPath: path }); } }) - .catch(reason => {}); + .catch(reason => { + this.nativeService.appLogging(reason); + }); } private emit(setting: ChatSetting) {