Commit Graph

14 Commits

Author SHA1 Message Date
3d2c14ef41 fix(ui): modal icon order, fill all outline buttons
- ModalFrame: move HeaderActions before title so icons appear left of text
- Replace all btn-outline-* with btn-* (secondary/primary/danger/success/
  warning/light/info) across all .razor components for filled buttons
2026-07-10 20:33:08 +02:00
3b51a35e2c refactor(ui): ModalFrame + EmptyState components, remove duplicate CSS, remove main border
- ModalFrame shared component replaces 8+ inline modal implementations
  (AdminUsers ×3, User ×2, CosplayerDetail, AlbumForm, PersonForm,
   AssetPicker, ProfileCropper) — all now use <ModalFrame> with
   Title/Body/Footer parameters
- ModalFrame.razor.css houses modal styles once — deleted from
  AdminUsers.razor.css, User.razor.css, AssetPicker.razor.css
- ModalFrame handles body scroll lock/unlock via JS interop
- EmptyState component replaces 7 empty-state/not-found patterns
- Removed duplicate .sortable class from AdminUsers.razor.css and Jobs.razor.css
  (now in _custom.scss as shared utility)
- AGENTS.md: fix orphaned SCSS ref, add SCSS docs
- .gitignore: ignore *.css.map
2026-07-10 19:58:03 +02:00
b0b65e808d refactor: extract password strength UI into shared PasswordField component
Create PasswordField.razor in Components/Shared with:
- Two-way binding for Password, ConfirmPassword, OldPassword
- Strength bar with color-coded segments
- Requirements checklist (min length, upper/lower, number/special)
- Passwords-do-not-match validation
- Public IsValid property for parent submit-button checks
- ShowOldPassword toggle for change-password vs register flows

Register.razor and User.razor now use the shared component,
eliminating duplicated password validation logic.
2026-07-10 15:26:26 +02:00
354198c413 feat(ui): redesign user profile page with avatar initials and edit profile modal 2026-07-10 10:50:30 +02:00
47eef8aad0 fix: center profile card on page 2026-07-10 10:33:55 +02:00
d4e0af2c29 refactor(ui): complete user profile page redesign with card layout 2026-07-10 10:32:18 +02:00
9e4b0ecb27 fix: auto-close modal on password change success, add page-level success message 2026-07-10 10:29:07 +02:00
64220d0818 fix: propagate server-side error messages from UpdateUserAsync to UI 2026-07-10 10:23:27 +02:00
55af7dccec refactor(ui): replace inline password form with modal 2026-07-10 10:22:39 +02:00
afad073d0c feat: add password change UI with strength bar and validation on user profile page 2026-07-10 10:15:05 +02:00
33175ffdcb fix(ui): responsive layout fixes for mobile portrait mode (closes #48)
- Settings: stack sidebar vertically on mobile, fix grid minmax 380->280px, use dvh
- AlbumDetail: add mobile breakpoints for grid, restructure header actions
- ImagePreview: switch info bar to column layout on mobile
- User profile: fix col-2/col-2 to responsive col-5/col-7 breakpoints
- AdminUsers: wrap inline editing controls with flex-wrap on mobile
- Jobs: collapse 8 action buttons into dropdown on mobile
- Albums: add flex-wrap to header, hide 'New Album' text on mobile
- NavMenu: responsive authenticated area (column on mobile, btn-group-sm)
- Empty-state messages: m-5 -> m-2 m-sm-5
- Footer: hide on mobile (d-none d-sm-flex)
- Login: remove orphaned 'Remember me' checkbox
2026-07-08 19:49:11 +02:00
2159eaec08 fix: populate LastLogin/BannedAt/UpdatedAt in UserInfoDto mapping
UsersMapper.ToGetUsersDto() was not copying LastLogin, BannedAt, or
UpdatedAt from the User entity to the UserInfoDto, causing the client
to always receive null for these fields. Added the missing mappings.

Also added null fallback ('Never') for LastLogin display on the User
page to prevent NullReferenceException when the value has not been set.
2026-07-08 02:32:12 +02:00
REDCODE
c7d555d90b fix(ui): apply poll interval to child jobs, add @key for DOM reuse, guard admin pages
- Pass PollInterval from Jobs page to JobTree so children refresh at the
  same rate as parent jobs (instead of hardcoded 1s)
- Add @key on JobRow (by job Id) and group divs so Blazor reuses DOM
  nodes across polls instead of tearing down and rebuilding
- Redirect non-admin users to / on Jobs and Settings pages
- Fix date formatting in User page
2026-07-07 01:05:31 +02:00
copilot-swe-agent[bot]
a1d5e23817 Merge PR#2 (convert-frontend-to-wasm) into update-branch-to-be-compatible
Co-authored-by: SamueleLorefice <6562494+SamueleLorefice@users.noreply.github.com>
2026-04-22 21:17:46 +00:00