From f517ab4cfbbc08fe1daf4899e401c55acc6bb173 Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 21 Sep 2026 12:03:27 +0200 Subject: [PATCH] Enhance grid UI and refactor boot overlay logic - Updated `MappingProfile.cs` to add detailed mapping for `Envelope` to `EnvelopeDto`, including `EnvelopeTypeTitle`. - Added a grid persistence hint banner in `EnvelopeSenderPage.razor` with an SVG icon and German message. - Introduced three new columns (`EnvelopeTypeTitle`, `AddedWhen`, `ChangedWhen`) to the grid in `EnvelopeSenderPage.razor`. - Refactored boot overlay removal logic in `App.razor` into a reusable function `sfRemoveBootOverlay`. - Simplified event handling for overlay removal and fallback logic in `App.razor`. - Adjusted `.sender-grid-wrapper` padding in `sender-page.css` and added styles for the new grid persistence hint banner. --- .../Common/MappingProfile.cs | 4 +++- .../Pages/EnvelopeSenderPage.razor | 23 ++++++++++++++++++- .../Components/App.razor | 21 ++++++----------- .../wwwroot/css/sender-page.css | 15 +++++++++++- 4 files changed, 46 insertions(+), 17 deletions(-) diff --git a/EnvelopeGenerator.Application/Common/MappingProfile.cs b/EnvelopeGenerator.Application/Common/MappingProfile.cs index 361cd0cd..d87ce12a 100644 --- a/EnvelopeGenerator.Application/Common/MappingProfile.cs +++ b/EnvelopeGenerator.Application/Common/MappingProfile.cs @@ -28,7 +28,9 @@ public class MappingProfile : Profile CreateMap(); CreateMap(); CreateMap(); - CreateMap(); + CreateMap() + .ForMember(dest => dest.EnvelopeTypeTitle, + opt => opt.MapFrom(src => src.Type != null ? src.Type.Title : null)); CreateMap(); CreateMap().ForMember(dest => dest.ActionDate, opt => opt.MapFrom(src => src.ChangedWhen)); CreateMap().ForMember(dest => dest.ActionDate, opt => opt.MapFrom(src => src.ChangedWhen)); diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor index 706705cb..3ee63ef5 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor @@ -147,6 +147,15 @@
+ + @* Grid persistence hint — informs users their layout is auto-saved *@ +
+ + + + + Die Größe und Position der Spalten wird automatisch für Sie gespeichert. +
@if (_activeTab == "active") { } } - + + + +
@@ -312,6 +327,12 @@ } + + +
diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/App.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/App.razor index 15f19278..4c61b9f4 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/App.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/App.razor @@ -44,23 +44,16 @@ diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/wwwroot/css/sender-page.css b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/wwwroot/css/sender-page.css index f06c124e..b944e008 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/wwwroot/css/sender-page.css +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/wwwroot/css/sender-page.css @@ -199,7 +199,20 @@ } .sender-grid-wrapper { - padding: 1.5rem 2rem 2rem; + padding: 0 2rem 2rem; /* top padding removed — hint banner provides top spacing */ +} + +/* ── Grid persistence hint banner ─────────────────────────────────────────── */ +.sf-grid-persistence-hint { + display: flex; + align-items: center; + gap: 6px; + padding: 6px 2rem; + font-size: 0.72rem; + color: rgba(126, 34, 206, 0.65); + background: rgba(126, 34, 206, 0.04); + border-bottom: 1px solid rgba(126, 34, 206, 0.08); + user-select: none; } /* Hide DevExpress empty cells */