diff --git a/src/app/admin/admin-routing.module.ts b/src/app/admin/admin-routing.module.ts
index 8150c0f..641706c 100644
--- a/src/app/admin/admin-routing.module.ts
+++ b/src/app/admin/admin-routing.module.ts
@@ -45,6 +45,7 @@ const routes: Routes = [
// canActivate: [AuthGuardService, RoleGuardService],
resolve: {
slides: SlideService,
+ teams: TeamService,
}
}, {
path: 'admin/slide/new',
diff --git a/src/app/admin/slide-list/slide-list.component.css b/src/app/admin/slide-list/slide-list.component.css
index e69de29..4227dff 100644
--- a/src/app/admin/slide-list/slide-list.component.css
+++ b/src/app/admin/slide-list/slide-list.component.css
@@ -0,0 +1,3 @@
+.ui.right.floated.selection {
+ float: right;
+}
diff --git a/src/app/admin/slide-list/slide-list.component.html b/src/app/admin/slide-list/slide-list.component.html
index 26dd9c2..bf18838 100644
--- a/src/app/admin/slide-list/slide-list.component.html
+++ b/src/app/admin/slide-list/slide-list.component.html
@@ -4,6 +4,16 @@
[routerLink]="['/admin/slide/new']">New slide
Back to dashboard
+
+
+
+
diff --git a/src/app/admin/slide-list/slide-list.component.ts b/src/app/admin/slide-list/slide-list.component.ts
index 418ad8b..fb3bbea 100644
--- a/src/app/admin/slide-list/slide-list.component.ts
+++ b/src/app/admin/slide-list/slide-list.component.ts
@@ -13,6 +13,10 @@ import { Team } from '../../shared/team';
})
export class SlideListComponent implements OnInit {
+ public teams: Array = [];
+ 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}) => this.slides = data.slides);
+ this.emptyTeam.name = 'All teams';
+ this.route.data.subscribe((data: {
+ slides: Array,
+ teams: Array
+ }) => {
+ this.slides = data.slides;
+ this.teams = data.teams;
+ });
}
get slides(): Array {
- 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) {
@@ -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) {
diff --git a/src/app/shared/service/slide.service.ts b/src/app/shared/service/slide.service.ts
index e5b8ffa..c3495ba 100644
--- a/src/app/shared/service/slide.service.ts
+++ b/src/app/shared/service/slide.service.ts
@@ -39,12 +39,8 @@ export class SlideService implements Resolve>{
: this.update(slide);
}
- public moveUp(slide: Slide): Observable> {
- return this.changePosition(slide, slide.position - 1);
- }
-
- public moveDown(slide: Slide): Observable> {
- return this.changePosition(slide, slide.position + 1);
+ public moveTo(slide: Slide, position: number): Observable> {
+ return this.changePosition(slide, position);
}
public create(slide: Slide): Observable {