diff --git a/frontend/src/map/line-info/line-info.ts b/frontend/src/map/line-info/line-info.ts
index 05ef65bf..90f85c91 100644
--- a/frontend/src/map/line-info/line-info.ts
+++ b/frontend/src/map/line-info/line-info.ts
@@ -29,7 +29,7 @@ export default class LineInfo extends Vue {
@Prop({ type: IdType, required: true }) lineId!: ID;
- isSaving = false;
+ isDeleting = false;
showElevationPlot = false;
isMoving = false;
@@ -43,13 +43,13 @@ export default class LineInfo extends Vue {
if (!this.line || !await this.$bvModal.msgBoxConfirm(`Do you really want to remove the line “${this.line.name}”?`))
return;
- this.isSaving = true;
+ this.isDeleting = true;
try {
await this.client.deleteLine({ id: this.lineId });
} catch (err) {
showErrorToast(this, "fm-line-info-delete", "Error deleting line", err);
} finally {
- this.isSaving = false;
+ this.isDeleting = false;
}
}
diff --git a/frontend/src/map/line-info/line-info.vue b/frontend/src/map/line-info/line-info.vue
index ac068c78..8c81cba2 100644
--- a/frontend/src/map/line-info/line-info.vue
+++ b/frontend/src/map/line-info/line-info.vue
@@ -46,11 +46,14 @@
>Export as GPX route
- Edit data
+ Edit data
- Edit waypoints
+ Edit waypoints
- Remove
+
+
+ Remove
+
diff --git a/frontend/src/map/marker-info/marker-info.ts b/frontend/src/map/marker-info/marker-info.ts
index 71e3d171..c0743ae7 100644
--- a/frontend/src/map/marker-info/marker-info.ts
+++ b/frontend/src/map/marker-info/marker-info.ts
@@ -26,7 +26,7 @@ export default class MarkerInfo extends Vue {
@Prop({ type: IdType, required: true }) markerId!: ID;
- isSaving = false;
+ isDeleting = false;
get marker(): Marker | undefined {
return this.client.markers[this.markerId];
@@ -46,13 +46,13 @@ export default class MarkerInfo extends Vue {
if (!this.marker || !await this.$bvModal.msgBoxConfirm(`Do you really want to remove the marker “${this.marker.name}”?`))
return;
- this.isSaving = true;
+ this.isDeleting = true;
try {
await this.client.deleteMarker({ id: this.markerId });
} catch (err) {
showErrorToast(this, "fm-marker-info-delete", "Error deleting marker", err);
} finally {
- this.isSaving = false;
+ this.isDeleting = false;
}
}
diff --git a/frontend/src/map/marker-info/marker-info.vue b/frontend/src/map/marker-info/marker-info.vue
index 4f3474e6..de74d86b 100644
--- a/frontend/src/map/marker-info/marker-info.vue
+++ b/frontend/src/map/marker-info/marker-info.vue
@@ -24,9 +24,12 @@
Route destination
- Edit data
- Move
- Remove
+ Edit data
+ Move
+
+
+ Remove
+
diff --git a/frontend/src/map/search-result-info/search-result-info.ts b/frontend/src/map/search-result-info/search-result-info.ts
index 18ca11a0..8aa23557 100644
--- a/frontend/src/map/search-result-info/search-result-info.ts
+++ b/frontend/src/map/search-result-info/search-result-info.ts
@@ -24,6 +24,7 @@ export default class SearchResultInfo extends Vue {
@Prop({ type: Object, required: true }) result!: SearchResult | FileResult;
@Prop({ type: Boolean, default: false }) showBackButton!: boolean;
+ @Prop({ type: Boolean, default: false }) isAdding!: boolean;
renderOsmTag = renderOsmTag;
diff --git a/frontend/src/map/search-result-info/search-result-info.vue b/frontend/src/map/search-result-info/search-result-info.vue
index 78a2dbdd..14b03a08 100644
--- a/frontend/src/map/search-result-info/search-result-info.vue
+++ b/frontend/src/map/search-result-info/search-result-info.vue
@@ -25,10 +25,17 @@
-
+
+
+
+ Add to map
+
{{type.name}}
- Add to map
+
+
+ Add to map
+
Route start
diff --git a/frontend/src/map/search-results/search-results.ts b/frontend/src/map/search-results/search-results.ts
index d0cf13c2..a4ffb178 100644
--- a/frontend/src/map/search-results/search-results.ts
+++ b/frontend/src/map/search-results/search-results.ts
@@ -39,6 +39,7 @@ export default class SearchResults extends Vue {
@Prop({ type: Object, default: () => ({}) }) customTypes!: FileResultObject["types"];
activeTab = 0;
+ isAdding = false;
get isNarrow(): boolean {
return context.isNarrow;
@@ -166,6 +167,7 @@ export default class SearchResults extends Vue {
async _addToMap(data: Array<{ result: SearchResult | FileResult; type: Type }>): Promise {
this.$bvToast.hide("fm-search-result-info-add-error");
+ this.isAdding = true;
try {
const selection: SelectedItem[] = [];
@@ -223,6 +225,8 @@ export default class SearchResults extends Vue {
} catch (err) {
showErrorToast(this, "fm-search-result-info-add-error", "Error adding to map", err);
return false;
+ } finally {
+ this.isAdding = false;
}
}
diff --git a/frontend/src/map/search-results/search-results.vue b/frontend/src/map/search-results/search-results.vue
index 217c2842..86be553e 100644
--- a/frontend/src/map/search-results/search-results.vue
+++ b/frontend/src/map/search-results/search-results.vue
@@ -38,7 +38,11 @@
Select all
-
+
+
+
+ Add selected item{{activeSearchResults.length == 1 ? '' : 's'}} to map
+
Marker items as {{type.name}}
@@ -58,6 +62,7 @@
v-if="openResult"
:result="openResult"
show-back-button
+ :is-adding="isAdding"
@back="closeResult()"
@add-to-map="addToMap([openResult], $event)"
@use-as-from="useAsFrom(openResult)"