facilmap/frontend/src/map/map.ejs

97 wiersze
2.8 KiB
Plaintext

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><%= padData && padData.name ? `${padData.name} – ` : ''%><%=appName%></title>
<meta name="description" content="<%= padData && padData.description || "A fully-featured OpenStreetMap-based map where markers and lines can be added with live collaboration." %>" />
<% if(!padData || (isReadOnly && padData.searchEngines)) { -%>
<meta name="robots" content="index,nofollow" />
<% } else { -%>
<meta name="robots" content="noindex,nofollow" />
<% } -%>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="fmConfig" content="<%=JSON.stringify(config)%>" />
<link rel="icon" href="<%=paths.base%>static/favicon.svg">
<link rel="mask-icon" href="<%=paths.base%>static/favicon.svg" color="#00272a">
<link rel="apple-touch-icon" href="<%=paths.base%>static/app-180.png">
<link rel="manifest" href="<%=paths.base%>manifest.json">
<link rel="search" type="application/opensearchdescription+xml" title="<%=appName%>" href="<%=paths.base%>opensearch.xml">
<style type="text/css">
html, body, #app {
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
flex-grow: 1;
}
html {
height: 100%;
}
#loading {
padding: 10px;
font-size: 24.5px;
font-weight: 500;
color: #495057;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
#loading.error {
background: #fff;
color: #d00;
}
#spinner {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50% -50%);
width: 28px;
height: 28px;
border: 3.5px solid #495057;
border-right-color: transparent;
border-radius: 50%;
animation: spinner-border .75s linear infinite;
box-sizing: border-box;
}
@keyframes spinner-border {
to { transform: rotate(360deg); }
}
</style>
<style type="text/css">
<% for (const path of styles) { -%>
@import url("<%=paths.base%><%=path%>");
<% } -%>
</style>
<% for (const path of scripts) { -%>
<script type="module" src="<%=paths.base%><%=path%>"></script>
<% } -%>
<% for (const path of preloadScripts) { -%>
<link rel="modulepreload" href="<%=paths.base%><%=path%>"/>
<% } -%>
</head>
<body>
<noscript><p><strong><%=appName%> requires JavaScript to work.</strong></p></noscript>
<div id="loading">
Loading...
<div id="spinner"></div>
</div>
<div id="app">
</div>
<script>
(function() {
window.onload = function() {
var loading = document.getElementById("loading");
if(loading) {
loading.className += " error";
loading.innerHTML = "Could not load <%=appName%>!";
}
};
})();
</script>
</body>
</html>