diff --git a/bookie/src/app/app-routing.module.ts b/bookie/src/app/app-routing.module.ts index e5a0b31..25e1961 100644 --- a/bookie/src/app/app-routing.module.ts +++ b/bookie/src/app/app-routing.module.ts @@ -9,6 +9,10 @@ const routes: Routes = [ path: 'guest-book', loadChildren: () => import('./guest-book/guest-book.module').then(mod => mod.GuestBookModule) }, + { + path: 'running-tables', + loadChildren: () => import('./running-tables/running-tables.module').then(mod => mod.RunningTablesModule) + }, { path: 'tables', loadChildren: () => import('./tables/tables.module').then(mod => mod.TableModule) diff --git a/bookie/src/app/running-tables/running-tables-resolver.service.ts b/bookie/src/app/running-tables/running-tables-resolver.service.ts new file mode 100644 index 0000000..a3ca74b --- /dev/null +++ b/bookie/src/app/running-tables/running-tables-resolver.service.ts @@ -0,0 +1,18 @@ +import {Injectable} from '@angular/core'; +import {ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot} from '@angular/router'; +import {Observable} from 'rxjs/internal/Observable'; +import {Table} from "../core/table"; +import {TableService} from "../tables/table.service"; + +@Injectable({ + providedIn: 'root' +}) +export class RunningTablesResolver implements Resolve { + + constructor(private ser: TableService, private router: Router) { + } + + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { + return this.ser.list(); + } +} diff --git a/bookie/src/app/running-tables/running-tables-routing.module.ts b/bookie/src/app/running-tables/running-tables-routing.module.ts new file mode 100644 index 0000000..76d9575 --- /dev/null +++ b/bookie/src/app/running-tables/running-tables-routing.module.ts @@ -0,0 +1,40 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { AuthGuard } from "../auth/auth-guard.service"; +import { RunningTablesComponent } from "./running-tables.component"; +import { RunningTablesResolver } from "./running-tables-resolver.service"; + +const routes: Routes = [ + { + path: '', + component: RunningTablesComponent, + canActivate: [AuthGuard], + data: { + permission: 'Guest Book' + }, + resolve: { + list: RunningTablesResolver + } + }, + { + path: ':id', + component: RunningTablesComponent, + canActivate: [AuthGuard], + data: { + permission: 'Guest Book' + }, + resolve: { + item: RunningTablesResolver + } + } +]; + +@NgModule({ + declarations: [], + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], + providers: [ + RunningTablesResolver + ] +}) +export class RunningTablesRoutingModule { } diff --git a/bookie/src/app/running-tables/running-tables.component.css b/bookie/src/app/running-tables/running-tables.component.css new file mode 100644 index 0000000..853dc56 --- /dev/null +++ b/bookie/src/app/running-tables/running-tables.component.css @@ -0,0 +1,5 @@ +.square-button { + min-width: 150px; + max-width: 150px; + min-height: 150px; +} diff --git a/bookie/src/app/running-tables/running-tables.component.html b/bookie/src/app/running-tables/running-tables.component.html new file mode 100644 index 0000000..e704dfc --- /dev/null +++ b/bookie/src/app/running-tables/running-tables.component.html @@ -0,0 +1,9 @@ + + + Running Tables + + + + + diff --git a/bookie/src/app/running-tables/running-tables.component.spec.ts b/bookie/src/app/running-tables/running-tables.component.spec.ts new file mode 100644 index 0000000..30c806a --- /dev/null +++ b/bookie/src/app/running-tables/running-tables.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RunningTablesComponent } from './running-tables.component'; + +describe('RunningTablesComponent', () => { + let component: RunningTablesComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ RunningTablesComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(RunningTablesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/bookie/src/app/running-tables/running-tables.component.ts b/bookie/src/app/running-tables/running-tables.component.ts new file mode 100644 index 0000000..8cbd888 --- /dev/null +++ b/bookie/src/app/running-tables/running-tables.component.ts @@ -0,0 +1,22 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from "@angular/router"; +import { Table } from "../core/table"; + +@Component({ + selector: 'app-running-tables', + templateUrl: './running-tables.component.html', + styleUrls: ['./running-tables.component.css'] +}) +export class RunningTablesComponent implements OnInit { + list: Table[]; + + constructor(private route: ActivatedRoute) { + } + + ngOnInit() { + this.route.data + .subscribe((data: { list: Table[] }) => { + this.list = data.list; + }); + } +} diff --git a/bookie/src/app/running-tables/running-tables.module.ts b/bookie/src/app/running-tables/running-tables.module.ts new file mode 100644 index 0000000..416c65c --- /dev/null +++ b/bookie/src/app/running-tables/running-tables.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { RunningTablesRoutingModule } from './running-tables-routing.module'; +import { RunningTablesComponent } from './running-tables.component'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { FlexLayoutModule } from '@angular/flex-layout'; + +@NgModule({ + declarations: [RunningTablesComponent], + imports: [ + CommonModule, + FlexLayoutModule, + MatButtonModule, + MatCardModule, + RunningTablesRoutingModule + ] +}) +export class RunningTablesModule { }