Merge branch 'master' of https://git.loafle.net/ucap-web/next-ucap-messenger
This commit is contained in:
commit
97befdc860
|
@ -145,65 +145,6 @@
|
||||||
>
|
>
|
||||||
<mat-icon>more_vert</mat-icon>
|
<mat-icon>more_vert</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<mat-menu #contactMenu="matMenu">
|
|
||||||
<button
|
|
||||||
mat-menu-item
|
|
||||||
*ngIf="getShowContextMenu('OPEN_ALBUM_LIST')"
|
|
||||||
(click)="onClickContextMenu('OPEN_ALBUM_LIST')"
|
|
||||||
>
|
|
||||||
{{ 'chat.albumBox.label' | translate }}
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
mat-menu-item
|
|
||||||
*ngIf="getShowContextMenu('OPEN_FILE_LIST')"
|
|
||||||
(click)="onClickContextMenu('OPEN_FILE_LIST')"
|
|
||||||
>
|
|
||||||
{{ 'chat.fileBox.label' | translate }}
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
mat-menu-item
|
|
||||||
*ngIf="getShowContextMenu('CHAT_SEARCH')"
|
|
||||||
(click)="onClickContextMenu('CHAT_SEARCH')"
|
|
||||||
>
|
|
||||||
{{ 'chat.searchEventByText' | translate }}
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
mat-menu-item
|
|
||||||
*ngIf="getShowContextMenu('OPEN_ROOM_USER')"
|
|
||||||
(click)="onClickContextMenu('OPEN_ROOM_USER')"
|
|
||||||
>
|
|
||||||
{{ 'chat.listOfRoomMember' | translate }}
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
mat-menu-item
|
|
||||||
*ngIf="getShowContextMenu('ADD_MEMBER')"
|
|
||||||
(click)="onClickContextMenu('ADD_MEMBER')"
|
|
||||||
>
|
|
||||||
{{ 'chat.addMemberToRoom' | translate }}
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
mat-menu-item
|
|
||||||
*ngIf="getShowContextMenu('ADD_GROUP')"
|
|
||||||
(click)="onClickContextMenu('ADD_GROUP')"
|
|
||||||
>
|
|
||||||
{{ 'chat.addMemberToGroup' | translate }}
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
mat-menu-item
|
|
||||||
*ngIf="getShowContextMenu('EDIT_ROOM')"
|
|
||||||
(click)="onClickContextMenu('EDIT_ROOM')"
|
|
||||||
>
|
|
||||||
{{ 'chat.settingsOfRoom' | translate }}
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
mat-menu-item
|
|
||||||
*ngIf="getShowContextMenu('CLOSE_ROOM')"
|
|
||||||
(click)="onClickContextMenu('CLOSE_ROOM')"
|
|
||||||
>
|
|
||||||
{{ 'chat.closeRoom' | translate }}
|
|
||||||
</button>
|
|
||||||
</mat-menu>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="chat-search-frame">
|
<div class="chat-search-frame">
|
||||||
|
@ -251,6 +192,7 @@
|
||||||
[eventRemained$]="eventRemainedSubject.asObservable()"
|
[eventRemained$]="eventRemainedSubject.asObservable()"
|
||||||
[userInfos$]="userInfoListSubject.asObservable()"
|
[userInfos$]="userInfoListSubject.asObservable()"
|
||||||
[loginRes$]="loginResSubject.asObservable()"
|
[loginRes$]="loginResSubject.asObservable()"
|
||||||
|
[lock$]="lockSubject.asObservable()"
|
||||||
[sessionVerInfo]="sessionVerInfo"
|
[sessionVerInfo]="sessionVerInfo"
|
||||||
[isShowUnreadCount]="getShowUnreadCount()"
|
[isShowUnreadCount]="getShowUnreadCount()"
|
||||||
[clearReadHere]="clearReadHere"
|
[clearReadHere]="clearReadHere"
|
||||||
|
@ -335,6 +277,65 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- / CHAT -->
|
<!-- / CHAT -->
|
||||||
|
|
||||||
|
<mat-menu #contactMenu="matMenu">
|
||||||
|
<button
|
||||||
|
mat-menu-item
|
||||||
|
*ngIf="getShowContextMenu('OPEN_ALBUM_LIST')"
|
||||||
|
(click)="onClickContextMenu('OPEN_ALBUM_LIST')"
|
||||||
|
>
|
||||||
|
{{ 'chat.albumBox.label' | translate }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-menu-item
|
||||||
|
*ngIf="getShowContextMenu('OPEN_FILE_LIST')"
|
||||||
|
(click)="onClickContextMenu('OPEN_FILE_LIST')"
|
||||||
|
>
|
||||||
|
{{ 'chat.fileBox.label' | translate }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-menu-item
|
||||||
|
*ngIf="getShowContextMenu('CHAT_SEARCH')"
|
||||||
|
(click)="onClickContextMenu('CHAT_SEARCH')"
|
||||||
|
>
|
||||||
|
{{ 'chat.searchEventByText' | translate }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-menu-item
|
||||||
|
*ngIf="getShowContextMenu('OPEN_ROOM_USER')"
|
||||||
|
(click)="onClickContextMenu('OPEN_ROOM_USER')"
|
||||||
|
>
|
||||||
|
{{ 'chat.listOfRoomMember' | translate }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-menu-item
|
||||||
|
*ngIf="getShowContextMenu('ADD_MEMBER')"
|
||||||
|
(click)="onClickContextMenu('ADD_MEMBER')"
|
||||||
|
>
|
||||||
|
{{ 'chat.addMemberToRoom' | translate }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-menu-item
|
||||||
|
*ngIf="getShowContextMenu('ADD_GROUP')"
|
||||||
|
(click)="onClickContextMenu('ADD_GROUP')"
|
||||||
|
>
|
||||||
|
{{ 'chat.addMemberToGroup' | translate }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-menu-item
|
||||||
|
*ngIf="getShowContextMenu('EDIT_ROOM')"
|
||||||
|
(click)="onClickContextMenu('EDIT_ROOM')"
|
||||||
|
>
|
||||||
|
{{ 'chat.settingsOfRoom' | translate }}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
mat-menu-item
|
||||||
|
*ngIf="getShowContextMenu('CLOSE_ROOM')"
|
||||||
|
(click)="onClickContextMenu('CLOSE_ROOM')"
|
||||||
|
>
|
||||||
|
{{ 'chat.closeRoom' | translate }}
|
||||||
|
</button>
|
||||||
|
</mat-menu>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style="visibility: hidden; position: fixed"
|
style="visibility: hidden; position: fixed"
|
||||||
[style.left]="messageContextMenuPosition.x"
|
[style.left]="messageContextMenuPosition.x"
|
||||||
|
@ -355,14 +356,14 @@
|
||||||
<button
|
<button
|
||||||
mat-menu-item
|
mat-menu-item
|
||||||
*ngIf="isForwardableMessage(message, eventInfoStatusSubject.value)"
|
*ngIf="isForwardableMessage(message, eventInfoStatusSubject.value)"
|
||||||
(click)="onClickMessageContextMenu('REPLAY', message)"
|
(click)="onClickMessageContextMenu('FORWARD', message)"
|
||||||
>
|
>
|
||||||
{{ 'chat.forwardEventTo' | translate }}
|
{{ 'chat.forwardEventTo' | translate }}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
mat-menu-item
|
mat-menu-item
|
||||||
*ngIf="isForwardableMessage(message, eventInfoStatusSubject.value)"
|
*ngIf="isForwardableMessage(message, eventInfoStatusSubject.value)"
|
||||||
(click)="onClickMessageContextMenu('REPLAY_TO_ME', message)"
|
(click)="onClickMessageContextMenu('FORWARD_TO_ME', message)"
|
||||||
>
|
>
|
||||||
{{ 'chat.forwardEventToMe' | translate }}
|
{{ 'chat.forwardEventToMe' | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -177,6 +177,8 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
eventRemainedSubscription: Subscription;
|
eventRemainedSubscription: Subscription;
|
||||||
eventRemainedSubject = new BehaviorSubject<boolean>(false); // 이전대화가 남아 있는지 여부
|
eventRemainedSubject = new BehaviorSubject<boolean>(false); // 이전대화가 남아 있는지 여부
|
||||||
|
|
||||||
|
lockSubject = new BehaviorSubject<boolean>(false);
|
||||||
|
|
||||||
sessionVerInfo: VersionInfo2Response;
|
sessionVerInfo: VersionInfo2Response;
|
||||||
|
|
||||||
baseEventSeq = 0;
|
baseEventSeq = 0;
|
||||||
|
@ -305,6 +307,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.subscribe(process => {
|
.subscribe(process => {
|
||||||
|
this.lockSubject.next(process);
|
||||||
this.searchEventListProcessing = process;
|
this.searchEventListProcessing = process;
|
||||||
if (!process && this.isShowSearchArea) {
|
if (!process && this.isShowSearchArea) {
|
||||||
this.doSearchTextInEvent(this.searchText);
|
this.doSearchTextInEvent(this.searchText);
|
||||||
|
@ -1355,7 +1358,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'REPLAY':
|
case 'FORWARD':
|
||||||
{
|
{
|
||||||
const result = await this.dialogService.open<
|
const result = await this.dialogService.open<
|
||||||
CreateChatDialogComponent,
|
CreateChatDialogComponent,
|
||||||
|
@ -1401,7 +1404,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'REPLAY_TO_ME':
|
case 'FORWARD_TO_ME':
|
||||||
{
|
{
|
||||||
if (this.loginResSubject.value.talkWithMeBotSeq > -1) {
|
if (this.loginResSubject.value.talkWithMeBotSeq > -1) {
|
||||||
this.store.dispatch(
|
this.store.dispatch(
|
||||||
|
@ -1812,7 +1815,8 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
|
||||||
|
|
||||||
this.store.dispatch(EventStore.infoForSearchEnd({}));
|
this.store.dispatch(EventStore.infoForSearchEnd({}));
|
||||||
|
|
||||||
this.chatMessages.gotoPosition(this.searchedFocusEvent.seq);
|
// this.chatMessages.gotoPosition(this.searchedFocusEvent.seq);
|
||||||
|
this.chatMessages.initEventMore(this.searchedFocusEvent.seq);
|
||||||
} else {
|
} else {
|
||||||
this.searchTotalCount = 0;
|
this.searchTotalCount = 0;
|
||||||
this.searchCurrentIndex = 0;
|
this.searchCurrentIndex = 0;
|
||||||
|
|
|
@ -146,15 +146,11 @@
|
||||||
</mat-tab>
|
</mat-tab>
|
||||||
<mat-tab>
|
<mat-tab>
|
||||||
<ng-template mat-tab-label>
|
<ng-template mat-tab-label>
|
||||||
<!--<mat-icon
|
|
||||||
matTooltip="{{ 'organization.chart' | translate }}"
|
|
||||||
matTooltipPosition="after"
|
|
||||||
>device_hub</mat-icon>-->
|
|
||||||
<button class="icon-button">
|
<button class="icon-button">
|
||||||
<i class="mid mid-24 mdi-file-tree"></i>
|
<i class="mid mid-24 mdi-file-tree"></i>
|
||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<div class="dialog-tab-orglist">
|
<div class="mat-tab-frame dialog-tab-orglist">
|
||||||
<app-layout-chat-left-sidenav-organization
|
<app-layout-chat-left-sidenav-organization
|
||||||
[showTitle]="false"
|
[showTitle]="false"
|
||||||
[selectedUserList]="selectedUserList"
|
[selectedUserList]="selectedUserList"
|
||||||
|
@ -178,7 +174,7 @@
|
||||||
><i class="mid mid-24 mdi-chat"></i>
|
><i class="mid mid-24 mdi-chat"></i>
|
||||||
</mat-icon>
|
</mat-icon>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<div>
|
<div class="mat-tab-frame dialog-tab-chatlist">
|
||||||
<ucap-room-list-item
|
<ucap-room-list-item
|
||||||
*ngFor="let room of roomList"
|
*ngFor="let room of roomList"
|
||||||
[loginRes]="loginRes"
|
[loginRes]="loginRes"
|
||||||
|
@ -190,6 +186,7 @@
|
||||||
[multiCheckable]="false"
|
[multiCheckable]="false"
|
||||||
(checkRoom)="onCheckRoom($event)"
|
(checkRoom)="onCheckRoom($event)"
|
||||||
(click)="onToggleRoom(room)"
|
(click)="onToggleRoom(room)"
|
||||||
|
class="chat"
|
||||||
>
|
>
|
||||||
</ucap-room-list-item>
|
</ucap-room-list-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -8,6 +8,12 @@
|
||||||
color: #444444;
|
color: #444444;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
& > .mat-card-content {
|
||||||
|
height: 568px;
|
||||||
|
}
|
||||||
|
& > .mat-tab-body-wrapper {
|
||||||
|
height: calc(100% - 50px);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-tab-grouplist {
|
.dialog-tab-grouplist {
|
||||||
|
@ -27,6 +33,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dialog-tab-chatlist {
|
||||||
|
height: 518px;
|
||||||
|
width: 100%;
|
||||||
|
.chat {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
::ng-deep .dialog-tab-orglist {
|
::ng-deep .dialog-tab-orglist {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 380px;
|
height: 380px;
|
||||||
|
@ -102,10 +116,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*::ng-deep .mat-dialog-container {
|
:ng-deep .mat-dialog-container {
|
||||||
.mat-tab-body-wrapper {
|
.mat-tab-body-wrapper {
|
||||||
height: 380px;
|
|
||||||
width: 100%;
|
|
||||||
.mat-tab-body {
|
.mat-tab-body {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@ -116,7 +128,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
::ng-deep .ps-content {
|
||||||
|
.cdk-virtual-scroll-viewport {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*:
|
||||||
.mat-tab-frame {
|
.mat-tab-frame {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
@ -133,11 +150,7 @@
|
||||||
::ng-deep .mat-card > .mat-tab-labels {
|
::ng-deep .mat-card > .mat-tab-labels {
|
||||||
border-bottom: 2px solid #dddddd;
|
border-bottom: 2px solid #dddddd;
|
||||||
}
|
}
|
||||||
::ng-deep .ps-content {
|
|
||||||
.cdk-virtual-scroll-viewport {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-item-frame {
|
.list-item-frame {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
@ -327,15 +327,6 @@ $ease-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mat-card-content {
|
|
||||||
.notice {
|
|
||||||
p {
|
|
||||||
line-height: 1.4em;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media all and (max-width: 1400px) {
|
@media all and (max-width: 1400px) {
|
||||||
.slider {
|
.slider {
|
||||||
&_content {
|
&_content {
|
||||||
|
|
|
@ -60,6 +60,9 @@ export class MessagesComponent implements OnInit, OnDestroy {
|
||||||
@Input()
|
@Input()
|
||||||
userInfos$: Observable<UserInfo[]>;
|
userInfos$: Observable<UserInfo[]>;
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
lock$: Observable<boolean>;
|
||||||
|
|
||||||
@Input()
|
@Input()
|
||||||
isShowUnreadCount = true;
|
isShowUnreadCount = true;
|
||||||
@Input()
|
@Input()
|
||||||
|
@ -129,6 +132,7 @@ export class MessagesComponent implements OnInit, OnDestroy {
|
||||||
firstCheckReadHere = true;
|
firstCheckReadHere = true;
|
||||||
initRoomLastEventSeq: number;
|
initRoomLastEventSeq: number;
|
||||||
baseEventSeq = 0;
|
baseEventSeq = 0;
|
||||||
|
gotoEventSeq: number;
|
||||||
|
|
||||||
loginRes: LoginResponse;
|
loginRes: LoginResponse;
|
||||||
loginResSubscription: Subscription;
|
loginResSubscription: Subscription;
|
||||||
|
@ -522,6 +526,16 @@ export class MessagesComponent implements OnInit, OnDestroy {
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
if (!this.eventList || 0 === this.eventList.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!!this.gotoEventSeq) {
|
||||||
|
this.gotoPosition(this.gotoEventSeq);
|
||||||
|
this.gotoEventSeq = undefined;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const lastEvent =
|
const lastEvent =
|
||||||
!!this.eventList && 0 < this.eventList.length
|
!!this.eventList && 0 < this.eventList.length
|
||||||
? this.eventList[this.eventList.length - 1]
|
? this.eventList[this.eventList.length - 1]
|
||||||
|
@ -545,11 +559,12 @@ export class MessagesComponent implements OnInit, OnDestroy {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initEventMore() {
|
initEventMore(gotoEventSeq?: number) {
|
||||||
// 방정보가 바뀌면 이전대화 보기 관련 값들을 초기화 한다.
|
// 방정보가 바뀌면 이전대화 보기 관련 값들을 초기화 한다.
|
||||||
this.scrollUpInitalized = false;
|
this.scrollUpInitalized = false;
|
||||||
this.storedScrollItem = undefined;
|
this.storedScrollItem = undefined;
|
||||||
this.storedScrollItemOffsetTop = undefined;
|
this.storedScrollItemOffsetTop = undefined;
|
||||||
|
this.gotoEventSeq = gotoEventSeq;
|
||||||
}
|
}
|
||||||
|
|
||||||
clear() {}
|
clear() {}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user