feat(journal): настраиваемые поля карточки отчёта по ученику
Добавлен плавающий виджет «Поля карточки» в журнале: набор видимых полей карточки отчёта по ученику (фото, фамилия, имя, группа, модуль, тема, дата, файлы) задаётся пользователем и сохраняется в localStorage. Имя теперь рендерится двумя спанами, чтобы скрывать частично; добавлен блок мета-информации с датой и чипами файлов — картинки открываются в лайтбоксе, играбельное видео воспроизводится в #videoModal через ?play=1, остальное скачивается. Каталог полей вынесен в REPORT_CARD_FIELDS как единственный источник правды, без дублирования в HTML. Также добавлена документация HTTP API (API.md, 45 разделов): адреса и транспорт, аутентификация сессиями и API-ключами, лимиты частоты, дата/время/часовой пояс, матрица соответствия и полный индекс эндпоинтов с ссылками на строки server.js.
This commit is contained in:
+20
-2
@@ -265,7 +265,7 @@
|
||||
|
||||
<div class="modal-overlay report-overlay" id="reportCardModal">
|
||||
<article class="student-card" aria-labelledby="reportCardName">
|
||||
<div class="student-card__media">
|
||||
<div class="student-card__media" id="reportCardMedia">
|
||||
<img class="student-card__photo" id="reportCardPhoto" alt="" decoding="async">
|
||||
<div class="student-card__nophoto" id="reportCardNoPhoto" hidden>
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">
|
||||
@@ -283,8 +283,9 @@
|
||||
<path d="M104 6l3 6M104 26l3-6"/>
|
||||
</g>
|
||||
</svg>
|
||||
<h2 class="student-card__name" id="reportCardName"></h2>
|
||||
<h2 class="student-card__name" id="reportCardName"><span class="student-card__lastname" id="reportCardLastName"></span> <span class="student-card__firstname" id="reportCardFirstName"></span></h2>
|
||||
<p class="student-card__text" id="reportCardText"></p>
|
||||
<div class="student-card__meta" id="reportCardMeta"></div>
|
||||
<svg class="student-card__smiley" viewBox="0 0 72 72"
|
||||
fill="none" stroke="#FFB71B" stroke-width="2.6"
|
||||
stroke-linecap="round" stroke-linejoin="round"
|
||||
@@ -326,6 +327,23 @@
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="report-fields" id="reportFields">
|
||||
<button type="button" class="report-fields__btn" id="reportFieldsBtn" title="Поля карточки отчёта" aria-expanded="false" aria-haspopup="true">
|
||||
<i data-lucide="sliders-horizontal"></i>
|
||||
<span class="report-fields__btn-text">Поля карточки</span>
|
||||
</button>
|
||||
<div class="report-fields__panel" id="reportFieldsPanel" role="dialog" aria-label="Поля карточки отчёта">
|
||||
<div class="report-fields__head">
|
||||
<span class="report-fields__title">Поля карточки отчёта</span>
|
||||
<div class="report-fields__actions">
|
||||
<button type="button" class="report-fields__link" id="reportFieldsAll">Все</button>
|
||||
<button type="button" class="report-fields__link" id="reportFieldsNone">Скрыть</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="report-fields__list" id="reportFieldsList"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="toast" id="toast"></div>
|
||||
<script src="vendor/lucide.min.js"></script>
|
||||
<script src="js/datetime.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user