|
|
@ -4,40 +4,30 @@
|
|
|
|
<mat-toolbar id="toolbar" fxShow="true" fxHide.gt-sm="true">
|
|
|
|
<mat-toolbar id="toolbar" fxShow="true" fxHide.gt-sm="true">
|
|
|
|
<mat-toolbar-row>
|
|
|
|
<mat-toolbar-row>
|
|
|
|
<div class="hover-box" matTooltip="upload new picture" *ngIf="isAdmin" (click)="openFileUploadDialog()">
|
|
|
|
<div class="hover-box" matTooltip="upload new picture" *ngIf="isAdmin" (click)="openFileUploadDialog()">
|
|
|
|
<img class="profile-picture" [src]="groupProfile.picture"/>
|
|
|
|
<img class="profile-picture" [src]="groupProfile.picture" />
|
|
|
|
<mat-icon id="icon">camera_alt</mat-icon>
|
|
|
|
<mat-icon id="icon">camera_alt</mat-icon>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div *ngIf="!isAdmin" (click)="openPfpLightbox()">
|
|
|
|
<div *ngIf="!isAdmin" (click)="openPfpLightbox()">
|
|
|
|
<img class="profile-picture" [src]="groupProfile.picture"/>
|
|
|
|
<img class="profile-picture" [src]="groupProfile.picture" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<span id="username">{{groupProfile.name}}</span>
|
|
|
|
<span id="username">{{groupProfile.name}}</span>
|
|
|
|
<div class="button-box">
|
|
|
|
<div class="button-box">
|
|
|
|
<button mat-icon-button *ngIf="!groupProfile.joined"
|
|
|
|
<button mat-icon-button *ngIf="!groupProfile.joined" class="request-button" matTooltip="join group"
|
|
|
|
class="request-button"
|
|
|
|
matTooltipShowDelay="500" (click)="joinGroup(groupProfile)" [disabled]="!groupProfile.allowedToJoinGroup">
|
|
|
|
matTooltip="join group" matTooltipShowDelay="500"
|
|
|
|
|
|
|
|
(click)="joinGroup(groupProfile)"
|
|
|
|
|
|
|
|
[disabled]="!groupProfile.allowedToJoinGroup">
|
|
|
|
|
|
|
|
<mat-icon>group_add</mat-icon>
|
|
|
|
<mat-icon>group_add</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
<button mat-icon-button *ngIf="groupProfile.joined"
|
|
|
|
<button mat-icon-button *ngIf="groupProfile.joined" class="request-button" matTooltip="leave group"
|
|
|
|
class="request-button"
|
|
|
|
matTooltipShowDelay="500" (click)="leaveGroup(groupProfile)">
|
|
|
|
matTooltip="leave group" matTooltipShowDelay="500"
|
|
|
|
|
|
|
|
(click)="leaveGroup(groupProfile)">
|
|
|
|
|
|
|
|
<mat-icon>directions_run</mat-icon>
|
|
|
|
<mat-icon>directions_run</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
<button mat-icon-button
|
|
|
|
<button mat-icon-button class="request-button" matTooltip="create event" matTooltipShowDelay="500"
|
|
|
|
class="request-button"
|
|
|
|
(click)="openDialog()" [disabled]="!isAdmin">
|
|
|
|
matTooltip="create event" matTooltipShowDelay="500"
|
|
|
|
|
|
|
|
(click)="openDialog()"
|
|
|
|
|
|
|
|
[disabled]="!isAdmin">
|
|
|
|
|
|
|
|
<mat-icon>event</mat-icon>
|
|
|
|
<mat-icon>event</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
<div style="display: contents;" *ngIf="groupProfile.deletable">
|
|
|
|
<div style="display: contents;" *ngIf="groupProfile.deletable">
|
|
|
|
<button mat-icon-button
|
|
|
|
<button mat-icon-button class="request-button" matTooltip="delete this group" matTooltipShowDelay="0"
|
|
|
|
class="request-button"
|
|
|
|
(click)="deleteGroup()">
|
|
|
|
matTooltip="delete this group" matTooltipShowDelay="0"
|
|
|
|
|
|
|
|
(click)="deleteGroup()">
|
|
|
|
|
|
|
|
<mat-icon>delete</mat-icon>
|
|
|
|
<mat-icon>delete</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -45,8 +35,8 @@
|
|
|
|
</mat-toolbar-row>
|
|
|
|
</mat-toolbar-row>
|
|
|
|
<mat-toolbar-row>
|
|
|
|
<mat-toolbar-row>
|
|
|
|
<div class="info-box">
|
|
|
|
<div class="info-box">
|
|
|
|
<span id="handle" class="pointer"
|
|
|
|
<span id="handle" class="pointer" (click)="showUserProfile(groupProfile.creator)">created by
|
|
|
|
(click)="showUserProfile(groupProfile.creator)">created by {{groupProfile.creator.username}}
|
|
|
|
{{groupProfile.creator.username}}
|
|
|
|
@{{groupProfile.creator.handle}}</span>
|
|
|
|
@{{groupProfile.creator.handle}}</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</mat-toolbar-row>
|
|
|
|
</mat-toolbar-row>
|
|
|
@ -60,42 +50,32 @@
|
|
|
|
<mat-toolbar id="toolbar" fxShow="true" fxHide.lt-md="true">
|
|
|
|
<mat-toolbar id="toolbar" fxShow="true" fxHide.lt-md="true">
|
|
|
|
<mat-toolbar-row>
|
|
|
|
<mat-toolbar-row>
|
|
|
|
<div class="hover-box" matTooltip="upload new picture" *ngIf="isAdmin" (click)="openFileUploadDialog()">
|
|
|
|
<div class="hover-box" matTooltip="upload new picture" *ngIf="isAdmin" (click)="openFileUploadDialog()">
|
|
|
|
<img class="profile-picture" [src]="groupProfile.picture"/>
|
|
|
|
<img class="profile-picture" [src]="groupProfile.picture" />
|
|
|
|
<mat-icon id="icon">camera_alt</mat-icon>
|
|
|
|
<mat-icon id="icon">camera_alt</mat-icon>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div *ngIf="!isAdmin" (click)="openPfpLightbox()">
|
|
|
|
<div *ngIf="!isAdmin" (click)="openPfpLightbox()">
|
|
|
|
<img class="profile-picture" [src]="groupProfile.picture"/>
|
|
|
|
<img class="profile-picture" [src]="groupProfile.picture" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<span id="username">{{groupProfile.name}}</span>
|
|
|
|
<span id="username">{{groupProfile.name}}</span>
|
|
|
|
<span id="handle" class="pointer"
|
|
|
|
<span id="handle" class="pointer" (click)="showUserProfile(groupProfile.creator)">created by
|
|
|
|
(click)="showUserProfile(groupProfile.creator)">created by {{groupProfile.creator.username}}
|
|
|
|
{{groupProfile.creator.username}}
|
|
|
|
@{{groupProfile.creator.handle}}</span>
|
|
|
|
@{{groupProfile.creator.handle}}</span>
|
|
|
|
<div class="button-box">
|
|
|
|
<div class="button-box">
|
|
|
|
<button mat-icon-button *ngIf="!groupProfile.joined"
|
|
|
|
<button mat-icon-button *ngIf="!groupProfile.joined" class="request-button" matTooltip="join group"
|
|
|
|
class="request-button"
|
|
|
|
matTooltipShowDelay="500" (click)="joinGroup(groupProfile)" [disabled]="!groupProfile.allowedToJoinGroup">
|
|
|
|
matTooltip="join group" matTooltipShowDelay="500"
|
|
|
|
|
|
|
|
(click)="joinGroup(groupProfile)"
|
|
|
|
|
|
|
|
[disabled]="!groupProfile.allowedToJoinGroup">
|
|
|
|
|
|
|
|
<mat-icon>group_add</mat-icon>
|
|
|
|
<mat-icon>group_add</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
<button mat-icon-button *ngIf="groupProfile.joined"
|
|
|
|
<button mat-icon-button *ngIf="groupProfile.joined" class="request-button" matTooltip="leave group"
|
|
|
|
class="request-button"
|
|
|
|
matTooltipShowDelay="500" (click)="leaveGroup(groupProfile)">
|
|
|
|
matTooltip="leave group" matTooltipShowDelay="500"
|
|
|
|
|
|
|
|
(click)="leaveGroup(groupProfile)">
|
|
|
|
|
|
|
|
<mat-icon>directions_run</mat-icon>
|
|
|
|
<mat-icon>directions_run</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
<button mat-icon-button
|
|
|
|
<button mat-icon-button class="request-button" matTooltip="create event" matTooltipShowDelay="500"
|
|
|
|
class="request-button"
|
|
|
|
(click)="openDialog()" [disabled]="!isAdmin">
|
|
|
|
matTooltip="create event" matTooltipShowDelay="500"
|
|
|
|
|
|
|
|
(click)="openDialog()"
|
|
|
|
|
|
|
|
[disabled]="!isAdmin">
|
|
|
|
|
|
|
|
<mat-icon>event</mat-icon>
|
|
|
|
<mat-icon>event</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
<div style="display: contents;" *ngIf="groupProfile.deletable">
|
|
|
|
<div style="display: contents;" *ngIf="groupProfile.deletable">
|
|
|
|
<button mat-icon-button
|
|
|
|
<button mat-icon-button class="request-button" matTooltip="delete this group" matTooltipShowDelay="0"
|
|
|
|
class="request-button"
|
|
|
|
(click)="deleteGroup()">
|
|
|
|
matTooltip="delete this group" matTooltipShowDelay="0"
|
|
|
|
|
|
|
|
(click)="deleteGroup()">
|
|
|
|
|
|
|
|
<mat-icon>delete</mat-icon>
|
|
|
|
<mat-icon>delete</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -116,22 +96,18 @@
|
|
|
|
</mat-panel-title>
|
|
|
|
</mat-panel-title>
|
|
|
|
</mat-expansion-panel-header>
|
|
|
|
</mat-expansion-panel-header>
|
|
|
|
<div class="list">
|
|
|
|
<div class="list">
|
|
|
|
<mat-card class="card" *ngFor="let event of groupProfile.events"
|
|
|
|
<mat-card class="card" *ngFor="let event of groupProfile.events" [class.selected]="event === selectedEvent"
|
|
|
|
[class.selected]="event === selectedEvent"
|
|
|
|
tabindex="0">
|
|
|
|
tabindex="0">
|
|
|
|
|
|
|
|
<mat-card-header>
|
|
|
|
<mat-card-header>
|
|
|
|
<mat-card-title>{{event.name}}</mat-card-title>
|
|
|
|
<mat-card-title>{{event.name}}</mat-card-title>
|
|
|
|
<mat-card-subtitle>{{event.date}}</mat-card-subtitle>
|
|
|
|
<mat-card-subtitle>{{event.date}}</mat-card-subtitle>
|
|
|
|
<div class="button-box">
|
|
|
|
<div class="button-box">
|
|
|
|
<button *ngIf="!event.joined" mat-icon-button class="request-button"
|
|
|
|
<button *ngIf="!event.joined" mat-icon-button class="request-button" matTooltip="join event"
|
|
|
|
matTooltip="join event" matTooltipShowDelay="500"
|
|
|
|
matTooltipShowDelay="500" (click)="joinEvent(event)">
|
|
|
|
(click)="joinEvent(event)">
|
|
|
|
|
|
|
|
<mat-icon>event_available</mat-icon>
|
|
|
|
<mat-icon>event_available</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
<button *ngIf="event.joined" mat-icon-button class="request-button"
|
|
|
|
<button *ngIf="event.joined" mat-icon-button class="request-button" matTooltip="leave event"
|
|
|
|
matTooltip="leave event" matTooltipShowDelay="500"
|
|
|
|
matTooltipShowDelay="500" (click)="leaveEvent(event)" [disabled]="!event.joined">
|
|
|
|
(click)="leaveEvent(event)"
|
|
|
|
|
|
|
|
[disabled]="!event.joined">
|
|
|
|
|
|
|
|
<mat-icon>event_busy</mat-icon>
|
|
|
|
<mat-icon>event_busy</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -145,36 +121,30 @@
|
|
|
|
Members
|
|
|
|
Members
|
|
|
|
</mat-panel-title>
|
|
|
|
</mat-panel-title>
|
|
|
|
</mat-expansion-panel-header>
|
|
|
|
</mat-expansion-panel-header>
|
|
|
|
<div class="list">
|
|
|
|
|
|
|
|
<user-list [userList]="groupProfile.members"></user-list>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</mat-expansion-panel>
|
|
|
|
|
|
|
|
<mat-expansion-panel expanded>
|
|
|
|
|
|
|
|
<mat-expansion-panel-header>
|
|
|
|
|
|
|
|
<mat-panel-title>
|
|
|
|
|
|
|
|
Admins
|
|
|
|
|
|
|
|
</mat-panel-title>
|
|
|
|
|
|
|
|
</mat-expansion-panel-header>
|
|
|
|
|
|
|
|
<div id="list">
|
|
|
|
<div id="list">
|
|
|
|
<mat-card class="card" *ngFor="let admin of groupProfile.admins"
|
|
|
|
<mat-card class="member-card" *ngFor="let user of groupProfile.members"
|
|
|
|
[class.selected]="admin === selectedAdmin"
|
|
|
|
[class.selected]="user === selectedUser" tabindex="0">
|
|
|
|
tabindex="0">
|
|
|
|
|
|
|
|
<mat-card-header>
|
|
|
|
<mat-card-header>
|
|
|
|
<div id="button-box">
|
|
|
|
<div mat-card-avatar (click)="showUserProfile(user)">
|
|
|
|
<button mat-icon-button [matMenuTriggerFor]="menu" id="menu-button">
|
|
|
|
<img class="card-picture" [src]="user.profilePicture" />
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<mat-card-title class="pointer" (click)="showUserProfile(user)">{{user.username}}</mat-card-title>
|
|
|
|
|
|
|
|
<mat-card-subtitle class="pointer" (click)="showUserProfile(user)">{{user.handle}}</mat-card-subtitle>
|
|
|
|
|
|
|
|
<mat-card-subtitle *ngIf="user.isGroupAdmin" class="pointer" (click)="showUserProfile(user)">[admin]
|
|
|
|
|
|
|
|
</mat-card-subtitle>
|
|
|
|
|
|
|
|
<div id="icon-box" *ngIf="isAdmin">
|
|
|
|
|
|
|
|
<button mat-icon-button [matMenuTriggerFor]="menu">
|
|
|
|
<mat-icon>more_vert</mat-icon>
|
|
|
|
<mat-icon>more_vert</mat-icon>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
<mat-menu #menu="matMenu">
|
|
|
|
<mat-menu #menu="matMenu">
|
|
|
|
<button mat-menu-item (click)="removeFriend(friend)">
|
|
|
|
<button *ngIf="!user.isGroupAdmin" mat-menu-item (click)="addGroupAdmin(user)">
|
|
|
|
<span>remove friend</span>
|
|
|
|
<span>give admin rights</span>
|
|
|
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
<button *ngIf="user.isGroupAdmin" mat-menu-item (click)="removeGroupAdmin(user)">
|
|
|
|
|
|
|
|
<span>revoke admin rights</span>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
</mat-menu>
|
|
|
|
</mat-menu>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div mat-card-avatar (click)="showFriendProfile(admin)">
|
|
|
|
|
|
|
|
<img class="profile-picture-small" [src]="admin.profilePicture"/>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<mat-card-title (click)="showFriendProfile(admin)">{{admin.username}}</mat-card-title>
|
|
|
|
|
|
|
|
<mat-card-subtitle (click)="showFriendProfile(admin)">{{admin.handle}}</mat-card-subtitle>
|
|
|
|
|
|
|
|
</mat-card-header>
|
|
|
|
</mat-card-header>
|
|
|
|
</mat-card>
|
|
|
|
</mat-card>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -187,4 +157,3 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<mat-spinner *ngIf="loading" style="margin:0 auto; margin-top: 10em;" diameter="100"></mat-spinner>
|
|
|
|
<mat-spinner *ngIf="loading" style="margin:0 auto; margin-top: 10em;" diameter="100"></mat-spinner>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|