Several overflow-x-auto wrappers (table cards, a text preview) got an accidental *vertical* scrollbar too -- per the CSS overflow spec, setting only overflow-x to a non-visible value forces the other axis to compute as auto if left unset, so any of these taller than the viewport were trapped scrolling independently of the page (Safari showed it plainly; other browsers hid it more subtly). Fixed everywhere with overflow-y-visible, except the week calendar. The week grid genuinely needs to stay its own bounded, contained scroll: it always spans the full 24h day (never clipped, by design), so folding it into the page's own scroll would mean scrolling past a screenful of empty early hours most weeks. Instead it's capped to 70vh with a real overflow-y-auto, and a small script scrolls it to just before the week's first event on load (events.services.calendar.week_grid now reports first_event_hour) -- no more landing on an empty view by default. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ECGMEwrc2k4D8VQuwjstj9
35 lines
1.9 KiB
HTML
35 lines
1.9 KiB
HTML
{% load i18n %}
|
|
|
|
{% comment %}
|
|
One card in the Club identity page's Email/PDF tabs -- included with
|
|
`preview` (a dict: key/label/description, plus subject/text for an email),
|
|
`render_url` (the iframe's src, already resolved via {% url %} by the
|
|
caller since {% url %} can't take a variable view name here), and
|
|
`show_text_toggle` (True for an email, which has a plain-text body to
|
|
switch to; False for a PDF, which doesn't).
|
|
{% endcomment %}
|
|
<div class="card overflow-hidden" data-doc-card>
|
|
<div class="flex flex-wrap items-start justify-between gap-3 border-b border-line px-4.5 py-3.5">
|
|
<div>
|
|
<div class="font-display text-sm font-extrabold tracking-wide text-ink uppercase">{{ preview.label }}</div>
|
|
<p class="mt-1 max-w-2xl text-sm text-muted">{{ preview.description }}</p>
|
|
{% if preview.subject %}
|
|
<div class="mt-2 font-mono text-xs text-muted"><span class="text-dim">{% trans "Subject:" %}</span> {{ preview.subject }}</div>
|
|
{% endif %}
|
|
</div>
|
|
{% if show_text_toggle %}
|
|
<div class="flex items-center gap-1 rounded-full bg-steel p-1">
|
|
<button type="button" class="view-toggle-btn active" data-view-btn="html">{% trans "Email" %}</button>
|
|
<button type="button" class="view-toggle-btn" data-view-btn="text">{% trans "Plain text" %}</button>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="bg-subhead p-4" data-view-panel="html">
|
|
<iframe class="h-[560px] w-full rounded-lg border border-line bg-white" src="{{ render_url }}" loading="lazy" title="{{ preview.label }}"></iframe>
|
|
</div>
|
|
{% if show_text_toggle %}
|
|
<pre class="hidden overflow-x-auto overflow-y-visible p-4.5 font-mono text-sm whitespace-pre-wrap text-ink" data-view-panel="text">{{ preview.text }}</pre>
|
|
{% endif %}
|
|
</div>
|