diff --git a/src/app/component/list/list.component.ts b/src/app/component/list/list.component.ts index a881914..f5df874 100644 --- a/src/app/component/list/list.component.ts +++ b/src/app/component/list/list.component.ts @@ -1,4 +1,4 @@ -import {Component, OnInit, SimpleChanges, OnChanges} from '@angular/core'; +import {Component, OnChanges, OnInit, SimpleChanges} from '@angular/core'; import {ActivatedRoute} from "@angular/router"; import {positionService} from "../../service/position.service"; import {listTranslations} from "../../interface/translations"; @@ -7,7 +7,7 @@ import {ReadTranslateJsonService} from "../../service/language/readTranslateJson import {LocationService} from "../../service/http/location.service"; import {LocationEntity} from "../../interface/LocationEntity"; import {WaypointsEntity} from "../../interface/WaypointsEntity"; -import {WaypointService} from "../../service/http/waypoint.service"; +import {WaypointService} from "../../service/http/waypoint.service" @Component({ selector: 'app-list', @@ -100,6 +100,19 @@ export class ListComponent implements OnInit, OnChanges { } } + getPosition(): any { + setInterval(async () => { + this.positionCord = await this.positionService.getLocation(); + this.setDistance(); + }, 2000); + } + + async switchLanguage(lang: string) { + this.translations.translate = await this.translateService.getData(this.translations.translate, lang); + this.translations.distance = await this.translateService.getData(this.translations.distance, lang); + this.translations.locationName = await this.translateService.getData(this.translations.locationName, lang); + this.translations.positionNotFoundErrorMessage = await this.translateService.getData(this.translations.positionNotFoundErrorMessage, lang); + } private checkDataPopulated(): void { if (this.locations && this.location) { @@ -129,18 +142,4 @@ export class ListComponent implements OnInit, OnChanges { } } } - - getPosition(): any { - setInterval(async () => { - this.positionCord = await this.positionService.getLocation(); - this.setDistance(); - }, 2000); - } - - async switchLanguage(lang: string) { - this.translations.translate = await this.translateService.getData(this.translations.translate, lang); - this.translations.distance = await this.translateService.getData(this.translations.distance, lang); - this.translations.locationName = await this.translateService.getData(this.translations.locationName, lang); - this.translations.positionNotFoundErrorMessage = await this.translateService.getData(this.translations.positionNotFoundErrorMessage, lang); - } } diff --git a/src/app/component/management/management.component.html b/src/app/component/management/management.component.html index 2ffa158..78d93c2 100644 --- a/src/app/component/management/management.component.html +++ b/src/app/component/management/management.component.html @@ -15,7 +15,7 @@ - + {{ user.name }} {{ user.username }} {{ user.password }} @@ -24,7 +24,10 @@
- +
@@ -60,7 +63,7 @@ - + {{ location.location }} {{ location.region }} {{ location.lat }} @@ -70,13 +73,16 @@
- +

Add Location

-
+
@@ -88,12 +94,12 @@
- +
- +
@@ -115,7 +121,7 @@ - + {{ waypoint.name }} {{ waypoint.lat }} {{ waypoint.lon }} @@ -126,13 +132,17 @@
- +

Add Location

