X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/2a6511b06a68d59c9308e19d73b10ce594627fe7..161644ac1e2a9ec708e72bc5f33b61657488be2b:/src/pages/DetailsPage.svelte diff --git a/src/pages/DetailsPage.svelte b/src/pages/DetailsPage.svelte index 9d72944..18b1592 100644 --- a/src/pages/DetailsPage.svelte +++ b/src/pages/DetailsPage.svelte @@ -54,6 +54,14 @@ } } + function place_has_keywords(aThisPlace) { + // Return false if Nominatim API sends 'keywords: { name: [], address: [] }' + return ( + aThisPlace.keywords && aThisPlace.keywords.name && aThisPlace.keywords.address + && (aThisPlace.keywords.name.length > 0 || aThisPlace.keywords.address.length > 0) + ); + } + $: { let pageinfo = $page; if (pageinfo.tab === 'details') { @@ -61,6 +69,7 @@ base_url = window.location.search; } } + $: reverse_only = Nominatim_Config.Reverse_Only;
@@ -76,7 +85,7 @@ link to this page -
+
@@ -86,7 +95,7 @@ {#if (Array.isArray(aPlace.names)) } - No Name + No Name {:else} {/if} @@ -156,56 +165,66 @@ {/if} {#if aPlace.linked_places} -

Linked Places

+

Linked Places

{#each aPlace.linked_places as addressLine} {/each} {/if} -

Keywords

- {#if aPlace.keywords} -

Name Keywords

- {#each aPlace.keywords.name as keyword} - - {formatKeywordToken(keyword.token)} - {#if keyword.id} - word id: {keyword.id} + {#if !reverse_only} +

Keywords

+ {#if api_request_params.keywords} + + {#if place_has_keywords(aPlace)} +

Name Keywords

+ {#each aPlace.keywords.name as keyword} + + {formatKeywordToken(keyword.token)} + {#if keyword.id} + word id: {keyword.id} + {/if} + + {/each} + + {#if aPlace.keywords.address} +

Address Keywords

+ {#each aPlace.keywords.address as keyword} + + {formatKeywordToken(keyword.token)} + {#if keyword.id} + word id: {keyword.id} + {/if} + + {/each} {/if} + {:else} + Place has no keywords + {/if} + {:else} + + + display keywords + - {/each} - - {#if aPlace.keywords.address} -

Address Keywords

- {#each aPlace.keywords.address as keyword} - - {formatKeywordToken(keyword.token)} - {#if keyword.id} - word id: {keyword.id} - {/if} - - {/each} {/if} - {:else} - - - display keywords - - {/if} -

Parent Of

- {#if aPlace.hierarchy} - - {#each Object.keys(aPlace.hierarchy) as type} -

{type}

- {#each aPlace.hierarchy[type] as line} - - {/each} - {/each} +

Parent Of

+ {#if api_request_params.hierarchy} + {#if aPlace.hierarchy && typeof (aPlace.hierarchy) === 'object' && Object.keys(aPlace.hierarchy).length} + {#each Object.keys(aPlace.hierarchy) as type} +

{type}

+ {#each aPlace.hierarchy[type] as line} + + {/each} + {/each} - {#if Object.keys(aPlace.hierarchy) > 500} -

There are more child objects which are not shown.

+ {#if Object.keys(aPlace.hierarchy) > 500} +

There are more child objects which are not shown.

+ {/if} + {:else} + Place is not parent of other places {/if} {:else}