From 021b95344a13ec16a923b58dcadbe37776404230 Mon Sep 17 00:00:00 2001 From: Dustin Carlino Date: Fri, 15 Sep 2023 14:54:59 +0100 Subject: [PATCH] Simplify how we detect app version, and include the info on more pages --- backend/README.md | 2 +- src/lib/browse/AppVersion.svelte | 21 +++----------------- src/lib/browse/LoggedIn.svelte | 14 -------------- src/lib/common/LoggedIn.svelte | 17 ++++++++++++++++ src/lib/common/data_getter.ts | 9 --------- src/lib/common/index.ts | 30 +++++++++++++++++++++++++++++ src/pages/App.svelte | 6 +++++- src/pages/BrowseSchemes.svelte | 7 ++++--- src/pages/ChooseArea.svelte | 7 +++++-- src/pages/CriticalIssueEntry.svelte | 10 +++++++++- 10 files changed, 74 insertions(+), 49 deletions(-) delete mode 100644 src/lib/browse/LoggedIn.svelte create mode 100644 src/lib/common/LoggedIn.svelte delete mode 100644 src/lib/common/data_getter.ts diff --git a/backend/README.md b/backend/README.md index 85cc75bb7..2711bffcd 100644 --- a/backend/README.md +++ b/backend/README.md @@ -35,7 +35,7 @@ Names and regions should match above. 1. Update `GCS_BUCKET` in `backend/app.yaml` 2. Run `gcloud projects describe $PROJECT | grep projectNumber` and use the result to update `PROJECT_NUMBER` in `backend/app.yaml` -3. Create the files to deploy: `VITE_ON_GCP="true" VITE_RESOURCE_BASE="https://$PROJECT.ew.r.appspot.com/data" npm run build && cd backend && rm -rf dist && cp -R ../dist .` +3. Create the files to deploy: `VITE_RESOURCE_BASE="https://$PROJECT.ew.r.appspot.com/data" npm run build && cd backend && rm -rf dist && cp -R ../dist .` - Note we could make Cloud Build do this, but we'd have to get `wasm-pack` and other things set up there first - GH Actions will eventually trigger CI deployments for our test environment, and we've already done the work of configuring that build environment 4. `gcloud app --project=$PROJECT deploy --quiet` (takes a minute or two) diff --git a/src/lib/browse/AppVersion.svelte b/src/lib/browse/AppVersion.svelte index 5adfb547f..68d94b73c 100644 --- a/src/lib/browse/AppVersion.svelte +++ b/src/lib/browse/AppVersion.svelte @@ -1,22 +1,7 @@

@@ -33,7 +18,7 @@ Please contact Dustin and Pete - about any problems, ideas, or feedback for this site. + about any problems, ideas, or feedback for this site.

