02701a8e9d
Group page: explicit 'Варианты' button for variant distribution, download icon; asset v30
2026-10-08 09:34:56 +03:00
322f496d26
Article sidebar: neutralize offcanvas on desktop (visible, sticky) with explicit rules; asset v29
2026-10-08 01:57:43 +03:00
5b35a3c49d
Article sidebar: sticky works (no align-items-start, stronger selector, top under navbar); asset v28
2026-10-08 01:48:37 +03:00
7ff97984c0
Article sidebar: add base offcanvas class (fix dismiss error), header close aligned right; asset v26
2026-10-08 01:41:46 +03:00
51a7d56e54
Bump all static asset versions to 25 (ensure fresh CSS/JS after redesign)
2026-10-08 01:35:03 +03:00
d7c64308b3
Forms: return to previous scroll position after submit (no highlight/flicker); themed scrollbars everywhere
2026-10-08 00:54:51 +03:00
1d922dcea5
Uniform button size (nowrap), md-body h1-h6 sizes (fix h3 as h1), themed scrollbars
2026-10-04 13:50:01 +03:00
f5ad352e20
UI fixes: learn rows on one line, offcanvas header/brand/user layout, users column, code color, badge padding, sticky footer; class-based selectors
2026-10-03 00:24:48 +03:00
24b72a2525
Mobile: burger primary right, theme in header, sidebar from right, learn rows wrap with actions below; pencil for all edit actions
2026-10-02 23:12:32 +03:00
1c5c5651c7
Mobile sidebar nav (burger, overlay, Esc), bigger bolder accordion arrow, text/arrow centering, nav active on both menus
2026-10-02 22:52:58 +03:00
476cb4d91a
Icons as SVG assets via CSS masks; bordeaux links without underline; pencil for article edit
2026-10-02 21:02:13 +03:00
743dd93bc2
Style fixes: asset cache v=11, dashboard row alignment, drag handles back to dots
2026-10-02 20:38:41 +03:00
5ced01f70d
Lab page: per-variant create/edit modals, rendered conditions, inline lab edit; student page: compact code field, big score, defense wording, header highlight; toasts tinted; p margin
2026-10-02 20:25:36 +03:00
cdf8586904
No inline JS/styles in templates: app.js delegation (data-action/data-modal/data-confirm/data-auto-submit), B3 confirm/alert dialogs, theme-init file
2026-10-02 18:41:12 +03:00
3c54830f48
Style: align last tweaks with B3 bordeaux design (neutral header, outline buttons, 8/10px radii)
2026-10-02 16:00:14 +03:00
556fdf3b5e
Redesign B3 bordeaux + finish lab-page rework
...
- Lab page is now read-only with a settings screen for levels/variants;
variant issuance moved to a large modal on the group page (assign-fragment).
- Header: bordeaux logo and 2px accent underline, bordeaux login/logout/theme
buttons; smaller radii across the UI; filled secondary/danger buttons.
- Includes prior agent work (login backoff, no-cache pages, API timeouts,
content tweaks) and fixes (variant usage Map.values, import order).
- Bump static asset version to v=9.
2026-10-02 15:41:16 +03:00
f7a0dc9d3b
Defense: sync admin/student timers from server every 10s; toasts with ready reason; live eye counter
2026-10-02 01:21:32 +03:00
82f231c940
Admin group: single table, defense actions in cells; flash messages as toasts
2026-09-28 16:23:29 +03:00
df5020fea6
Learn UI: prev/next navigation, sidebar outline, editing on every page; merge import; defense date
...
- article page: ← / → navigation across the whole material tree (including
between sections), sticky sidebar outline with the current article highlighted
- editing on chapter, section and article pages: rename, publish/hide, delete,
create section/article, move articles while deleting a section; forms return
to the page they were opened from (validated internal `back` parameter)
- article page opens the edit dialog directly via ?edit=1 (used by "Править"
links on section/chapter pages)
- import: optional sync flag — with it stale sections/articles of archived
chapters are deleted (previous behaviour), without it import only adds and
updates, so material edited in the UI is not overwritten
- student area: lab page and lab cards now show the defense date next to the
submission deadline
- fix SpEL crash on the student lab page (`and` with nullable strings)
2026-09-17 17:14:16 +03:00
cdf4fb0ee0
Phase 7: deployment, data import, UI hardening and security fixes
...
Docker/prod deployment:
- multi-stage Dockerfile (JDK21 build, JRE21 run), docker-compose.prod.yml,
nginx config for lms.our-place.ru, deploy.sh; DEPLOY/IMPORT guides (UI flow)
- Fix Docker 401: LMS_JWT_JWK_SET_URI for academic/progress; forward-headers
Variant distribution (lab page only):
- round-robin by student level, shared random queue across selected groups,
least-used variants, manual pins always preserved; occupied/dup labels
- setup page: single form + one «Сохранить всё», batch level/variant for
selected students (checkboxes)
Grades, defense, materials:
- publication gate + comment lists; defense CSV import (2/3 cols, quotes)
- additional task after defense ("начать заново"); enroll/unenroll students
from group page; temporary-password lock (no navigation until changed) and
persistent "Смена пароля"; forced change once
- chapter page /learn/{c}; header: LMS home, Войти, user -> dashboard,
compact theme toggle; responsive mobile header
- markdown: single newlines are soft breaks; highlight.js with light/dark themes
- lab/content imports ZIP-only (lab.yaml+README+variants/assets,
chapters tree+assets); duplicate lab numbers rejected; variant ordering
and date defaults honored
Fixes:
- 500 on student create (@MapsId set before persist); broken dialogs/JS refs in group page
2026-09-15 00:09:28 +03:00
76a9a915c2
Phase 4: grade comments with frequency-ranked suggestions
...
- progress comment_templates (tone + use_count) and grade_comments tables;
setGrade now accepts comments list; templates created/bumped automatically;
GET /api/v1/comment-templates?q= returns suggestions ranked by frequency
- admin group page: per-grade ✎ dialog (score + editable comment rows with
tone, datalist suggestions), chips under each score, data-comments JSON attr
- student lab page: score + colored tone chips
- fixed damaged button/attributes from earlier manual template surgery
2026-09-12 01:51:23 +03:00
d6fc47794e
Phase 3: individual defense assignments with invite codes
...
- progress V5 defense_sessions: per student+lab individual task (md), status
machine waiting -> started -> ready, one-time 6-digit codes
- 30-min timer with server-side lazy expiry (syncTimeouts: started->ready by
timeout), countdown JS on student page
- admin: assign task dialog (+prefill existing via data-md), CSV import
(studentNo;task, \n for newlines) resolved via identity students,
issue/reset code buttons, defense status column
- student: code entry form (code hidden until start), assignment md,
'Готов к сдаче', waiting-for-teacher note
- gateway: /api/v1/defenses,/api/v1/defenses/** routes
- web api client + admin/student controllers wired
2026-09-12 00:54:10 +03:00
e1da254599
Phase 2+5: lab submissions and student lab flow
...
- progress: submissions table+V4; SubmissionService (deadline-gated submit,
unlimited resubmits, per-student history, zip download); files on disk
data/submissions/{student}/{lab}/{seq}/
- student API: POST submit (multipart), GET me submissions, download; admin
GET lab submissions + admin download (zip pack)
- progress enrich(): labId in MeAssignment; web DTO aligned
- web: /student dashboard (avg/best/worst cards), /student/labs cards,
/student/labs/{id}: condition md, variant block, submit form, history;
'Лабораторные' link in nav for students
- admin: submissions column on lab assignment table + download link
- fixed long-standing template bug: broken @{} expression (missing }) in
admin/lab and student/lab
2026-09-12 00:20:46 +03:00