From 870015ce9386c8116d7fe58ef5f8ee4b43555cc1 Mon Sep 17 00:00:00 2001 From: Bertrand THOMAS Date: Fri, 13 Mar 2026 20:32:12 +0100 Subject: [PATCH 1/6] Improve pagination --- README.md | 1 + .../Inventory/Shared/InventoryList.razor | 43 +++++++++++++++++-- src/BlazorApp/wwwroot/app.css | 9 ++++ 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 73dd74d2..f54abab1 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=devpro_keeptrack&metric=alert_status)](https://sonarcloud.io/dashboard?id=devpro_keeptrack) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=devpro_keeptrack&metric=coverage)](https://sonarcloud.io/dashboard?id=devpro_keeptrack) [![Docker Image Version](https://img.shields.io/docker/v/devprofr/keeptrack-blazorapp?label=Image&logo=docker)](https://hub.docker.com/r/devprofr/keeptrack-blazorapp) + [![FOSSA Status](https://app.fossa.com/api/projects/custom%2B60068%2Fgithub.com%2Fdevpro%2Fkeeptrack.svg?type=shield&issueType=license)](https://app.fossa.com/projects/custom%2B60068%2Fgithub.com%2Fdevpro%2Fkeeptrack?ref=badge_shield&issueType=license) [![FOSSA Status](https://app.fossa.com/api/projects/custom%2B60068%2Fgithub.com%2Fdevpro%2Fkeeptrack.svg?type=shield&issueType=security)](https://app.fossa.com/projects/custom%2B60068%2Fgithub.com%2Fdevpro%2Fkeeptrack?ref=badge_shield&issueType=security) diff --git a/src/BlazorApp/Components/Inventory/Shared/InventoryList.razor b/src/BlazorApp/Components/Inventory/Shared/InventoryList.razor index e9d43d8e..4b92d0d4 100644 --- a/src/BlazorApp/Components/Inventory/Shared/InventoryList.razor +++ b/src/BlazorApp/Components/Inventory/Shared/InventoryList.razor @@ -99,14 +99,51 @@ else @if (TotalPages > 1) {
- - @for (var p = 1; p <= TotalPages; p++) + + + + @{ + int start, end; + if (TotalPages <= 3) + { + start = 1; + end = TotalPages; + } + else if (Page <= 2) + { + start = 1; + end = 3; + } + else if (Page >= TotalPages - 1) + { + start = TotalPages - 2; + end = TotalPages; + } + else + { + start = Page - 1; + end = Page + 1; + } + } + + @for (var p = start; p <= end; p++) { var pageNum = p; } - + + + + @TotalCount results
} diff --git a/src/BlazorApp/wwwroot/app.css b/src/BlazorApp/wwwroot/app.css index e211887e..d9a38465 100644 --- a/src/BlazorApp/wwwroot/app.css +++ b/src/BlazorApp/wwwroot/app.css @@ -557,6 +557,15 @@ button.nav-link:hover { color: #e07070 !important; background: rgba(192,72,90,0. gap: 0.3rem; padding: 1rem 1.5rem; border-top: 1px solid var(--kt-border); + flex-wrap: wrap; +} + +@media (max-width: 767px) { + .kt-page-btn { + min-width: 30px; + height: 30px; + font-size: 0.75rem; + } } .kt-page-btn { From e43054a0677f58a446fb7757639e1895bd52b740 Mon Sep 17 00:00:00 2001 From: Bertrand THOMAS Date: Sat, 14 Mar 2026 14:22:40 +0100 Subject: [PATCH 2/6] Update reusable component for packaging --- .github/workflows/pkg.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkg.yaml b/.github/workflows/pkg.yaml index e053a8c3..bf78c9f9 100644 --- a/.github/workflows/pkg.yaml +++ b/.github/workflows/pkg.yaml @@ -28,7 +28,7 @@ jobs: permissions: id-token: write contents: read - uses: devpro/github-workflow-parts/.github/workflows/reusable-container-publication.yml@62dbf6e833e49230ab34ef3c44093ebb727a095f + uses: devpro/github-workflow-parts/.github/workflows/reusable-container-publication.yml@e9f24fbdfe19acb2f036a8d411582cb016638f3a with: create-latest: ${{ github.ref_name == 'main' }} image-definition: ${{ matrix.image-definition }} From ceb2147fe186799a7ad8161cb8125fc673f02099 Mon Sep 17 00:00:00 2001 From: Bertrand THOMAS Date: Sat, 14 Mar 2026 14:23:26 +0100 Subject: [PATCH 3/6] Add music albums --- .../Inventory/Pages/MusicAlbums.razor | 50 +++++++++++++++++++ .../Inventory/Pages/MusicAlbums.razor.cs | 21 ++++++++ src/BlazorApp/Components/Layout/NavMenu.razor | 5 ++ src/Domain/Models/MusicAlbumModel.cs | 20 ++++++++ .../Repositories/IMusicAlbumRepository.cs | 5 ++ .../Entities/MusicAlbum.cs | 23 +++++++++ .../Repositories/MusicAlbumRepository.cs | 24 +++++++++ src/WebApi.Contracts/Dto/MusicAlbumDto.cs | 18 +++++++ .../Controllers/MusicAlbumController.cs | 12 +++++ .../DataStorageMappingProfile.cs | 6 +++ .../WebServiceMappingProfile.cs | 4 ++ 11 files changed, 188 insertions(+) create mode 100644 src/BlazorApp/Components/Inventory/Pages/MusicAlbums.razor create mode 100644 src/BlazorApp/Components/Inventory/Pages/MusicAlbums.razor.cs create mode 100644 src/Domain/Models/MusicAlbumModel.cs create mode 100644 src/Domain/Repositories/IMusicAlbumRepository.cs create mode 100644 src/Infrastructure.MongoDb/Entities/MusicAlbum.cs create mode 100644 src/Infrastructure.MongoDb/Repositories/MusicAlbumRepository.cs create mode 100644 src/WebApi.Contracts/Dto/MusicAlbumDto.cs create mode 100644 src/WebApi/Controllers/MusicAlbumController.cs diff --git a/src/BlazorApp/Components/Inventory/Pages/MusicAlbums.razor b/src/BlazorApp/Components/Inventory/Pages/MusicAlbums.razor new file mode 100644 index 00000000..0baa296d --- /dev/null +++ b/src/BlazorApp/Components/Inventory/Pages/MusicAlbums.razor @@ -0,0 +1,50 @@ +@page "/music-albums" +@inherits InventoryPageBase +@rendermode InteractiveServer +@attribute [Authorize] + + + + Title + Artist + Genre + + + @book.Title + @book.Artist + @book.Genre + + + + + + + + + + + + diff --git a/src/BlazorApp/Components/Inventory/Pages/MusicAlbums.razor.cs b/src/BlazorApp/Components/Inventory/Pages/MusicAlbums.razor.cs new file mode 100644 index 00000000..0104cee3 --- /dev/null +++ b/src/BlazorApp/Components/Inventory/Pages/MusicAlbums.razor.cs @@ -0,0 +1,21 @@ +using Keeptrack.WebApi.Contracts.Dto; +using Microsoft.AspNetCore.Components; + +namespace Keeptrack.BlazorApp.Components.Inventory.Pages; + +public partial class MusicAlbums : InventoryPageBase +{ + [Inject] private MusicAlbumsApiClient MusicAlbumApi { get; set; } = null!; + + protected override InventoryApiClientBase Api => MusicAlbumApi; + + protected override MusicAlbumDto CloneItem(MusicAlbumDto item) => new() + { + Id = item.Id, + Title = item.Title, + Artist = item.Artist, + Genre = item.Genre, + Year = item.Year, + Rating = item.Rating + }; +} diff --git a/src/BlazorApp/Components/Layout/NavMenu.razor b/src/BlazorApp/Components/Layout/NavMenu.razor index 7e8e6535..66a22a47 100644 --- a/src/BlazorApp/Components/Layout/NavMenu.razor +++ b/src/BlazorApp/Components/Layout/NavMenu.razor @@ -24,6 +24,11 @@ 🎬 Movies +