Skip to content

Commit c156c85

Browse files
committed
remove sorting filter and prioritize teams ordering by membership and visits
1 parent 1d43e1b commit c156c85

2 files changed

Lines changed: 16 additions & 23 deletions

File tree

src/app/teams/teams.component.html

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
</div>
4545

4646
<div class="primary-link-hover" [ngClass]="{'view-container view-table view-full-height':!isDialog}">
47-
<mat-table #table class="responsive-table" [dataSource]="teams" matSortActive="visitLog.visitCount" matSortDirection="desc" matSort [matSortDisableClear]="true">
47+
<mat-table #table class="responsive-table" [dataSource]="teams" matSort [matSortDisableClear]="true">
4848
<ng-container matColumnDef="doc.name">
4949
<mat-header-cell *matHeaderCellDef mat-sort-header="doc.name" i18n>Name</mat-header-cell>
5050
<mat-cell *matCellDef="let element">
@@ -90,12 +90,7 @@ <h3 class="team-name">
9090
<mat-cell *matCellDef="let element" hidden>{{ element.userStatus }}</mat-cell>
9191
</ng-container>
9292
<ng-container matColumnDef="action">
93-
<mat-header-cell *matHeaderCellDef i18n>
94-
<span>Action</span>
95-
<button mat-button *ngIf="showUserTeamsFilter" (click)="sortbyUserTeams()" i18n-title title="Toggle myTeams">
96-
<mat-icon>check</mat-icon>
97-
</button>
98-
</mat-header-cell>
93+
<mat-header-cell *matHeaderCellDef i18n>Action</mat-header-cell>
9994
<mat-cell *matCellDef="let element">
10095
<div class="button-container" [ngClass]="{'horizontal-align': isMobile}">
10196
<ng-container [ngSwitch]="element.userStatus" *ngIf="user.isUserAdmin || user.roles.length">

src/app/teams/teams.component.ts

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ export class TeamsComponent implements OnInit, AfterViewInit {
8686
get tableData() {
8787
return this.teams;
8888
}
89-
showUserTeamsFilter = false;
9089

9190
constructor(
9291
private userService: UserService,
@@ -160,8 +159,6 @@ export class TeamsComponent implements OnInit, AfterViewInit {
160159
}
161160
this.dialogsLoadingService.stop();
162161
this.isLoading = false;
163-
this.showUserTeamsFilter = this.myTeamsFilter === 'off' &&
164-
this.teams.data.some(e => e.userStatus === 'member' || e.userStatus === 'requesting');
165162
}, (error) => {
166163
if (this.userNotInShelf) {
167164
this.displayedColumns = [ 'doc.name', 'visitLog.lastVisit', 'visitLog.visitCount', 'doc.teamType' ];
@@ -219,6 +216,20 @@ export class TeamsComponent implements OnInit, AfterViewInit {
219216
default:
220217
return { ...team, userStatus: 'unrelated' };
221218
}
219+
}).sort((teamA, teamB) => {
220+
const membershipOrder = { member: 2, requesting: 1, unrelated: 0 };
221+
const membershipDifference = membershipOrder[teamB.userStatus] - membershipOrder[teamA.userStatus];
222+
if (membershipDifference !== 0) {
223+
return membershipDifference;
224+
}
225+
226+
const lastVisitA = teamA.visitLog.lastVisit || 0;
227+
const lastVisitB = teamB.visitLog.lastVisit || 0;
228+
if (lastVisitB !== lastVisitA) {
229+
return lastVisitB - lastVisitA;
230+
}
231+
232+
return teamA.doc.name.localeCompare(teamB.doc.name);
222233
});
223234
}
224235

@@ -342,19 +353,6 @@ export class TeamsComponent implements OnInit, AfterViewInit {
342353
this.teams.filter = filterValue || (this.myTeamsFilter ? ' ' : '');
343354
}
344355

345-
sortbyUserTeams() {
346-
if (!this.teams.data.some(e => e.userStatus === 'member' || e.userStatus === 'requesting')) {
347-
return;
348-
}
349-
350-
this.sort.active = 'membership';
351-
this.sort.direction = 'desc';
352-
this.sort.sortChange.emit({
353-
active: this.sort.active,
354-
direction: this.sort.direction
355-
});
356-
}
357-
358356
getTeamTypeLabel(team: any): string {
359357
return team.doc.type === 'enterprise' ? $localize`enterprise` : $localize`team`;
360358
}

0 commit comments

Comments
 (0)