Add visits for desired date via routing

This commit is contained in:
Artur Savitskiy 2023-05-01 02:53:55 +02:00
parent 1a0bb96f69
commit 1af942294c
2 changed files with 36 additions and 8 deletions

View File

@ -6,6 +6,7 @@ import { VisitsComponent } from './components/visits/visits.component';
const routes: Routes = [ const routes: Routes = [
{ path: 'students', component: StudentListComponent }, { path: 'students', component: StudentListComponent },
{ path: 'visits', component: VisitsComponent }, { path: 'visits', component: VisitsComponent },
{ path: 'visits/:date/:time', component: VisitsComponent },
{ path: '**', redirectTo: 'students' } { path: '**', redirectTo: 'students' }
]; ];

View File

@ -1,6 +1,8 @@
import { formatDate } from '@angular/common'; 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 { MatTableDataSource } from '@angular/material/table';
import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs';
import { CourseVisit } from 'src/app/models/course-visit'; import { CourseVisit } from 'src/app/models/course-visit';
import { Student } from 'src/app/models/student'; import { Student } from 'src/app/models/student';
import { StudentEnrollment } from 'src/app/models/student-enrollment'; 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', templateUrl: './visits.component.html',
styleUrls: ['./visits.component.scss'] styleUrls: ['./visits.component.scss']
}) })
export class VisitsComponent implements OnInit { export class VisitsComponent implements OnInit, OnDestroy {
public loading: boolean = true; public loading: boolean = true;
public courseVisit?: CourseVisit; public courseVisit?: CourseVisit;
@ -22,11 +24,39 @@ export class VisitsComponent implements OnInit {
public addedStudent?: Student; 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() { public ngOnInit() {
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(); this.getData();
});
}
public ngOnDestroy() {
this.routerSubscription?.unsubscribe();
} }
public visit(studentVisit: StudentVisit): void { public visit(studentVisit: StudentVisit): void {
@ -44,10 +74,7 @@ export class VisitsComponent implements OnInit {
} }
private getData(): void { private getData(): void {
//const now = new Date('2023-04-24 16:01:01'); this.visitsService.get(this.courseDate)
const now = new Date();
this.visitsService.get(now)
.subscribe({ .subscribe({
next: courseVisit => { next: courseVisit => {
this.loading = false; this.loading = false;