107 lines
4.5 KiB
HTML
107 lines
4.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Create New User</title>
|
|
<link rel="stylesheet" href="/static/styles.css">
|
|
</head>
|
|
<body>
|
|
<button class="theme-toggle" onclick="toggleTheme()" aria-label="Toggle dark mode">
|
|
<svg class="moon-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" d="M21.752 15.002A9.72 9.72 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z" />
|
|
</svg>
|
|
<svg class="sun-icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" d="M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0z" />
|
|
</svg>
|
|
</button>
|
|
|
|
<div class="container">
|
|
<header>
|
|
<h1>Create New User</h1>
|
|
<p>Add a new user to the system</p>
|
|
</header>
|
|
|
|
<div class="modal-content" style="max-width: 600px; margin: 0 auto;">
|
|
{% if error %}
|
|
<div class="import-results error">
|
|
<strong>Error:</strong> {{ error }}
|
|
</div>
|
|
{% endif %}
|
|
|
|
<form method="POST" style="margin-top: 24px;">
|
|
<div class="form-group">
|
|
<label for="username">Username</label>
|
|
<input type="text" id="username" name="username" placeholder="Enter username" required autofocus>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="email">Email</label>
|
|
<input type="email" id="email" name="email" placeholder="user@example.com" required>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="name">Full Name</label>
|
|
<input type="text" id="name" name="name" placeholder="John Doe" required>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="password">Password</label>
|
|
<input type="password" id="password" name="password" placeholder="Enter password" required>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="role">Role</label>
|
|
<select id="role" name="role" required>
|
|
<option value="user" selected>User</option>
|
|
<option value="admin">Admin</option>
|
|
<option value="moderator">Moderator</option>
|
|
<option value="readonly">Read-Only</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="permissions">Permissions (comma-separated)</label>
|
|
<input type="text" id="permissions" name="permissions" placeholder="e.g. read:data, write:data">
|
|
<small style="color: var(--text-secondary); display: block; margin-top: 8px;">
|
|
Common permissions: read:data, write:data, manage:users, manage:settings
|
|
</small>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>
|
|
<input type="checkbox" name="is_admin">
|
|
Admin User
|
|
</label>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>
|
|
<input type="checkbox" name="is_active" checked>
|
|
Account Active
|
|
</label>
|
|
</div>
|
|
|
|
<div class="form-actions">
|
|
<a href="/admin/users">
|
|
<button type="button" class="danger">Cancel</button>
|
|
</a>
|
|
<button type="submit" class="secondary">Create User</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
function toggleTheme() {
|
|
document.body.classList.toggle('dark-mode');
|
|
localStorage.setItem('darkMode', document.body.classList.contains('dark-mode'));
|
|
}
|
|
|
|
if (localStorage.getItem('darkMode') === 'true') {
|
|
document.body.classList.add('dark-mode');
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|