Compare commits

..

No commits in common. "4f7acf9ffbfcc555880b8650b01428cd0076135c" and "ec413b6e5c6ef4befa84bce904fc5e27f22fb7b6" have entirely different histories.

7 changed files with 39 additions and 40 deletions

View File

@ -1,14 +0,0 @@
<script lang="ts">
import LookupCard from "./LookupCard.svelte";
const LookupCardConfig = {
title: "Find By Headcode",
helpText: "",
formAction: "/train",
placeholder: "enter headcode",
maxLen: 4,
fieldName: "headcode",
}
</script>
<LookupCard config={LookupCardConfig} />

View File

@ -1,2 +1,2 @@
export const version: string = "2025.05.1";
export const version: string = "2025.03.5";
export const versionTag: string = "";

View File

@ -8,7 +8,6 @@
import LookupCard from "$lib/cards/LookupCard.svelte";
import NearToMeCard from "$lib/cards/NearToMeCard.svelte";
import QuickLinkCard from "$lib/cards/QuickLinkCard.svelte";
import FindByHeadcodeCard from "$lib/cards/FindByHeadcodeCard.svelte";
const title = "OwlBoard";
const lookupCards: LookupCardConfig[] = [
{
@ -18,15 +17,23 @@
placeholder: "enter crs/tiploc",
maxLen: 7,
fieldName: "station",
}
},
{
title: "Timetable & PIS",
helpText: "",
formAction: "/train",
placeholder: "enter headcode",
maxLen: 4,
fieldName: "headcode",
},
];
onMount(async () => {
const featureSupport = featureDetect();
if (!featureSupport.critical) {
toast.error("Use a newer browser or OwlBoard might not work properly. See `Menu > Statistics` for more information.");
toast.error("Your browser is missing critical features, OwlBoard might not work properly. See `Menu > Statistics` for more information.");
} else if (!featureSupport.nice) {
toast.error("Use a newer browser for the best experience, see `Menu > Statistics` for more information.");
toast.error("Your browser is missing some features, see `Menu > Statistics` for more information.");
}
});
</script>
@ -35,7 +42,6 @@
{#each lookupCards as config}
<LookupCard {config} />
{/each}
<FindByHeadcodeCard />
<NearToMeCard />
<QuickLinkCard />

View File

@ -17,10 +17,6 @@
malicious activity. See <a href="#datasharing">Data Sharing</a> for details on how
we may share this data.
</p>
<p>
With the exception of sending emails, all data is held - and always remains within -
the United Kingdom.
</p>
<h3>Telemetry</h3>
<p>
If you opt-in to Telemetry, you will share your IP address and information about the
@ -29,9 +25,6 @@
your <a href="/more/settings">Settings</a>. All of the anonymised data can be viewed
at: <a target="_blank" href="https://liwan.fjla.uk">liwan.fjla.uk</a> at any time.
</p>
<p>
All of the data that is stored is held within the United Kingdom.
</p>
<p>
Telemetry data is used to identify which areas of the webapp are used most frequently
and where improvements need to be made.
@ -43,11 +36,6 @@
email will be sent before your email address is anonymised. For example, if your
email address is hello@owlboard.info, it will be anonymized to @owlboard.info.
</p>
<p>
OwlBoard emails are sent using Proton Mail, a privacy-first email service based in
Switzerland. To facilitate this, your email address will be securely sent to
Proton Mail securely.
</p>
<p>
You will be assigned a unique identifier which will be stored alongside your
anonymised email address as well as in your browser. This is how the service
@ -68,7 +56,10 @@
<p>
CrowdSec anonymizes and processes data in accordance with its own privacy policy, which
is available for review here. We recommend reviewing their policy to understand how
they handle any data collected.
they handle your data.
</p>
<p>
</p>
</div>

View File

@ -43,9 +43,9 @@
function send() {
toast.promise(request(), {
loading: "Sending email...",
success: "Sent, check your inbox",
error: "Error sending email",
loading: "Contacting Server...",
success: "Request Answered.",
error: "Unable to contact server.",
});
}

View File

@ -9,7 +9,6 @@
import type { OB_Pis_FullObject } from "@owlboard/ts-types";
import Card from "$lib/cards/Card.svelte";
import type { CardConfig } from "$lib/cards/Card.types";
import FindByHeadcodeCard from "$lib/cards/FindByHeadcodeCard.svelte";
const title = "PIS Finder";
let entryPIS = "";
@ -75,7 +74,7 @@
onMount(() => {
if ($uuid == null || $uuid == "") {
toast("You must register to see results", {
toast("This feature will soon require registration. Register in the menu.", {
duration: 3000,
});
}
@ -97,6 +96,14 @@
onRefresh: () => {},
refreshing: false,
}
const findByHeadcodeCard: CardConfig = {
title: "Find by Headcode",
showHelp: true,
helpText: "Find by Headcode can be found on the homepage",
showRefresh: false,
onRefresh: () => {},
refreshing: false,
}
const findByStartEndCard: CardConfig = {
title: "Find by Start/End CRS",
showHelp: true,
@ -140,7 +147,12 @@
</Card>
<button id="reset" type="reset" on:click={reset}>Reset</button>
{:else}
<FindByHeadcodeCard />
<Card config={findByHeadcodeCard}>
<span class="important">Find by Headcode from the homepage</span>
<br>
The tools below are more helpful if you've been diverted or are not starting your journey at your scheduled origin.
<br><br>
</Card>
<Card config={findByStartEndCard}>
<form on:submit={findByStartEnd}>
<input type="text" maxlength="3" pattern="^[A-Za-z]+$" autocomplete="off" placeholder="Start" required bind:value={entryStartCRS} />
@ -162,6 +174,10 @@
<Nav />
<style>
.important {
font-weight: 900;
color: whitesmoke;
}
p {
margin-left: 10px;
margin-right: 10px;

View File

@ -49,7 +49,7 @@
load();
if ($uuid == null || $uuid == "") {
toast("Register to see PIS codes", {
toast("PIS Codes will soon be hidden for unregistered users. Register in the menu.", {
duration: 3000,
});
}