Add Falukant region and transport management features

- Implemented new endpoints in AdminController for managing Falukant regions, including fetching, updating, and deleting region distances.
- Enhanced the FalukantService with methods for retrieving region distances and handling upsert operations.
- Updated the router to expose new routes for region management and transport creation.
- Introduced a transport management interface in the frontend, allowing users to create and manage transports between branches.
- Added localization for new transport-related terms and improved the vehicle management interface to include transport options.
- Enhanced the database initialization logic to support new region and transport models.
This commit is contained in:
Torsten Schulz (local)
2025-11-26 16:44:27 +01:00
parent 29dd7ec80c
commit 06ea259dc9
27 changed files with 2100 additions and 57 deletions

View File

@@ -85,6 +85,34 @@
"errorAddingStock": "Fehler beim Hinzufügen des Lagers.",
"stockAdded": "Lager erfolgreich hinzugefügt.",
"invalidStockData": "Bitte gültige Lagertyp- und Mengenangaben eingeben."
},
"map": {
"title": "Falukant Karten-Editor (Regionen)",
"description": "Zeichne Rechtecke auf der Falukant-Karte und weise sie Städten zu.",
"tabs": {
"regions": "Positionen",
"distances": "Entfernungen"
},
"regionList": "Städte",
"noCoords": "Keine Koordinaten gesetzt",
"currentRect": "Aktuelles Rechteck",
"hintDraw": "Wähle eine Stadt und ziehe mit der Maus ein Rechteck auf der Karte, um die Position festzulegen.",
"saveAll": "Alle geänderten Städte speichern",
"connectionsTitle": "Verbindungen (region_distance)",
"source": "Von",
"target": "Nach",
"selectSource": "Quellstadt wählen",
"selectTarget": "Zielstadt wählen",
"mode": "Transportart",
"modeLand": "Land",
"modeWater": "Wasser",
"modeAir": "Luft",
"distance": "Entfernung",
"saveConnection": "Verbindung speichern",
"pickOnMap": "Auf Karte wählen",
"errorSaveConnection": "Die Verbindung konnte nicht gespeichert werden.",
"errorDeleteConnection": "Die Verbindung konnte nicht gelöscht werden.",
"confirmDeleteConnection": "Verbindung wirklich löschen?"
}
},
"chatrooms": {

View File

@@ -147,7 +147,33 @@
"loadError": "Fehler beim Laden des Inventars.",
"sell": "Verkauf",
"sellButton": "Verkaufen",
"sellAllButton": "Alles verkaufen"
"sellAllButton": "Alles verkaufen",
"transportTitle": "Transport anlegen",
"transportSource": "Artikel",
"transportSourcePlaceholder": "Artikel wählen",
"transportVehicle": "Transportmittel",
"transportVehiclePlaceholder": "Transportmittel wählen",
"transportTarget": "Zielstadt",
"transportTargetPlaceholder": "Ziel wählen",
"transportQuantity": "Menge",
"transportMax": "Maximal: {max}",
"transportCreate": "Transport starten",
"transportError": "Transport konnte nicht angelegt werden.",
"transportDuration": "Transportdauer: {duration}",
"transportArrival": "Ankunftszeit: {datetime}",
"transportRoute": "Route",
"transportCost": "Transportkosten: {cost}",
"transportStarted": "Der Transport wurde gestartet.",
"runningTransportsTitle": "Laufende Transporte",
"runningDirection": "Richtung",
"runningProduct": "Artikel",
"runningQuantity": "Menge",
"runningSource": "Quelle",
"runningTarget": "Ziel",
"runningEta": "Ankunft",
"runningRemaining": "Restzeit",
"runningDirectionOut": "Ausgehend",
"runningDirectionIn": "Eingehend"
},
"production": {
"title": "Produktion",
@@ -215,13 +241,34 @@
},
"transport": {
"title": "Transportmittel",
"placeholder": "Hier kannst du Transportmittel für deine Region kaufen.",
"placeholder": "Hier kannst du Transportmittel für deine Region kaufen oder bauen.",
"vehicleType": "Transportmittel",
"mode": "Art",
"modeBuy": "Kaufen (sofort verfügbar)",
"modeBuild": "Bauen (75 % Kosten, mit Bauzeit)",
"quantity": "Anzahl",
"totalCost": "Gesamtkosten",
"notEnoughMoney": "Du hast nicht genug Geld für diesen Kauf.",
"buy": "Transportmittel kaufen",
"balance": "Kontostand"
"buildTime": "Bauzeit",
"notEnoughMoney": "Du hast nicht genug Geld für diese Aktion.",
"buyAction": "Transportmittel kaufen",
"buildAction": "Transportmittel bauen",
"buy": "Transportmittel kaufen/bauen",
"balance": "Kontostand",
"noVehicles": "Du besitzt in dieser Region noch keine Transportmittel.",
"table": {
"type": "Typ",
"capacity": "Kapazität",
"condition": "Zustand",
"mode": "Art",
"speed": "Geschwindigkeit",
"availableFrom": "Verfügbar ab",
"status": "Status"
},
"status": {
"inUse": "In Benutzung (mit Transport verknüpft)",
"building": "Im Bau",
"free": "Verfügbar"
}
},
"stocktype": {
"wood": "Holzlager",
@@ -358,7 +405,11 @@
"Buy storage (type: field)": "Lagerplatz gekauft (Typ: Feld)",
"Buy storage (type: iron)": "Lagerplatz gekauft (Typ: Eisen)",
"Buy storage (type: stone)": "Lagerplatz gekauft (Typ: Stein)",
"Buy storage (type: wood)": "Lagerplatz gekauft (Typ: Holz)"
"Buy storage (type: wood)": "Lagerplatz gekauft (Typ: Holz)",
"create_branch": "Niederlassung gegründet",
"buy_vehicles": "Transportmittel gekauft",
"build_vehicles": "Transportmittel gebaut",
"transport": "Transport"
}
},
"newdirector": {

View File

@@ -57,7 +57,8 @@
"m-falukant": {
"logentries": "Log-Einträge",
"edituser": "Benutzer bearbeiten",
"database": "Datenbank"
"database": "Datenbank",
"mapEditor": "Karteneditor"
},
"minigames": "Minispiele",
"m-minigames": {

View File

@@ -57,7 +57,8 @@
"m-falukant": {
"logentries": "Log entries",
"edituser": "Edit user",
"database": "Database"
"database": "Database",
"mapEditor": "Map editor"
},
"minigames": "Mini games",
"m-minigames": {