next-ucap-messenger/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.html

275 lines
8.1 KiB
HTML
Raw Normal View History

2019-11-05 04:45:30 +00:00
<div>
<div class="current-head">
2019-12-18 04:44:26 +00:00
<h3>{{ 'group.label' | translate }}</h3>
2019-11-05 04:45:30 +00:00
<div class="btn-box">
<button
mat-icon-button
#groupMenuTrigger="matMenuTrigger"
[matMenuTriggerFor]="groupMenu"
aria-label="group menu"
2019-10-15 07:39:58 +00:00
>
2019-11-05 04:45:30 +00:00
<mat-icon>more_vert</mat-icon>
</button>
2019-10-23 06:07:41 +00:00
</div>
2019-11-05 04:45:30 +00:00
</div>
<ucap-organization-tenant-search
[companyList]="companyList$ | async"
[companyCode]="companyCode"
(keyDownEnter)="onKeyDownEnterOrganizationTenantSearch($event)"
2019-11-12 09:54:21 +00:00
(cancel)="onClickCancel()"
2019-11-05 04:45:30 +00:00
></ucap-organization-tenant-search>
</div>
2019-11-18 00:22:36 +00:00
<div
[style.display]="isShowSearch ? 'none' : 'block'"
class="search-result"
style="overflow: auto;"
>
2019-11-19 02:30:43 +00:00
<ucap-group-expansion-panel
#groupExpansionPanel
2019-12-10 23:18:32 +00:00
[groupBuddyList]="groupBuddyList"
2019-11-19 02:30:43 +00:00
[favoritBuddyList]="favoritBuddyList$ | async"
[myProfileInfo]="loginRes.userInfo"
(more)="onMoreGroup($event)"
>
<ucap-profile-user-list-item
*ucapGroupExpansionPanelItem="let userInfo; let group = group"
2019-11-19 02:30:43 +00:00
[userInfo]="userInfo"
[presence]="getStatusBulkInfo(userInfo) | async"
[sessionVerinfo]="sessionVerinfo"
(click)="onSelectBuddy(userInfo)"
(openProfile)="onClickOpenProfile($event, group)"
(contextmenu)="onContextMenuProfile($event, userInfo, group, false)"
2019-11-22 01:03:45 +00:00
class="list-item-frame ucap-clickable"
2019-10-23 06:07:41 +00:00
>
2019-11-19 02:30:43 +00:00
</ucap-profile-user-list-item>
</ucap-group-expansion-panel>
2019-11-05 04:45:30 +00:00
</div>
2019-11-18 00:22:36 +00:00
<div [style.display]="isShowSearch ? 'block' : 'none'" class="search-result">
2019-11-26 05:06:50 +00:00
<div style="position: relative;">
<div *ngIf="searchProcessing" style="position: absolute; width: 100%;">
<mat-progress-bar mode="indeterminate"></mat-progress-bar>
</div>
2019-10-23 06:07:41 +00:00
</div>
2019-11-26 05:06:50 +00:00
2019-11-05 04:45:30 +00:00
<div class="result-num">
2020-01-03 07:17:23 +00:00
{{ 'common.searchResult' | translate
}}<span class="text-accent-color"
>({{ searchUserInfos.length
2020-01-08 03:30:39 +00:00
}}{{ 'common.units.persons' | translate }})</span
2019-11-05 04:45:30 +00:00
>
</div>
<ucap-profile-user-list-item
*ngFor="let userInfo of searchUserInfos"
[userInfo]="userInfo"
[presence]="getStatusBulkInfo(userInfo) | async"
[sessionVerinfo]="sessionVerinfo"
(click)="onSelectBuddy(userInfo)"
2019-11-08 04:35:39 +00:00
(openProfile)="onClickOpenProfile($event)"
(contextmenu)="onContextMenuProfile($event, userInfo, null, true)"
2019-11-05 04:45:30 +00:00
>
</ucap-profile-user-list-item>
</div>
2019-10-15 02:07:26 +00:00
2020-01-10 04:12:55 +00:00
<mat-menu #groupMenu="matMenu" xPosition="after" yPosition="below">
2019-11-18 00:22:36 +00:00
<button mat-menu-item (click)="onClickGroupMenu('GROUP_NEW')">
<!--<mat-icon>group_add</mat-icon>-->
<svg
xmlns="http://www.w3.org/2000/svg"
width="18"
height="18"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
stroke-linecap="butt"
stroke-linejoin="round"
>
<path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
<circle cx="8.5" cy="7" r="4"></circle>
<line x1="20" y1="8" x2="20" y2="14"></line>
<line x1="23" y1="11" x2="17" y2="11"></line>
</svg>
2020-01-03 07:17:23 +00:00
<span>{{ 'group.addNew' | translate }}</span>
2019-11-18 00:22:36 +00:00
</button>
<button mat-menu-item (click)="onClickGroupMenu('GROUP_EXPAND_MORE')">
2019-11-22 06:49:39 +00:00
<!--<mat-icon>expand_more</mat-icon>-->
2019-11-26 05:06:50 +00:00
<svg
xmlns="http://www.w3.org/2000/svg"
width="18"
height="18"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
stroke-linecap="butt"
stroke-linejoin="round"
>
<path d="M6 9l6 6 6-6" />
</svg>
2020-01-03 07:17:23 +00:00
<span>{{ 'group.expandMore' | translate }}</span>
2019-11-18 00:22:36 +00:00
</button>
<button mat-menu-item (click)="onClickGroupMenu('GROUP_EXPAND_LESS')">
2019-11-22 06:49:39 +00:00
<!--<mat-icon>expand_less</mat-icon>-->
2019-11-26 05:06:50 +00:00
<svg
xmlns="http://www.w3.org/2000/svg"
width="18"
height="18"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
stroke-linecap="butt"
stroke-linejoin="round"
>
<path d="M18 15l-6-6-6 6" />
</svg>
2020-01-03 07:17:23 +00:00
<span>{{ 'group.expandLess' | translate }}</span>
2019-11-18 00:22:36 +00:00
</button>
<!-- <button mat-menu-item (click)="onClickGroupMenu('GROUP_SAVE')">
2019-11-18 00:22:36 +00:00
<mat-icon>save</mat-icon>
<span>그룹 저장하기</span>
</button>
<button mat-menu-item (click)="onClickGroupMenu('GROUP_RESTORE')">
<mat-icon>restore</mat-icon>
<span>그룹 가져오기</span>
</button> -->
2019-11-18 00:22:36 +00:00
</mat-menu>
2019-10-15 07:39:58 +00:00
<div
style="visibility: hidden; position: fixed"
[style.left]="profileContextMenuPosition.x"
[style.top]="profileContextMenuPosition.y"
2019-10-16 01:20:49 +00:00
#profileContextMenuTrigger="matMenuTrigger"
2019-10-15 07:39:58 +00:00
[matMenuTriggerFor]="profileContextMenu"
></div>
2020-01-10 04:12:55 +00:00
<mat-menu #profileContextMenu="matMenu">
<ng-template
matMenuContent
let-userInfo="userInfo"
let-group="group"
let-isSearchData="isSearchData"
>
2019-10-15 09:20:50 +00:00
<button
mat-menu-item
(click)="onClickProfileContextMenu('VIEW_PROFILE', userInfo, group)"
2019-10-15 09:20:50 +00:00
>
2020-01-03 07:17:23 +00:00
{{ 'profile.open' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<button
mat-menu-item
*ngIf="
getShowProfileContextMenu(
'REGISTER_FAVORITE',
userInfo,
group,
isSearchData
)
"
2019-10-15 09:20:50 +00:00
(click)="onClickProfileContextMenu('REGISTER_FAVORITE', userInfo)"
>
2020-01-06 08:05:36 +00:00
{{
2020-01-14 00:47:46 +00:00
(userInfo.isFavorit ? 'group.unfavorite' : 'group.favorite') | translate
2020-01-06 08:05:36 +00:00
}}
2019-10-15 09:20:50 +00:00
</button>
<button mat-menu-item (click)="onClickProfileContextMenu('CHAT', userInfo)">
2020-01-06 08:05:36 +00:00
{{ 'chat.startChat' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<button
mat-menu-item
*ngIf="
getShowProfileContextMenu(
'REMOVE_FROM_GROUP',
userInfo,
group,
isSearchData
)
"
(click)="onClickProfileContextMenu('REMOVE_FROM_GROUP', userInfo, group)"
2019-10-15 09:20:50 +00:00
>
2020-01-06 08:05:36 +00:00
{{ 'group.removeBuddyFromGroup' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<button
mat-menu-item
*ngIf="
getShowProfileContextMenu('COPY_BUDDY', userInfo, group, isSearchData)
"
2019-10-15 09:20:50 +00:00
(click)="onClickProfileContextMenu('COPY_BUDDY', userInfo)"
>
2020-01-06 08:05:36 +00:00
{{ 'group.copyBuddyToGroup' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<button
mat-menu-item
*ngIf="
getShowProfileContextMenu('MOVE_BUDDY', userInfo, group, isSearchData)
"
(click)="onClickProfileContextMenu('MOVE_BUDDY', userInfo, group)"
2019-10-15 09:20:50 +00:00
>
2020-01-06 08:05:36 +00:00
{{ 'group.moveBuddyToGroup' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<button
mat-menu-item
*ngIf="
getShowProfileContextMenu('SEND_MESSAGE', userInfo, group, isSearchData)
"
2019-12-10 23:18:32 +00:00
(click)="onClickProfileContextMenu('SEND_MESSAGE', userInfo)"
2019-10-15 09:20:50 +00:00
>
2020-01-06 08:05:36 +00:00
{{ 'message.sendTo' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<!-- <button
2019-10-15 09:20:50 +00:00
mat-menu-item
*ngIf="getShowProfileContextMenu('REGISTER_NICKNAME', userInfo, group)"
2019-10-15 09:20:50 +00:00
(click)="onClickProfileContextMenu('REGISTER_NICKNAME', userInfo)"
>
닉네임 설정
</button> -->
2019-10-15 02:07:26 +00:00
</ng-template>
</mat-menu>
2019-10-15 02:50:59 +00:00
2019-10-15 07:39:58 +00:00
<div
style="visibility: hidden; position: fixed"
[style.left]="groupContextMenuPosition.x"
[style.top]="groupContextMenuPosition.y"
2019-10-16 01:20:49 +00:00
#groupContextMenuTrigger="matMenuTrigger"
2019-10-15 07:39:58 +00:00
[matMenuTriggerFor]="groupContextMenu"
></div>
2020-01-10 04:12:55 +00:00
<mat-menu #groupContextMenu="matMenu">
2019-10-15 09:20:50 +00:00
<ng-template matMenuContent let-group="group">
<button
mat-menu-item
*ngIf="getShowGroupContextMenu('CHAT', group)"
(click)="onClickGroupContextMenu('CHAT', group)"
>
2020-01-06 08:05:36 +00:00
{{ 'group.startChatWithGroup' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<button
mat-menu-item
2019-12-10 23:18:32 +00:00
*ngIf="getShowGroupContextMenu('SEND_MESSAGE', group)"
(click)="onClickGroupContextMenu('SEND_MESSAGE', group)"
>
2020-01-06 08:05:36 +00:00
{{ 'group.sendMessageToGroup' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<mat-divider *ngIf="getShowGroupContextMenu('DIV1', group)"></mat-divider>
<button
mat-menu-item
*ngIf="getShowGroupContextMenu('RENAME', group)"
(click)="onClickGroupContextMenu('RENAME', group)"
>
2020-01-06 08:05:36 +00:00
{{ 'group.changeGroupName' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<button
mat-menu-item
*ngIf="getShowGroupContextMenu('EDIT_MEMBER', group)"
2019-10-15 09:20:50 +00:00
(click)="onClickGroupContextMenu('EDIT_MEMBER', group)"
>
2020-01-06 08:05:36 +00:00
{{ 'group.modifyGroupMember' | translate }}
2019-10-15 09:20:50 +00:00
</button>
<button
mat-menu-item
*ngIf="getShowGroupContextMenu('DELETE', group)"
(click)="onClickGroupContextMenu('DELETE', group)"
>
2020-01-06 08:05:36 +00:00
{{ 'group.removeGroup' | translate }}
2019-10-15 09:20:50 +00:00
</button>
2019-10-15 02:50:59 +00:00
</ng-template>
</mat-menu>