From 5fe7b9cb22c36ce9ba382b548d5ea3b5e56ef59d Mon Sep 17 00:00:00 2001 From: leejinho Date: Thu, 19 Mar 2020 10:35:29 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B9=AD=EC=B0=AC=EC=BD=94=EB=81=BC=EB=A6=AC?= =?UTF-8?q?=20=EB=B3=B4=EB=82=B4=EA=B8=B0=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../profile/profile.dialog.component.html | 2 + .../profile/profile.dialog.component.ts | 64 ++++++++++++++++++- .../src/lib/components/profile.component.html | 20 ++++-- .../src/lib/components/profile.component.ts | 8 +++ 4 files changed, 85 insertions(+), 9 deletions(-) diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/profile/profile.dialog.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/profile/profile.dialog.component.html index 300913c0..0ca72588 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/profile/profile.dialog.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/profile/profile.dialog.component.html @@ -9,7 +9,9 @@ [openProfileOptions]="data.openProfileOptions" [useBuddyToggleButton]="useBuddyToggleButton" [authInfo]="authInfo" + [enableElephantButton]="getEnableElephantButton()" (profileImageView)="onClickProfileImageView()" + (sendElephant)="onClickSendElephant()" (openChat)="onClickChat($event)" (sendMessage)="onClickSendMessage($event)" (sendCall)="onClickSendClickToCall($event)" diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/profile/profile.dialog.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/profile/profile.dialog.component.ts index b043a0d8..333ef40e 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/profile/profile.dialog.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/profile/profile.dialog.component.ts @@ -1,7 +1,15 @@ import { Component, OnInit, Inject, OnDestroy } from '@angular/core'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { KEY_LOGIN_RES_INFO, KEY_VER_INFO, KEY_AUTH_INFO } from '@app/types'; -import { SessionStorageService } from '@ucap-webmessenger/web-storage'; +import { + KEY_LOGIN_RES_INFO, + KEY_VER_INFO, + KEY_AUTH_INFO, + KEY_URL_INFO +} from '@app/types'; +import { + SessionStorageService, + LocalStorageService +} from '@ucap-webmessenger/web-storage'; import { Store, select } from '@ngrx/store'; import * as AppStore from '@app/store'; @@ -52,7 +60,7 @@ import { ConferenceService } from '@ucap-webmessenger/api-prompt'; import { NGXLogger } from 'ngx-logger'; -import { SmsUtils } from '@ucap-webmessenger/daesang'; +import { SmsUtils, WebLinkType } from '@ucap-webmessenger/daesang'; import { NativeService, UCAP_NATIVE_SERVICE } from '@ucap-webmessenger/native'; import { environment } from '../../../../../environments/environment'; import { TranslateService } from '@ngx-translate/core'; @@ -64,6 +72,8 @@ import { } from '@app/layouts/common/dialogs/file-viewer.dialog.component'; import { FileEventJson } from '@ucap-webmessenger/protocol-event'; import { FileType } from '@ucap-webmessenger/protocol-file'; +import { DaesangUrlInfoResponse } from '@ucap-webmessenger/api-external'; +import { AppUserInfo, KEY_APP_USER_INFO } from '@app/types/app-user-info.type'; export interface ProfileDialogData { userInfo: UserInfo | UserInfoSS | UserInfoF | UserInfoDN; @@ -101,6 +111,7 @@ export class ProfileDialogComponent implements OnInit, OnDestroy { @Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService, @Inject(MAT_DIALOG_DATA) public data: ProfileDialogData, private dialogService: DialogService, + private localStorageService: LocalStorageService, private sessionStorageService: SessionStorageService, private commonApiService: CommonApiService, private conferenceService: ConferenceService, @@ -496,6 +507,53 @@ export class ProfileDialogComponent implements OnInit, OnDestroy { }); } + getEnableElephantButton() { + if (!this.loginRes) { + return false; + } + + const myEmployeeNum = this.loginRes.userInfo.employeeNum; + const profEmployeeNum = this.userInfo.employeeNum; + const trgtEmployeeCode = '10'; // only 10 + if ( + !this.isMe && + !!myEmployeeNum && + !!profEmployeeNum && + myEmployeeNum.slice(0, 2) === trgtEmployeeCode && + profEmployeeNum.slice(0, 2) === trgtEmployeeCode + ) { + return true; + } + return false; + } + + onClickSendElephant() { + const urlInfo: DaesangUrlInfoResponse = this.sessionStorageService.get< + DaesangUrlInfoResponse + >(KEY_URL_INFO); + + if (!!urlInfo && !!urlInfo.webLink) { + const links = urlInfo.webLink.filter( + link => link.key === WebLinkType.Elephant + ); + if (!!links && links.length > 0) { + const appUserInfo = this.localStorageService.encGet( + KEY_APP_USER_INFO, + environment.customConfig.appKey + ); + + let elephantUrl = links[0].url + .replace(/(\(%USER_PASS%\))/g, appUserInfo.loginPw) // exchange USER_PASS params + .replace('kind%3D3', 'kind%3D2'); // change value of 'kind' + elephantUrl += '%26empno%3D' + this.userInfo.employeeNum + ','; // add parameter of 'empno' + + console.log(elephantUrl); + + this.nativeService.openDefaultBrowser(elephantUrl); + } + } + } + onUpdateIntro(intro: string) { this.store.dispatch( AuthenticationStore.infoUser({ diff --git a/projects/ucap-webmessenger-ui-profile/src/lib/components/profile.component.html b/projects/ucap-webmessenger-ui-profile/src/lib/components/profile.component.html index e38c71c0..9f834ceb 100644 --- a/projects/ucap-webmessenger-ui-profile/src/lib/components/profile.component.html +++ b/projects/ucap-webmessenger-ui-profile/src/lib/components/profile.component.html @@ -29,18 +29,26 @@ > - + (); @@ -72,6 +74,8 @@ export class ProfileComponent implements OnInit { @Output() updateIntro = new EventEmitter(); @Output() + sendElephant = new EventEmitter(); + @Output() close = new EventEmitter(); @ViewChild('profileImageFileInput', { static: false }) @@ -92,6 +96,10 @@ export class ProfileComponent implements OnInit { this.profileImageView.emit(); } + onClickSendElephant() { + this.sendElephant.emit(); + } + onClickOpenChat() { this.openChat.emit(this.userInfo); }