Compare commits
2 commits
37253c31dd
...
8d59462f0e
| Author | SHA1 | Date | |
|---|---|---|---|
| 8d59462f0e | |||
| d1cccba421 |
2 changed files with 88 additions and 1 deletions
|
|
@ -12,7 +12,7 @@ a:hover {
|
|||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<body hx-on::response-error="showErrorDialog(event)">
|
||||
<main>
|
||||
<nav>
|
||||
<ul>
|
||||
|
|
@ -37,5 +37,38 @@ a:hover {
|
|||
{{ inner | safe }}
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<dialog id="error-dialog">
|
||||
<article>
|
||||
<header>
|
||||
<button aria-label="Close" rel="prev" onclick="this.closest('dialog').close()"></button>
|
||||
<h5>Failed web request</h5>
|
||||
</header>
|
||||
<p id="error-message">Failed web request</p>
|
||||
</article>
|
||||
</dialog>
|
||||
|
||||
<script>
|
||||
function showErrorDialog(evt) {
|
||||
// TODO exclude certain error codes, e.g. 400 bad request
|
||||
const xhr = evt.detail.xhr;
|
||||
const errorMessage = document.getElementById('error-message');
|
||||
|
||||
let message = 'An unexpected error occurred.';
|
||||
|
||||
if (xhr.status === 401) {
|
||||
message = 'You need to log in.';
|
||||
} else if (xhr.status === 403) {
|
||||
message = 'Access denied.';
|
||||
} else if (xhr.status === 404) {
|
||||
message = 'Resource not found.';
|
||||
} else if (xhr.status === 500) {
|
||||
message = 'Server error occurred.';
|
||||
}
|
||||
|
||||
errorMessage.textContent = message;
|
||||
document.getElementById('error-dialog').showModal();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,10 @@
|
|||
{% block inner %}
|
||||
<h3>Users</h3>
|
||||
|
||||
<button
|
||||
onclick="document.getElementById('create-user-form').reset(); document.getElementById('create-user-modal').showModal()"
|
||||
id="create-user">Create new user</button>
|
||||
|
||||
<input
|
||||
type="text" id="username" name="username"
|
||||
hx-get="/administration/users"
|
||||
|
|
@ -48,4 +52,54 @@
|
|||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<dialog id="create-user-modal">
|
||||
<article>
|
||||
<header>
|
||||
<button
|
||||
aria-label="Close"
|
||||
rel="prev"
|
||||
onclick="document.getElementById('create-user-modal').close()"
|
||||
class="close-button"></button>
|
||||
<h5>Create User</h5>
|
||||
</header>
|
||||
<div class="content">
|
||||
<form id="create-user-form">
|
||||
<fieldset>
|
||||
<label>
|
||||
Username
|
||||
<input name="username"
|
||||
placeholder="Username"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
Admin
|
||||
<input name="admin"
|
||||
type="checkbox"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
Password
|
||||
<input type="password"
|
||||
name="password"
|
||||
placeholder="Password"
|
||||
/>
|
||||
</label>
|
||||
<label>
|
||||
Confirm password
|
||||
<input type="password"
|
||||
name="password-confirm"
|
||||
placeholder="Password"
|
||||
/>
|
||||
</label>
|
||||
</fieldset>
|
||||
|
||||
<input type="submit"
|
||||
value="Create user"
|
||||
/>
|
||||
</form>
|
||||
</div>
|
||||
</article>
|
||||
</dialog>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue