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}