Add an info control that credits the app and links the DTK25 sources.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2
-2
@@ -5,8 +5,8 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||||||
<meta name="theme-color" content="#1e3328" />
|
<meta name="theme-color" content="#1e3328" />
|
||||||
<title>Karte</title>
|
<title>Karte</title>
|
||||||
<script type="module" crossorigin src="/assets/index-DjxrnCdH.js"></script>
|
<script type="module" crossorigin src="/assets/index-BRvZR5R_.js"></script>
|
||||||
<link rel="stylesheet" crossorigin href="/assets/index-BIwdVEBe.css">
|
<link rel="stylesheet" crossorigin href="/assets/index-BfT1SDCl.css">
|
||||||
<link rel="manifest" href="/manifest.webmanifest"></head>
|
<link rel="manifest" href="/manifest.webmanifest"></head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
if(!self.define){let e,i={};const n=(n,s)=>(n=new URL(n+".js",s).href,i[n]||new Promise(i=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=i,document.head.appendChild(e)}else e=n,importScripts(n),i()}).then(()=>{let e=i[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e}));self.define=(s,r)=>{const o=e||("document"in self?document.currentScript.src:"")||location.href;if(i[o])return;let t={};const c=e=>n(e,o),l={module:{uri:o},exports:t,require:c};i[o]=Promise.all(s.map(e=>l[e]||c(e))).then(e=>(r(...e),t))}}define(["./workbox-9c191d2f"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"index.html",revision:"c7a61eb7e4c6389e27e974a5f79dc66e"},{url:"assets/workbox-window.prod.es5-Bd17z0YL.js",revision:null},{url:"assets/index-DjxrnCdH.js",revision:null},{url:"assets/index-BIwdVEBe.css",revision:null},{url:"icon-192.png",revision:"b9806dfbc0396e0ce5c1934273075639"},{url:"icon-512.png",revision:"847487db4af2d4a5e51e9b3e1fdcb649"},{url:"uebersicht.json",revision:"04c71c9ace32f1fbd7eaf16a9b5c8512"},{url:"manifest.webmanifest",revision:"2a757cea886716141758fc7b936d45c2"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
|
if(!self.define){let e,i={};const s=(s,n)=>(s=new URL(s+".js",n).href,i[s]||new Promise(i=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=i,document.head.appendChild(e)}else e=s,importScripts(s),i()}).then(()=>{let e=i[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e}));self.define=(n,r)=>{const o=e||("document"in self?document.currentScript.src:"")||location.href;if(i[o])return;let t={};const c=e=>s(e,o),l={module:{uri:o},exports:t,require:c};i[o]=Promise.all(n.map(e=>l[e]||c(e))).then(e=>(r(...e),t))}}define(["./workbox-9c191d2f"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"index.html",revision:"70dde2d51ee41730c4cb9750452d07a3"},{url:"assets/workbox-window.prod.es5-Bd17z0YL.js",revision:null},{url:"assets/index-BfT1SDCl.css",revision:null},{url:"assets/index-BRvZR5R_.js",revision:null},{url:"icon-192.png",revision:"b9806dfbc0396e0ce5c1934273075639"},{url:"icon-512.png",revision:"847487db4af2d4a5e51e9b3e1fdcb649"},{url:"uebersicht.json",revision:"04c71c9ace32f1fbd7eaf16a9b5c8512"},{url:"manifest.webmanifest",revision:"2a757cea886716141758fc7b936d45c2"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
|
||||||
|
|||||||
@@ -136,6 +136,14 @@ button.icon-button[aria-expanded="true"] .strike {
|
|||||||
gap: 8px;
|
gap: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.info p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info a {
|
||||||
|
color: #1d4e89;
|
||||||
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export function mountScreen(
|
|||||||
<div class="head-actions">
|
<div class="head-actions">
|
||||||
<button type="button" class="secondary icon-button fold-toggle" aria-expanded="false" aria-controls="ziele" aria-label="Ziele" title="Ziele">${flagIcon}${strikeIcon}</button>
|
<button type="button" class="secondary icon-button fold-toggle" aria-expanded="false" aria-controls="ziele" aria-label="Ziele" title="Ziele">${flagIcon}${strikeIcon}</button>
|
||||||
<button type="button" class="secondary icon-button einstellungen-toggle" aria-expanded="false" aria-controls="einstellungen" aria-label="Einstellungen" title="Einstellungen">${gearIcon}${strikeIcon}</button>
|
<button type="button" class="secondary icon-button einstellungen-toggle" aria-expanded="false" aria-controls="einstellungen" aria-label="Einstellungen" title="Einstellungen">${gearIcon}${strikeIcon}</button>
|
||||||
|
<button type="button" class="secondary icon-button info-toggle" aria-expanded="false" aria-controls="info" aria-label="Info" title="Info">${infoIcon}${strikeIcon}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="ziele" class="fold" hidden>
|
<div id="ziele" class="fold" hidden>
|
||||||
@@ -43,6 +44,11 @@ export function mountScreen(
|
|||||||
</div>
|
</div>
|
||||||
<button type="button" class="secondary wipe">Ganzen Cache löschen</button>
|
<button type="button" class="secondary wipe">Ganzen Cache löschen</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="info" class="fold info" hidden>
|
||||||
|
<p><a href="https://gitea.neitzel.de/konrad/karten" target="_blank" rel="noopener noreferrer">Karten</a> © 2026 <a href="mailto:konrad@neitzel.de" target="_blank" rel="noopener noreferrer">Konrad Neitzel</a></p>
|
||||||
|
<p>Karten: <a href="https://hvbg.hessen.de/landesvermessung/geotopographie/karten/dtk25" target="_blank" rel="noopener noreferrer">DTK25 Karten von Hessen</a></p>
|
||||||
|
<p><a href="https://hvbg.hessen.de/geoinformation/open-data" target="_blank" rel="noopener noreferrer">Open Data Hinweis der Karten</a></p>
|
||||||
|
</div>
|
||||||
<p class="notice" role="status" hidden></p>
|
<p class="notice" role="status" hidden></p>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
@@ -62,6 +68,8 @@ export function mountScreen(
|
|||||||
const foldToggle = panel.querySelector<HTMLButtonElement>(".fold-toggle");
|
const foldToggle = panel.querySelector<HTMLButtonElement>(".fold-toggle");
|
||||||
const einstellungenFold = panel.querySelector<HTMLElement>("#einstellungen");
|
const einstellungenFold = panel.querySelector<HTMLElement>("#einstellungen");
|
||||||
const einstellungenToggle = panel.querySelector<HTMLButtonElement>(".einstellungen-toggle");
|
const einstellungenToggle = panel.querySelector<HTMLButtonElement>(".einstellungen-toggle");
|
||||||
|
const infoFold = panel.querySelector<HTMLElement>("#info");
|
||||||
|
const infoToggle = panel.querySelector<HTMLButtonElement>(".info-toggle");
|
||||||
const form = panel.querySelector("form");
|
const form = panel.querySelector("form");
|
||||||
const gitter = panel.querySelector<HTMLInputElement>('input[name="gitter"]');
|
const gitter = panel.querySelector<HTMLInputElement>('input[name="gitter"]');
|
||||||
const rechtswert = panel.querySelector<HTMLInputElement>('input[name="rechtswert"]');
|
const rechtswert = panel.querySelector<HTMLInputElement>('input[name="rechtswert"]');
|
||||||
@@ -84,6 +92,8 @@ export function mountScreen(
|
|||||||
!foldToggle ||
|
!foldToggle ||
|
||||||
!einstellungenFold ||
|
!einstellungenFold ||
|
||||||
!einstellungenToggle ||
|
!einstellungenToggle ||
|
||||||
|
!infoFold ||
|
||||||
|
!infoToggle ||
|
||||||
!form ||
|
!form ||
|
||||||
!gitter ||
|
!gitter ||
|
||||||
!rechtswert ||
|
!rechtswert ||
|
||||||
@@ -141,6 +151,12 @@ export function mountScreen(
|
|||||||
einstellungenToggle.setAttribute("aria-expanded", open ? "true" : "false");
|
einstellungenToggle.setAttribute("aria-expanded", open ? "true" : "false");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
infoToggle.addEventListener("click", () => {
|
||||||
|
const open = infoFold.hasAttribute("hidden");
|
||||||
|
infoFold.toggleAttribute("hidden", !open);
|
||||||
|
infoToggle.setAttribute("aria-expanded", open ? "true" : "false");
|
||||||
|
});
|
||||||
|
|
||||||
standortButton.addEventListener("click", () => session.centerOnStandort());
|
standortButton.addEventListener("click", () => session.centerOnStandort());
|
||||||
downloadKnopf.addEventListener("change", () => {
|
downloadKnopf.addEventListener("change", () => {
|
||||||
session.setDownloadKnopf(downloadKnopf.checked);
|
session.setDownloadKnopf(downloadKnopf.checked);
|
||||||
@@ -245,4 +261,6 @@ const gearIcon = `<svg class="glyph" viewBox="0 0 24 24" aria-hidden="true"><pat
|
|||||||
|
|
||||||
const downloadIcon = `<svg class="glyph" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M11 2.5h2v9.1l2.9-2.9 1.4 1.4L12 15.9 6.7 10.1l1.4-1.4 2.9 2.9V2.5zM4.2 18.2h15.6V21H4.2z"/></svg>`;
|
const downloadIcon = `<svg class="glyph" viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M11 2.5h2v9.1l2.9-2.9 1.4 1.4L12 15.9 6.7 10.1l1.4-1.4 2.9 2.9V2.5zM4.2 18.2h15.6V21H4.2z"/></svg>`;
|
||||||
|
|
||||||
|
const infoIcon = `<svg class="glyph" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="8.25" fill="none" stroke="currentColor" stroke-width="1.8"/><circle cx="12" cy="8.2" r="1.15" fill="currentColor"/><rect x="11.1" y="10.55" width="1.8" height="5.7" fill="currentColor"/></svg>`;
|
||||||
|
|
||||||
const strikeIcon = `<svg class="strike" viewBox="0 0 24 24" aria-hidden="true"><line x1="3" y1="21" x2="21" y2="3" stroke="#e7e1d4" stroke-width="4.5" stroke-linecap="round"/><line x1="3" y1="21" x2="21" y2="3" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg>`;
|
const strikeIcon = `<svg class="strike" viewBox="0 0 24 24" aria-hidden="true"><line x1="3" y1="21" x2="21" y2="3" stroke="#e7e1d4" stroke-width="4.5" stroke-linecap="round"/><line x1="3" y1="21" x2="21" y2="3" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg>`;
|
||||||
|
|||||||
Reference in New Issue
Block a user