Documents: Update documents

This commit is contained in:
2023-09-05 20:41:03 +02:00
parent b76d43a5ff
commit faaeefe6ce
5 changed files with 40 additions and 23 deletions

View File

@ -2,7 +2,6 @@
@inherits TemplatePage<Elwig.Documents.BusinessDocument>
@model Elwig.Documents.BusinessDocument
@{ Layout = "Document"; }
<div class="info-wrapper">
<div class="address-wrapper">
<div class="sender">

View File

@ -2,7 +2,6 @@
@inherits TemplatePage<Elwig.Documents.BusinessLetter>
@model Elwig.Documents.BusinessLetter
@{ Layout = "BusinessDocument"; }
<p>Sehr geehrtes Mitglied,</p>
<p>nein.</p>
<p>Mit freundlichen Grüßen<br/>Ihre Winzergenossenschaft</p>

View File

@ -2,7 +2,6 @@
@inherits TemplatePage<Elwig.Documents.DeliveryNote>
@model Elwig.Documents.DeliveryNote
@{ Layout = "BusinessDocument"; }
<div class="date">@Model.Location, am @($"{Model.Date:dd.MM.yyyy}")</div>
<h1>@Model.Title</h1>
@{
@ -11,24 +10,35 @@
<script>
document.addEventListener("DOMContentLoaded", () => {
const hidden = document.getElementsByClassName("hidden")[0];
const bottom = hidden.offsetTop + hidden.offsetHeight;
const cm = bottom * 2.54 / 96 * window.devicePixelRatio;
const table = document.getElementsByClassName("delivery")[0];
const stats = document.getElementById("delivery-stats");
const mm = px2mm(0, hidden.offsetTop + hidden.offsetHeight);
const heightTable = px2mm(table.offsetTop, hidden.offsetTop + hidden.offsetHeight);
if (cm > 25.75) {
// force page break
const table = document.getElementsByClassName("delivery")[0];
if (mm >= heightA4 - heightFooter) {
if (heightTable + 10 >= heightMain) {
// force page break in table
const tblOff = px2mm(0, table.offsetTop);
let last = null;
for (const tr of table.getElementsByTagName("tr")) {
if (!tr.classList.contains("main")) continue;
const mm2 = tblOff + px2mm(0, tr.offsetTop);
if (mm2 >= heightA4 - heightFooter) {
last.classList.add("page-break");
break;
}
last = tr;
}
} else {
// force page break
const hr = document.createElement("hr");
hr.classList.add("page-break");
table.before(hr);
const hr = document.createElement("hr");
hr.classList.add("page-break");
table.before(hr);
const stats = document.getElementById("delivery-stats");
stats.getElementsByTagName("table")[0].classList.add("expanded");
hr.before(stats);
const p = document.createElement("p");
p.innerText = "Siehe nächste Seite."
stats.before(p);
const p = document.createElement("p");
p.innerText = "Siehe nächste Seite."
hr.before(p);
}
}
});
</script>

View File

@ -1,7 +1,6 @@
@using RazorLight
@inherits TemplatePage<Elwig.Documents.Document>
@model Elwig.Documents.Document
<!DOCTYPE html>
<html lang="de-AT">
<head>
@ -13,9 +12,15 @@
window.addEventListener("beforeprint", async () => { await window.PagedPolyfill.preview(); });
window.addEventListener("afterprint", () => { location.reload(); });
}
const heightA4 = 297, widhtA4 = 210, heightFooter = 35, heightHeader = 25;
const heightMain = heightA4 - heightFooter - heightHeader;
function px2mm(px1, px2) {
return (px2 - px1 + 1) * 2.54 / 96 * window.devicePixelRatio * 10;
}
</script>
<script src="@Raw(Model.DataPath)\resources\paged.polyfill.js"></script>
<link rel="stylesheet" href="@Raw(Model.DataPath)\resources\style.css" />
<script src="file:///@Raw(Model.DataPath)\resources\paged.polyfill.js"></script>
<link rel="stylesheet" href="file:///@Raw(Model.DataPath)\resources\style.css"/>
</head>
<body>
<div class="m1"></div>

View File

@ -165,7 +165,7 @@ main p.comment {
}
.pre-footer {
margin: 4.23mm 0;
margin: 1em 0;
font-size: 10pt;
display: flex;
}
@ -327,6 +327,10 @@ hr.page-break {
break-after: page;
}
tr.page-break {
break-before: page;
}
@page {
size: A4;
margin: 25mm 0 35mm 0;