new role for members

This commit is contained in:
2021-07-25 15:50:51 +02:00
parent f720d472c8
commit 7ac051e779
17 changed files with 133 additions and 328 deletions

View File

@@ -8,7 +8,7 @@
text="Lieder"
></app-link>
<app-link
*appRole="['leader']"
*appRole="['leader', 'member']"
[icon]="faShows"
link="/shows"
text="Veranstaltungen"

View File

@@ -0,0 +1,10 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {SortByPipe} from './sort-by.pipe';
@NgModule({
declarations: [SortByPipe],
exports: [SortByPipe],
imports: [CommonModule],
})
export class SortByModule {}

View File

@@ -0,0 +1,8 @@
import {SortByPipe} from './sort-by.pipe';
describe('SortByPipe', () => {
it('create an instance', () => {
const pipe = new SortByPipe();
expect(pipe).toBeTruthy();
});
});

View File

@@ -0,0 +1,23 @@
import {Pipe, PipeTransform} from '@angular/core';
import {orderBy} from 'lodash';
@Pipe({name: 'sortBy'})
export class SortByPipe implements PipeTransform {
public transform(value: unknown[] | null, order: 'asc' | 'desc' = 'asc', column = ''): unknown[] | null {
if (!value || !order) {
return value;
} // no array
if (!column || column === '') {
if (order === 'asc') {
return value.sort();
} else {
return value.sort().reverse();
}
} // sort 1d array
if (value.length <= 1) {
return value;
} // array with only one item
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
return orderBy(value, [column], [order]) as unknown[];
}
}