REDCODE
cdd2e9a1ef
fix( #62 ): use explicit top/left/right/bottom instead of inset, add !important to ensure position:fixed takes effect on mobile
2026-07-09 22:49:24 +02:00
REDCODE
64bee6c92a
revert: restore docker-compose.yml — testing-only CORS/baseUrl changes committed by accident
2026-07-09 22:45:21 +02:00
REDCODE
870ebb06f8
fix( #62 ): move mobile modal fix to global MilkyShot.css — scoped ::deep cannot pierce PersonForm root element
...
fix(AlbumCard): add null check for Album.Person before rendering link
The ::deep combinator in CosplayerDetail.razor.css cannot target
.modal-overlay rendered by the PersonForm child component because
Blazor's CSS isolation applies the child's scope attribute to its
root, and ::deep only strips the parent's scope — it doesn't match
elements bearing only the child's scope.
2026-07-09 22:43:27 +02:00
REDCODE
2f7cd3d7da
fix: resolve UI issues #61 , #62 , #66
...
- #61 : wrap standalone fallback div in cosplayer-card-img-wrap on
Cosplayers page so placeholder icon gets proper sizing/positioning
- #62 : add mobile breakpoint rule for modal-overlay so edit form
appears centered on small screens instead of at page bottom
- #66 : make cosplayer name in ImagePreview, AlbumDetail, AlbumCard,
and Home asset tiles a clickable link to /cosplayer/{id}
- add CosplayerIds to AssetPreviewDto and populate via mapper for
linked navigation from the home page image previewer
2026-07-09 22:36:07 +02:00
18ddcf681f
Merge pull request 'feat: migrate to UTC timestamps — remove legacy Npgsql behavior' ( #65 ) from feature/utctimezone into develop
...
Reviewed-on: #65
Reviewed-by: Samuele Lorefice <aironenerowork@gmail.com >
2026-07-09 19:57:43 +00:00
MrFastwind
ede759b50b
feat: migrate to UTC timestamps — remove legacy Npgsql timestamp behavior
...
- Remove EnableLegacyTimestampBehavior switch from Program.cs
- Add ConfigureConventions to DbContext pinning DateTime → timestamptz
- Add migration to convert all 17 DateTime columns across 5 tables
(Albums, Assets, Users, People, JobRecords) with safe AT TIME ZONE 'UTC'
- Add Roslyn analyzer (MS001-MS004) enforcing UTC-only DateTime at compile time
with code fix provider for auto-replacement
- Fix pre-existing DateTime.Now in AuthController.cs:119
- Add AllowMissingPrunePackageData to work around .NET 10 SDK issue
2026-07-09 21:43:46 +02:00
9f74bc91a9
chore: Added the test images folder to the dockerignore avoiding them being sent every time a docker build starts
2026-07-09 18:46:16 +02:00
8922dbcc57
Merge branch 'fix/mobile-ui-responsive-fixes' into develop
...
Closes #49
Integrates responsive mobile UI fixes on top of the cosplayers pages
(#55 ) without conflicts. All 19 files from PR #49 merged cleanly; the
two overlapping files (NavMenu.razor, Albums.razor) were auto-merged
correctly with the cosplayers features preserved.
2026-07-09 18:34:02 +02:00
095a2bdce0
Merge pull request 'feat(ui): cosplayers pages — browse and discover cosplayers' ( #55 ) from feature/cosplayers-pages into develop
...
Reviewed-on: #55
Reviewed-by: Samuele Lorefice <aironenerowork@gmail.com >
2026-07-09 16:00:02 +00:00
b807e4b636
feat: infinite scroll for albums on cosplayer detail page
2026-07-09 17:53:42 +02:00
9c17843dec
fix: cache random banner covers in field, not computed on every render
2026-07-09 17:48:12 +02:00
c1aafc4223
refactor: replace individual albumPage/albumSize params with PagedParametersDto in person detail endpoint
2026-07-09 17:42:37 +02:00
a8d06959b5
feat: person hard delete with album cascade, AlbumCard select mode, cosplayer list multi-select
2026-07-09 17:07:43 +02:00
dbbb25da32
fix: create AlbumSearchParametersDto, add album pagination to person detail, fix duplicate XML param
2026-07-09 16:46:18 +02:00
9f180742cd
fix(test): update name assertion to match renamed person
2026-07-09 16:40:32 +02:00
e8c1a80264
test: all tests create their own data — create album returns ID, all mutations use self-created resources
2026-07-09 16:38:43 +02:00
7e16c77cb6
test: use real album from search for update test, not zero-GUID fallback
2026-07-09 16:36:01 +02:00
8f6a4396db
test: add album update test without removePerson field
2026-07-09 16:34:47 +02:00
34fbbc91a0
chore(test): remove Swagger test — disabled in container environments
2026-07-09 16:32:47 +02:00
9be49ac9c6
fix(test): use response.body directly instead of JSON.parse (already parsed object)
2026-07-09 16:32:00 +02:00
c96b22fe62
fix(tests): fix pre-existing auth route tests and handle empty unassigned albums gracefully
2026-07-09 16:30:53 +02:00
7f50d3c3e2
test(api): add comprehensive http tests for all person and album endpoints
2026-07-09 16:26:11 +02:00
191cba4946
fix(pr): implement BulkUpdate, BulkDelete, revert docker-compose, explain [FromQuery]
2026-07-09 16:22:51 +02:00
a38f627ca4
feat(dto): add RemovePerson flag to AlbumUpdateDto for explicit person unlinking
2026-07-09 15:56:20 +02:00
f31b753182
refactor(dto): move Unassigned filter into PagedSearchParametersDto
2026-07-09 15:54:02 +02:00
1377d02520
fix: prevent album title from being overwritten when only setting Person in update DTO
2026-07-09 15:19:03 +02:00
bac1ad0afc
fix(build): remove stray semicolon in onclick lambda
2026-07-09 15:16:01 +02:00
fa434b180d
fix(api): allow unlinking person from album by directly assigning null PersonOwnerId
2026-07-09 15:12:34 +02:00
4d169e6303
docs: add API reuse convention to AGENTS.md — prefer optional query params over new endpoints
2026-07-09 15:10:05 +02:00
e1d7822b7c
refactor(api): fold unassigned album filter into search endpoint via query param
2026-07-09 15:09:09 +02:00
cc611828b9
feat(ui): unassigned album selector in PersonForm, Add Albums button in CosplayerDetail
2026-07-09 15:07:19 +02:00
9aead51481
feat(ui): add New Cosplayer button on list page with create endpoint and form
2026-07-09 15:00:52 +02:00
67d00efb10
fix(js): resize calculations now in viewport pixels to avoid image-relative X/Y scale mismatch on non-square images
2026-07-09 14:56:47 +02:00
b71fef147a
fix(js): skip resize on first mousemove if mouse hasn't moved from mousedown position
2026-07-09 14:50:58 +02:00
8004dc2b43
fix(js): use correct opposite corners for TL/TR/BL resize handles
2026-07-09 14:44:35 +02:00
c9f08ea48e
fix(ui): use pixel-exact transform positioning for avatar display instead of background-size formula
2026-07-09 14:43:52 +02:00
52b88a3ba4
fix(js): store cropZoom as image-relative fraction (square_side / image_displayed_width), no adjustment needed on save
2026-07-09 14:32:09 +02:00
e39d753a85
fix(js): adjust stored cropZoom by image aspect ratio factor so background-size formula matches circle
2026-07-09 14:15:17 +02:00
83025065b3
fix(ui): correct geometry — square outer, circle inscribed inside; image-relative crop coords with background-image viewport; correct display formula for background-position
2026-07-09 14:08:59 +02:00
0c65e9de1b
fix(css): show full image in cropper viewport (contain instead of cover)
2026-07-09 14:02:18 +02:00
1559bf081e
fix(js): corner-drag resize with fixed opposite corner, proper visual rate matching
2026-07-09 13:58:07 +02:00
79305646dd
fix(js): handle positions relative to square, not viewport
2026-07-09 13:53:48 +02:00
b9ca9f7b45
fix(ui): 4 corner handles on square boundary for resizing instead of single circular handle
2026-07-09 13:29:05 +02:00
5aed999671
fix(ui): random 3 album covers max in banner, redesigned cropper with drag-to-move and drag-handle resize, image stays static
2026-07-09 13:25:37 +02:00
56b80038a3
fix(ui): always render ProfileCropper in tree, use OnParametersSet to trigger JS init
2026-07-09 13:20:54 +02:00
3d3c59d58b
chore: remove unused banner-cell-empty CSS class
2026-07-09 13:17:32 +02:00
76bbdbd2f4
fix(ui): remove empty filler cells from banner mosaic, let overlay cover gaps naturally
2026-07-09 13:17:22 +02:00
22b15c387b
feat(ui): redesigned profile cropper with movable circle, dimmed exterior, square boundary, zoom controls; added ProfileCropZoom to model; switched avatars to background-image for zoom support
2026-07-09 13:15:19 +02:00
bcfb838b5e
fix(js): set onload before src to handle cached images
2026-07-09 13:07:23 +02:00
63a16392d7
feat(ui): add circular profile picture cropper with drag-to-pan
2026-07-09 13:03:08 +02:00