@@ -101,6 +93,15 @@
// Загрузка данных при старте
document.addEventListener('DOMContentLoaded', async () => {
+ console.log('[Init] Page loaded, requestId:', requestId);
+
+ // Проверяем наличие элемента select
+ const select = document.getElementById('departmentSelect');
+ if (!select) {
+ console.error('[Init] Element #departmentSelect not found!');
+ return;
+ }
+
await loadDepartments();
if (isEdit) {
@@ -109,28 +110,50 @@
});
async function loadDepartments() {
+ const select = document.getElementById('departmentSelect');
+
try {
+ console.log('[Departments] Loading from /api/v1/departments/');
const resp = await fetch('/api/v1/departments/');
- if (resp.ok) {
- const departments = await resp.json();
- const select = document.getElementById('departmentSelect');
- select.innerHTML = '';
-
- departments.forEach(dept => {
- const option = document.createElement('option');
- option.value = dept.id;
- option.textContent = dept.name;
-
- // Автовыбор отдела текущего пользователя, если он один
- if (!isEdit && departments.length === 1) {
- option.selected = true;
- }
-
- select.appendChild(option);
- });
+ console.log('[Departments] Response status:', resp.status);
+
+ if (!resp.ok) {
+ const errorText = await resp.text();
+ console.error('[Departments] Error response:', errorText);
+ select.innerHTML = '';
+ alert('Не удалось загрузить список отделов. Проверьте консоль.');
+ return;
}
+
+ const departments = await resp.json();
+ console.log('[Departments] Loaded:', departments.length, 'departments');
+
+ if (!departments || departments.length === 0) {
+ select.innerHTML = '';
+ return;
+ }
+
+ select.innerHTML = '';
+
+ departments.forEach(dept => {
+ const option = document.createElement('option');
+ option.value = dept.id;
+ option.textContent = dept.name;
+
+ // Автовыбор отдела текущего пользователя, если он один
+ if (!isEdit && departments.length === 1) {
+ option.selected = true;
+ }
+
+ select.appendChild(option);
+ });
+
+ console.log('[Departments] Select populated successfully');
+
} catch (e) {
- console.error('Error loading departments:', e);
+ console.error('[Departments] Error loading departments:', e);
+ select.innerHTML = '';
+ alert('Ошибка загрузки отделов: ' + e.message);
}
}