Enhance signature handling and annotation features
- Added dependency injection for `AnnotationService`, `DocumentService`, and `AuthService` in `ReportViewer.razor`. - Improved signature button logic with dynamic appearance and feedback. - Introduced annotation checkbox overlays for marking signature fields. - Refactored signature saving and application logic into `SaveSignatureAsync` and `SubmitSignaturesAsync`. - Added `BuildFreshBaseReport` and `AddAnnotationPlaceholders` for dynamic report creation. - Implemented annotation-specific signature placement with `AddSignatureAtAnnotation`. - Enhanced state management for annotations and signature overlays. - Updated `app.css` with styles for annotation checkboxes. - Added cache-control headers and versioned JavaScript in `index.html`. - Improved `receiver-signature.js` with annotation checkbox management, optimized signature pad logic, and debugging utilities. - Performed general code cleanup and optimization for maintainability.
This commit is contained in:
@@ -70,4 +70,65 @@ article {
|
||||
.dx-blazor-reporting-container {
|
||||
height: calc(100vh - 130px) !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
/* ── Force DevExpress viewer pages into a single centered column ─────────── */
|
||||
.dxbrv-report-preview-content {
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
align-items: center !important;
|
||||
}
|
||||
|
||||
/* ── Annotation signature checkbox overlays ─────────────────────────────── */
|
||||
.annot-sig-cb-wrapper {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 8px;
|
||||
border-radius: 4px;
|
||||
font-size: 0.82rem;
|
||||
font-weight: 700;
|
||||
font-family: "Segoe UI", Arial, sans-serif;
|
||||
padding: 0 10px;
|
||||
overflow: hidden;
|
||||
transition: background-color 0.15s, border-color 0.15s, box-shadow 0.15s;
|
||||
box-shadow: 0 2px 6px rgba(0,0,0,0.25);
|
||||
background-color: rgba(255, 236, 153, 0.97);
|
||||
border: 2px dashed #e65100;
|
||||
color: #5d2600;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.annot-sig-cb-wrapper:hover {
|
||||
background-color: rgba(255, 213, 79, 1);
|
||||
border-color: #bf360c;
|
||||
box-shadow: 0 3px 10px rgba(230, 81, 0, 0.4);
|
||||
}
|
||||
|
||||
.annot-sig-cb-wrapper--checked {
|
||||
background-color: rgba(200, 230, 201, 0.97);
|
||||
border: 2px solid #2e7d32;
|
||||
color: #1b5e20;
|
||||
box-shadow: 0 1px 4px rgba(46, 125, 50, 0.25);
|
||||
}
|
||||
|
||||
.annot-sig-cb-wrapper--checked:hover {
|
||||
background-color: rgba(165, 214, 167, 1);
|
||||
border-color: #1b5e20;
|
||||
box-shadow: 0 3px 10px rgba(46, 125, 50, 0.35);
|
||||
}
|
||||
|
||||
.annot-sig-cb {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
accent-color: #2e7d32;
|
||||
}
|
||||
|
||||
.annot-sig-cb__label {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
pointer-events: none;
|
||||
}
|
||||
Reference in New Issue
Block a user