This commit is contained in:
leejinho 2020-02-06 16:26:38 +09:00
commit 97befdc860
6 changed files with 110 additions and 89 deletions

View File

@ -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>

View File

@ -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;

View File

@ -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>

View File

@ -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%;

View File

@ -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 {

View File

@ -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() {}