Wrap adoption report in letter sheet
This commit is contained in:
+57
-43
@@ -4501,18 +4501,28 @@ function App() {
|
||||
background: ${bodyBackground};
|
||||
box-sizing: border-box;
|
||||
color: var(--ink);
|
||||
display: flex;
|
||||
font-family: Inter, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
justify-content: center;
|
||||
line-height: 1.38;
|
||||
margin: 0 auto;
|
||||
max-width: 7.5in;
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
padding: 0.28in;
|
||||
padding: 24px;
|
||||
position: relative;
|
||||
}
|
||||
*, *::before, *::after { box-sizing: inherit; }
|
||||
img, svg { max-width: 100%; }
|
||||
${backgroundOverlayCss}
|
||||
.report-page {
|
||||
background: ${printFriendly ? '#fff' : 'rgba(255, 253, 249, 0.82)'};
|
||||
border: 1px solid ${printFriendly ? 'transparent' : 'rgba(53, 129, 98, 0.12)'};
|
||||
border-radius: ${printFriendly ? '0' : '18px'};
|
||||
box-shadow: ${printFriendly ? 'none' : '0 18px 42px rgba(86, 63, 34, 0.16)'};
|
||||
max-width: 100%;
|
||||
padding: 0.28in;
|
||||
width: 7.5in;
|
||||
}
|
||||
header {
|
||||
background: ${headerBackground};
|
||||
border: 1px solid var(--border);
|
||||
@@ -4606,12 +4616,14 @@ function App() {
|
||||
main { margin-top: 16px; }
|
||||
@media print {
|
||||
@page { margin: 0.4in; size: letter; }
|
||||
body { margin: 0 auto; padding: 0; }
|
||||
body { display: block; margin: 0; padding: 0; }
|
||||
.report-page { border: 0; border-radius: 0; box-shadow: none; padding: 0; width: 100%; }
|
||||
header { box-shadow: none; break-inside: avoid; }
|
||||
button { display: none; }
|
||||
}
|
||||
@media (max-width: 820px) {
|
||||
body { padding: 18px; }
|
||||
.report-page { padding: 18px; width: 100%; }
|
||||
header {
|
||||
grid-template-columns: 1fr;
|
||||
justify-items: center;
|
||||
@@ -4625,45 +4637,47 @@ function App() {
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<img class="brand-logo" src="${escapeReportHtml(reportLogoUrl)}" alt="FlockPal logo">
|
||||
<div class="report-title">
|
||||
<img class="profile-photo" src="${escapeReportHtml(reportPhotoUrl)}" alt="${escapeReportHtml(selectedBird.name)} profile photo">
|
||||
<h1>${escapeReportHtml(selectedBird.name)}</h1>
|
||||
<p class="muted">Adoption Report</p>
|
||||
<p class="muted">Generated ${escapeReportHtml(formatDateTime(new Date().toISOString()))}</p>
|
||||
</div>
|
||||
<div class="qr">
|
||||
<p class="qr-join-label">Join</p>
|
||||
<img class="qr-wordmark" src="${escapeReportHtml(reportWordmarkUrl)}" alt="FlockPal">
|
||||
<svg viewBox="0 0 ${qr.viewBoxSize} ${qr.viewBoxSize}" role="img" aria-label="Transfer code QR">
|
||||
<rect width="${qr.viewBoxSize}" height="${qr.viewBoxSize}" fill="#fff"></rect>
|
||||
<path d="${escapeReportHtml(qr.path)}" fill="#111418"></path>
|
||||
</svg>
|
||||
<p class="code">${escapeReportHtml(transferCode)}</p>
|
||||
<p class="qr-note">Enter this code to keep ${escapeReportHtml(selectedBird.name)}'s care history flying forward.</p>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<h2>Flock Member Info</h2>
|
||||
<section class="facts">
|
||||
${profileRows.map(([label, value]) => `<div class="fact"><span>${escapeReportHtml(label)}</span><strong>${escapeReportHtml(value)}</strong></div>`).join('')}
|
||||
</section>
|
||||
${detailList('Motivators', selectedBird.motivators)}
|
||||
${detailList('Demotivators', selectedBird.demotivators)}
|
||||
<h2>Weight Graph</h2>
|
||||
${chartSvg}
|
||||
<h2>Weight History</h2>
|
||||
<table><thead><tr><th>Date</th><th>Weight</th><th>Notes</th></tr></thead><tbody>${weightRows}</tbody></table>
|
||||
<h2>Veterinary Clinic Info</h2>
|
||||
<section class="facts">
|
||||
${vetRows.map(([label, value]) => `<div class="fact"><span>${escapeReportHtml(label)}</span><strong>${escapeReportHtml(value)}</strong></div>`).join('')}
|
||||
</section>
|
||||
<h2>Vet Visit History</h2>
|
||||
<table><thead><tr><th>Date</th><th>Clinic</th><th>Reason</th><th>Notes</th></tr></thead><tbody>${vetVisitRows}</tbody></table>
|
||||
<h2>Notes</h2>
|
||||
${noteRows}
|
||||
</main>
|
||||
<div class="report-page">
|
||||
<header>
|
||||
<img class="brand-logo" src="${escapeReportHtml(reportLogoUrl)}" alt="FlockPal logo">
|
||||
<div class="report-title">
|
||||
<img class="profile-photo" src="${escapeReportHtml(reportPhotoUrl)}" alt="${escapeReportHtml(selectedBird.name)} profile photo">
|
||||
<h1>${escapeReportHtml(selectedBird.name)}</h1>
|
||||
<p class="muted">Adoption Report</p>
|
||||
<p class="muted">Generated ${escapeReportHtml(formatDateTime(new Date().toISOString()))}</p>
|
||||
</div>
|
||||
<div class="qr">
|
||||
<p class="qr-join-label">Join</p>
|
||||
<img class="qr-wordmark" src="${escapeReportHtml(reportWordmarkUrl)}" alt="FlockPal">
|
||||
<svg viewBox="0 0 ${qr.viewBoxSize} ${qr.viewBoxSize}" role="img" aria-label="Transfer code QR">
|
||||
<rect width="${qr.viewBoxSize}" height="${qr.viewBoxSize}" fill="#fff"></rect>
|
||||
<path d="${escapeReportHtml(qr.path)}" fill="#111418"></path>
|
||||
</svg>
|
||||
<p class="code">${escapeReportHtml(transferCode)}</p>
|
||||
<p class="qr-note">Enter this code to keep ${escapeReportHtml(selectedBird.name)}'s care history flying forward.</p>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<h2>Flock Member Info</h2>
|
||||
<section class="facts">
|
||||
${profileRows.map(([label, value]) => `<div class="fact"><span>${escapeReportHtml(label)}</span><strong>${escapeReportHtml(value)}</strong></div>`).join('')}
|
||||
</section>
|
||||
${detailList('Motivators', selectedBird.motivators)}
|
||||
${detailList('Demotivators', selectedBird.demotivators)}
|
||||
<h2>Weight Graph</h2>
|
||||
${chartSvg}
|
||||
<h2>Weight History</h2>
|
||||
<table><thead><tr><th>Date</th><th>Weight</th><th>Notes</th></tr></thead><tbody>${weightRows}</tbody></table>
|
||||
<h2>Veterinary Clinic Info</h2>
|
||||
<section class="facts">
|
||||
${vetRows.map(([label, value]) => `<div class="fact"><span>${escapeReportHtml(label)}</span><strong>${escapeReportHtml(value)}</strong></div>`).join('')}
|
||||
</section>
|
||||
<h2>Vet Visit History</h2>
|
||||
<table><thead><tr><th>Date</th><th>Clinic</th><th>Reason</th><th>Notes</th></tr></thead><tbody>${vetVisitRows}</tbody></table>
|
||||
<h2>Notes</h2>
|
||||
${noteRows}
|
||||
</main>
|
||||
</div>
|
||||
</body>
|
||||
</html>`);
|
||||
reportWindow.document.close();
|
||||
|
||||
Reference in New Issue
Block a user