- +
@@ -140,12 +150,12 @@
- +
- +
@@ -155,13 +165,13 @@
- +
diff --git a/src/app/component/management/management.component.ts b/src/app/component/management/management.component.ts index 6c6240c..b62ba1b 100644 --- a/src/app/component/management/management.component.ts +++ b/src/app/component/management/management.component.ts @@ -1,30 +1,11 @@ -import {AfterViewInit, Component, ElementRef, OnDestroy, OnInit, ViewChild} from '@angular/core'; - -interface User { - id: number; - name: string; - username: string; - password: string; -} - -interface Location { - id: number; - location: string; - region: string; - lat: string; - lon: string; -} - -interface Waypoint { - id: number; - name: string; - lat: string; - lon: string; - description: string; - image: string; - locationName: string; -} - +import {Component, OnInit} from '@angular/core'; +import {UserEntity} from "../../interface/UserEntity"; +import {LocationEntity} from "../../interface/LocationEntity"; +import {WaypointsEntity} from "../../interface/WaypointsEntity"; +import {ActivatedRoute} from "@angular/router"; +import {LocationService} from "../../service/http/location.service"; +import {UserService} from "../../service/http/user.service"; +import {WaypointService} from "../../service/http/waypoint.service"; @Component({ selector: 'app-home', @@ -32,71 +13,62 @@ interface Waypoint { styleUrls: ['./management.component.css'] }) -export class ManagementComponent implements OnInit, AfterViewInit, OnDestroy { +export class ManagementComponent implements OnInit { showUserForm: boolean = false; showLocationForm: boolean = false; showWaypointForm: boolean = false; - newUser: User = {id: 0, name: '', username: '', password: ''}; - newLocation: Location = {id: 0, location: '', region: '', lat: '', lon: ''}; - newWaypoint: Waypoint = {id: 0, name: '', lat: '', lon: '', description: '', image: '', locationName: ''}; - constructor() { + newUser: UserEntity; + newLocation: LocationEntity; + newWaypoint: WaypointsEntity; + + locations: LocationEntity[] | undefined; + waypoints: WaypointsEntity[] | undefined; + users: UserEntity[] | undefined; + + + constructor( + private route: ActivatedRoute, + private locationService: LocationService, + private waypointService: WaypointService, + private userService: UserService, + ) { } ngOnInit(): void { - + this.locationService.getLocations().subscribe(locations => { + this.locations = locations; + }); + this.waypointService.getAllWaypoints().subscribe(waypoints => { + this.waypoints = waypoints; + }); + this.userService.getUsers().subscribe(users => { + this.users = users; + }); } - ngOnDestroy() { - - } - - - ngAfterViewInit() { - - } - - userList: User[] = [ - {id: 1, name: 'John', username: 'john@test.com', password: '0790000000'}, - {id: 2, name: 'Jane', username: 'jane@test.com', password: '0790000001'}, - {id: 3, name: 'Bob', username: 'bob@test.com', password: '0790000002'}, - ]; - - locationList: Location[] = [ - {id: 1, location: 'New York', region: "US", lat: "40.7128", lon: "74.0060"}, - {id: 2, location: 'London', region: "UK", lat: "51.5074", lon: "0.1278"}, - {id: 3, location: 'Paris', region: "FR", lat: "48.8566", lon: "2.3522"}, - ]; - - waypointList: Waypoint[] = [ - {id: 1, name: 'Statue of Liberty', lat: "40.6892", lon: "74.0445", description: "Statue of Liberty", image: "", locationName: "New York"}, - {id: 2, name: 'Big Ben', lat: "51.5007", lon: "0.1246", description: "Big Ben", image: "", locationName: "London"}, - {id: 3, name: 'Eiffel Tower', lat: "48.8584", lon: "2.2945", description: "Eiffel Tower", image: "", locationName: "Paris"}, - ]; - addUser(name: string, username: string, password: string) { - const id = this.userList.length + 1; - const newUser: User = {id, name, username: username, password: password}; - this.userList.push(newUser); + this.newUser = { name: name, username: username, password: password}; + this.userService.createUser(this.newUser).subscribe(user => { + this.users?.push(user); + }); this.showUserForm = false; - this.newUser = {id: 0, name: '', username: '', password: ''}; } - addLocation(name: string, region: string, lat: string, lon: string) { - const id = this.locationList.length + 1; - const newLocation: Location = {id, location: name, region: region, lat: lat, lon: lon}; - this.locationList.push(newLocation); + addLocation(name: string, region: string, lat: number, lon: number) { + this.newLocation = {name: name, region: region, lat: lat, lon: lon}; + this.locationService.createLocation(this.newLocation).subscribe(location => { + this.locations?.push(location); + }); this.showLocationForm = false; - this.newLocation = {id: 0, location: '', region: '', lat: '', lon: ''}; } addWaypoint(name: string, lat: string, lon: string, description: string, image: string, locationName: string) { - console.log(locationName) - const id = this.waypointList.length + 1; - const newWaypoint: Waypoint = {id, name, lat: lat, lon: lon, description: description, image: image, locationName: locationName}; - this.waypointList.push(newWaypoint); + this.newWaypoint = {name: name, lat: lat, lon: lon, description: description, img: image, locationName: locationName}; + this.waypointService.createWaypoint(this.newWaypoint).subscribe(waypoint => { + this.waypoints?.push(waypoint); + }); this.showWaypointForm = false; - this.newWaypoint = {id: 0, name: '', lat: '', lon: '', description: '', image: '', locationName: ''}; } openUserForm() { diff --git a/src/app/interface/UserEntity.ts b/src/app/interface/UserEntity.ts index d8e7af6..49fd05f 100644 --- a/src/app/interface/UserEntity.ts +++ b/src/app/interface/UserEntity.ts @@ -1,6 +1,8 @@ export interface UserEntity { - id: number; + id?: number; name: string; username: string; password: string; + + } diff --git a/src/app/service/http/waypoint.service.ts b/src/app/service/http/waypoint.service.ts index f5f9d2e..ca0e8c0 100644 --- a/src/app/service/http/waypoint.service.ts +++ b/src/app/service/http/waypoint.service.ts @@ -18,6 +18,10 @@ export class WaypointService { ) { } + getAllWaypoints() { + return this.http.get(WAYPOINT); + } + getWaypoints(location: string) { return this.http.get(WAYPOINT + "/" + location)