diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.html index 0b35a41b..3a7a24c0 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.html @@ -148,13 +148,6 @@ --> - -
- notifications_active - notifications_off 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 2c3ac0b3..2045913b 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 @@ -36,7 +36,8 @@ import { FileEventJson, StickerEventJson, MassTextEventJson, - TranslationEventJson + TranslationEventJson, + MassTranslationEventJson } from '@ucap-webmessenger/protocol-event'; import * as AppStore from '@app/store'; @@ -75,7 +76,8 @@ import { FileTalkSaveRequest, FileTalkSaveResponse, TranslationReqRequest, - TranslationSaveRequest + TranslationSaveRequest, + TranslationSaveResponse } from '@ucap-webmessenger/api-common'; import { CreateChatDialogComponent, @@ -174,7 +176,10 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { translationSimpleview = false; translationPreview = false; destLocale = 'en'; // default English :: en - translationPreviewInfo: TranslationEventJson | null; + translationPreviewInfo: { + previewInfo: TranslationSaveResponse | null; + translationType: EventType.Translation | EventType.MassTranslation; + }; /** About ReadHere */ firstcheckReadHere = true; @@ -620,8 +625,6 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { if (!!this.isShowTranslation && this.destLocale.trim().length > 0) { /** CASE : Translation */ - console.log('번역들어간다.'); - const destLocale = this.destLocale; const original = message; const roomSeq = this.roomInfo.roomSeq; @@ -638,13 +641,21 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { .pipe( take(1), map(res => { - console.log(res); if (res.statusCode === StatusCode.Success) { + let sentMessage = ''; + let eventType = EventType.Translation; + let previewObject: + | TranslationEventJson + | MassTranslationEventJson; + if (res.translationSeq > 0) { // Mass Text Translation + previewObject = res; + sentMessage = res.returnJson; + eventType = EventType.MassTranslation; } else { // Normal Text Translation - const json: TranslationEventJson = { + previewObject = { locale: destLocale, original, translation: res.translation, @@ -654,32 +665,38 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { : '' }; - if (!!this.translationPreview) { - // preview - this.translationPreviewInfo = json; - } else { - // direct send - this.store.dispatch( - EventStore.send({ - senderSeq: this.loginRes.userSeq, - req: { - roomSeq, - eventType: EventType.Translation, - sentMessage: JSON.stringify(json) - } - }) - ); + sentMessage = JSON.stringify(previewObject); + eventType = EventType.Translation; + } - if (!!this.translationPreviewInfo) { - this.translationPreviewInfo = null; - } - } + if (!!this.translationPreview) { + // preview + this.translationPreviewInfo = { + previewInfo: res, + translationType: eventType + }; + } else { + // direct send + this.store.dispatch( + EventStore.send({ + senderSeq: this.loginRes.userSeq, + req: { + roomSeq, + eventType, + sentMessage + } + }) + ); - if (!!this.selectedSticker) { - this.isShowStickerSelector = false; - this.setStickerHistory(this.selectedSticker); + if (!!this.translationPreviewInfo) { + this.translationPreviewInfo = null; } } + + if (!!this.selectedSticker) { + this.isShowStickerSelector = false; + this.setStickerHistory(this.selectedSticker); + } } else { this.logger.error(res); } @@ -1470,14 +1487,32 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { onCancelTranslation() { this.translationPreviewInfo = null; } - onSendTranslationMessage(translationInfo: TranslationEventJson) { + onSendTranslationMessage(params: { + previewInfo: TranslationSaveResponse | null; + translationType: EventType.Translation | EventType.MassTranslation; + }) { + let sentMessage = ''; + if (params.translationType === EventType.MassTranslation) { + // Mass Text Translation + sentMessage = params.previewInfo.returnJson; + } else { + // Normal Text Translation + sentMessage = JSON.stringify({ + locale: params.previewInfo.destLocale, + original: params.previewInfo.original, + translation: params.previewInfo.translation, + stickername: '', + stickerfile: !!this.selectedSticker ? this.selectedSticker.index : '' + }); + } + this.store.dispatch( EventStore.send({ senderSeq: this.loginRes.userSeq, req: { roomSeq: this.roomInfo.roomSeq, - eventType: EventType.Translation, - sentMessage: JSON.stringify(translationInfo) + eventType: params.translationType, + sentMessage } }) ); diff --git a/projects/ucap-webmessenger-app/src/app/layouts/native/components/top-bar.component.html b/projects/ucap-webmessenger-app/src/app/layouts/native/components/top-bar.component.html index c93be4d8..a8018145 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/native/components/top-bar.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/native/components/top-bar.component.html @@ -147,6 +147,12 @@ +
diff --git a/projects/ucap-webmessenger-app/src/app/layouts/native/components/top-bar.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/native/components/top-bar.component.ts index d2717d49..93559fa7 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/native/components/top-bar.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/native/components/top-bar.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, Inject, OnDestroy, ViewChild } from '@angular/core'; +import { Component, OnInit, Inject, OnDestroy } from '@angular/core'; import { UCAP_NATIVE_SERVICE, NativeService, @@ -21,7 +21,8 @@ import { KEY_URL_INFO, LoginInfo, KEY_LOGIN_INFO, - KEY_LOGIN_RES_INFO + KEY_LOGIN_RES_INFO, + KEY_VER_INFO } from '@app/types'; import { WebLink, @@ -33,8 +34,18 @@ import { } from '@ucap-webmessenger/web-storage'; import { AppUserInfo, KEY_APP_USER_INFO } from '@app/types/app-user-info.type'; import { environment } from '../../../../environments/environment'; -import { DaesangApiService } from '@ucap-webmessenger/daesang'; +import { + DaesangApiService, + DaesangProtocolService +} from '@ucap-webmessenger/daesang'; import { NGXLogger } from 'ngx-logger'; +import { VersionInfo2Response } from '@ucap-webmessenger/api-public'; +import { + ProfileDialogComponent, + ProfileDialogResult, + ProfileDialogData +} from '@app/layouts/messenger/dialogs/profile/profile.dialog.component'; +import { DialogService } from '@ucap-webmessenger/ui'; @Component({ selector: 'app-layout-native-top-bar', @@ -47,6 +58,7 @@ export class TopBarComponent implements OnInit, OnDestroy { loginRes: LoginResponse; loginResSubscription: Subscription; + sessionVerinfo: VersionInfo2Response; updateInfo$: Observable; @@ -59,11 +71,17 @@ export class TopBarComponent implements OnInit, OnDestroy { constructor( private store: Store, @Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService, + private dialogService: DialogService, private localStorageService: LocalStorageService, private sessionStorageService: SessionStorageService, private daesangApiService: DaesangApiService, + private daesangProtocolService: DaesangProtocolService, private logger: NGXLogger - ) {} + ) { + this.sessionVerinfo = this.sessionStorageService.get( + KEY_VER_INFO + ); + } ngOnInit() { this.windowStateChanged$ = this.nativeService.windowStateChanged(); @@ -223,6 +241,68 @@ export class TopBarComponent implements OnInit, OnDestroy { this.store.dispatch(AuthenticationStore.logoutConfirmation()); } + getMyProfileImageWidget(): string { + if (!!this.loginRes) { + return this.loginRes.userInfo.profileImageFile; + } else { + return ''; + } + } + + onClickOpenProfile() { + // [GROUP] + // this.queryProtocolService + // .dataUser({ + // divCd: 'OPENPROF', + // seq: userInfo.seq, + // senderCompanyCode: this.loginRes.userInfo.companyCode, + // senderEmployeeType: this.loginRes.userInfo.employeeType + // }) + // .pipe( + // take(1), + // map(res => { + // if (!!res && !!res.userInfo) { + // this.dialogService.open< + // ProfileDialogComponent, + // ProfileDialogData, + // ProfileDialogResult + // >(ProfileDialogComponent, { + // data: { + // userInfo: res.userInfo + // } + // }); + // } + // }) + // ) + // .subscribe(); + + // [Daesang] + this.daesangProtocolService + .dataUserDaesang({ + divCd: 'OPENPROF', + seq: this.loginRes.userSeq, + senderCompanyCode: this.loginRes.userInfo.companyCode, + senderEmployeeType: this.loginRes.userInfo.employeeType + }) + .pipe( + take(1), + map(res => { + if (!!res && !!res.userInfo) { + this.dialogService.open< + ProfileDialogComponent, + ProfileDialogData, + ProfileDialogResult + >(ProfileDialogComponent, { + data: { + userInfo: res.userInfo + } + }); + } + }) + ) + .subscribe(); + } + onClickNotice(): void { this.store.dispatch( ChatStore.selectedRightDrawer({ diff --git a/projects/ucap-webmessenger-app/src/app/layouts/native/native.layout.module.ts b/projects/ucap-webmessenger-app/src/app/layouts/native/native.layout.module.ts index 829a00f2..91306d7f 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/native/native.layout.module.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/native/native.layout.module.ts @@ -7,6 +7,7 @@ import { MatIconModule } from '@angular/material/icon'; import { MatToolbarModule } from '@angular/material/toolbar'; import { UCapUiModule } from '@ucap-webmessenger/ui'; +import { UCapUiProfileModule } from '@ucap-webmessenger/ui-profile'; import { COMPONENTS } from './components'; import { MatTooltipModule, MatBadgeModule } from '@angular/material'; @@ -20,7 +21,8 @@ import { MatTooltipModule, MatBadgeModule } from '@angular/material'; MatTooltipModule, MatBadgeModule, - UCapUiModule + UCapUiModule, + UCapUiProfileModule ], exports: [...COMPONENTS], declarations: [...COMPONENTS], diff --git a/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.ts b/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.ts index 25f6495e..1b23e6e6 100644 --- a/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.ts +++ b/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.ts @@ -5,7 +5,6 @@ import { Inject, OnDestroy, ViewChild, - ChangeDetectorRef, NgZone } from '@angular/core'; @@ -21,11 +20,10 @@ import { UserInfo } from '@ucap-webmessenger/protocol-sync'; import { UserInfoSS, UserInfoF, - UserInfoDN, - QueryProtocolService + UserInfoDN } from '@ucap-webmessenger/protocol-query'; import { StatusProtocolService } from '@ucap-webmessenger/protocol-status'; -import { StatusType, StatusCode, DeviceType } from '@ucap-webmessenger/core'; +import { StatusType, StatusCode } from '@ucap-webmessenger/core'; import { DialogService, ConfirmDialogComponent, @@ -48,19 +46,7 @@ import { DaesangProtocolService, SmsUtils } from '@ucap-webmessenger/daesang'; import { CallService } from '@ucap-webmessenger/api-prompt'; import { EnvironmentsInfo, KEY_ENVIRONMENTS_INFO } from '@app/types'; import { SessionStorageService } from '@ucap-webmessenger/web-storage'; -import { - MessageApiService, - MessageType, - DetailRequest, - MessageDetailInfo, - DelRequest -} from '@ucap-webmessenger/api-message'; -import { MessageStatusCode } from '@ucap-webmessenger/api'; -import { - MessageDetailDialogComponent, - MessageDetailDialogResult, - MessageDetailDialogData -} from '@app/layouts/messenger/dialogs/message/message-detail.dialog.component'; +import { MessageApiService, MessageType } from '@ucap-webmessenger/api-message'; @Component({ selector: 'app-page-messenger-main', diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/mass-translation.component.html b/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/mass-translation.component.html index 780bf3cc..47090973 100644 --- a/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/mass-translation.component.html +++ b/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/mass-translation.component.html @@ -1,23 +1,26 @@
-
- {{ message.sentMessageJson.translation }} -
-
- Kor - 녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 - 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 - 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 - 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 - 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 - 롱텍스트안녕하세요 장문장문 롱텍스트안녕하세요 장문장문 롱텍스트 +
+
+ {{ message.sentMessageJson.destLocale }} +
  • - +
  • - +
diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/mass-translation.component.ts b/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/mass-translation.component.ts index a8fc4f72..5e2c190a 100644 --- a/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/mass-translation.component.ts +++ b/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/mass-translation.component.ts @@ -1,5 +1,9 @@ import { Component, OnInit, Input } from '@angular/core'; -import { TranslationEventJson, Info } from '@ucap-webmessenger/protocol-event'; +import { + TranslationEventJson, + Info, + MassTranslationEventJson +} from '@ucap-webmessenger/protocol-event'; @Component({ selector: 'ucap-chat-message-box-mass-translation', @@ -8,7 +12,13 @@ import { TranslationEventJson, Info } from '@ucap-webmessenger/protocol-event'; }) export class MassTranslationComponent implements OnInit { @Input() - message: Info; + message: Info; + + @Input() + translationSimpleview: boolean; + + @Input() + isMe: boolean; constructor() {} diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.html b/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.html index 0f7cc315..5716eb02 100644 --- a/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.html +++ b/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.html @@ -186,6 +186,14 @@ [isMe]="message.senderSeq === loginRes.userSeq" class="information-msg" > + +
- diff --git a/projects/ucap-webmessenger-ui/src/lib/components/translation-section.component.ts b/projects/ucap-webmessenger-ui/src/lib/components/translation-section.component.ts index 2b3bc514..f3f0007b 100644 --- a/projects/ucap-webmessenger-ui/src/lib/components/translation-section.component.ts +++ b/projects/ucap-webmessenger-ui/src/lib/components/translation-section.component.ts @@ -7,7 +7,12 @@ import { } from '@ucap-webmessenger/core'; import { FormGroup, FormBuilder } from '@angular/forms'; import { MatSlideToggleChange, MatSelectChange } from '@angular/material'; -import { TranslationEventJson } from '@ucap-webmessenger/protocol-event'; +import { + TranslationEventJson, + MassTranslationEventJson, + EventType +} from '@ucap-webmessenger/protocol-event'; +import { TranslationSaveResponse } from '@ucap-webmessenger/api-common'; @Component({ selector: 'ucap-translation-section', @@ -22,7 +27,10 @@ export class TranslationSectionComponent implements OnInit { @Input() preView: boolean; @Input() - translationPreviewInfo: TranslationEventJson | null; + translationPreviewInfo: { + previewInfo: TranslationSaveResponse | null; + translationType: EventType.Translation | EventType.MassTranslation; + }; @Output() changeTranslationSimpleview = new EventEmitter(); @@ -33,7 +41,10 @@ export class TranslationSectionComponent implements OnInit { @Output() cancelTranslation = new EventEmitter(); @Output() - sendTranslationMessage = new EventEmitter(); + sendTranslationMessage = new EventEmitter<{ + previewInfo: TranslationSaveResponse | null; + translationType: EventType.Translation | EventType.MassTranslation; + }>(); isShowTranslationSimpleview = false; isShowTranslationPreview = false; @@ -171,7 +182,10 @@ export class TranslationSectionComponent implements OnInit { this.changeTranslationPreview.emit(event.checked); } - onClickSendTranslationMessage(translationInfo: TranslationEventJson) { + onClickSendTranslationMessage(translationInfo: { + previewInfo: TranslationSaveResponse | null; + translationType: EventType.Translation | EventType.MassTranslation; + }) { this.sendTranslationMessage.emit(translationInfo); }