import { api } from '../api.js'; import { escapeHtml, showAlert, hideAlert } from '../utils.js'; export async function initDepartmentsData() { const deptTbody = document.getElementById('departments-tbody'); const specTbody = document.getElementById('specialties-tbody'); const createDeptForm = document.getElementById('create-department-form'); const createSpecForm = document.getElementById('create-specialty-form'); let departments = []; let specialties = []; async function loadData() { // Load Departments try { departments = await api.get('/api/departments'); renderDepartments(); } catch (e) { deptTbody.innerHTML = '-'; } // Load Specialties try { specialties = await api.get('/api/specialties'); renderSpecialties(); } catch (e) { specTbody.innerHTML = '-'; } } function renderDepartments() { if (!departments || !departments.length) { deptTbody.innerHTML = '-'; return; } deptTbody.innerHTML = departments.map(d => ` ${d.id} ${escapeHtml(d.departmentName || d.name)} ${escapeHtml(String(d.departmentCode || d.code))} `).join(''); } function renderSpecialties() { if (!specialties || !specialties.length) { specTbody.innerHTML = '-'; return; } specTbody.innerHTML = specialties.map(s => ` ${s.id} ${escapeHtml(s.specialityName || s.name)} ${escapeHtml(s.specialityCode || s.specialtyCode || s.specialty_code)} `).join(''); } createDeptForm.addEventListener('submit', async (e) => { e.preventDefault(); hideAlert('create-dept-alert'); const name = document.getElementById('dept-name').value.trim(); const code = document.getElementById('dept-code').value.trim(); if (!name || !code) { showAlert('create-dept-alert', 'Заполните все поля', 'error'); return; } try { await api.post('/api/departments', { departmentName: name, departmentCode: Number(code) }); showAlert('create-dept-alert', `Кафедра "${name}" создана`, 'success'); createDeptForm.reset(); loadData(); } catch (error) { showAlert('create-dept-alert', error.message || 'Ошибка создания кафедры', 'error'); } }); createSpecForm.addEventListener('submit', async (e) => { e.preventDefault(); hideAlert('create-spec-alert'); const name = document.getElementById('spec-name').value.trim(); const code = document.getElementById('spec-code').value.trim(); if (!name || !code) { showAlert('create-spec-alert', 'Заполните все поля', 'error'); return; } try { await api.post('/api/specialties', { specialityName: name, specialityCode: code }); showAlert('create-spec-alert', `Специальность "${name}" создана`, 'success'); createSpecForm.reset(); loadData(); } catch (error) { showAlert('create-spec-alert', error.message || 'Ошибка создания специальности', 'error'); } }); loadData(); }