Noah Petherbridge
8906e89a51
Move some chat modals into external components: * LoginModal * ExplicitOpenModal * ReportModal * The Photo Modal was hoisted into the main index.html page, because it is not a Vue component and relied on global onclick handlers and the DOM. Spin off some external JS modules: * isAppleWebkit moved to lib/browsers.js * Local Storage management centralized and moved to lib/LocalStorage.js
57 lines
2.1 KiB
HTML
57 lines
2.1 KiB
HTML
{{define "index"}}
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<link rel="icon" href="/favicon.ico">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link rel="stylesheet" type="text/css" href="/static/css/bulma.min.css">
|
|
<link rel="stylesheet" type="text/css" href="/static/css/bulma-prefers-dark.css?{{.CacheHash}}">
|
|
<link rel="stylesheet" href="/static/fontawesome-free-6.1.2-web/css/all.css">
|
|
<link rel="stylesheet" type="text/css" href="/static/css/chat.css?{{.CacheHash}}">
|
|
<title>{{.Config.Title}}</title>
|
|
</head>
|
|
<body>
|
|
|
|
<!-- Photo Detail Modal -->
|
|
<div class="modal" id="photo-modal">
|
|
<div class="modal-background" onclick="document.querySelector('#photo-modal').classList.remove('is-active')"></div>
|
|
<div class="modal-content photo-modal">
|
|
<div class="image is-fullwidth">
|
|
<img id="modalImage">
|
|
</div>
|
|
</div>
|
|
<button class="modal-close is-large" aria-label="close" onclick="document.querySelector('#photo-modal').classList.remove('is-active')"></button>
|
|
</div>
|
|
|
|
<div id="app"></div>
|
|
|
|
<!-- BareRTC constants injected by IndexPage route -->
|
|
<script type="text/javascript">
|
|
const Branding = {{.Config.Branding}};
|
|
const PublicChannels = {{.Config.GetChannels}};
|
|
const WebsiteURL = "{{.Config.WebsiteURL}}";
|
|
const PermitNSFW = {{AsJS .Config.PermitNSFW}};
|
|
const TURN = {{.Config.TURN}};
|
|
const WebhookURLs = {{.Config.WebhookURLs}};
|
|
const VIP = {{.Config.VIP}};
|
|
const UserJWTToken = {{.JWTTokenString}};
|
|
const UserJWTValid = {{if .JWTAuthOK}}true{{else}}false{{end}};
|
|
const UserJWTClaims = {{.JWTClaims.ToJSON}};
|
|
const CachedBlocklist = {{.CachedBlocklist}};
|
|
|
|
// Show the photo detail modal.
|
|
function setModalImage(url) {
|
|
let $modalImg = document.querySelector("#modalImage"),
|
|
$modal = document.querySelector("#photo-modal");
|
|
$modalImg.src = url;
|
|
$modal.classList.add("is-active");
|
|
return false;
|
|
}
|
|
</script>
|
|
|
|
<script type="module" src="/src/main.js"></script>
|
|
</body>
|
|
</html>
|
|
{{end}}
|