Add signature panel and layout updates for ReportViewer

Enhanced `ReportViewer.razor` with a new layout structure:
- Added `receiver-page-layout` with `receiver-signature-panel` and `receiver-viewer-wrapper` for better organization.
- Introduced a button to export signed PDFs, conditionally enabled based on `SignatureApplied`.
- Added a `DxPopup` for capturing signatures with a "Close" button.

Updated `MainLayout.razor` to remove unnecessary padding from `<article>`.

Refined `app.css`:
- Defined styles for `receiver-page-layout`, `receiver-signature-panel`, and `receiver-viewer-wrapper` to improve layout flexibility.
- Adjusted `article` to use flexbox and ensure hidden overflow.
This commit is contained in:
2026-05-28 23:37:20 +02:00
parent 40c5e1d044
commit 33c52bcef8
3 changed files with 31 additions and 1 deletions

View File

@@ -17,6 +17,9 @@
<link href="_content/DevExpress.Blazor.Themes/blazing-berry.bs5.min.css" rel="stylesheet" /> <link href="_content/DevExpress.Blazor.Themes/blazing-berry.bs5.min.css" rel="stylesheet" />
<link href="_content/DevExpress.Blazor.Reporting.Viewer/css/dx-blazor-reporting-components.bs5.css" rel="stylesheet" /> <link href="_content/DevExpress.Blazor.Reporting.Viewer/css/dx-blazor-reporting-components.bs5.css" rel="stylesheet" />
<div class="receiver-page-layout">
<div class="receiver-signature-panel">
<div class="card m-3"> <div class="card m-3">
<div class="card-body"> <div class="card-body">
<h5 class="card-title">Unterschrift</h5> <h5 class="card-title">Unterschrift</h5>
@@ -38,6 +41,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
<DxPopup @bind-Visible="SignaturePopupVisible" <DxPopup @bind-Visible="SignaturePopupVisible"
HeaderText="Unterschrift erfassen" HeaderText="Unterschrift erfassen"
@@ -114,9 +118,13 @@
</FooterContentTemplate> </FooterContentTemplate>
</DxPopup> </DxPopup>
<div class="receiver-viewer-wrapper">
@if(Report is not null) { @if(Report is not null) {
<DxReportViewer @key="ViewerKey" @ref="reportViewer" Report="Report" RootCssClasses="w-100 h-100" /> <DxReportViewer @key="ViewerKey" @ref="reportViewer" Report="Report" RootCssClasses="w-100 h-100" />
} }
</div>
</div>
@code { @code {
const string SignatureTabDraw = "draw"; const string SignatureTabDraw = "draw";

View File

@@ -7,7 +7,7 @@
<a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a> <a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
</div> </div>
<article class="content px-4"> <article class="content">
@Body @Body
</article> </article>
</main> </main>

View File

@@ -12,6 +12,28 @@ html, body {
article { article {
height: calc(100vh - 70px); height: calc(100vh - 70px);
display: flex;
flex-direction: column;
overflow: hidden;
padding-left: 0 !important;
padding-right: 0 !important;
}
.receiver-page-layout {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
}
.receiver-signature-panel {
flex: 0 0 auto;
}
.receiver-viewer-wrapper {
flex: 1 1 0;
min-height: 0;
overflow: hidden;
} }
.valid.modified:not([type=checkbox]) { .valid.modified:not([type=checkbox]) {