diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeSenderEditorPage.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeSenderEditorPage.razor index 53ec6e0b..eb4bf201 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeSenderEditorPage.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeSenderEditorPage.razor @@ -28,23 +28,65 @@
- @* Left: Title *@ -
-
-
- Neues Dokument + @* Left: Title + meta inputs + receivers *@ +
+ + @* ── Title & Message inputs ── *@ +
+ + @* Titel *@ +
+ + + @if (_titleTouched && string.IsNullOrWhiteSpace(_envelopeTitle)) + { + Pflichtfeld + }
+ + @* Nachricht *@ +
+ + +
+ + @* PDF filename badge *@ @if (_pdfLoaded) { - @_fileName - @if (_signatureFields.Count > 0) - { - - @_signatureFields.Count Signaturfeld@(_signatureFields.Count != 1 ? "er" : "") - - } +
+ @_fileName + @if (_signatureFields.Count > 0) + { + + @_signatureFields.Count Signaturfeld@(_signatureFields.Count != 1 ? "er" : "") + + } +
}
@@ -419,6 +461,11 @@ bool _savePopupVisible = false; string? _saveErrorMessage = null; + // ── Envelope metadata ── + string _envelopeTitle = string.Empty; + string _envelopeMessage = string.Empty; + bool _titleTouched = false; + List _receivers = []; bool _receiverPopupVisible; string _receiverDraftName = string.Empty; @@ -469,6 +516,8 @@ _fileName = cached.FileName; _pdfLoaded = _originalPdfBytes is { Length: > 0 }; _receivers = cached.Receivers; + _envelopeTitle = cached.Title; + _envelopeMessage = cached.Message; // Redraw placeholders onto the original PDF if (_pdfLoaded) @@ -625,12 +674,19 @@ async Task SaveAsync() { // ── Validation ── + _titleTouched = true; if (!_pdfLoaded || _originalPdfBytes is null) { _saveErrorMessage = "Bitte laden Sie zuerst ein PDF-Dokument hoch."; _savePopupVisible = true; return; } + if (string.IsNullOrWhiteSpace(_envelopeTitle)) + { + _saveErrorMessage = "Bitte geben Sie einen Titel ein."; + _savePopupVisible = true; + return; + } if (_receivers.Count == 0) { _saveErrorMessage = "Bitte fügen Sie mindestens einen Empfänger hinzu."; @@ -690,8 +746,10 @@ var command = new CreateEnvelopeReceiverCommand { - Title = "Neuer Umschlag", // placeholder — dedicated field will be added later - Message = "Bitte unterzeichnen Sie das beigefügte Dokument.", + Title = _envelopeTitle.Trim(), + Message = string.IsNullOrWhiteSpace(_envelopeMessage) + ? "Bitte unterzeichnen Sie das beigefügte Dokument." + : _envelopeMessage.Trim(), TFAEnabled = false, Document = new DocumentCreateCommand { DataAsBase64 = docBase64 }, Receivers = receiversCmd, @@ -728,7 +786,9 @@ OriginalPdfBytes: _originalPdfBytes ?? [], Fields: [.. _signatureFields], FileName: _fileName, - Receivers: [.. _receivers]); + Receivers: [.. _receivers], + Title: _envelopeTitle, + Message: _envelopeMessage); MemoryCache.Set(SessionKey, data, SessionTtl); } @@ -977,7 +1037,9 @@ byte[] OriginalPdfBytes, List Fields, string FileName, - List Receivers); + List Receivers, + string Title, + string Message); // ── Receiver colour palette (cycles when > 8 receivers) ── static readonly string[] ReceiverPalette =