327 lines
14 KiB
HTML
327 lines
14 KiB
HTML
<div class="card create-card">
|
||
<div class="card-header-row">
|
||
<h2 id="schedule-rule-form-title">Новое правило расписания</h2>
|
||
<button type="button" class="btn-edit-classroom" id="schedule-rule-reset">Очистить форму</button>
|
||
</div>
|
||
<form id="schedule-rule-form" novalidate>
|
||
<input type="hidden" id="schedule-rule-id">
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="schedule-rule-subject">Дисциплина</label>
|
||
<select id="schedule-rule-subject" required>
|
||
<option value="">Загрузка...</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="schedule-rule-semester">Семестр</label>
|
||
<select id="schedule-rule-semester" required>
|
||
<option value="">Загрузка...</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="schedule-rule-active-from">Дата начала</label>
|
||
<input type="date" id="schedule-rule-active-from" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="schedule-rule-hours">Академические часы</label>
|
||
<input type="number" id="schedule-rule-hours" min="1" step="1" placeholder="72" required>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="schedule-groups-panel">
|
||
<label class="schedule-section-label">Группы</label>
|
||
<div id="schedule-rule-groups" class="schedule-checkbox-grid"></div>
|
||
</div>
|
||
|
||
<div class="schedule-slots-panel">
|
||
<div class="card-header-row">
|
||
<h2>Слоты правила</h2>
|
||
<button type="button" class="btn-edit-classroom" id="schedule-slot-add">Добавить слот</button>
|
||
</div>
|
||
<div id="schedule-rule-slots" class="schedule-slots-list"></div>
|
||
</div>
|
||
|
||
<div class="form-row">
|
||
<button type="submit" class="btn-primary">Сохранить правило</button>
|
||
</div>
|
||
<div class="form-alert" id="schedule-rule-alert" role="alert"></div>
|
||
</form>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<div class="card-header-row">
|
||
<h2>Правила динамического расписания</h2>
|
||
<button class="btn-primary" id="schedule-refresh">Обновить</button>
|
||
</div>
|
||
<div class="table-wrap">
|
||
<table id="schedule-table">
|
||
<thead>
|
||
<tr>
|
||
<th>ID</th>
|
||
<th>Дисциплина</th>
|
||
<th>Семестр</th>
|
||
<th>Группы</th>
|
||
<th>Начало</th>
|
||
<th>Часы</th>
|
||
<th>Слоты</th>
|
||
<th>Действия</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="schedule-tbody">
|
||
<tr>
|
||
<td colspan="8" class="loading-row">Загрузка...</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card create-card">
|
||
<div class="card-header-row">
|
||
<h2 id="time-slot-form-title">Новый временной слот</h2>
|
||
<button type="button" class="btn-edit-classroom" id="time-slot-reset">Очистить форму</button>
|
||
</div>
|
||
<form id="time-slot-form" novalidate>
|
||
<input type="hidden" id="time-slot-id">
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="time-slot-order">Номер пары</label>
|
||
<input type="number" id="time-slot-order" min="1" step="1" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="time-slot-start">Начало</label>
|
||
<input type="time" id="time-slot-start" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="time-slot-end">Окончание</label>
|
||
<input type="time" id="time-slot-end" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="time-slot-duration">Минут</label>
|
||
<input type="number" id="time-slot-duration" min="1" step="1" placeholder="90">
|
||
</div>
|
||
<button type="submit" class="btn-primary">Сохранить слот</button>
|
||
</div>
|
||
<div class="form-alert" id="time-slot-alert" role="alert"></div>
|
||
</form>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<div class="card-header-row">
|
||
<h2>Сетка пар</h2>
|
||
<button class="btn-primary" id="time-slots-refresh">Обновить</button>
|
||
</div>
|
||
<div class="table-wrap">
|
||
<table id="time-slots-table">
|
||
<thead>
|
||
<tr>
|
||
<th>Пара</th>
|
||
<th>Начало</th>
|
||
<th>Окончание</th>
|
||
<th>Минут</th>
|
||
<th>Действия</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="time-slots-tbody">
|
||
<tr>
|
||
<td colspan="5" class="loading-row">Загрузка...</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card create-card">
|
||
<h2 id="academic-year-form-title">Учебный год</h2>
|
||
<form id="academic-year-form" novalidate>
|
||
<input type="hidden" id="academic-year-id">
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="academic-year-title">Название</label>
|
||
<input type="text" id="academic-year-title" placeholder="2026-2027" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="academic-year-start">Начало</label>
|
||
<input type="date" id="academic-year-start" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="academic-year-end">Окончание</label>
|
||
<input type="date" id="academic-year-end" required>
|
||
</div>
|
||
<button type="submit" class="btn-primary">Сохранить год</button>
|
||
<button type="button" class="btn-edit-classroom" id="academic-year-reset">Очистить</button>
|
||
</div>
|
||
<div class="form-alert" id="academic-year-alert" role="alert"></div>
|
||
</form>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<div class="card-header-row">
|
||
<h2>Учебные годы</h2>
|
||
<button class="btn-primary" id="academic-years-refresh">Обновить</button>
|
||
</div>
|
||
<div class="table-wrap">
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Период</th>
|
||
<th>Семестры</th>
|
||
<th>Действия</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="academic-years-tbody">
|
||
<tr>
|
||
<td colspan="4" class="loading-row">Загрузка...</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card create-card">
|
||
<h2 id="semester-form-title">Семестр</h2>
|
||
<form id="semester-form" novalidate>
|
||
<input type="hidden" id="semester-id">
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="semester-year">Учебный год</label>
|
||
<select id="semester-year" required>
|
||
<option value="">Загрузка...</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="semester-type">Тип семестра</label>
|
||
<select id="semester-type" required>
|
||
<option value="autumn">Осенний</option>
|
||
<option value="spring">Весенний</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="semester-start">Начало</label>
|
||
<input type="date" id="semester-start" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="semester-end">Окончание</label>
|
||
<input type="date" id="semester-end" required>
|
||
</div>
|
||
<button type="submit" class="btn-primary">Сохранить семестр</button>
|
||
<button type="button" class="btn-edit-classroom" id="semester-reset">Очистить</button>
|
||
</div>
|
||
<div class="form-alert" id="semester-alert" role="alert"></div>
|
||
</form>
|
||
</div>
|
||
|
||
<div class="card create-card">
|
||
<div class="card-header-row">
|
||
<h2 id="academic-calendar-form-title">Календарный учебный график</h2>
|
||
<button type="button" class="btn-edit-classroom" id="academic-calendar-reset">Очистить</button>
|
||
</div>
|
||
<form id="academic-calendar-form" novalidate>
|
||
<input type="hidden" id="academic-calendar-id">
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="academic-calendar-title">Название</label>
|
||
<input type="text" id="academic-calendar-title" placeholder="09.03.04 очная форма 2025-2026" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="academic-calendar-year">Учебный год</label>
|
||
<select id="academic-calendar-year" required>
|
||
<option value="">Загрузка...</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="academic-calendar-specialty">Специальность</label>
|
||
<select id="academic-calendar-specialty" required>
|
||
<option value="">Загрузка...</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="academic-calendar-profile">Профиль</label>
|
||
<select id="academic-calendar-profile" required>
|
||
<option value="">Выберите специальность</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="academic-calendar-study-form">Форма обучения</label>
|
||
<select id="academic-calendar-study-form" required>
|
||
<option value="">Загрузка...</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="academic-calendar-course-count">Курсов</label>
|
||
<input type="number" id="academic-calendar-course-count" min="1" max="8" value="4" required>
|
||
</div>
|
||
<button type="submit" class="btn-primary">Сохранить график</button>
|
||
</div>
|
||
<div class="form-alert" id="academic-calendar-alert" role="alert"></div>
|
||
</form>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<div class="card-header-row">
|
||
<h2>Календарные графики</h2>
|
||
<button class="btn-primary" id="academic-calendars-refresh">Обновить</button>
|
||
</div>
|
||
<div class="table-wrap">
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Учебный год</th>
|
||
<th>Специальность</th>
|
||
<th>Профиль</th>
|
||
<th>Форма</th>
|
||
<th>Курсов</th>
|
||
<th>Действия</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="academic-calendars-tbody">
|
||
<tr>
|
||
<td colspan="7" class="loading-row">Загрузка...</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card create-card">
|
||
<h2>Редактор годового графика</h2>
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="calendar-editor-calendar">График</label>
|
||
<select id="calendar-editor-calendar">
|
||
<option value="">Загрузка...</option>
|
||
</select>
|
||
</div>
|
||
<button type="button" class="btn-primary" id="calendar-editor-load">Загрузить сетку</button>
|
||
<button type="button" class="btn-primary" id="calendar-editor-save">Сохранить сетку</button>
|
||
</div>
|
||
<div class="calendar-fill-panel">
|
||
<div class="form-group">
|
||
<label for="calendar-fill-course">Курс</label>
|
||
<select id="calendar-fill-course">
|
||
<option value="">Все курсы</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="calendar-fill-start">С даты</label>
|
||
<input type="date" id="calendar-fill-start">
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="calendar-fill-end">По дату</label>
|
||
<input type="date" id="calendar-fill-end">
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="calendar-fill-activity">Код</label>
|
||
<select id="calendar-fill-activity">
|
||
<option value="">Загрузка...</option>
|
||
</select>
|
||
</div>
|
||
<button type="button" class="btn-edit-classroom" id="calendar-fill-apply">Заполнить диапазон</button>
|
||
</div>
|
||
<div class="form-alert" id="calendar-editor-alert" role="alert"></div>
|
||
<div id="calendar-totals" class="calendar-totals"></div>
|
||
<div id="calendar-grid" class="academic-calendar-grid"></div>
|
||
</div>
|