Skip to content

Commit

Permalink
DSP-329 Fix sort button (#303)
Browse files Browse the repository at this point in the history
* fix(*-list): Fix sort order bug

* refactor(projects-list): Clean up old code

* feat(*-list): Keep selected sort value

* feat(*-list): Add latest update from ui (not yet released)
  • Loading branch information
André Kilchenmann committed Oct 12, 2020
1 parent 942f619 commit 1231717
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 10 deletions.
Expand Up @@ -14,8 +14,12 @@ <h3 class="mat-body subtitle">
<div class="app-toolbar-row">
<span class="app-toolbar-action button left">
<!-- sort button if more than one item in the list -->
<dsp-sort-button *ngIf="list.length > 1" [icon]="'sort_by_alpha'" [sortProps]="sortProps"
[position]="'right'" (sortKeyChange)="sortList($event)"></dsp-sort-button>
<dsp-sort-button *ngIf="list.length > 1"
[icon]="'sort_by_alpha'"
[sortProps]="sortProps"
[activeKey]="sortBy"
(sortKeyChange)="sortList($event)">
</dsp-sort-button>
</span>
<h2 class="mat-title">{{list.length | i18nPlural: itemPluralMapping['project']}}</h2>
<span class="fill-remaining-space"></span>
Expand All @@ -28,7 +32,7 @@ <h2 class="mat-title">{{list.length | i18nPlural: itemPluralMapping['project']}}
<!-- content: list -->
<table class="table more-space-bottom" [class.deactivated]="!status">

<tr class="table-entry" *ngFor="let project of list | dspSortBy: sortBy; let last = last"
<tr class="table-entry" *ngFor="let project of list; let last = last"
[class.no-border]="last">
<!-- logo -->
<td class="avatar-cell">
Expand Down
12 changes: 10 additions & 2 deletions src/app/system/projects/projects-list/projects-list.component.ts
Expand Up @@ -62,8 +62,8 @@ export class ProjectsListComponent implements OnInit {
}
];

// ... and sort by 'shortname'
sortBy: string = 'shortname';
// ... and sort by 'longname'
sortBy: string = 'longname';

constructor(
@Inject(DspApiConnectionToken) private _dspApiConnection: KnoraApiConnection,
Expand All @@ -79,6 +79,13 @@ export class ProjectsListComponent implements OnInit {

// is the logged-in user system admin?
this.sysAdmin = this.session.user.sysAdmin;

// sort list by defined key
if(localStorage.getItem('sortProjectsBy')) {
this.sortBy = localStorage.getItem('sortProjectsBy');
} else {
localStorage.setItem('sortProjectsBy', this.sortBy);
}
}

/**
Expand Down Expand Up @@ -144,6 +151,7 @@ export class ProjectsListComponent implements OnInit {

sortList(key: any) {
this.list = this._sortingService.keySortByAlphabetical(this.list, key);
localStorage.setItem('sortProjectsBy', key);
}

deleteProject(id: string) {
Expand Down
10 changes: 7 additions & 3 deletions src/app/system/users/users-list/users-list.component.html
Expand Up @@ -14,8 +14,12 @@ <h3 class="mat-body subtitle">
<div class="app-toolbar-row">
<span class="app-toolbar-action button left">
<!-- sort button if more than one item in the list -->
<dsp-sort-button *ngIf="list.length > 1" [icon]="'sort_by_alpha'" [sortProps]="sortProps"
[position]="'right'" (sortKeyChange)="sortList($event)"></dsp-sort-button>
<dsp-sort-button *ngIf="list.length > 1"
[icon]="'sort_by_alpha'"
[sortProps]="sortProps"
[activeKey]="sortBy"
(sortKeyChange)="sortList($event)">
</dsp-sort-button>
</span>
<h2 class="mat-title">
<span *ngIf="projectcode">{{list.length | i18nPlural: itemPluralMapping['member']}}</span>
Expand All @@ -30,7 +34,7 @@ <h2 class="mat-title">

<!-- content: list -->
<table class="table more-space-bottom" [class.deactivated]="!status">
<tr class="table-entry" *ngFor="let user of list | dspSortBy: sortBy; let last = last" [class.no-border]="last">
<tr class="table-entry" *ngFor="let user of list; let last = last" [class.no-border]="last">
<!-- avatar -->
<td class="avatar-cell">
<img dspAdminImage [image]="user.email" [type]="'user'" class="avatar-image" />
Expand Down
12 changes: 10 additions & 2 deletions src/app/system/users/users-list/users-list.component.ts
Expand Up @@ -76,8 +76,8 @@ export class UsersListComponent implements OnInit {
}
];

// ... and sort by 'email'
sortBy: string = 'email';
// ... and sort by 'username'
sortBy: string = 'username';

constructor(
@Inject(DspApiConnectionToken) private _dspApiConnection: KnoraApiConnection,
Expand Down Expand Up @@ -122,6 +122,13 @@ export class UsersListComponent implements OnInit {
}
);
}

// sort list by defined key
if(localStorage.getItem('sortUsersBy')) {
this.sortBy = localStorage.getItem('sortUsersBy');
} else {
localStorage.setItem('sortUsersBy', this.sortBy);
}
}

/**
Expand Down Expand Up @@ -407,5 +414,6 @@ export class UsersListComponent implements OnInit {

sortList(key: any) {
this.list = this._sortingService.keySortByAlphabetical(this.list, key);
localStorage.setItem('sortUsersBy', key);
}
}

0 comments on commit 1231717

Please sign in to comment.