summaryrefslogtreecommitdiff
path: root/app/views
AgeCommit message (Collapse)Author
2026-07-30Canonicalise per locale and declare hreflang alternateserdgeist
German content is reachable at both /updates/foo and /de/updates/foo, and a page with no English translation renders German at /en/updates/foo through the fallback chain, so three URLs each claimed to be canonical. Both tags now derive from one locale-to-URL function, which points every duplicate at the address of the version actually served, the unprefixed German URL, matching default_url_options. Alternates are declared only for locales in which the page genuinely has a translation, since /en/ serving German through the fallback is not an English version of the page. x-default points at German, the site's primary language.
2026-07-30Bring some tags forward to 2026 and provide humanized asset nameerdgeist
2026-07-30Emit per-page Open Graph metadataerdgeist
Replaces one hardcoded German description and an unrenderable SVG with per-page title, description, canonical URL, locale and publication date, plus the card variant or a site-wide default.
2026-07-29Don't display file icon in headline card, it's superflouserdgeist
2026-07-28add partial for menu_item titles in both localeserdgeist
2026-07-28Let editors manage menu titles in both localeserdgeist
2026-07-27Surface held locks in the dashboard's work-in-progress widgeterdgeist
A lock with no draft or autosave behind it was invisible to everyone including its holder, until the next editor collided with it. work_in_progress now admits those nodes, and the widget names the holder rather than the last editor on any locked row. Also flips the ordering to stalest-first, so a backlog reads as a queue rather than a feed, and gives the heading a real total: the count came from the already-limited relation and could never exceed five.
2026-07-27Retire orphaned drafts partial and their translationserdgeist
2026-07-27Consolidate all main nav items in a single partialerdgeist
2026-07-27Move switchers out of the user check, so it also works when logged outerdgeist
2026-07-26Fix redundant link_to in assets#showerdgeist
2026-07-26Fix redundant link_to in assets#newerdgeist
2026-07-26Fix login view so the user knows where they are logging in toerdgeist
2026-07-26More visual cleanups for input fieldserdgeist
2026-07-25Give our layouts proper language meta and viewportserdgeist
2026-07-25Extract public-site strings to i18nerdgeist
The public views were never part of the admin extraction and were broken in both directions: German visitors got "Featured", "Calendar" and "Tags", English visitors got "Suchergebnisse für Suchbegriff:". Also picks up the unlock-confirm message in link_helper, a straggler from the revisions/menu_items batch, and drops two raw() calls in the application layout in favour of link_to blocks.
2026-07-25Extract admin strings to i18n: revisions, page_translations, and menu items,erdgeist
2026-07-25Retire the unroutable occurrences scaffoldingerdgeist
2026-07-25Extract admin strings to i18n: dashboard, layout chrome, and the JS bridgeerdgeist
2026-07-25Extract admin strings to i18n Fix straggler from batch 1erdgeist
2026-07-25Extract admin strings to i18n: assets and events clusterserdgeist
2026-07-25Extract flashes to i18n and stop dispatching on submit labelserdgeist
2026-07-25Extract admin strings to i18n: users and tags clusterserdgeist
2026-07-25Extract admin strings to i18n: the nodes clustererdgeist
2026-07-24Extract admin strings to i18n: sessions, otp, users/editerdgeist
2026-07-24Rename layout classes to what they actually doerdgeist
2026-07-24Polish the OTP flows: autocomplete tokens, button dialect, QR sizing, my-account linkerdgeist
2026-07-24Complete the login only after the second factorerdgeist
Enrolled users get a pending marker instead of a session after the password step; a valid code through the challenge writes the real session via reset_session. otp_required without enrollment funnels into setup everywhere except the enrollment, user, and login machinery.
2026-07-24Add self-service TOTP enrollment UI and witnessed admin reseterdgeist
2026-07-24Prevent the more … link from line breakingerdgeist
2026-07-24Reduce visual clutter: remove time from article partialserdgeist
2026-07-23More tiny visual cleanupserdgeist
2026-07-23articles partials now render the thumb of their headline media in the listerdgeist
2026-07-23Restyle pdf headline cardserdgeist
2026-07-23Force tags to be lowercase. A script unifies existing tags in both caseserdgeist
2026-07-23Turn the asset upload forms into file drop targetserdgeist
Dropped files land in the existing file input and submit through the unchanged form. An empty name field is prefilled from the basename.
2026-07-23Zoom the action log on assetserdgeist
Asset names in summaries and publish deltas link to assets#show with an inline Chronik beside each, suppressed inside that asset's own zoom, per the node convention. assets#show gains a history button. Also renames the details summary (no longer only translations) and moves View Diff onto its own line.
2026-07-22Add attached nodes subsection in assets#show and thumbnail in nodes#createerdgeist
2026-07-22Make nodes#show's add event/child buttons look consistenterdgeist
2026-07-22Implement controller and view side of the attach logicerdgeist
2026-07-22factor out flash rendering from layouts/adminerdgeist
2026-07-22Split nodes#edit into a four-quadrant layout on desktoperdgeist
2026-07-22Retire nodes#recent, superseded by the action logerdgeist
2026-07-21Render PDF headlines as document cards, not lightbox imageserdgeist
A starred PDF previously ran through the same crop-and-lightbox path a photo does -- exactly the awkward treatment explicit headline designation was meant to avoid. _headline_image.html.erb now branches on @headline_asset.pdf?: a PDF renders as a linked card (a :medium thumbnail, a file icon, its name), no gallery participation at all. The existing image-headline and gallery-fallback logic is otherwise unchanged, now scoped to an image-specific headline only. Other attached PDFs -- headlined or not -- list below as plain links, same reasoning as why non-headline photos still get a gallery trigger: an attached document shouldn't go invisible just because nothing's been starred yet. headline_image's own render guard needed widening to cover a page with PDFs attached but no images and no headline at all -- the one case none of the existing conditions accounted for.
2026-07-21PDFs currently should have no credits attached to them in displayerdgeist
2026-07-21More PDF headline eligibilityerdgeist
2026-07-21Widen nodes#show to all attachmentserdgeist
2026-07-21Extract Page#headline_asseterdgeist
The same related_assets.find_by(headline: true) query was written by hand in three places -- content_helper, nodes#show, and the chapter teaser partial (which was still using assets.first, the old position-based rule, until now). Collapsed to one method, one query.
2026-07-21Show which image is headlined on nodes#showerdgeist
The editable sidebar has had a star toggle since headline designation shipped; the read-only view never gained any equivalent indicator. Same visual language -- gold filled star, same .is_headline card highlight already defined in admin.css.
2026-07-21Render asset credit inside the gallery lightbox correctlyerdgeist
GLightbox's own selector-based description feature never actually resolved a selector in three different attempts -- literal text, then a resolved-but-empty div, then apparently not firing at all against the installed (unversioned) build. Replaced with a small afterSlideLoad handler that reads a plain data-credit-selector attribute and copies the real element's HTML into the slide's description area directly, depending only on GLightbox handing back a real DOM node per slide -- a much smaller contract than trusting its own caption-resolution feature. Renamed the credit div's class from glightbox-desc, since that name is reserved by the library's own bundled CSS (display: none !important) and can't be reliably overridden from here. Also: distinguishes the credit line and the "N Bilder" caption from ordinary body text (italic, muted, matching .author_and_date's existing convention), and makes the lightbox's caption card follow the site's light/dark toggle via Canvas/CanvasText, since the library's bundled theme never adapts to it on its own.