* team filter added to slide list
This commit is contained in:
parent
47eaae25d7
commit
acd949b538
@ -45,6 +45,7 @@ const routes: Routes = [
|
||||
// canActivate: [AuthGuardService, RoleGuardService],
|
||||
resolve: {
|
||||
slides: SlideService,
|
||||
teams: TeamService,
|
||||
}
|
||||
}, {
|
||||
path: 'admin/slide/new',
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
.ui.right.floated.selection {
|
||||
float: right;
|
||||
}
|
||||
@ -4,6 +4,16 @@
|
||||
[routerLink]="['/admin/slide/new']"><i class="plus sign icon"></i>New slide</a>
|
||||
<a class="ui button"
|
||||
[routerLink]="['/dashboard']"><i class="left angle icon"></i>Back to dashboard</a>
|
||||
<sui-select class="ui right floated selection"
|
||||
id="team"
|
||||
name="team"
|
||||
[(ngModel)]="selectedTeam"
|
||||
labelField="name"
|
||||
[isSearchable]="true"
|
||||
#select>
|
||||
<sui-select-option [value]="emptyTeam"></sui-select-option>
|
||||
<sui-select-option *ngFor="let team of teams" [value]="team"></sui-select-option>
|
||||
</sui-select>
|
||||
<table *ngIf="slides?.length" class="ui large padded celled definition table">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
@ -13,6 +13,10 @@ import { Team } from '../../shared/team';
|
||||
})
|
||||
export class SlideListComponent implements OnInit {
|
||||
|
||||
public teams: Array<Team> = [];
|
||||
public emptyTeam: Team = new Team();
|
||||
public selectedTeam: Team = this.emptyTeam;
|
||||
|
||||
constructor(private slideService: SlideService,
|
||||
private titleService: Title,
|
||||
private route: ActivatedRoute) {
|
||||
@ -20,11 +24,22 @@ export class SlideListComponent implements OnInit {
|
||||
|
||||
ngOnInit() {
|
||||
this.titleService.setTitle('Slides : MTAStv');
|
||||
this.route.data.subscribe((data: {slides: Array<Slide>}) => this.slides = data.slides);
|
||||
this.emptyTeam.name = 'All teams';
|
||||
this.route.data.subscribe((data: {
|
||||
slides: Array<Slide>,
|
||||
teams: Array<Team>
|
||||
}) => {
|
||||
this.slides = data.slides;
|
||||
this.teams = data.teams;
|
||||
});
|
||||
}
|
||||
|
||||
get slides(): Array<Slide> {
|
||||
return this.slideService.slides;
|
||||
return this.selectedTeam === this.emptyTeam
|
||||
? this.slideService.slides
|
||||
: this.slideService.slides.filter(
|
||||
slide => slide.team == null || slide.team.id === this.selectedTeam.id
|
||||
);
|
||||
}
|
||||
|
||||
set slides(slides: Array<Slide>) {
|
||||
@ -37,13 +52,17 @@ export class SlideListComponent implements OnInit {
|
||||
|
||||
public moveUp(slide: Slide) {
|
||||
if (!this.isFirstSlide(slide)) {
|
||||
this.slideService.moveUp(slide).subscribe(slides => this.slides = slides);
|
||||
const slidePosition = this.slides.indexOf(slide);
|
||||
this.slideService.moveTo(slide, this.slides[slidePosition - 1].position)
|
||||
.subscribe(slides => this.slides = slides);
|
||||
}
|
||||
}
|
||||
|
||||
public moveDown(slide: Slide) {
|
||||
if (!this.isLastSlide(slide)) {
|
||||
this.slideService.moveDown(slide).subscribe(slides => this.slides = slides);
|
||||
const slidePosition = this.slides.indexOf(slide);
|
||||
this.slideService.moveTo(slide, this.slides[slidePosition + 1].position)
|
||||
.subscribe(slides => this.slides = slides);
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,11 +93,11 @@ export class SlideListComponent implements OnInit {
|
||||
}
|
||||
|
||||
public isFirstSlide(slide: Slide) {
|
||||
return slide.position === 0;
|
||||
return this.slides.indexOf(slide) === 0;
|
||||
}
|
||||
|
||||
public isLastSlide(slide: Slide) {
|
||||
return slide.position === this.slides.length - 1;
|
||||
return this.slides.indexOf(slide) === this.slides.length - 1;
|
||||
}
|
||||
|
||||
public visibleClass(slide: Slide) {
|
||||
|
||||
@ -39,12 +39,8 @@ export class SlideService implements Resolve<Array<Slide>>{
|
||||
: this.update(slide);
|
||||
}
|
||||
|
||||
public moveUp(slide: Slide): Observable<Array<Slide>> {
|
||||
return this.changePosition(slide, slide.position - 1);
|
||||
}
|
||||
|
||||
public moveDown(slide: Slide): Observable<Array<Slide>> {
|
||||
return this.changePosition(slide, slide.position + 1);
|
||||
public moveTo(slide: Slide, position: number): Observable<Array<Slide>> {
|
||||
return this.changePosition(slide, position);
|
||||
}
|
||||
|
||||
public create(slide: Slide): Observable<Slide> {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user