Pull request #50: Expanded team
Merge in RED/ui from expanded-team to master * commit 'dc0ff91c24655ebafbb9713f538c80e10815ce2d': Expanded team
This commit is contained in:
commit
1c00e4007c
@ -32,17 +32,15 @@
|
|||||||
|
|
||||||
<div class="mt-16">
|
<div class="mt-16">
|
||||||
<div class="all-caps-label" translate="project-details.members"></div>
|
<div class="all-caps-label" translate="project-details.members"></div>
|
||||||
<div class="flex members-container mt-12">
|
<div class="flex members-container">
|
||||||
<div *ngFor="let userId of displayMembers" class="member">
|
<div *ngFor="let userId of displayedMembers" class="member">
|
||||||
<redaction-initials-avatar [userId]="userId" size="large" color="gray"></redaction-initials-avatar>
|
<redaction-initials-avatar [userId]="userId" size="large" color="gray"></redaction-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="overflowCount" class="member">
|
<div *ngIf="overflowCount && !expandedTeam" class="member pointer">
|
||||||
<div class="oval large white-dark">+{{ overflowCount }}</div>
|
<div class="oval large white-dark" (click)="toggleExpandedTeam()">+{{ overflowCount }}</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div (click)="openAssignProjectMembersDialog.emit()" *ngIf="permissionsService.isManager()" class="member pointer">-->
|
|
||||||
<!-- <div class="oval red-white large">+</div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<redaction-circle-button
|
<redaction-circle-button
|
||||||
|
class="member"
|
||||||
(action)="openAssignProjectMembersDialog.emit()"
|
(action)="openAssignProjectMembersDialog.emit()"
|
||||||
icon="red:plus"
|
icon="red:plus"
|
||||||
*ngIf="permissionsService.isManager()"
|
*ngIf="permissionsService.isManager()"
|
||||||
@ -51,6 +49,7 @@
|
|||||||
>
|
>
|
||||||
</redaction-circle-button>
|
</redaction-circle-button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="all-caps-label see-less pointer" *ngIf="expandedTeam" translate="project-details.see-less" (click)="toggleExpandedTeam()"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="hasFiles" class="mt-24">
|
<div *ngIf="hasFiles" class="mt-24">
|
||||||
|
|||||||
@ -6,7 +6,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.members-container {
|
.members-container {
|
||||||
gap: 5px;
|
flex-wrap: wrap;
|
||||||
|
margin-top: 4px;
|
||||||
|
|
||||||
|
.member {
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.see-less {
|
||||||
|
opacity: 1;
|
||||||
|
color: $primary;
|
||||||
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.legend {
|
.legend {
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import { StatusSorter } from '../../../common/sorters/status-sorter';
|
|||||||
})
|
})
|
||||||
export class ProjectDetailsComponent implements OnInit {
|
export class ProjectDetailsComponent implements OnInit {
|
||||||
public documentsChartData: DoughnutChartConfig[] = [];
|
public documentsChartData: DoughnutChartConfig[] = [];
|
||||||
|
public expandedTeam = false;
|
||||||
@Input() public filters: { needsWorkFilters: FilterModel[]; statusFilters: FilterModel[] };
|
@Input() public filters: { needsWorkFilters: FilterModel[]; statusFilters: FilterModel[] };
|
||||||
@Output() public filtersChanged = new EventEmitter();
|
@Output() public filtersChanged = new EventEmitter();
|
||||||
@Output() public openAssignProjectMembersDialog = new EventEmitter();
|
@Output() public openAssignProjectMembersDialog = new EventEmitter();
|
||||||
@ -32,17 +33,26 @@ export class ProjectDetailsComponent implements OnInit {
|
|||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.calculateChartConfig();
|
this.calculateChartConfig();
|
||||||
this.appStateService.fileChanged.subscribe((event) => {
|
this.appStateService.fileChanged.subscribe(() => {
|
||||||
this.calculateChartConfig();
|
this.calculateChartConfig();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public get displayMembers() {
|
private get _memberIds(): string[] {
|
||||||
return this.appStateService.activeProject.project.memberIds.slice(0, 6);
|
const ids = this.appStateService.activeProject.project.memberIds;
|
||||||
|
return [...ids, ...ids, ids[0], ids[1], ids[0]];
|
||||||
|
}
|
||||||
|
|
||||||
|
public get displayedMembers(): string[] {
|
||||||
|
return this.expandedTeam || !this.overflowCount ? this._memberIds : this._memberIds.slice(0, 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
public toggleExpandedTeam() {
|
||||||
|
this.expandedTeam = !this.expandedTeam;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get overflowCount() {
|
public get overflowCount() {
|
||||||
return this.appStateService.activeProject.project.memberIds.length > 6 ? this.appStateService.activeProject.project.memberIds.length - 6 : 0;
|
return this._memberIds.length > 8 ? this._memberIds.length - 7 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public calculateChartConfig(): void {
|
public calculateChartConfig(): void {
|
||||||
@ -62,7 +72,6 @@ export class ProjectDetailsComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public toggleFilter(filterType: 'needsWorkFilters' | 'statusFilters', key: string): void {
|
public toggleFilter(filterType: 'needsWorkFilters' | 'statusFilters', key: string): void {
|
||||||
console.log(this.filters, filterType, this.filters[filterType], key);
|
|
||||||
const filter = this.filters[filterType].find((f) => f.key === key);
|
const filter = this.filters[filterType].find((f) => f.key === key);
|
||||||
filter.checked = !filter.checked;
|
filter.checked = !filter.checked;
|
||||||
this.filtersChanged.emit(this.filters);
|
this.filtersChanged.emit(this.filters);
|
||||||
|
|||||||
@ -142,6 +142,7 @@
|
|||||||
},
|
},
|
||||||
"owner": "Owner",
|
"owner": "Owner",
|
||||||
"members": "Members",
|
"members": "Members",
|
||||||
|
"see-less": "See less",
|
||||||
"assign-members": "Assign Members",
|
"assign-members": "Assign Members",
|
||||||
"expand": "Show Details",
|
"expand": "Show Details",
|
||||||
"collapse": "Hide Details"
|
"collapse": "Hide Details"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user