add "share" link

This commit is contained in:
Matt Walsh
2024-01-08 10:12:52 -06:00
parent 81561f75a1
commit 53ad8eb317
3 changed files with 82 additions and 37 deletions

View File

@@ -4,6 +4,7 @@ import {
message as navMessage, isPlaying, resize, resetStatuses, latLonReceived, stopAutoRefreshTimer, registerRefreshData, message as navMessage, isPlaying, resize, resetStatuses, latLonReceived, stopAutoRefreshTimer, registerRefreshData,
} from './modules/navigation.mjs'; } from './modules/navigation.mjs';
import { round2 } from './modules/utils/units.mjs'; import { round2 } from './modules/utils/units.mjs';
import { createLink, readLink } from './modules/share.mjs';
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
init(); init();

View File

@@ -0,0 +1,40 @@
document.addEventListener('DOMContentLoaded', () => init());
const init = () => {
// add action to existing link
document.querySelector('#share-link').addEventListener('click', createLink);
};
const createLink = (e) => {
// cancel default event (click on hyperlink)
e.preventDefault();
// get all checkboxes on page
const checkboxes = document.querySelectorAll('input[type=checkbox]');
// list to receive checkbox statuses
const queryStringElements = {};
[...checkboxes].forEach((elem) => {
if (elem?.id) {
queryStringElements[elem.id] = elem?.checked ?? false;
}
});
// add the location string
queryStringElements.txtAddress = document.querySelector('#txtAddress')?.value ?? '';
const queryString = (new URLSearchParams(queryStringElements)).toString();
const url = new URL(`?${queryString}`, document.location.href);
console.log(queryStringElements);
console.log(queryString);
console.log(url.toString());
};
const readLink = false;
export {
createLink,
readLink,
};

View File

@@ -151,6 +151,10 @@
<div id='settings'> <div id='settings'>
</div> </div>
<div class='info'>
<a href='' id='share-link'>Share this configuration</a>
</div>
<div id="divInfo"> <div id="divInfo">
Location: <span id="spanCity"></span> <span id="spanState"></span><br /> Location: <span id="spanCity"></span> <span id="spanState"></span><br />
Station Id: <span id="spanStationId"></span><br /> Station Id: <span id="spanStationId"></span><br />