diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 14d17d8..c476583 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -3,11 +3,13 @@ import {RouterModule} from '@angular/router';
import {HomeComponent} from './home/home.component';
import {DetailComponent} from "./detail/detail.component";
import {ListComponent} from "./list/list.component";
+import {ManagementComponent} from "./management/management.component";
@NgModule({
imports: [RouterModule.forRoot([
{path: 'home', component: HomeComponent},
+ {path: 'management', component: ManagementComponent},
{path: 'location/:location', component: ListComponent},
{path: 'location/:location/:id', component: DetailComponent},
{path: '**', redirectTo: 'home'}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 4a9c5f4..a74bc39 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -9,13 +9,14 @@ import { DetailComponent } from './detail/detail.component';
import {FormsModule} from "@angular/forms";
import { HttpClientModule} from "@angular/common/http";
import { SafePipe } from './pipes/safe.pipe';
-
+import { ManagementComponent } from './management/management.component';
@NgModule({
declarations: [
AppComponent,
HomeComponent,
ListComponent,
DetailComponent,
+ ManagementComponent,
SafePipe,
],
imports: [
diff --git a/src/app/management/management.component.css b/src/app/management/management.component.css
new file mode 100644
index 0000000..d4da017
--- /dev/null
+++ b/src/app/management/management.component.css
@@ -0,0 +1,141 @@
+body {
+ font-family: Arial, sans-serif;
+ margin: 0;
+ padding: 0;
+}
+
+h1 {
+ margin:2% 0 1% 10%;
+ font-size: 30px;
+}
+
+/* Tabella degli utenti */
+table {
+ border-collapse: collapse;
+ width: 80%;
+ margin: 0 10% 0 10%;
+}
+
+th, td {
+ padding: 8px;
+ text-align: left;
+ border-bottom: 1px solid #ddd;
+}
+
+th {
+ background-color: #f2f2f2;
+}
+
+/* Form di aggiunta utente */
+.overlay {
+ position: fixed;
+ z-index: 1;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.4);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.form-container {
+ background-color: #fefefe;
+ border-radius: 5px;
+ padding: 20px;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+ width: 400px;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+}
+
+.form-container h2 {
+ margin: 0 0 10px 0;
+ font-size: 20px;
+}
+
+.form-container div {
+ margin-bottom: 10px;
+}
+
+.form-container label {
+ display: block;
+ margin-bottom: 5px;
+}
+
+.form-container input {
+ width: 100%;
+ padding: 8px;
+ border-radius: 5px;
+ border: 1px solid #ccc;
+ box-sizing: border-box;
+}
+
+.form-container select{
+ width: 100%;
+ padding: 8px;
+ border-radius: 5px;
+ border: 1px solid #ccc;
+ box-sizing: border-box;
+}
+
+.form-container button {
+ background-color: #4CAF50;
+ color: white;
+ padding: 8px 16px;
+ border: none;
+ border-radius: 5px;
+ cursor: pointer;
+}
+
+.form-container button[type="submit"] {
+ background-color: #008CBA;
+ margin-top:10px;
+}
+
+.form-container button[type="submit"]:hover {
+ background-color: #0d8bf2;
+}
+
+.form-container button[type="submit"]:active {
+ background-color: #0a5a8d;
+}
+
+.form-container button[type="submit"]:focus {
+ outline: none;
+}
+
+.form-container button[type="submit"]:disabled {
+ background-color: #cccccc;
+ cursor: not-allowed;
+ opacity: 0.6;
+}
+
+.form-container button[type="submit"]:disabled:hover {
+ background-color: #cccccc;
+}
+
+.form-container button:not([type="submit"]) {
+ background-color: #f44336;
+ margin-top: 5px;
+}
+
+.form-container button:not([type="submit"]):hover {
+ background-color: #d30f0f;
+}
+
+.form-container button:not([type="submit"]):active {
+ background-color: #8b0c0c;
+}
+
+.form-container button:not([type="submit"]):focus {
+ outline: none;
+}
+
+.button-container{
+ display: flex;
+ justify-content: flex-end;
+}
diff --git a/src/app/management/management.component.html b/src/app/management/management.component.html
new file mode 100644
index 0000000..c75c853
--- /dev/null
+++ b/src/app/management/management.component.html
@@ -0,0 +1,174 @@
+
+
+
+
+ Management
+
+
+Users
+
+
+
+ | Name |
+ Username |
+ Password |
+
+
+
+
+ | {{ user.name }} |
+ {{ user.username }} |
+ {{ user.password }} |
+
+
+
+
+
+
+
+
+
+
+Locations
+
+
+
+ | Location |
+ Region |
+ Latitude |
+ Longitude |
+
+
+
+
+ | {{ location.location }} |
+ {{ location.region }} |
+ {{ location.lat }} |
+ {{ location.lon }} |
+
+
+
+
+
+
+
+
+
+
+Waypoints
+
+
+
+ | Name |
+ Latitude |
+ Longitude |
+ Description |
+ Location Name |
+
+
+
+
+ | {{ waypoint.name }} |
+ {{ waypoint.lat }} |
+ {{ waypoint.lon }} |
+ {{ waypoint.description }} |
+ {{ waypoint.locationName }} |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/management/management.component.ts b/src/app/management/management.component.ts
new file mode 100644
index 0000000..743ee25
--- /dev/null
+++ b/src/app/management/management.component.ts
@@ -0,0 +1,119 @@
+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;
+}
+
+
+@Component({
+ selector: 'app-home',
+ templateUrl: './management.component.html',
+ styleUrls: ['./management.component.css']
+})
+
+export class ManagementComponent implements OnInit, AfterViewInit, OnDestroy {
+ 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() {
+ }
+
+ ngOnInit(): void {
+
+ }
+
+ 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.showUserForm = false;
+ }
+
+ 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);
+ }
+
+ addWaypoint(name: string, lat: string, lon: string, description: string, image: string, locationName: string) {
+ 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);
+ }
+
+ openUserForm() {
+ this.showUserForm = true;
+ }
+
+ closeUserForm() {
+ this.showUserForm = false;
+ }
+
+ openLocationForm() {
+ this.showLocationForm = true;
+ }
+
+ closeLocationForm() {
+ this.showLocationForm = false;
+ }
+
+ openWaypointForm() {
+ this.showWaypointForm = true;
+ }
+
+ closeWaypointForm() {
+ this.showWaypointForm = false;
+ }
+}