Files
codevault/internal/webui/static/set.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

63 lines
2.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CodeVault - Set value</title>
<style>
body { font-family: sans-serif; max-width: 880px; margin: 4rem auto; }
input, button, textarea { font-size: 1rem; padding: 0.4rem; }
input, textarea { 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>Set value for a code</h1>
<input id="login" type="text" placeholder="Login" autocomplete="username">
<input id="password" type="password" placeholder="Password" autocomplete="current-password">
<input id="code" type="text" placeholder="Access code" maxlength="50">
<textarea id="value" rows="4" placeholder="Value"></textarea>
<button id="submit">Save</button>
<div id="result"></div>
<p><a href="/">Get a value instead</a></p>
<script>
document.getElementById('submit').addEventListener('click', async () => {
const login = document.getElementById('login').value;
const password = document.getElementById('password').value;
const code = document.getElementById('code').value;
const value = document.getElementById('value').value;
const result = document.getElementById('result');
result.className = '';
result.textContent = '';
const response = await fetch('/api/v1/setValue', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa(login + ':' + password),
},
body: JSON.stringify({ code, value }),
});
if (response.status === 204) {
result.className = 'ok';
result.textContent = 'Saved';
} else if (response.status === 401) {
result.className = 'err';
result.textContent = 'Invalid login or password';
} else if (response.status === 403) {
result.className = 'err';
result.textContent = 'Code is owned by another user';
} else if (response.status === 400) {
result.className = 'err';
result.textContent = 'Code and value are required';
} else {
result.className = 'err';
result.textContent = 'Error: ' + response.status;
}
});
</script>
</body>
</html>