Initial commit
This commit is contained in:
commit
b7cd308016
7 changed files with 400 additions and 0 deletions
40
static/css/main.css
Normal file
40
static/css/main.css
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
body {
|
||||
font-family: sans-serif;
|
||||
margin: 32px;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.new {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
.sites {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, min-content);
|
||||
grid-gap: 8px 16px;
|
||||
margin-top: 32px;
|
||||
|
||||
div {
|
||||
white-space: nowrap;
|
||||
|
||||
&.dead {
|
||||
color: #aaa;
|
||||
}
|
||||
}
|
||||
|
||||
.header {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.line {
|
||||
grid-column: 1 / -1;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.stop {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
63
static/html/index.html
Normal file
63
static/html/index.html
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
||||
<link rel="stylesheet" type="text/css" href="/css/main.css">
|
||||
</head>
|
||||
<script>
|
||||
function newSite() {
|
||||
const url = document.querySelector('.new.url').value
|
||||
const watch = document.querySelector('.new.watch').value
|
||||
fetch('/start', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({url, watch}),
|
||||
})
|
||||
.then(() => location.reload())
|
||||
|
||||
}
|
||||
|
||||
function stopSite(uuid) {
|
||||
fetch(`/stop/${uuid}`)
|
||||
.then(() => location.reload())
|
||||
}
|
||||
|
||||
function siteStatus() {
|
||||
fetch('/sites')
|
||||
.then(data => data.json())
|
||||
.then(json => {
|
||||
for (const uuid of Object.keys(json.Sites)) {
|
||||
const site = json.Sites[uuid]
|
||||
if (site.StopLoop) {
|
||||
document.querySelector(`.url[data-uuid="${uuid}"]`)?.classList.add('dead')
|
||||
document.querySelector(`.watch[data-uuid="${uuid}"]`)?.classList.add('dead')
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
setInterval(siteStatus, 2000)
|
||||
</script>
|
||||
|
||||
<body>
|
||||
<input type="text" class="new url" placeholder="https://example.com" value="https://scan.euterm.n44.se">
|
||||
<input type="text" class="new watch" placeholder="~/example.com/css/"
|
||||
value="/home/magnus/repo/euterm/euscan/static/css">
|
||||
<button onclick="newSite()">Start</button>
|
||||
|
||||
<div class="sites">
|
||||
<div class="header">UUID</div>
|
||||
<div class="header">URL</div>
|
||||
<div class="header"></div>
|
||||
|
||||
{{ range . }}
|
||||
<div class="line"></div>
|
||||
<div class="url {{ if .StopLoop }}dead{{ end }}" data-uuid="{{ .UUID }}">{{ .URL }}</div>
|
||||
<div class="watch {{ if .StopLoop }}dead{{ end }}" data-uuid="{{ .UUID }}">{{ .Watch }}</div>
|
||||
<div class="stop" onclick="stopSite('{{ .UUID }}')">❌</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue