Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | 96x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 4x 4x 4x 4x 8x 8x 8x 4x 4x 4x 4x 12x 8x 8x | import { Component, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MatSnackBar } from '@angular/material/snack-bar'; import { ActivatedRoute, Router } from '@angular/router'; import { SessionService } from '../../../../services/session.service'; import { TeacherService } from '../../../../services/teacher.service'; import { Session } from '../../interfaces/session.interface'; import { SessionApiService } from '../../services/session-api.service'; @Component({ selector: 'app-form', templateUrl: './form.component.html', styleUrls: ['./form.component.scss'] }) export class FormComponent implements OnInit { public onUpdate: boolean = false; public sessionForm: FormGroup | undefined; public teachers$ = this.teacherService.all(); private id: string | undefined; constructor( private route: ActivatedRoute, private fb: FormBuilder, private matSnackBar: MatSnackBar, private sessionApiService: SessionApiService, private sessionService: SessionService, private teacherService: TeacherService, private router: Router ) { } public ngOnInit(): void { Iif (!this.sessionService.sessionInformation!.admin) { this.router.navigate(['/sessions']); } const url = this.router.url; if (url.includes('update')) { this.onUpdate = true; this.id = this.route.snapshot.paramMap.get('id')!; this.sessionApiService .detail(this.id) .subscribe((session: Session) => this.initForm(session)); } else { this.initForm(); } } public submit(): void { const session = this.sessionForm?.value as Session; if (!this.onUpdate) { this.sessionApiService .create(session) .subscribe((_: Session) => this.exitPage('Session created !')); } else { this.sessionApiService .update(this.id!, session) .subscribe((_: Session) => this.exitPage('Session updated !')); } } private initForm(session?: Session): void { this.sessionForm = this.fb.group({ name: [ session ? session.name : '', [Validators.required] ], date: [ session ? new Date(session.date).toISOString().split('T')[0] : '', [Validators.required] ], teacher_id: [ session ? session.teacher_id : '', [Validators.required] ], description: [ session ? session.description : '', [ Validators.required, Validators.max(2000) ] ], }); } private exitPage(message: string): void { this.matSnackBar.open(message, 'Close', { duration: 3000 }); this.router.navigate(['sessions']); } } |