Доработано создание пользователя и отображение новых параметров пользователя в таблице

This commit is contained in:
2026-03-20 00:33:27 +03:00
parent f7fb524bb0
commit 6774ebb766
2 changed files with 34 additions and 6 deletions

View File

@@ -196,14 +196,14 @@ export async function initUsers() {
renderUsers(users);
} catch (e) {
usersTbody.innerHTML =
'<tr><td colspan="4" class="loading-row">Ошибка загрузки: ' +
'<tr><td colspan="8" class="loading-row">Ошибка загрузки: ' +
escapeHtml(e.message) + '</td></tr>';
}
}
function renderUsers(users) {
if (!users || !users.length) {
usersTbody.innerHTML = '<tr><td colspan="4" class="loading-row">Нет пользователей</td></tr>';
usersTbody.innerHTML = '<tr><td colspan="8" class="loading-row">Нет пользователей</td></tr>';
return;
}
@@ -211,6 +211,9 @@ export async function initUsers() {
<tr>
<td>${u.id}</td>
<td>${escapeHtml(u.username)}</td>
<td>${escapeHtml(u.fullName || '-')}</td>
<td>${escapeHtml(u.jobTitle || '-')}</td>
<td>${u.departmentId || '-'}</td>
<td><span class="badge ${ROLE_BADGE[u.role] || ''}">${ROLE_LABELS[u.role] || escapeHtml(u.role)}</span></td>
<td>
<button class="btn-delete" data-id="${u.id}">Удалить</button>
@@ -378,14 +381,24 @@ export async function initUsers() {
const username = document.getElementById('new-username').value.trim();
const password = document.getElementById('new-password').value;
const role = document.getElementById('new-role').value;
const fullName = document.getElementById('new-fullname').value.trim();
const jobTitle = document.getElementById('new-jobtitle').value.trim();
const departmentId = document.getElementById('new-department').value;
if (!username || !password) {
if (!username || !password || !fullName || !jobTitle || !departmentId) {
showAlert('create-alert', 'Заполните все поля', 'error');
return;
}
try {
const data = await api.post('/api/users', { username, password, role });
const data = await api.post('/api/users', {
username,
password,
role,
fullName,
jobTitle,
departmentId: Number(departmentId)
});
showAlert('create-alert', `Пользователь "${escapeHtml(data.username)}" создан`, 'success');
createForm.reset();
loadUsers();

View File

@@ -19,6 +19,18 @@
<option value="ADMIN">Администратор</option>
</select>
</div>
<div class="form-group">
<label for="new-fullname">ФИО пользователя</label>
<input type="text" id="new-fullname" placeholder="Иванов Иван Иванович" required>
</div>
<div class="form-group">
<label for="new-jobtitle">Должность</label>
<input type="text" id="new-jobtitle" placeholder="Студент / Доцент" required>
</div>
<div class="form-group">
<label for="new-department">ID кафедры</label>
<input type="number" id="new-department" placeholder="ID" required>
</div>
<button type="submit" class="btn-primary">Создать</button>
</div>
<div class="form-alert" id="create-alert" role="alert"></div>
@@ -33,13 +45,16 @@
<tr>
<th>ID</th>
<th>Имя пользователя</th>
<th>ФИО</th>
<th>Должность</th>
<th>ID кафедры</th>
<th>Роль</th>
<th>Действия</th>
<th colspan="2">Действия</th>
</tr>
</thead>
<tbody id="users-tbody">
<tr>
<td colspan="4" class="loading-row">Загрузка...</td>
<td colspan="8" class="loading-row">Загрузка...</td>
</tr>
</tbody>
</table>