Commit Graph

99 Commits

Author SHA1 Message Date
a61c362c56 Article page: offcanvas-lg sidebar (sticky desktop, right slide mobile), compact action row; persistent accordion state (localStorage) 2026-10-08 01:34:36 +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
99b8671650 Lab variants: redirect back anchors to the saved variant with highlight 2026-10-07 23:47:46 +03:00
ab35eb7607 Fix 405 on variant save/delete: redirect to lab page instead of removed /edit page 2026-10-07 23:33:50 +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
bad3776bc1 Learn head: responsive row/col (title full width, 3 equal buttons below on mobile) 2026-10-03 00:43:10 +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
4063cc0ca8 Rework on Bootstrap 5: standard navbar+offcanvas (fixed empty menu), Bootstrap Icons, complete B3 theme via BS vars, row/col grids 2026-10-03 00:05:52 +03:00
9a4e11e5ba Bootstrap 5.3 as CSS base + B3 theme layer; dialogs isolated as .dlg; offcanvas sidebar; icons via SVG assets + masks 2026-10-02 23:44:00 +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
7b1e6043c2 app.js: drop native confirm fallback 2026-10-02 18:42:07 +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
5a1985b142 Learn pages: icon actions (eye/pencil/hand/trash), centered accordion arrows; toasts bottom-center in B3 style 2026-10-02 17:31:06 +03:00
c2f7235df6 Group page: B3 fidelity (cell-main/cell-sub, defense code in cell), class-based eye/focus, utilities; drop import button 2026-10-02 17:02:58 +03:00
ece700d91b Group page: B3 layout (page-head, toolbar, matrix), neutral header with accent logo dot 2026-10-02 16:37:00 +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
7a781fea33 Admin: users page with search and full cascade delete (identity + progress + files) 2026-10-02 11:53:01 +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
95a306c712 Publication per student: checkbox in lab column, partial state in eye, cursor on Variant 2026-10-02 00:33:16 +03:00
64fdf61d98 Modals: preserve page scroll position while locking background 2026-09-29 20:58:41 +03:00
ff77e2b301 Defense modal: move Save to bottom-right next to issue-code action 2026-09-29 18:34:41 +03:00
da456f7b61 Solutions zip: use real file/submission timestamps instead of epoch (fixes bogus years) 2026-09-29 18:31:19 +03:00
c395a92b7f Grade comments: mark suggestion tone with colored icon and left border 2026-09-29 17:55:34 +03:00
c0c150b4b9 Grade comments: select tone sized by content so input keeps width (fix row overflow) 2026-09-29 17:31:47 +03:00
dadbbb30cf Modals: lock background scroll; comment dropdown keeps row on one line, full tone labels, flip up near bottom 2026-09-29 16:19:15 +03:00
751d6bae42 Grade comments: dropdown matches input width, compact tone select, responsive wrap 2026-09-29 16:09:39 +03:00
2869142a79 Grade comments: show live usage count and allow deleting unused templates 2026-09-29 15:56:00 +03:00
4bb1e332e3 Modals: action buttons bottom-right, no empty space under content 2026-09-28 17:39:10 +03:00
a73226b2ab Admin group: large variant modal with the assigned variant task text 2026-09-28 17:37:18 +03:00
ed8d853d2a Admin group: counter = number of group students who submitted a solution 2026-09-28 17:35:10 +03:00
6d1b36f02e Defense: keep assignment text for admins, hide it only from students 2026-09-28 17:30:11 +03:00
f630b0267e Admin group: fix script loading (extra div), total submissions counter, label cleanup 2026-09-28 17:22:09 +03:00
9df1af7647 Admin group: variant modal, cell badges/counters, header cleanup, bigger modal 2026-09-28 17:09:55 +03:00
fb67f5313d Admin group: rework lab cells/columns, fix sort toggle and card rounding 2026-09-28 16:39:18 +03:00
23213f2d75 Admin grades: comment autocomplete by substring, larger grade dialog 2026-09-28 16:32:01 +03:00
82f231c940 Admin group: single table, defense actions in cells; flash messages as toasts 2026-09-28 16:23:29 +03:00
debf157194 Refactor: bind admin forms via @ModelAttribute DTOs; detekt fully default 2026-09-27 23:13:29 +03:00
6129055962 Refactor: extract helpers from groupDetail/editLab; detekt thresholds to defaults 2026-09-27 22:58:35 +03:00
4035bc5a0f Refactor: split ContentService and ProgressService; defaults tightened 2026-09-27 22:48:13 +03:00
290b2a5a20 Refactor: split content order API; near-default detekt thresholds 2026-09-27 22:38:48 +03:00
3ed48b35fc Refactor: split AdminController into AdminSupport and domain controllers 2026-09-27 22:36:41 +03:00
f08ab16af0 Refactor: move defense API methods into separate extension file 2026-09-27 22:31:06 +03:00
c22eb15d3e Refactor: split ApiClient into domain extension files 2026-09-27 22:29:57 +03:00
6e891e4326 Test: Testcontainers integration tests for distribution and content import 2026-09-27 22:22:54 +03:00
47ec9884a3 Add ContentImporter tests; drop redundant elvis; document lint/test commands 2026-09-27 22:17:59 +03:00