From 6774ebb766e1d3e635bb2a8ea83e12e71af85def Mon Sep 17 00:00:00 2001 From: alekan Date: Fri, 20 Mar 2026 00:33:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F=20=D0=B8=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=BE=D0=B2=D1=8B?= =?UTF-8?q?=D1=85=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F=20=D0=B2=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D1=86=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/admin/js/views/users.js | 21 +++++++++++++++++---- frontend/admin/views/users.html | 19 +++++++++++++++++-- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/frontend/admin/js/views/users.js b/frontend/admin/js/views/users.js index 5a02dcf..3b11350 100755 --- a/frontend/admin/js/views/users.js +++ b/frontend/admin/js/views/users.js @@ -196,14 +196,14 @@ export async function initUsers() { renderUsers(users); } catch (e) { usersTbody.innerHTML = - 'Ошибка загрузки: ' + + 'Ошибка загрузки: ' + escapeHtml(e.message) + ''; } } function renderUsers(users) { if (!users || !users.length) { - usersTbody.innerHTML = 'Нет пользователей'; + usersTbody.innerHTML = 'Нет пользователей'; return; } @@ -211,6 +211,9 @@ export async function initUsers() { ${u.id} ${escapeHtml(u.username)} + ${escapeHtml(u.fullName || '-')} + ${escapeHtml(u.jobTitle || '-')} + ${u.departmentId || '-'} ${ROLE_LABELS[u.role] || escapeHtml(u.role)} @@ -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(); diff --git a/frontend/admin/views/users.html b/frontend/admin/views/users.html index 84e6815..3b63477 100755 --- a/frontend/admin/views/users.html +++ b/frontend/admin/views/users.html @@ -19,6 +19,18 @@ +
+ + +
+
+ + +
+
+ + +
@@ -33,13 +45,16 @@ ID Имя пользователя + ФИО + Должность + ID кафедры Роль - Действия + Действия - Загрузка... + Загрузка...