180 lines
7.5 KiB
HTML
180 lines
7.5 KiB
HTML
<div class="card create-card">
|
|
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem;">
|
|
<h2>Запрос расписания кафедры</h2>
|
|
<button id="btn-create-schedule" class="btn-primary" style="margin-top: 0;">Создать запись</button>
|
|
</div>
|
|
<form id="department-schedule-form">
|
|
<div class="form-row">
|
|
<div class="form-group">
|
|
<label for="filter-department">Кафедра</label>
|
|
<select id="filter-department" required>
|
|
<option value="">Загрузка...</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label>Семестр</label>
|
|
<div style="display: flex; gap: 0.2rem;">
|
|
<label class="btn-checkbox">
|
|
<input type="radio" name="semesterType" value="autumn" id="sem-autumn" required>
|
|
<span class="checkbox-btn">Осенний</span>
|
|
</label>
|
|
<label class="btn-checkbox">
|
|
<input type="radio" name="semesterType" value="spring" id="sem-spring" required>
|
|
<span class="checkbox-btn">Весенний</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="filter-period">Учебный год</label>
|
|
<select id="filter-period" required>
|
|
<option value="">Выберите...</option>
|
|
<option value="2026-2027">2026/2027</option>
|
|
<option value="2025-2026">2025/2026</option>
|
|
<option value="2024-2025">2024/2025</option>
|
|
<option value="2023-2024">2023/2024</option>
|
|
<option value="2022-2023">2022/2023</option>
|
|
</select>
|
|
</div>
|
|
|
|
<button type="submit" class="btn-primary" style="align-self: flex-end;">Запросить</button>
|
|
</div>
|
|
<div class="form-alert" id="schedule-form-alert" role="alert"></div>
|
|
</form>
|
|
</div>
|
|
|
|
<!-- ===== Общий оверлей для обеих модалок ===== -->
|
|
<div class="cs-overlay" id="cs-overlay">
|
|
<div class="cs-overlay-scroll">
|
|
|
|
<!-- Модалка 1: Форма создания записи -->
|
|
<div class="cs-modal cs-modal-form card" id="modal-create-schedule">
|
|
<div class="cs-modal-header">
|
|
<h2>Создать запись (к/ф)</h2>
|
|
<button class="btn-close-panel" id="modal-create-schedule-close" title="Закрыть (Esc)">×</button>
|
|
</div>
|
|
<form id="create-schedule-form">
|
|
<input type="hidden" id="cs-department-id" value="">
|
|
<div class="form-row"
|
|
style="align-items: flex-start; gap: 1rem; flex-wrap: wrap; width: 100%; justify-content: space-between;">
|
|
|
|
<div class="form-group" style="flex: 1 1 180px;">
|
|
<label for="cs-period">Учебный год</label>
|
|
<select id="cs-period" required>
|
|
<option value="">Выберите...</option>
|
|
<option value="2026-2027">2026/2027</option>
|
|
<option value="2025-2026">2025/2026</option>
|
|
<option value="2024-2025">2024/2025</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group" style="flex: 1 1 180px;">
|
|
<label>Семестр</label>
|
|
<div style="display: flex; gap: 0.2rem;">
|
|
<label class="btn-checkbox">
|
|
<input type="radio" name="csSemesterType" value="autumn" required>
|
|
<span class="checkbox-btn">Осенний</span>
|
|
</label>
|
|
<label class="btn-checkbox">
|
|
<input type="radio" name="csSemesterType" value="spring" required>
|
|
<span class="checkbox-btn">Весенний</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" style="flex: 1 1 180px;">
|
|
<label for="cs-group">Группа</label>
|
|
<select id="cs-group" required>
|
|
<option value="">Загрузка...</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group" style="flex: 1 1 180px;">
|
|
<label for="cs-subject">Дисциплина</label>
|
|
<select id="cs-subject" required>
|
|
<option value="">Загрузка...</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group" style="flex: 1 1 180px;">
|
|
<label for="cs-lesson-type">Вид занятий</label>
|
|
<select id="cs-lesson-type" required>
|
|
<option value="">Выберите тип</option>
|
|
<option value="1">Лекция</option>
|
|
<option value="2">Практическая работа</option>
|
|
<option value="3">Лабораторная работа</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group" style="flex: 1 1 150px;">
|
|
<label for="cs-hours">Часов (семестр)</label>
|
|
<input type="number" id="cs-hours" required min="1" max="500" placeholder="Например: 36">
|
|
</div>
|
|
|
|
<div class="form-group" style="flex: 1 1 180px;">
|
|
<label>Деление на подгруппы</label>
|
|
<div style="display: flex; gap: 0.5rem; align-items: center; height: 42px;">
|
|
<label class="btn-checkbox" style="width:100%;">
|
|
<input type="checkbox" id="cs-division" value="true">
|
|
<span class="checkbox-btn" style="width:100%; text-align:center;">Есть деление</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" style="flex: 1 1 250px;">
|
|
<label for="cs-teacher">Преподаватель</label>
|
|
<select id="cs-teacher" required>
|
|
<option value="">Выберите преподавателя</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group" style="flex: 0 0 auto; display:flex; align-items: flex-end;">
|
|
<button type="submit" class="btn-primary" style="white-space: nowrap;">Добавить в список</button>
|
|
</div>
|
|
</div>
|
|
<div class="form-alert" id="create-schedule-alert" role="alert" style="margin-top: 1rem;"></div>
|
|
</form>
|
|
</div>
|
|
|
|
<!-- Модалка 2: Таблица подготовленных записей -->
|
|
<div class="cs-modal cs-modal-table card" id="modal-view-schedules" style="display: none;">
|
|
<div class="cs-modal-header">
|
|
<h2>Подготовленные записи</h2>
|
|
<div style="display:flex; gap: 0.75rem; align-items:center;">
|
|
<button id="btn-save-schedules" class="btn-primary">Сохранить в БД</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-alert" id="save-schedules-alert" role="alert" style="margin-bottom: 1rem;"></div>
|
|
|
|
<div class="table-wrap">
|
|
<table id="prepared-schedules-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Уч. год</th>
|
|
<th>Семестр</th>
|
|
<th>Группа</th>
|
|
<th>Дисциплина</th>
|
|
<th>Вид</th>
|
|
<th>Часы</th>
|
|
<th>Деление</th>
|
|
<th>Преподаватель</th>
|
|
<th>Действие</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="prepared-schedules-tbody">
|
|
<tr>
|
|
<td colspan="9" class="loading-row">Нет записей</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="table-wrap" id="schedule-blocks-container">
|
|
<!-- Сгенерированные блоки таблиц будут появляться здесь -->
|
|
</div> |