Files
codevault/internal/webui/static/get.html
Aleksei Sokol 1ccf40396f Version 0.2.0
Changes:
- forbid to overwrite secrets of other users
- add some logs of success
- add validation on code (length 50)
- use same limiter for POST requests
2026-08-17 18:11:43 +03:00

57 lines
1.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CodeVault - Get value</title>
<style>
body { font-family: sans-serif; max-width: 880px; margin: 4rem auto; }
input, button { font-size: 1rem; padding: 0.4rem; }
input { width: 100%; box-sizing: border-box; margin-bottom: 0.75rem; }
#result { margin-top: 1rem; padding: 0.75rem; border-radius: 4px; white-space: pre-wrap; word-break: break-all; }
#result.ok { background: #e6ffed; border: 1px solid #4caf50; }
#result.err { background: #ffecec; border: 1px solid #e53935; }
</style>
</head>
<body>
<h1>Get value by code</h1>
<input id="code" type="text" placeholder="Access code" maxlength="50" autofocus>
<label style="display:block; margin-bottom:0.75rem; font-size:0.9rem;">
<input id="formatted" type="checkbox" style="width:auto; margin:0 0.4rem 0 0; vertical-align:middle;">
Get with HTML formatting if present
</label>
<button id="submit">Get value</button>
<div id="result"></div>
<p><a href="/set">Set a value instead</a></p>
<script>
document.getElementById('submit').addEventListener('click', async () => {
const code = document.getElementById('code').value;
const result = document.getElementById('result');
result.className = '';
result.textContent = '';
const response = await fetch('/api/v1/getValue', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ code }),
});
if (response.ok) {
const data = await response.json();
result.className = 'ok';
if (document.getElementById('formatted').checked) {
result.innerHTML = data.value;
} else {
result.textContent = data.value;
}
} else if (response.status === 404) {
result.className = 'err';
result.textContent = 'Not found';
} else {
result.className = 'err';
result.textContent = 'Error: ' + response.status;
}
});
</script>
</body>
</html>