Favourites: tweaking overview; fix upload of properties
This commit is contained in:
parent
59090fdb39
commit
a350410520
6 changed files with 49 additions and 25 deletions
|
@ -1,2 +1,2 @@
|
|||
SPDX-FileCopyrightText: Pieter Vander Vennet
|
||||
SPDX-License-Identifier: CC0
|
||||
SPDX-License-Identifier: CC0-1.0
|
|
@ -841,10 +841,6 @@ video {
|
|||
margin-right: 3rem;
|
||||
}
|
||||
|
||||
.mb-4 {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.mt-4 {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
@ -881,6 +877,10 @@ video {
|
|||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
.mb-4 {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.ml-1 {
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ export default class FavouritesFeatureSource extends StaticFeatureSource {
|
|||
if (!key.startsWith(FavouritesFeatureSource.prefix + id)) {
|
||||
continue
|
||||
}
|
||||
const propertyName = key.substring(minLength)
|
||||
const propertyName = key.substring(minLength).replaceAll("__", ":")
|
||||
properties[propertyName] = prefs[key]
|
||||
}
|
||||
return properties
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
import { ImmutableStore } from "../../Logic/UIEventSource";
|
||||
import { GeoOperations } from "../../Logic/GeoOperations";
|
||||
import Center from "../../assets/svg/Center.svelte";
|
||||
import { Utils } from "../../Utils";
|
||||
|
||||
export let feature: Feature;
|
||||
let properties: Record<string, string> = feature.properties;
|
||||
|
@ -30,15 +31,31 @@
|
|||
center()
|
||||
}
|
||||
|
||||
const coord = GeoOperations.centerpointCoordinates(feature)
|
||||
const distance = state.mapProperties.location.stabilized(500).mapD(({lon, lat}) => {
|
||||
let meters = Math.round(GeoOperations.distanceBetween(coord, [lon, lat]))
|
||||
|
||||
if(meters < 1000){
|
||||
return meters +"m"
|
||||
}
|
||||
|
||||
meters = Math.round(meters / 100)
|
||||
const kmStr = ""+meters
|
||||
|
||||
|
||||
return kmStr.substring(0, kmStr.length - 1)+"."+kmStr.substring(kmStr.length-1) +"km"
|
||||
})
|
||||
const titleIconBlacklist = ["osmlink","sharelink","favourite_title_icon"]
|
||||
|
||||
</script>
|
||||
|
||||
<div class="px-1 my-1 border-2 border-dashed border-gray-300 rounded flex justify-between items-center">
|
||||
<h3 on:click={() => select()} class="cursor-pointer ml-1 m-0">
|
||||
<TagRenderingAnswer config={titleConfig} layer={favConfig} selectedElement={feature} {tags} />
|
||||
<TagRenderingAnswer extraClasses="underline" config={titleConfig} layer={favConfig} selectedElement={feature} {tags} />
|
||||
</h3>
|
||||
|
||||
{$distance}
|
||||
|
||||
<div class="flex items-center">
|
||||
{#each favConfig.titleIcons as titleIconConfig}
|
||||
{#if (titleIconBlacklist.indexOf(titleIconConfig.id) < 0) && (titleIconConfig.condition?.matchesProperties(properties) ?? true) && (titleIconConfig.metacondition?.matchesProperties( { ...properties, ...state.userRelatedState.preferencesAsTags.data } ) ?? true) && titleIconConfig.IsKnown(properties)}
|
||||
|
|
|
@ -140,7 +140,7 @@
|
|||
console.log("SelectedTags is undefined, ignoring 'onSave'-event")
|
||||
return
|
||||
}
|
||||
if (layer === undefined || layer?.source === null) {
|
||||
if (layer === undefined || (layer?.source === null && layer.id !== "favourite")) {
|
||||
/**
|
||||
* This is a special, priviliged layer.
|
||||
* We simply apply the tags onto the records
|
||||
|
@ -159,7 +159,7 @@
|
|||
|
||||
dispatch("saved", { config, applied: selectedTags })
|
||||
const change = new ChangeTagAction(tags.data.id, selectedTags, tags.data, {
|
||||
theme: state.layout.id,
|
||||
theme: tags.data["_orig_theme"] ?? state.layout.id,
|
||||
changeType: "answer",
|
||||
})
|
||||
freeformInput.setData(undefined)
|
||||
|
|
|
@ -1,29 +1,30 @@
|
|||
<script lang="ts">
|
||||
import { UIEventSource } from "../../Logic/UIEventSource"
|
||||
import { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
||||
import Marker from "../Map/Marker.svelte"
|
||||
import NextButton from "../Base/NextButton.svelte"
|
||||
import { AllKnownLayouts } from "../../Customizations/AllKnownLayouts"
|
||||
import { AllSharedLayers } from "../../Customizations/AllSharedLayers"
|
||||
import { createEventDispatcher } from "svelte"
|
||||
import { UIEventSource } from "../../Logic/UIEventSource";
|
||||
import { OsmConnection } from "../../Logic/Osm/OsmConnection";
|
||||
import Marker from "../Map/Marker.svelte";
|
||||
import NextButton from "../Base/NextButton.svelte";
|
||||
import { AllKnownLayouts } from "../../Customizations/AllKnownLayouts";
|
||||
import { AllSharedLayers } from "../../Customizations/AllSharedLayers";
|
||||
import { createEventDispatcher } from "svelte";
|
||||
|
||||
export let info: { id: string; owner: number }
|
||||
export let category: "layers" | "themes"
|
||||
export let osmConnection: OsmConnection
|
||||
export let info: { id: string; owner: number };
|
||||
export let category: "layers" | "themes";
|
||||
export let osmConnection: OsmConnection;
|
||||
|
||||
let displayName = UIEventSource.FromPromise(
|
||||
osmConnection.getInformationAboutUser(info.owner)
|
||||
).mapD((response) => response.display_name)
|
||||
).mapD((response) => response.display_name);
|
||||
|
||||
let selfId = osmConnection.userDetails.mapD((ud) => ud.uid);
|
||||
|
||||
let selfId = osmConnection.userDetails.mapD((ud) => ud.uid)
|
||||
function fetchIconDescription(layerId): any {
|
||||
if (category === "themes") {
|
||||
return AllKnownLayouts.allKnownLayouts.get(layerId).icon
|
||||
return AllKnownLayouts.allKnownLayouts.get(layerId).icon;
|
||||
}
|
||||
return AllSharedLayers.getSharedLayersConfigs().get(layerId)?._layerIcon
|
||||
return AllSharedLayers.getSharedLayersConfigs().get(layerId)?._layerIcon;
|
||||
}
|
||||
|
||||
const dispatch = createEventDispatcher<{ layerSelected: string }>()
|
||||
const dispatch = createEventDispatcher<{ layerSelected: string }>();
|
||||
</script>
|
||||
|
||||
<NextButton clss="small" on:click={() => dispatch("layerSelected", info)}>
|
||||
|
@ -32,6 +33,12 @@
|
|||
</div>
|
||||
<b class="px-1">{info.id}</b>
|
||||
{#if info.owner && info.owner !== $selfId}
|
||||
(made by {$displayName ?? info.owner})
|
||||
{#if displayName}
|
||||
(made by {$displayName}
|
||||
{#if window.location.host.startsWith("127.0.0.1")}
|
||||
- {info.owner}
|
||||
{/if}
|
||||
)
|
||||
{/if}
|
||||
{/if}
|
||||
</NextButton>
|
||||
|
|
Loading…
Reference in a new issue