mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-22 06:41:46 +00:00
feat(import): selective GPX/KML element import and performance improvements
Add type-selector UI in the file import modal letting users choose which GPX elements (waypoints, routes, tracks) or KML/KMZ elements (points, paths) to import. KML LineString placemarks are now imported as path places with route_geometry. Performance improvements: - Extract MemoPlaceRow with React.memo and contentVisibility:auto to cut unnecessary re-renders in PlacesSidebar - Add weatherQueue to cap concurrent weather fetches at 3 - Replace sequential per-place deletes with a single bulkDelete API call (new DELETE /places/bulk endpoint + deletePlacesMany service) - Memoize atlas/photo/weather service calls to avoid redundant requests - Add multi-select mode to PlacesSidebar for bulk operations Add large GPX/KML/KMZ fixtures for integration/perf testing and two profiler analysis scripts under scripts/.
This commit is contained in:
@@ -10,6 +10,9 @@ const cs: Record<string, string | { name: string; category: string }[]> = {
|
||||
'common.add': 'Přidat',
|
||||
'common.loading': 'Načítání...',
|
||||
'common.import': 'Importovat',
|
||||
'common.select': 'Vybrat',
|
||||
'common.selectAll': 'Vybrat vše',
|
||||
'common.deselectAll': 'Zrušit výběr všeho',
|
||||
'common.error': 'Chyba',
|
||||
'common.unknownError': 'Neznámá chyba',
|
||||
'common.tooManyAttempts': 'Příliš mnoho pokusů. Zkuste to prosím znovu.',
|
||||
@@ -877,6 +880,8 @@ const cs: Record<string, string | { name: string; category: string }[]> = {
|
||||
'trip.toast.reservationAdded': 'Rezervace přidána',
|
||||
'trip.toast.deleted': 'Smazáno',
|
||||
'trip.confirm.deletePlace': 'Opravdu chcete toto místo smazat?',
|
||||
'trip.confirm.deletePlaces': 'Smazat {count} míst?',
|
||||
'trip.toast.placesDeleted': '{count} míst smazáno',
|
||||
|
||||
// Denní plán (Day Plan)
|
||||
'dayplan.emptyDay': 'Na tento den nejsou naplánována žádná místa',
|
||||
@@ -921,6 +926,17 @@ const cs: Record<string, string | { name: string; category: string }[]> = {
|
||||
'places.importFileError': 'Import se nezdařil',
|
||||
'places.importAllSkipped': 'Všechna místa již byla v cestě.',
|
||||
'places.gpxImported': '{count} míst importováno z GPX',
|
||||
'places.gpxImportTypes': 'Co chcete importovat?',
|
||||
'places.gpxImportWaypoints': 'Trasové body',
|
||||
'places.gpxImportRoutes': 'Trasy',
|
||||
'places.gpxImportTracks': 'Trasy GPS (s geometrií)',
|
||||
'places.gpxImportNoneSelected': 'Vyberte alespoň jeden typ k importu.',
|
||||
'places.kmlImportTypes': 'Co chcete importovat?',
|
||||
'places.kmlImportPoints': 'Body (Placemarks)',
|
||||
'places.kmlImportPaths': 'Trasy (LineStrings)',
|
||||
'places.kmlImportNoneSelected': 'Vyberte alespoň jeden typ.',
|
||||
'places.selectionCount': '{count} vybráno',
|
||||
'places.deleteSelected': 'Smazat vybrané',
|
||||
'places.kmlKmzImported': 'Importováno {count} míst z KMZ/KML',
|
||||
'places.urlResolved': 'Místo importováno z URL',
|
||||
'places.importList': 'Import seznamu',
|
||||
@@ -937,6 +953,7 @@ const cs: Record<string, string | { name: string; category: string }[]> = {
|
||||
'places.assignToDay': 'Přidat do kterého dne?',
|
||||
'places.all': 'Vše',
|
||||
'places.unplanned': 'Nezařazené',
|
||||
'places.filterTracks': 'Trasy',
|
||||
'places.search': 'Hledat místa...',
|
||||
'places.allCategories': 'Všechny kategorie',
|
||||
'places.categoriesSelected': 'kategorií',
|
||||
@@ -1698,6 +1715,7 @@ const cs: Record<string, string | { name: string; category: string }[]> = {
|
||||
'undo.reorder': 'Místa přeseřazena',
|
||||
'undo.optimize': 'Trasa optimalizována',
|
||||
'undo.deletePlace': 'Místo smazáno',
|
||||
'undo.deletePlaces': 'Místa smazána',
|
||||
'undo.moveDay': 'Místo přesunuto na jiný den',
|
||||
'undo.lock': 'Zámek místa přepnut',
|
||||
'undo.importGpx': 'Import GPX',
|
||||
|
||||
Reference in New Issue
Block a user