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 bb16ccf8..c0d6e2a2 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 @@ -149,6 +149,7 @@ [selectedUserList]="selectedUserList" (checkAllUser)="onCheckAllUser($event)" (checkUser)="onCheckUser($event)" + (toggleUser)="onToggleUser($event)" class="organization-side" > diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.ts index ed8d82bb..649dfc7c 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-side.component.ts @@ -245,6 +245,18 @@ export class LeftSideComponent implements OnInit { ); } } + onToggleUser(userInfo: UserInfo | UserInfoSS | UserInfoF | UserInfoDN) { + if ( + this.selectedUserList.filter(user => user.seq === userInfo.seq).length === + 0 + ) { + this.selectedUserList = [...this.selectedUserList, userInfo]; + } else { + this.selectedUserList = this.selectedUserList.filter( + item => item.seq !== userInfo.seq + ); + } + } /** FAB */ onClickFab(params: { btn: any }) { diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.html index c781d565..f72bad85 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.html @@ -54,20 +54,11 @@ [selectedUserList]="selectedUserList" [isChecked]="getCheckedUser(userInfo)" (checkUser)="onCheckUser($event)" + (click)="onToggleUser(userInfo)" > Loading... -
diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.ts index 2fb0aa82..3371b83d 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/organization.component.ts @@ -64,6 +64,10 @@ export class OrganizationComponent implements OnInit, OnDestroy { userInfo: UserInfo | UserInfoSS | UserInfoF | UserInfoDN; }>(); @Output() + toggleUser = new EventEmitter< + UserInfo | UserInfoSS | UserInfoF | UserInfoDN + >(); + @Output() checkAllUser = new EventEmitter<{ isChecked: boolean; userInfos: (UserInfo | UserInfoSS | UserInfoF | UserInfoDN)[]; @@ -321,6 +325,9 @@ export class OrganizationComponent implements OnInit, OnDestroy { }) { this.checkUser.emit(params); } + onToggleUser(userInfo: UserInfo | UserInfoSS | UserInfoF | UserInfoDN) { + this.toggleUser.emit(userInfo); + } onClickShowSelectedUserList() { this.logger.debug('onClickShowSelectedUserList', this.selectedUserList); diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.html index 7c959900..4810a5ed 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.html @@ -67,29 +67,27 @@ [style.display]="isShowSearch ? 'none' : 'block'" class="list-panel" > - - + - - - - + +
@@ -128,6 +127,7 @@ [isUserSelect]="true" (checkAllUser)="onCheckAllUser($event)" (checkUser)="onCheckUser($event)" + (toggleUser)="onToggleUser($event)" class="dialog-org" > 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 bffd96c6..6c30ffff 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 @@ -407,6 +407,19 @@ export class CreateChatDialogComponent implements OnInit, OnDestroy { item => item.seq !== params.userInfo.seq ); } + console.log(this.selectedUserList); + } + onToggleUser(userInfo: UserInfo | UserInfoSS | UserInfoF | UserInfoDN) { + if ( + this.selectedUserList.filter(user => user.seq === userInfo.seq).length === + 0 + ) { + this.selectedUserList = [...this.selectedUserList, userInfo]; + } else { + this.selectedUserList = this.selectedUserList.filter( + item => item.seq !== userInfo.seq + ); + } } /** 대화방 > 대화방 선택 :: 해당 팝업에서는 대화방을 중복 선택하지 않는다 */ diff --git a/projects/ucap-webmessenger-ui-profile/src/lib/components/user-list-item.component.html b/projects/ucap-webmessenger-ui-profile/src/lib/components/user-list-item.component.html index d86e77b8..73f9137a 100644 --- a/projects/ucap-webmessenger-ui-profile/src/lib/components/user-list-item.component.html +++ b/projects/ucap-webmessenger-ui-profile/src/lib/components/user-list-item.component.html @@ -42,7 +42,7 @@ #checkbox [checked]="isChecked" (change)="onChangeCheck(checkbox.checked, userInfo)" - (click)="$event.stopPropagation()" + (click)="onClickCheck($event)" > diff --git a/projects/ucap-webmessenger-ui-profile/src/lib/components/user-list-item.component.ts b/projects/ucap-webmessenger-ui-profile/src/lib/components/user-list-item.component.ts index 1b56f947..5fbfde29 100644 --- a/projects/ucap-webmessenger-ui-profile/src/lib/components/user-list-item.component.ts +++ b/projects/ucap-webmessenger-ui-profile/src/lib/components/user-list-item.component.ts @@ -43,6 +43,9 @@ export class UserListItemComponent implements OnInit { @Input() /** 선택된 사용자의 리스트 */ selectedUserList?: (UserInfo | UserInfoSS | UserInfoF | UserInfoDN)[] = []; + @Input() + /** event bubbling fixed in custom tree */ + inTree = false; @Output() checkUser = new EventEmitter<{ @@ -102,6 +105,11 @@ export class UserListItemComponent implements OnInit { userInfo }); } + onClickCheck(event: MouseEvent) { + if (!this.inTree) { + event.stopPropagation(); + } + } onClickOpenProfile( event: MouseEvent,