Merge branch 'master' of http://10.81.13.221:6990/Web/next-ucap-messenger
This commit is contained in:
commit
582b76024b
|
@ -49,7 +49,6 @@ export class LeftSideComponent implements OnInit {
|
|||
});
|
||||
|
||||
if (!!result && !!result.choice && result.choice) {
|
||||
this.logger.debug(result.selectedUserList);
|
||||
if (!!result.selectedUserList && result.selectedUserList.length > 0) {
|
||||
const userSeqs: number[] = [];
|
||||
result.selectedUserList.map(user => userSeqs.push(user.seq));
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
import { UserSelectDialogType } from './../../../../types/userselect.dialog.type';
|
||||
import {
|
||||
CreateChatDialogComponent,
|
||||
CreateChatDialogData,
|
||||
CreateChatDialogResult
|
||||
} from './../../dialogs/chat/create-chat.dialog.component';
|
||||
import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';
|
||||
|
||||
import { Observable, combineLatest, Subscription } from 'rxjs';
|
||||
|
@ -155,16 +161,29 @@ export class GroupComponent implements OnInit, OnDestroy {
|
|||
case 'GROUP_NEW':
|
||||
{
|
||||
const result = await this.dialogService.open<
|
||||
CreateGroupDialogComponent,
|
||||
CreateGroupDialogData,
|
||||
CreateGroupDialogResult
|
||||
>(CreateGroupDialogComponent, {
|
||||
width: '220px',
|
||||
CreateChatDialogComponent,
|
||||
CreateChatDialogData,
|
||||
CreateChatDialogResult
|
||||
>(CreateChatDialogComponent, {
|
||||
width: '600px',
|
||||
height: '500px',
|
||||
data: {
|
||||
title: 'Logout',
|
||||
message: 'Logout ?'
|
||||
type: UserSelectDialogType.NewGroup,
|
||||
title: 'New Group'
|
||||
}
|
||||
});
|
||||
|
||||
if (!!result && !!result.choice && result.choice) {
|
||||
this.logger.debug(result);
|
||||
if (
|
||||
!!result.selectedUserList &&
|
||||
result.selectedUserList.length > 0
|
||||
) {
|
||||
// const userSeqs: number[] = [];
|
||||
// result.selectedUserList.map(user => userSeqs.push(user.seq));
|
||||
// this.store.dispatch(ChatStore.openRoom({ userSeqList: userSeqs }));
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'GROUP_EXPAND_MORE':
|
||||
|
|
|
@ -2,7 +2,22 @@
|
|||
<mat-card-header cdkDrag cdkDragRootElement=".cdk-overlay-pane" cdkDragHandle>
|
||||
<mat-card-title>{{ data.title }}</mat-card-title>
|
||||
</mat-card-header>
|
||||
<mat-card-content
|
||||
<mat-card-content>
|
||||
<div *ngIf="data.type === UserSelectDialogType.NewGroup">
|
||||
<form name="inputForm" [formGroup]="inputForm" novalidate>
|
||||
<mat-form-field hintLabel="특수문자는 '-,_'만 사용할 수 있습니다.">
|
||||
<input
|
||||
matInput
|
||||
#input
|
||||
maxlength="20"
|
||||
placeholder="그룹이름"
|
||||
formControlName="groupName"
|
||||
/>
|
||||
<mat-hint align="end">{{ input.value?.length || 0 }}/20</mat-hint>
|
||||
</mat-form-field>
|
||||
</form>
|
||||
</div>
|
||||
<div
|
||||
fxLayout
|
||||
fxLayout.xs="column"
|
||||
fxLayoutAlign="center"
|
||||
|
@ -82,6 +97,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
<mat-card-actions class="button-farm flex-row">
|
||||
<button
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { UserSelectDialogType } from './../../../../types/userselect.dialog.type';
|
||||
import { Component, OnInit, OnDestroy, Inject } from '@angular/core';
|
||||
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
||||
import { NGXLogger } from 'ngx-logger';
|
||||
import { Observable, combineLatest, Subscription } from 'rxjs';
|
||||
|
@ -41,6 +42,7 @@ export interface CreateChatDialogData {
|
|||
export interface CreateChatDialogResult {
|
||||
choice: boolean;
|
||||
selectedUserList?: (UserInfo | UserInfoSS | UserInfoF | UserInfoDN)[];
|
||||
groupName?: string;
|
||||
}
|
||||
|
||||
@Component({
|
||||
|
@ -57,6 +59,7 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
@Inject(MAT_DIALOG_DATA) public data: CreateChatDialogData,
|
||||
private store: Store<any>,
|
||||
private sessionStorageService: SessionStorageService,
|
||||
private formBuilder: FormBuilder,
|
||||
private logger: NGXLogger
|
||||
) {}
|
||||
|
||||
|
@ -83,6 +86,8 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
// 수집 데이터
|
||||
selectedUserList: (UserInfo | UserInfoSS | UserInfoF | UserInfoDN)[] = [];
|
||||
|
||||
inputForm: FormGroup;
|
||||
|
||||
ngOnInit() {
|
||||
const loginInfo = this.sessionStorageService.get<LoginInfo>(KEY_LOGIN_INFO);
|
||||
this.companyCode = loginInfo.companyCode;
|
||||
|
@ -155,6 +160,10 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
})
|
||||
)
|
||||
.subscribe();
|
||||
|
||||
this.inputForm = this.formBuilder.group({
|
||||
groupName: ['', [Validators.required]]
|
||||
});
|
||||
}
|
||||
|
||||
ngOnDestroy(): void {
|
||||
|
@ -267,7 +276,11 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy {
|
|||
onClickChoice(choice: boolean): void {
|
||||
this.dialogRef.close({
|
||||
choice,
|
||||
selectedUserList: this.selectedUserList
|
||||
selectedUserList: this.selectedUserList,
|
||||
groupName:
|
||||
this.data.type === UserSelectDialogType.NewGroup
|
||||
? this.inputForm.get('groupName').value
|
||||
: ''
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,8 @@ import { MatMenuModule } from '@angular/material/menu';
|
|||
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||
import { MatTabsModule } from '@angular/material/tabs';
|
||||
import { MatToolbarModule } from '@angular/material/toolbar';
|
||||
import { MatFormFieldModule } from '@angular/material/form-field';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
|
||||
import { DragDropModule } from '@angular/cdk/drag-drop';
|
||||
|
||||
|
@ -25,12 +27,16 @@ import { UCapUiOrganizationModule } from '@ucap-webmessenger/ui-organization';
|
|||
|
||||
import { COMPONENTS } from './components';
|
||||
import { DIALOGS } from './dialogs';
|
||||
import { ReactiveFormsModule } from '@angular/forms';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule,
|
||||
FlexLayoutModule,
|
||||
DragDropModule,
|
||||
ReactiveFormsModule,
|
||||
MatFormFieldModule,
|
||||
MatInputModule,
|
||||
MatBadgeModule,
|
||||
MatButtonModule,
|
||||
MatCardModule,
|
||||
|
|
|
@ -227,6 +227,7 @@ export class Effects {
|
|||
|
||||
// not opened room :: unread count increased
|
||||
if (!roomInfo || roomInfo.roomSeq !== action.roomSeq) {
|
||||
if (!!trgtRoomInfos && !!trgtRoomInfos[action.roomSeq]) {
|
||||
const noReadCnt = trgtRoomInfos[action.roomSeq].noReadCnt;
|
||||
this.store.dispatch(
|
||||
SyncStore.updateUnreadCount({
|
||||
|
@ -235,6 +236,7 @@ export class Effects {
|
|||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// 대화 > 리스트 :: finalEventMessage refresh
|
||||
this.store.dispatch(ChatStore.newEventMessage(action));
|
||||
|
|
|
@ -69,6 +69,12 @@ export const reducer = createReducer(
|
|||
}
|
||||
|
||||
let unReadCount = 0;
|
||||
/** SYNC ROOM 으로 정보 수집시 증분값을 받는다면 기존 state 의 정보를 뒤져 noReadCount 를 계산 후 중분 값에 대한 noReadCount 를 더한다. */
|
||||
// tslint:disable-next-line: forin
|
||||
for (const key in state.room.entities) {
|
||||
const value = state.room.entities[key];
|
||||
unReadCount += value.noReadCnt;
|
||||
}
|
||||
action.roomList.map(item => (unReadCount += item.noReadCnt));
|
||||
|
||||
return {
|
||||
|
|
Loading…
Reference in New Issue
Block a user