<script>
import DetailsLink from '../components/DetailsLink.svelte';
+ import PageLink from '../components/PageLink.svelte';
+ import {
+ formatPlaceType, osmLink, formatAdminLevel, formatDistance
+ } from '../lib/helpers.js';
export let addressLine;
export let bDistanceInMeters;
$: bAddressLineUsed = addressLine.isaddress;
- import {
- formatPlaceType, osmLink, formatAdminLevel, formatDistance
- } from '../lib/helpers.js';
-
</script>
<tr class:notused={!bAddressLineUsed}>
- <td class="name">
+ <td class="name font-weight-bold">
{#if addressLine.localname}
{addressLine.localname}
{:else}
<td>{addressLine.rank_address}</td>
<td>{formatAdminLevel(addressLine.admin_level)}</td>
<td>{@html formatDistance(addressLine.distance, bDistanceInMeters)}</td>
- <td>{#if addressLine.osm_id}<DetailsLink feature={addressLine}>details</DetailsLink>{/if}</td>
+ <td>
+ {#if addressLine.osm_id}
+ <DetailsLink feature={addressLine}>details</DetailsLink>
+ {:else if addressLine.type.match(/^country/)}
+ <PageLink page='search', params_hash={{ country: addressLine.localname }}>search by name</PageLink>
+ {:else if addressLine.type === 'postcode'}
+ <PageLink page='search', params_hash={{ postalcode: addressLine.localname }}>search by name</PageLink>
+ {/if}
+ </td>
</tr>
<style>
.notused {
color:#ddd;
}
- .name{
- font-weight: bold;
- }
.noname{
color:#800;
}
<script>
-import { refresh_page } from '../lib/stores.js';
+ import { refresh_page } from '../lib/stores.js';
-export let page;
-export let extra_classes = '';
+ export let page;
+ export let params_hash = {};
+ export let extra_classes = '';
+ let href = page + '.html';
-function handleClick() {
- refresh_page(page);
-}
+ function handleClick() {
+ refresh_page(page, new URLSearchParams(params_hash));
+ }
+
+ $: {
+ let param_str = new URLSearchParams(params_hash).toString();
+ href = page + '.html' + (param_str ? '?' : '') + param_str;
+ }
</script>
-<a on:click|preventDefault|stopPropagation={handleClick} href="{page}.html" class={extra_classes}><slot></slot></a>
+<a on:click|preventDefault|stopPropagation={handleClick} href={href} class={extra_classes}><slot></slot></a>
// Any over 15 are invalid data in OSM anyway
function formatAdminLevel(iLevel) {
- return (iLevel < 15 ? iLevel : '');
+ return (iLevel && iLevel < 15 ? iLevel : '');
}
function formatDistance(fDistance, bInMeters) {