Skip to content

Commit

Permalink
refactor(templates): Moving resolve script into navigation header
Browse files Browse the repository at this point in the history
Signed-off-by: Vincent Boutour <[email protected]>
  • Loading branch information
ViBiOh committed Jul 27, 2022
1 parent 6de5952 commit 2dda356
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 37 deletions.
18 changes: 0 additions & 18 deletions cmd/fibr/templates/async-image.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,24 +38,6 @@
picture.alt = 'Image file';
}

function resolveScript(src, integrity, crossorigin) {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = src;
script.async = 'true';
script.onload = resolve.bind(null, true);
script.onerror = reject.bind(null, true);

if (integrity) {
script.integrity = integrity;
script.crossOrigin = crossorigin;
}

document.querySelector('head').appendChild(script);
});
}

resolveScript('/scripts/modern_detection.js?v={{ .Version }}')
.then(() => {
if (window.modernBrowser) {
Expand Down
21 changes: 2 additions & 19 deletions cmd/fibr/templates/map-modal.html
Original file line number Diff line number Diff line change
Expand Up @@ -91,28 +91,11 @@ <h2>You must enable Javascript to have interactive map with pictures.</h2>
});
}

async function addScript(src, integrity, crossorigin) {
return new Promise((resolve) => {
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = src;
script.async = 'true';
script.onload = resolve;

if (integrity) {
script.integrity = integrity;
script.crossOrigin = crossorigin;
}

document.querySelector('head').appendChild(script);
});
}

async function loadLeaflet() {
await addStyle('https://unpkg.com/[email protected]/dist/leaflet.css', 'sha512-hoalWLoI8r4UszCkZ5kL8vayOGVae1oxXe/2A4AO6J9+580uKHDO3JdHb7NzwwzK5xr/Fs0W40kiNHxM9vyTtQ==', '');
await addStyle('https://unpkg.com/[email protected]/dist/MarkerCluster.Default.css', '', '');
await addScript('https://unpkg.com/[email protected]/dist/leaflet.js', 'sha512-BB3hKbKWOc9Ez/TAwyWxNXeoV9c1v6FIeYiBieIWkpLjauysF18NzgR1MBNBXf8/KABdlkX68nAhlwcDFLGPCQ==', '');
await addScript('https://unpkg.com/[email protected]/dist/leaflet.markercluster.js', '', '');
await resolveScript('https://unpkg.com/[email protected]/dist/leaflet.js', 'sha512-BB3hKbKWOc9Ez/TAwyWxNXeoV9c1v6FIeYiBieIWkpLjauysF18NzgR1MBNBXf8/KABdlkX68nAhlwcDFLGPCQ==', '');
await resolveScript('https://unpkg.com/[email protected]/dist/leaflet.markercluster.js', '', '');
}

let map;
Expand Down
25 changes: 25 additions & 0 deletions cmd/fibr/templates/navigation.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,31 @@
{{ end }}
}

/**
* Async loading of a script
* @param {String} src URL of script
* @param {String} integrity Integrity of script
* @param {String} crossorigin Crossorigin of script
* @return Promise when script is either loaded or on error
*/
function resolveScript(src, integrity, crossorigin) {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = src;
script.async = 'true';
script.onload = resolve.bind(null, true);
script.onerror = reject.bind(null, true);

if (integrity) {
script.integrity = integrity;
script.crossOrigin = crossorigin;
}

document.querySelector('head').appendChild(script);
});
}

/**
* Handle Previous/next.
*/
Expand Down

0 comments on commit 2dda356

Please sign in to comment.