This commit is contained in:
Magnus Åhall 2024-11-28 18:11:14 +01:00
parent 515c748e14
commit bd4a475923
23 changed files with 1217 additions and 192 deletions

View file

@ -1,3 +0,0 @@
{{ define "page" }}
<script type="module" src="/js/{{ .VERSION }}/app.mjs"></script>
{{ end }}

47
views/pages/login.gotmpl Normal file
View file

@ -0,0 +1,47 @@
{{ define "page" }}
<link rel="stylesheet" type="text/css" href="/css/{{ .VERSION }}/login.css">
<div id="box">
<img id="logo" src="/images/v1/logo.svg">
<input type="text" id="username" placeholder="Username">
<input type="password" id="password" placeholder="Password">
<button onclick=window._login.authenticate()>Log in</button>
<div id="error"></div>
</div>
<script type="module">
import { API } from 'api';
class Login {
constructor() {
this.errorDiv = document.getElementById('error')
document.getElementById('username').focus()
const username = document.getElementById('username')
const password = document.getElementById('password')
username.addEventListener('keydown', event=>this.keyHandler(event))
password.addEventListener('keydown', event=>this.keyHandler(event))
}
authenticate() {
this.errorDiv.innerText = ''
const username = document.getElementById('username').value
const password = document.getElementById('password').value
API.authenticate(username, password)
.then(ans=>{
location.href = '/notes2'
})
.catch(e=>{
setTimeout(()=>this.errorDiv.innerText = e, 75)
})
}
keyHandler(event) {
if (event.key == 'Enter') {
this.authenticate()
}
}
}
window._login = new Login()
</script>
{{ end }}

22
views/pages/notes2.gotmpl Normal file
View file

@ -0,0 +1,22 @@
{{ define "page" }}
<script type="module">
import { h, Component, render, createRef } from 'preact'
import htm from 'htm'
{{ if .Data._dev -}}
import 'preact/debug'
import 'preact/devtools'
{{- end }}
import { Notes2 } from "/js/{{ .VERSION }}/app.mjs"
import { API } from 'api'
if (!API.hasAuthenticationToken()) {
location.href = '/login'
} else {
const html = htm.bind(h)
window._notes2 = createRef()
render(html`<${Notes2} ref=${window._notes2} />`, document.getElementById('app'))
}
</script>
{{ end }}