59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
import {Component, Input, OnInit} from '@angular/core';
|
|
import {Event} from '../../models/event';
|
|
import {Change} from '../../models/change';
|
|
import {Router} from '@angular/router';
|
|
import {UtilitiesService} from '../../services/utils/utilities.service';
|
|
|
|
@Component({
|
|
selector: 'app-event',
|
|
templateUrl: './event.component.html',
|
|
styleUrls: ['./event.component.css']
|
|
})
|
|
export class EventComponent implements OnInit {
|
|
@Input() event: Event = {} as Event;
|
|
eventTypeClass: string = '';
|
|
|
|
latestFullChange: Change = {} as Change;
|
|
|
|
constructor(
|
|
private router: Router,
|
|
private utilities: UtilitiesService
|
|
) {
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
this.latestFullChange = this.event.changes[this.event.changes.length - 1];
|
|
if (this.latestFullChange.is_deleted) {
|
|
this.latestFullChange = this.event.changes[this.event.changes.length - 2];
|
|
}
|
|
|
|
switch (this.latestFullChange.new_categories) {
|
|
case 'Prüfung':
|
|
this.eventTypeClass = 'event-card-exam';
|
|
break;
|
|
case 'Lehrveranstaltung':
|
|
this.eventTypeClass = 'event-card-lecture';
|
|
break;
|
|
case 'Sonstige':
|
|
this.eventTypeClass = 'event-card-blocker';
|
|
break;
|
|
default:
|
|
this.eventTypeClass = 'event-card-blocker';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Opens a new tab with the event details
|
|
*/
|
|
openEventDetails() {
|
|
this.router.navigate([]).then(result => { window.open('/eventDetails/'+this.event.event_uid, '_blank'); });
|
|
}
|
|
|
|
/**
|
|
* Formats the starting time of the event
|
|
*/
|
|
getTime(): string {
|
|
return this.utilities.getTimeFromString(this.latestFullChange.new_start.toString());
|
|
}
|
|
}
|