칭찬코끼리 보내기 기능 추가.
This commit is contained in:
		
							parent
							
								
									705e74a27b
								
							
						
					
					
						commit
						5fe7b9cb22
					
				| @ -9,7 +9,9 @@ | |||||||
|   [openProfileOptions]="data.openProfileOptions" |   [openProfileOptions]="data.openProfileOptions" | ||||||
|   [useBuddyToggleButton]="useBuddyToggleButton" |   [useBuddyToggleButton]="useBuddyToggleButton" | ||||||
|   [authInfo]="authInfo" |   [authInfo]="authInfo" | ||||||
|  |   [enableElephantButton]="getEnableElephantButton()" | ||||||
|   (profileImageView)="onClickProfileImageView()" |   (profileImageView)="onClickProfileImageView()" | ||||||
|  |   (sendElephant)="onClickSendElephant()" | ||||||
|   (openChat)="onClickChat($event)" |   (openChat)="onClickChat($event)" | ||||||
|   (sendMessage)="onClickSendMessage($event)" |   (sendMessage)="onClickSendMessage($event)" | ||||||
|   (sendCall)="onClickSendClickToCall($event)" |   (sendCall)="onClickSendClickToCall($event)" | ||||||
|  | |||||||
| @ -1,7 +1,15 @@ | |||||||
| import { Component, OnInit, Inject, OnDestroy } from '@angular/core'; | import { Component, OnInit, Inject, OnDestroy } from '@angular/core'; | ||||||
| import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; | import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; | ||||||
| import { KEY_LOGIN_RES_INFO, KEY_VER_INFO, KEY_AUTH_INFO } from '@app/types'; | import { | ||||||
| import { SessionStorageService } from '@ucap-webmessenger/web-storage'; |   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 { Store, select } from '@ngrx/store'; | ||||||
| import * as AppStore from '@app/store'; | import * as AppStore from '@app/store'; | ||||||
| @ -52,7 +60,7 @@ import { | |||||||
|   ConferenceService |   ConferenceService | ||||||
| } from '@ucap-webmessenger/api-prompt'; | } from '@ucap-webmessenger/api-prompt'; | ||||||
| import { NGXLogger } from 'ngx-logger'; | 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 { NativeService, UCAP_NATIVE_SERVICE } from '@ucap-webmessenger/native'; | ||||||
| import { environment } from '../../../../../environments/environment'; | import { environment } from '../../../../../environments/environment'; | ||||||
| import { TranslateService } from '@ngx-translate/core'; | import { TranslateService } from '@ngx-translate/core'; | ||||||
| @ -64,6 +72,8 @@ import { | |||||||
| } from '@app/layouts/common/dialogs/file-viewer.dialog.component'; | } from '@app/layouts/common/dialogs/file-viewer.dialog.component'; | ||||||
| import { FileEventJson } from '@ucap-webmessenger/protocol-event'; | import { FileEventJson } from '@ucap-webmessenger/protocol-event'; | ||||||
| import { FileType } from '@ucap-webmessenger/protocol-file'; | 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 { | export interface ProfileDialogData { | ||||||
|   userInfo: UserInfo | UserInfoSS | UserInfoF | UserInfoDN; |   userInfo: UserInfo | UserInfoSS | UserInfoF | UserInfoDN; | ||||||
| @ -101,6 +111,7 @@ export class ProfileDialogComponent implements OnInit, OnDestroy { | |||||||
|     @Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService, |     @Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService, | ||||||
|     @Inject(MAT_DIALOG_DATA) public data: ProfileDialogData, |     @Inject(MAT_DIALOG_DATA) public data: ProfileDialogData, | ||||||
|     private dialogService: DialogService, |     private dialogService: DialogService, | ||||||
|  |     private localStorageService: LocalStorageService, | ||||||
|     private sessionStorageService: SessionStorageService, |     private sessionStorageService: SessionStorageService, | ||||||
|     private commonApiService: CommonApiService, |     private commonApiService: CommonApiService, | ||||||
|     private conferenceService: ConferenceService, |     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<AppUserInfo>( | ||||||
|  |           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) { |   onUpdateIntro(intro: string) { | ||||||
|     this.store.dispatch( |     this.store.dispatch( | ||||||
|       AuthenticationStore.infoUser({ |       AuthenticationStore.infoUser({ | ||||||
|  | |||||||
| @ -29,18 +29,26 @@ | |||||||
|       > |       > | ||||||
|         <i class="mid mdi-camera"></i> |         <i class="mid mdi-camera"></i> | ||||||
|       </button> |       </button> | ||||||
|       <!-- <button |       <button | ||||||
|         mat-mini-fab |         mat-mini-fab | ||||||
|         class="mat-elevation-z6 icon-button btn-elephant" |         class="mat-elevation-z6 icon-button btn-elephant" | ||||||
|         *ngIf="!isMe" |         *ngIf="!!enableElephantButton" | ||||||
|  |         matTooltip="칭찬 코끼리 보내기" | ||||||
|  |         (click)="onClickSendElephant()" | ||||||
|  |       > | ||||||
|  |         <svg | ||||||
|  |           xmlns="http://www.w3.org/2000/svg" | ||||||
|  |           viewBox="0 0 30 30" | ||||||
|  |           stroke-width="1.5" | ||||||
|  |           stroke="#357abc" | ||||||
|  |           fill="#98d7e2" | ||||||
|         > |         > | ||||||
|         <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" stroke-width="1.5" |  | ||||||
|           stroke="#357abc" fill="#98d7e2"> |  | ||||||
|           <path |           <path | ||||||
|             d="M29,17.3a21.32,21.32,0,0,0-.63-4.39A10.59,10.59,0,0,0,28,11.85c0-.14-.1-.27-.15-.41l-.16-.39a13,13,0,0,0-.81-1.52,11.29,11.29,0,0,0-1.59-2c-.2-.2-.4-.4-.62-.58s-.43-.36-.66-.53a10.83,10.83,0,0,0-1.82-1.09l-.39-.18c-.26-.11-.53-.21-.81-.31A11.06,11.06,0,0,0,6.62,13.71l0,.09v0s0,.07,0,.1v0a.52.52,0,0,0,0,.11h0a.43.43,0,0,1,0,.11h0a.32.32,0,0,1,0,.09v0s0,.05,0,.08h0a.1.1,0,0,1,0,0h0l-.05,0h0l0,0a1.42,1.42,0,0,1-.56-.62,1.84,1.84,0,0,1-.13-1.17A4,4,0,0,1,6,11.55L2.14,9.83h0a6.75,6.75,0,0,0-.84,1.78c-.05.14-.09.29-.13.45A6.18,6.18,0,0,0,1,13.31a5,5,0,0,0,.78,2.84c.08.13.17.26.26.38l.06.08c.09.11.17.22.27.33l0,0,.26.28.07.06.28.25,0,0a2.48,2.48,0,0,0,.26.19l.06,0,.3.19.05,0,.27.14.06,0,.29.13.06,0,.25.09,0,0,.29.09h.06l.24.06h0l.26.05h0l.23,0h0l.23,0h.94l.13.43c.07.19.15.38.23.57s.17.38.27.56a11.26,11.26,0,0,0,1,1.51c.13.16.25.32.39.48a5.34,5.34,0,0,0,.39.44A11.78,11.78,0,0,0,10.9,24.1c.27.2.54.39.83.57a11.72,11.72,0,0,0,1.78,1l.16.06h.19l.13,0h0l.1-.06h0a.39.39,0,0,0,.08-.1h0l.05-.11v0l0-.1h0s0-.06,0-.09v-.08h0v-1a3.27,3.27,0,0,1,.41-1.59,3.36,3.36,0,0,1,2.94-1.76h0a3.31,3.31,0,0,1,1,.16l.3.11a3.15,3.15,0,0,1,.57.31,2.48,2.48,0,0,1,.26.19A3.34,3.34,0,0,1,21,24.08v.79h0v.29l0,0v0a.43.43,0,0,1,0,0v0a.25.25,0,0,0,0,.07h0a.21.21,0,0,0,0,.06v0l0,0,0,0,0,0,0,0,0,0h.18l.09,0a11,11,0,0,0,1.65-.82c.27-.16.53-.34.78-.52a10.65,10.65,0,0,0,1.07-.93c.11-.12.22-.23.32-.35a7.25,7.25,0,0,0,.58-.76l.24-.4a6.43,6.43,0,0,0,.41-.88l.15-.46.15.64c0,.09,0,.18.05.27v.09l0,.18v.1l0,.19V22l0,.2v.05l0,.2v.07c0,.05,0,.09,0,.14v.07a.69.69,0,0,1,0,.13V23a.94.94,0,0,1,0,.16v0a.56.56,0,0,0,0,.12v0l0,.08v0l0,.06,0,0a.1.1,0,0,0,.05,0h.07l.05,0s0,0,0,0a.12.12,0,0,0,.05,0l0,0a.52.52,0,0,0,.08-.11A9.41,9.41,0,0,0,29,18.52C29,18.12,29,17.71,29,17.3ZM10.55,11.59a.86.86,0,1,1,0-1.71.85.85,0,0,1,.85.85A.86.86,0,0,1,10.55,11.59Zm9.79,4.79A5.27,5.27,0,0,1,17,18.07a2.67,2.67,0,0,1-2-.95,7.21,7.21,0,0,1-1.69-4.84c.07-1.18.76-4,5.58-4.94a4.18,4.18,0,0,1,.61,0v0a3.43,3.43,0,0,1,3.11,2.29C23.5,11.73,22.63,14.27,20.34,16.38Z" |             d="M29,17.3a21.32,21.32,0,0,0-.63-4.39A10.59,10.59,0,0,0,28,11.85c0-.14-.1-.27-.15-.41l-.16-.39a13,13,0,0,0-.81-1.52,11.29,11.29,0,0,0-1.59-2c-.2-.2-.4-.4-.62-.58s-.43-.36-.66-.53a10.83,10.83,0,0,0-1.82-1.09l-.39-.18c-.26-.11-.53-.21-.81-.31A11.06,11.06,0,0,0,6.62,13.71l0,.09v0s0,.07,0,.1v0a.52.52,0,0,0,0,.11h0a.43.43,0,0,1,0,.11h0a.32.32,0,0,1,0,.09v0s0,.05,0,.08h0a.1.1,0,0,1,0,0h0l-.05,0h0l0,0a1.42,1.42,0,0,1-.56-.62,1.84,1.84,0,0,1-.13-1.17A4,4,0,0,1,6,11.55L2.14,9.83h0a6.75,6.75,0,0,0-.84,1.78c-.05.14-.09.29-.13.45A6.18,6.18,0,0,0,1,13.31a5,5,0,0,0,.78,2.84c.08.13.17.26.26.38l.06.08c.09.11.17.22.27.33l0,0,.26.28.07.06.28.25,0,0a2.48,2.48,0,0,0,.26.19l.06,0,.3.19.05,0,.27.14.06,0,.29.13.06,0,.25.09,0,0,.29.09h.06l.24.06h0l.26.05h0l.23,0h0l.23,0h.94l.13.43c.07.19.15.38.23.57s.17.38.27.56a11.26,11.26,0,0,0,1,1.51c.13.16.25.32.39.48a5.34,5.34,0,0,0,.39.44A11.78,11.78,0,0,0,10.9,24.1c.27.2.54.39.83.57a11.72,11.72,0,0,0,1.78,1l.16.06h.19l.13,0h0l.1-.06h0a.39.39,0,0,0,.08-.1h0l.05-.11v0l0-.1h0s0-.06,0-.09v-.08h0v-1a3.27,3.27,0,0,1,.41-1.59,3.36,3.36,0,0,1,2.94-1.76h0a3.31,3.31,0,0,1,1,.16l.3.11a3.15,3.15,0,0,1,.57.31,2.48,2.48,0,0,1,.26.19A3.34,3.34,0,0,1,21,24.08v.79h0v.29l0,0v0a.43.43,0,0,1,0,0v0a.25.25,0,0,0,0,.07h0a.21.21,0,0,0,0,.06v0l0,0,0,0,0,0,0,0,0,0h.18l.09,0a11,11,0,0,0,1.65-.82c.27-.16.53-.34.78-.52a10.65,10.65,0,0,0,1.07-.93c.11-.12.22-.23.32-.35a7.25,7.25,0,0,0,.58-.76l.24-.4a6.43,6.43,0,0,0,.41-.88l.15-.46.15.64c0,.09,0,.18.05.27v.09l0,.18v.1l0,.19V22l0,.2v.05l0,.2v.07c0,.05,0,.09,0,.14v.07a.69.69,0,0,1,0,.13V23a.94.94,0,0,1,0,.16v0a.56.56,0,0,0,0,.12v0l0,.08v0l0,.06,0,0a.1.1,0,0,0,.05,0h.07l.05,0s0,0,0,0a.12.12,0,0,0,.05,0l0,0a.52.52,0,0,0,.08-.11A9.41,9.41,0,0,0,29,18.52C29,18.12,29,17.71,29,17.3ZM10.55,11.59a.86.86,0,1,1,0-1.71.85.85,0,0,1,.85.85A.86.86,0,0,1,10.55,11.59Zm9.79,4.79A5.27,5.27,0,0,1,17,18.07a2.67,2.67,0,0,1-2-.95,7.21,7.21,0,0,1-1.69-4.84c.07-1.18.76-4,5.58-4.94a4.18,4.18,0,0,1,.61,0v0a3.43,3.43,0,0,1,3.11,2.29C23.5,11.73,22.63,14.27,20.34,16.38Z" | ||||||
|             transform="translate(-1 -4.29)" /> |             transform="translate(-1 -4.29)" | ||||||
|  |           /> | ||||||
|         </svg> |         </svg> | ||||||
|       </button> --> |       </button> | ||||||
|       <span |       <span | ||||||
|         *ngIf="getWorkstatus(userInfo).length > 0" |         *ngIf="getWorkstatus(userInfo).length > 0" | ||||||
|         class="work-status" |         class="work-status" | ||||||
|  | |||||||
| @ -44,6 +44,8 @@ export class ProfileComponent implements OnInit { | |||||||
|   useBuddyToggleButton: boolean; |   useBuddyToggleButton: boolean; | ||||||
|   @Input() |   @Input() | ||||||
|   authInfo: AuthResponse; |   authInfo: AuthResponse; | ||||||
|  |   @Input() | ||||||
|  |   enableElephantButton: boolean; // 칭찬코끼리 버튼 활성화 대상 여부.
 | ||||||
| 
 | 
 | ||||||
|   @Output() |   @Output() | ||||||
|   profileImageView = new EventEmitter<void>(); |   profileImageView = new EventEmitter<void>(); | ||||||
| @ -72,6 +74,8 @@ export class ProfileComponent implements OnInit { | |||||||
|   @Output() |   @Output() | ||||||
|   updateIntro = new EventEmitter<string>(); |   updateIntro = new EventEmitter<string>(); | ||||||
|   @Output() |   @Output() | ||||||
|  |   sendElephant = new EventEmitter(); | ||||||
|  |   @Output() | ||||||
|   close = new EventEmitter(); |   close = new EventEmitter(); | ||||||
| 
 | 
 | ||||||
|   @ViewChild('profileImageFileInput', { static: false }) |   @ViewChild('profileImageFileInput', { static: false }) | ||||||
| @ -92,6 +96,10 @@ export class ProfileComponent implements OnInit { | |||||||
|     this.profileImageView.emit(); |     this.profileImageView.emit(); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   onClickSendElephant() { | ||||||
|  |     this.sendElephant.emit(); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   onClickOpenChat() { |   onClickOpenChat() { | ||||||
|     this.openChat.emit(this.userInfo); |     this.openChat.emit(this.userInfo); | ||||||
|   } |   } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user