diff --git a/src/lib/browse/LoggedIn.svelte b/src/lib/browse/LoggedIn.svelte deleted file mode 100644 index 5043bcf1a..000000000 --- a/src/lib/browse/LoggedIn.svelte +++ /dev/null @@ -1,14 +0,0 @@ - - -{#if email} -

Logged in as {email}

-{:else} - -{/if} diff --git a/src/lib/common/LoggedIn.svelte b/src/lib/common/LoggedIn.svelte new file mode 100644 index 000000000..f6bfd148d --- /dev/null +++ b/src/lib/common/LoggedIn.svelte @@ -0,0 +1,17 @@ + + +{#if appVersion() == "Test (on GCP)"} + {#if email} +

Logged in as {email}

+ {:else} + + {/if} +{/if} diff --git a/src/lib/common/data_getter.ts b/src/lib/common/data_getter.ts deleted file mode 100644 index 62079a24c..000000000 --- a/src/lib/common/data_getter.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { FeatureCollection, Polygon } from "geojson"; -import authoritiesUrl from "../../../assets/authorities.geojson?url"; - -export async function getAuthoritiesGeoJson(): Promise< - FeatureCollection -> { - const resp = await fetch(authoritiesUrl); - return await resp.json(); -} diff --git a/src/lib/common/index.ts b/src/lib/common/index.ts index 8e0344ea8..72c4c4049 100644 --- a/src/lib/common/index.ts +++ b/src/lib/common/index.ts @@ -1,3 +1,6 @@ +import type { FeatureCollection, Polygon } from "geojson"; +import authoritiesUrl from "../../../assets/authorities.geojson?url"; + export { default as BaselayerSwitcher } from "./BaselayerSwitcher.svelte"; export { default as CollapsibleCard } from "./CollapsibleCard.svelte"; export { default as ColorLegend } from "./ColorLegend.svelte"; @@ -9,7 +12,34 @@ export { default as HelpButton } from "./HelpButton.svelte"; export { default as InteractiveLayer } from "./InteractiveLayer.svelte"; export { default as Layout } from "./Layout.svelte"; export { default as Legend } from "./Legend.svelte"; +export { default as LoggedIn } from "./LoggedIn.svelte"; export { default as MapLibreMap } from "./MapLibreMap.svelte"; export { default as Modal } from "./Modal.svelte"; export { default as StreetViewController } from "./StreetViewController.svelte"; export { default as ZoomOutMap } from "./ZoomOutMap.svelte"; + +export async function getAuthoritiesGeoJson(): Promise< + FeatureCollection +> { + const resp = await fetch(authoritiesUrl); + return await resp.json(); +} + +export function appVersion(): string { + if (window.location.hostname == "localhost") { + return "Local development"; + } else if (window.location.hostname == "acteng.github.io") { + let parts = window.location.pathname.split("/"); + if (parts.length == 3 && parts[0] == "" && parts[1] == "atip") { + return "Current development (public)"; + } + if (parts.length == 4 && parts[0] == "" && parts[1] == "atip") { + return `Development branch: ${parts[2]}`; + } + } else if (window.location.hostname.endsWith(".appspot.com")) { + // TODO Include a git commit, build timestamp, or similar + return "Test (on GCP)"; + } + + return "Unknown"; +} diff --git a/src/pages/App.svelte b/src/pages/App.svelte index d97350424..489a2509a 100644 --- a/src/pages/App.svelte +++ b/src/pages/App.svelte @@ -6,14 +6,16 @@ import type { FeatureCollection, Polygon } from "geojson"; import BoundaryLayer from "lib/BoundaryLayer.svelte"; import { + appVersion, BaselayerSwitcher, CollapsibleCard, + getAuthoritiesGeoJson, Layout, Legend, + LoggedIn, MapLibreMap, ZoomOutMap, } from "lib/common"; - import { getAuthoritiesGeoJson } from "lib/common/data_getter"; import HoverLayer from "lib/draw/HoverLayer.svelte"; import InterventionLayer from "lib/draw/InterventionLayer.svelte"; import Toolbox from "lib/draw/Toolbox.svelte"; @@ -115,6 +117,8 @@ Instructions +

App version: {appVersion()}

+

{schemaTitle(schema)} mode

{authorityName}

diff --git a/src/pages/BrowseSchemes.svelte b/src/pages/BrowseSchemes.svelte index e37294b3d..83ee2e8b8 100644 --- a/src/pages/BrowseSchemes.svelte +++ b/src/pages/BrowseSchemes.svelte @@ -7,14 +7,15 @@ import Filters from "lib/browse/Filters.svelte"; import LayerControls from "lib/browse/LayerControls.svelte"; import LoadRemoteSchemeData from "lib/browse/LoadRemoteSchemeData.svelte"; - import LoggedIn from "lib/browse/LoggedIn.svelte"; import SchemeCard from "lib/browse/SchemeCard.svelte"; import authorityNamesList from "../../assets/authority_names.json"; import "../style/main.css"; import { + appVersion, FileInput, InteractiveLayer, Layout, + LoggedIn, MapLibreMap, ZoomOutMap, } from "lib/common"; @@ -96,9 +97,9 @@
- {#if import.meta.env.VITE_ON_GCP === "true"} + + {#if appVersion() == "Test (on GCP)"} - {/if} diff --git a/src/pages/ChooseArea.svelte b/src/pages/ChooseArea.svelte index 58286e7f0..a2388d3e5 100644 --- a/src/pages/ChooseArea.svelte +++ b/src/pages/ChooseArea.svelte @@ -13,8 +13,11 @@ import { Map, type MapGeoJSONFeature } from "maplibre-gl"; import { onMount } from "svelte"; import "maplibre-gl/dist/maplibre-gl.css"; - import { FileInput, InteractiveLayer } from "lib/common"; - import { getAuthoritiesGeoJson } from "lib/common/data_getter"; + import { + FileInput, + getAuthoritiesGeoJson, + InteractiveLayer, + } from "lib/common"; import { bbox, hoveredToggle } from "lib/maplibre"; import About from "lib/sidebar/About.svelte"; import { map as mapStore } from "stores"; diff --git a/src/pages/CriticalIssueEntry.svelte b/src/pages/CriticalIssueEntry.svelte index ef352d96c..34fda95c0 100644 --- a/src/pages/CriticalIssueEntry.svelte +++ b/src/pages/CriticalIssueEntry.svelte @@ -4,7 +4,13 @@ import "../style/main.css"; import type { LngLat } from "maplibre-gl"; import { onMount } from "svelte"; - import { Layout, MapLibreMap, StreetViewController } from "../lib/common"; + import { + appVersion, + Layout, + LoggedIn, + MapLibreMap, + StreetViewController, + } from "../lib/common"; import BaselayerSwitcher from "../lib/critical_entry/BaselayerSwitcher.svelte"; import Form from "../lib/critical_entry/Form.svelte"; import Pin from "../lib/critical_entry/Pin.svelte"; @@ -30,6 +36,8 @@

Critical issue entry

+

App version: {appVersion()}

+ {#if markerPosition}
{:else}