From 1af942294c9978273fc5f79972d4c1c85ac85bd7 Mon Sep 17 00:00:00 2001 From: Artur Savitskiy Date: Mon, 1 May 2023 02:53:55 +0200 Subject: [PATCH] Add visits for desired date via routing --- src/app/app-routing.module.ts | 1 + src/app/components/visits/visits.component.ts | 43 +++++++++++++++---- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 041a553..2dad918 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -6,6 +6,7 @@ import { VisitsComponent } from './components/visits/visits.component'; const routes: Routes = [ { path: 'students', component: StudentListComponent }, { path: 'visits', component: VisitsComponent }, + { path: 'visits/:date/:time', component: VisitsComponent }, { path: '**', redirectTo: 'students' } ]; diff --git a/src/app/components/visits/visits.component.ts b/src/app/components/visits/visits.component.ts index cc4e77e..131256a 100644 --- a/src/app/components/visits/visits.component.ts +++ b/src/app/components/visits/visits.component.ts @@ -1,6 +1,8 @@ import { formatDate } from '@angular/common'; -import { Component, OnInit } from '@angular/core'; +import { Component, OnDestroy, OnInit } from '@angular/core'; import { MatTableDataSource } from '@angular/material/table'; +import { ActivatedRoute } from '@angular/router'; +import { Subscription } from 'rxjs'; import { CourseVisit } from 'src/app/models/course-visit'; import { Student } from 'src/app/models/student'; import { StudentEnrollment } from 'src/app/models/student-enrollment'; @@ -14,7 +16,7 @@ import { VisitsService } from 'src/app/services/visits/visits.service'; templateUrl: './visits.component.html', styleUrls: ['./visits.component.scss'] }) -export class VisitsComponent implements OnInit { +export class VisitsComponent implements OnInit, OnDestroy { public loading: boolean = true; public courseVisit?: CourseVisit; @@ -22,11 +24,39 @@ export class VisitsComponent implements OnInit { public addedStudent?: Student; + private routerSubscription?: Subscription; + private courseDate: Date = new Date(); - public constructor(private visitsService: VisitsService, private enrollService: EnrollService) { } + public constructor( + private visitsService: VisitsService, + private enrollService: EnrollService, + private route: ActivatedRoute) { } public ngOnInit() { - this.getData(); + this.routerSubscription = this.route.params.subscribe(params => { + const date: string = params['date']; + const time: string = params['time']; + + if (date?.length == 8 && time?.length >= 3) { + const fulltime = time.padStart(4, '0'); + const datetime = `${date.substring(0, 4)}-${date.substring(4, 6)}-${date.substring(6, 8)} ${fulltime.substring(0, 2)}:${fulltime.substring(2, 4)}:00`; + + console.log(datetime); + + const dateobj = new Date(datetime); + console.log(dateobj); + + if (dateobj) { + this.courseDate = dateobj; + } + } + + this.getData(); + }); + } + + public ngOnDestroy() { + this.routerSubscription?.unsubscribe(); } public visit(studentVisit: StudentVisit): void { @@ -44,10 +74,7 @@ export class VisitsComponent implements OnInit { } private getData(): void { - //const now = new Date('2023-04-24 16:01:01'); - const now = new Date(); - - this.visitsService.get(now) + this.visitsService.get(this.courseDate) .subscribe({ next: courseVisit => { this.loading = false;