diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor index c8111cbf..89dd8d71 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/EnvelopeSenderPage.razor @@ -10,6 +10,7 @@ @inject EnvelopeGenerator.Server.Client.Services.AuthService AuthService @inject EnvelopeGenerator.Server.Client.Services.ThemeService ThemeService @inject EnvelopeGenerator.Server.Client.Services.UserPreferencesService UserPreferencesService +@inject EnvelopeGenerator.Server.Client.Services.CustomImagesService CustomImagesService @inject NavigationManager Navigation @inject IJSRuntime JSRuntime @inject AppVersionService AppVersion @@ -22,9 +23,20 @@
Umschlag-Übersicht
@@ -341,6 +353,9 @@ private DxGrid? _gridActive; private DxGrid? _gridCompleted; + // Logo config loaded from /api/CustomImages after auth + private EnvelopeGenerator.Server.Client.Services.CustomImageDto? _appLogo; + // Stable keys used to store/restore each grid's layout in UserPreferences.GridLayouts private const string GridKeyActive = "sender.active-envelopes"; private const string GridKeyCompleted = "sender.completed-envelopes"; @@ -360,6 +375,10 @@ try { await ThemeService.LoadFromServerAsync(); } catch { /* swallow — default theme remains active */ } + // Load logo config — authenticated, so this should succeed + var logos = await CustomImagesService.GetAsync(); + _appLogo = logos.App; + await LoadEnvelopesAsync(); } diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/IndexPage.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/IndexPage.razor index 710474f7..0c1ea17a 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/IndexPage.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Pages/IndexPage.razor @@ -1,15 +1,27 @@ @page "/" @inject IJSRuntime JS @inject NavigationManager Navigation +@inject EnvelopeGenerator.Server.Client.Services.CustomImagesService CustomImagesService @rendermode InteractiveWebAssembly
- - - + @* signFLOW logo from appsettings.json CustomImages.App — fallback to SVG if not loaded *@ + @if (_appLogo is not null && !string.IsNullOrEmpty(_appLogo.Src)) + { + signFLOW + } + else + { + + + + }

SignFlow

Willkommen im eSign-Portal

@@ -73,11 +85,18 @@ "Mit seiner benutzerfreundlichen Oberfläche können Sie Ihre Dokumente schnell hochladen, die Unterschriftsprozesse verfolgen und Ihre digitalen Unterschriftenanwendungen einfach durchführen. " + "Dieses Portal beschleunigt Ihren Arbeitsablauf mit rechtlich gültigen Unterschriften und erhöht gleichzeitig die Sicherheit Ihrer Dokumente."; + private EnvelopeGenerator.Server.Client.Services.CustomImageDto? _appLogo; + + protected override async Task OnInitializedAsync() + { + // Load logo config early — 401 here is normal (not yet logged in), service returns defaults silently + var logos = await CustomImagesService.GetAsync(); + _appLogo = logos.App; + } + protected override async Task OnAfterRenderAsync(bool firstRender) { - if (firstRender) - { - await JS.InvokeVoidAsync("receiverSignature.startTyped", "home-description", HomePageDescription, 15); - } + if (!firstRender) return; + await JS.InvokeVoidAsync("receiverSignature.startTyped", "home-description", HomePageDescription, 15); } }