148 lines
4.5 KiB
TypeScript
148 lines
4.5 KiB
TypeScript
import {Component, OnInit} from '@angular/core';
|
|
import {UserEntity} from "../../interface/UserEntity";
|
|
import {LocationEntity} from "../../interface/LocationEntity";
|
|
import {newWaypoint, WaypointsEntity} from "../../interface/WaypointsEntity";
|
|
import {Router} from "@angular/router";
|
|
import {LocationService} from "../../service/http/location.service";
|
|
import {UserService} from "../../service/http/user.service";
|
|
import {WaypointService} from "../../service/http/waypoint.service";
|
|
import {managementTranslations} from "../../interface/translations";
|
|
import {TranslateService} from "../../service/language/translate.service";
|
|
import {ReadTranslateJsonService} from "../../service/language/readTranslateJson.service";
|
|
import {cookieService} from "../../service/cookie.service";
|
|
|
|
@Component({
|
|
selector: 'app-home',
|
|
templateUrl: './management.component.html',
|
|
styleUrls: ['./management.component.css']
|
|
})
|
|
|
|
export class ManagementComponent implements OnInit {
|
|
|
|
username: string = '';
|
|
showUserForm: boolean = false;
|
|
showLocationForm: boolean = false;
|
|
showWaypointForm: boolean = false;
|
|
|
|
newUser: UserEntity = { password: "", username: ""};
|
|
newLocation: LocationEntity = {location: "", lat: 0, lon: 0, region: ""};
|
|
newWaypoint: newWaypoint = {description: "", img: "", lat: 0, locationName: "", lon: 0, name: ""};
|
|
|
|
locations: LocationEntity[] | undefined;
|
|
waypoints: WaypointsEntity[] | undefined;
|
|
users: UserEntity[] | undefined;
|
|
|
|
translations: managementTranslations = {} as managementTranslations
|
|
|
|
constructor(
|
|
private route: Router,
|
|
private locationService: LocationService,
|
|
private waypointService: WaypointService,
|
|
private userService: UserService,
|
|
private translateService: TranslateService,
|
|
private readTranslationJsonService: ReadTranslateJsonService,
|
|
private cookieService: cookieService,
|
|
) {
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
this.translations = this.readTranslationJsonService.getManagementTranslations();
|
|
this.username = this.cookieService.getUsername();
|
|
this.userService.getUser(this.username).subscribe(user => {
|
|
if (user !== null) {
|
|
if (user.admin == false) {
|
|
this.route.navigate(['/home']);
|
|
}
|
|
}else {
|
|
this.cookieService.deleteUsername();
|
|
this.route.navigate(['/login']);
|
|
}
|
|
|
|
});
|
|
this.locationService.getLocations().subscribe(locations => {
|
|
this.locations = locations;
|
|
});
|
|
this.waypointService.getAllWaypoints().subscribe(waypoints => {
|
|
this.waypoints = waypoints;
|
|
});
|
|
this.userService.getUsers().subscribe(users => {
|
|
this.users = users;
|
|
});
|
|
}
|
|
|
|
addUser( username: string, password: string) {
|
|
this.newUser = { username: username, password: password};
|
|
this.userService.createUser(this.newUser).subscribe(user => {
|
|
this.users?.push(user);
|
|
});
|
|
this.showUserForm = false;
|
|
}
|
|
|
|
addLocation(name: string, region: string, lat: number, lon: number) {
|
|
this.newLocation = {location: name, region: region, lat: lat, lon: lon};
|
|
console.log("newLocation")
|
|
console.log(this.newLocation);
|
|
this.locationService.createLocation(this.newLocation).subscribe(location => {
|
|
this.locations?.push(location);
|
|
});
|
|
this.showLocationForm = false;
|
|
}
|
|
|
|
addWaypoint(name: string, lat: number, lon: number, description: string, image: string, locationName: string) {
|
|
this.newWaypoint = {
|
|
description: description,
|
|
img: image,
|
|
lat: lat,
|
|
locationName: locationName,
|
|
lon: lon,
|
|
name: name
|
|
}
|
|
this.waypointService.createWaypoint(this.newWaypoint).subscribe(waypoint => {
|
|
this.waypoints?.push(waypoint);
|
|
});
|
|
this.showWaypointForm = false;
|
|
}
|
|
|
|
deleteLocation(id: number) {
|
|
this.locationService.deleteLocation(id).subscribe(location => {
|
|
this.locations?.splice(this.locations?.indexOf(location), 1);
|
|
});
|
|
}
|
|
|
|
deleteWaypoint(id: number) {
|
|
this.waypointService.deleteWaypoint(id).subscribe(waypoint => {
|
|
this.waypoints?.splice(this.waypoints?.indexOf(waypoint), 1);
|
|
});
|
|
}
|
|
|
|
deleteUser(id: number) {
|
|
this.userService.deleteUser(id).subscribe(user => {
|
|
this.users?.splice(this.users?.indexOf(user), 1);
|
|
});
|
|
}
|
|
|
|
openUserForm() {
|
|
this.showUserForm = true;
|
|
}
|
|
|
|
closeUserForm() {
|
|
this.showUserForm = false;
|
|
}
|
|
|
|
openLocationForm() {
|
|
this.showLocationForm = true;
|
|
}
|
|
|
|
closeLocationForm() {
|
|
this.showLocationForm = false;
|
|
}
|
|
|
|
openWaypointForm() {
|
|
this.showWaypointForm = true;
|
|
}
|
|
|
|
closeWaypointForm() {
|
|
this.showWaypointForm = false;
|
|
}
|
|
}
|