From f53535847f6c93af7134c1632560d53409469807 Mon Sep 17 00:00:00 2001 From: leejinho Date: Wed, 8 Jan 2020 15:35:48 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=A0=84=EB=8B=AC=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95.=20>>=20FileTalkShare.a?= =?UTF-8?q?spx=20=EB=A5=BC=20=ED=86=B5=ED=95=B4=EC=84=9C=20=EA=B3=B5?= =?UTF-8?q?=EC=9C=A0=20=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D?= =?UTF-8?q?=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/lib/apis/file-talk-share.ts | 26 ++-- .../chat/create-chat.dialog.component.ts | 23 ++- .../src/app/store/messenger/event/effects.ts | 134 +++++++++++++++--- 3 files changed, 152 insertions(+), 31 deletions(-) diff --git a/projects/ucap-webmessenger-api-common/src/lib/apis/file-talk-share.ts b/projects/ucap-webmessenger-api-common/src/lib/apis/file-talk-share.ts index 6213f701..82ef3b8f 100644 --- a/projects/ucap-webmessenger-api-common/src/lib/apis/file-talk-share.ts +++ b/projects/ucap-webmessenger-api-common/src/lib/apis/file-talk-share.ts @@ -5,7 +5,6 @@ import { APIEncoder, APIDecoder, ParameterUtil, - JsonAnalization, StatusCode } from '@ucap-webmessenger/api'; @@ -51,20 +50,19 @@ export const decodeFileTalkShare: APIDecoder = ( res: any ) => { try { - const json = JsonAnalization.receiveAnalization(res); return { - statusCode: json.StatusCode, - roomSeq: json.RoomID, - fileName: json.FileName, - fileExt: json.FileExt, - fileType: json.FileType, - thumbnailUrl: json.ThumbURL, - attachmentSeq: json.AttSEQ, - attachmentSize: json.AttSize, - attachmentRegDate: json.AttRegDate, - companyCode: json.CompanyCode, - synapKey: json.SynapKey, - returnJson: res + statusCode: res.StatusCode, + roomSeq: res.RoomID, + fileName: res.FileName, + fileExt: res.FileExt, + fileType: res.FileType, + thumbnailUrl: res.ThumbURL, + attachmentSeq: res.AttSEQ, + attachmentSize: res.AttSize, + attachmentRegDate: res.AttRegDate, + companyCode: res.CompanyCode, + synapKey: res.SynapKey, + returnJson: JSON.stringify(res) } as FileTalkShareResponse; } catch (e) { return { diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.ts index b70ce3ce..43b44ca7 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.ts @@ -46,7 +46,8 @@ import { import { RoomInfo, UserInfoShort, - UserInfo as RoomUserInfo + UserInfo as RoomUserInfo, + RoomType } from '@ucap-webmessenger/protocol-room'; import { ConfirmDialogComponent, @@ -547,6 +548,10 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy { } } onToggleRoom(roomInfo: RoomInfo) { + if (!this.getCheckableRoom(roomInfo)) { + return; + } + if (!!this.selectedRoom) { if (this.selectedRoom.roomSeq === roomInfo.roomSeq) { this.selectedRoom = null; @@ -591,6 +596,16 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy { // .length > 0 // ); // } + if ( + roomInfo.roomType === RoomType.Bot || + roomInfo.roomType === RoomType.Allim || + roomInfo.roomType === RoomType.Link || + roomInfo.roomType === RoomType.Allim_Elephant || + roomInfo.roomType === RoomType.Allim_TMS + ) { + return false; + } + return true; } getCheckedRoom(roomInfo: RoomInfo) { @@ -611,6 +626,12 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy { getBtnValid() { if (this.data.type === UserSelectDialogType.NewGroup) { return this.inputForm.invalid; + } else if (this.data.type === UserSelectDialogType.MessageForward) { + if (this.selectedUserList.length === 0 && !this.selectedRoom) { + return true; + } + + return false; } else { return false; } diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/event/effects.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/event/effects.ts index acb4be9c..80831cb7 100644 --- a/projects/ucap-webmessenger-app/src/app/store/messenger/event/effects.ts +++ b/projects/ucap-webmessenger-app/src/app/store/messenger/event/effects.ts @@ -1,6 +1,7 @@ import { CommonApiService, - MassTalkSaveRequest + MassTalkSaveRequest, + FileTalkShareRequest } from '@ucap-webmessenger/api-common'; import { KEY_ENVIRONMENTS_INFO } from './../../../types/environment.type'; import { Injectable } from '@angular/core'; @@ -19,7 +20,8 @@ import { catchError, exhaustMap, withLatestFrom, - concatMap + concatMap, + take } from 'rxjs/operators'; import moment from 'moment'; import { @@ -43,7 +45,8 @@ import { FileEventJson, MassTextEventJson, TranslationEventJson, - MassTranslationEventJson + MassTranslationEventJson, + decodeFileEventJson } from '@ucap-webmessenger/protocol-event'; import * as ChatStore from '@app/store/messenger/chat'; @@ -83,7 +86,8 @@ import { roomOpenAfterForward, infoForSearch, infoForSearchEnd, - infoAll + infoAll, + forwardFailure } from './actions'; import { SessionStorageService } from '@ucap-webmessenger/web-storage'; import { @@ -663,8 +667,52 @@ export class Effects { ofType(forward), tap(action => { if (!!action.trgtRoomSeq) { - // 대화전달 후 방오픈. - this.store.dispatch(roomOpenAfterForward(action)); + // 대화전달 후 방오픈. Exist roomSeq. + if (action.req.eventType === EventType.File) { + const loginResInfo: LoginResponse = this.sessionStorageService.get< + LoginResponse + >(KEY_LOGIN_RES_INFO); + + const environmentsInfo = this.sessionStorageService.get< + EnvironmentsInfo + >(KEY_ENVIRONMENTS_INFO); + + const fileEventJson: FileEventJson = decodeFileEventJson( + action.req.sentMessage + ); + const req: FileTalkShareRequest = { + userSeq: loginResInfo.userSeq, + deviceType: environmentsInfo.deviceType, + token: loginResInfo.tokenString, + attachmentsSeq: fileEventJson.attachmentSeq.toString(), + roomSeq: action.trgtRoomSeq, + synapKey: '' + }; + this.commonApiService + .fileTalkShare(req) + .pipe( + take(1), + map(res => { + if (res.statusCode === StatusCode.Success) { + action = { + ...action, + req: { + ...action.req, + sentMessage: res.returnJson + } + }; + + this.store.dispatch(roomOpenAfterForward(action)); + } else { + this.store.dispatch(forwardFailure({ error: res })); + } + }), + catchError(error => of(forwardFailure({ error }))) + ) + .subscribe(); + } else { + this.store.dispatch(roomOpenAfterForward(action)); + } } else if (!!action.trgtUserSeqs && action.trgtUserSeqs.length > 0) { // 방오픈 후 대화전달. this.store.dispatch(forwardAfterRoomOpen(action)); @@ -689,16 +737,70 @@ export class Effects { return openSuccess({ res }); }), map(res => { - this.store.dispatch( - send({ - senderSeq: action.senderSeq, - req: { - roomSeq: res.res.roomSeq, - eventType: action.req.eventType, - sentMessage: action.req.sentMessage - } - }) - ); + if (action.req.eventType === EventType.File) { + const loginResInfo: LoginResponse = this.sessionStorageService.get< + LoginResponse + >(KEY_LOGIN_RES_INFO); + + const environmentsInfo = this.sessionStorageService.get< + EnvironmentsInfo + >(KEY_ENVIRONMENTS_INFO); + + const fileEventJson: FileEventJson = decodeFileEventJson( + action.req.sentMessage + ); + const req: FileTalkShareRequest = { + userSeq: loginResInfo.userSeq, + deviceType: environmentsInfo.deviceType, + token: loginResInfo.tokenString, + attachmentsSeq: fileEventJson.attachmentSeq.toString(), + roomSeq: action.trgtRoomSeq, + synapKey: '' + }; + this.commonApiService + .fileTalkShare(req) + .pipe( + take(1), + map(resFileShare => { + if (resFileShare.statusCode === StatusCode.Success) { + action = { + ...action, + req: { + ...action.req, + sentMessage: resFileShare.returnJson + } + }; + + this.store.dispatch( + send({ + senderSeq: action.senderSeq, + req: { + roomSeq: res.res.roomSeq, + eventType: action.req.eventType, + sentMessage: action.req.sentMessage + } + }) + ); + } else { + this.store.dispatch(forwardFailure({ error: res })); + } + }), + catchError(error => of(forwardFailure({ error }))) + ) + .subscribe(); + } else { + this.store.dispatch( + send({ + senderSeq: action.senderSeq, + req: { + roomSeq: res.res.roomSeq, + eventType: action.req.eventType, + sentMessage: action.req.sentMessage + } + }) + ); + } + return res; }), catchError(error => of(openFailure({ error }))) From f287a1a3cd344638be514a425d294b6df37019c3 Mon Sep 17 00:00:00 2001 From: khk Date: Wed, 8 Jan 2020 15:40:06 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EB=A1=9C=EB=94=A9=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/assets/scss/global/_default.scss | 4 + .../src/assets/scss/partials/splash.css | 97 ++++++++++++++++++- projects/ucap-webmessenger-app/src/index.html | 11 ++- 3 files changed, 105 insertions(+), 7 deletions(-) diff --git a/projects/ucap-webmessenger-app/src/assets/scss/global/_default.scss b/projects/ucap-webmessenger-app/src/assets/scss/global/_default.scss index d4b8294d..8a2f952b 100644 --- a/projects/ucap-webmessenger-app/src/assets/scss/global/_default.scss +++ b/projects/ucap-webmessenger-app/src/assets/scss/global/_default.scss @@ -282,6 +282,10 @@ $daesang-grey: ( } } + .load-container .loader:after{ + background: mat-color($accent); + } + .global-menu { .mat-tab-label[aria-selected='true'] { .mat-tab-label-content { diff --git a/projects/ucap-webmessenger-app/src/assets/scss/partials/splash.css b/projects/ucap-webmessenger-app/src/assets/scss/partials/splash.css index da815e5c..f8c458ad 100644 --- a/projects/ucap-webmessenger-app/src/assets/scss/partials/splash.css +++ b/projects/ucap-webmessenger-app/src/assets/scss/partials/splash.css @@ -1,17 +1,19 @@ .wrapper-splash { position: absolute; + display: flex; + justify-content: center; + justify-items: center; z-index: 99999; width: 100%; height: 100%; pointer-events: none; background-size: cover; height: 100%; - background: #eaeff1; - background: linear-gradient(to top, #93a3af, #eaeff1); + /*background: linear-gradient(to top, #93a3af, #eaeff1);*/ margin: 0; padding: 0; } -.svg-img { +/*.svg-img { position: absolute; width: 240px; height: 120px; @@ -45,4 +47,93 @@ #loop-offset { display: none; +}*/ +.load-container { + display: flex; + flex-flow: column; + justify-content: center; + justify-items: center; + transform: translateY(-60px); +} + +.load-container .loader { + font-size: 10px; + margin: 50px auto; + text-indent: -9999em; + width: 11em; + height: 11em; + border-radius: 50%; + background: #ffffff; + background: -moz-linear-gradient( + left, + #ffffff 10%, + rgba(255, 255, 255, 0) 42% + ); + background: -webkit-linear-gradient( + left, + #ffffff 10%, + rgba(255, 255, 255, 0) 42% + ); + background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%); + background: -ms-linear-gradient( + left, + #ffffff 10%, + rgba(255, 255, 255, 0) 42% + ); + background: linear-gradient(to right, #00b6d5 10%, #fb8c00, 42%); + position: relative; + -webkit-animation: load3 1.4s infinite linear; + animation: load3 1.4s infinite linear; + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); +} +.load-container .loader:before { + width: 50%; + height: 50%; + background: #ffffff; + border-radius: 100% 0 0 0; + position: absolute; + top: 0; + left: 0; + content: ''; +} +.load-container .loader:after { + width: 75%; + height: 75%; + border-radius: 50%; + content: ''; + margin: auto; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} +.credit { + color: #f2f2f2; + margin: 0 auto; + font-size: 1.2em; + font-weight: 500; +} + +@-webkit-keyframes load3 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes load3 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } } diff --git a/projects/ucap-webmessenger-app/src/index.html b/projects/ucap-webmessenger-app/src/index.html index 05d03fa3..eeef4573 100644 --- a/projects/ucap-webmessenger-app/src/index.html +++ b/projects/ucap-webmessenger-app/src/index.html @@ -12,8 +12,8 @@ -
- + +
+
+ Welcome to DS Talk +
From 843303db956229c16ac0354226001c534019f982 Mon Sep 17 00:00:00 2001 From: khk Date: Wed, 8 Jan 2020 15:58:16 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=8A=A4=ED=94=8C=EB=A0=88=EC=8B=9C=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/layouts/messenger/components/messages.component.scss | 4 ++-- .../src/assets/scss/global/_default.scss | 4 ++-- .../ucap-webmessenger-app/src/assets/scss/partials/splash.css | 4 ++-- projects/ucap-webmessenger-app/src/index.html | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.scss b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.scss index 1db7c72e..95fdbca9 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.scss +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.scss @@ -46,6 +46,7 @@ .responsive-chats-button { display: none; + line-height: normal; &:last-child { display: block; padding: 0; @@ -54,7 +55,6 @@ border-radius: 50%; color: #efefef; font-size: 16px; - line-height: 40px; } } width: 50px; @@ -84,7 +84,7 @@ height: 20px; span { border-radius: 10px; - padding: 2px 10px; + padding: 1px 10px; margin-right: 6px; font-size: 13px; } diff --git a/projects/ucap-webmessenger-app/src/assets/scss/global/_default.scss b/projects/ucap-webmessenger-app/src/assets/scss/global/_default.scss index 8a2f952b..b6927d16 100644 --- a/projects/ucap-webmessenger-app/src/assets/scss/global/_default.scss +++ b/projects/ucap-webmessenger-app/src/assets/scss/global/_default.scss @@ -282,8 +282,8 @@ $daesang-grey: ( } } - .load-container .loader:after{ - background: mat-color($accent); + .load-container .loader:after { + background-color: mat-color($accent, 300); } .global-menu { diff --git a/projects/ucap-webmessenger-app/src/assets/scss/partials/splash.css b/projects/ucap-webmessenger-app/src/assets/scss/partials/splash.css index f8c458ad..5788c47a 100644 --- a/projects/ucap-webmessenger-app/src/assets/scss/partials/splash.css +++ b/projects/ucap-webmessenger-app/src/assets/scss/partials/splash.css @@ -111,9 +111,9 @@ right: 0; } .credit { - color: #f2f2f2; + color: #ffffff; margin: 0 auto; - font-size: 1.2em; + font-size: 1.3em; font-weight: 500; } diff --git a/projects/ucap-webmessenger-app/src/index.html b/projects/ucap-webmessenger-app/src/index.html index eeef4573..c2841e4c 100644 --- a/projects/ucap-webmessenger-app/src/index.html +++ b/projects/ucap-webmessenger-app/src/index.html @@ -12,7 +12,7 @@ -
+