summaryrefslogtreecommitdiff
path: root/app
AgeCommit message (Collapse)Author
2026-07-30Localise model validation messages and refusal reasonserdgeist
2026-07-30Fixup favicon, iconv.svg and apple-touch-iconerdgeist
2026-07-30Use icon sets on the public page and add a public-site shortcut in admin realmerdgeist
2026-07-30Retire the unroutable scaffold viewserdgeist
Nine generator leftovers for actions that either do not exist or never render HTML. menu_items/show goes with its route and its action, since deleting the template alone would turn a dead page into a missing-template error; pages_controller has only #preview, so its four CRUD views were unreachable by any route; and nodes#update redirects on every path.
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-30Generate a 1200x630 social card variant for every asseterdgeist
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-27Permit editors to touch menu_items' titleerdgeist
2026-07-27Fix locale dependent param compareerdgeist
2026-07-27Pin the two translation editors as wellerdgeist
2026-07-27Pin admin content reads to the default localeerdgeist
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-27Let Globalize decide what locale to display for a page translationerdgeist
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-24Give all sessions a uniform absolute lifetime of one weekerdgeist
Enforced at restore via a login-time stamp, written only at genuine logins so the limit stays absolute rather than sliding. The cookie name rotation logs everyone out once at deploy. Second-factor users are deliberately not treated worse than password-only ones.
2026-07-24Render the otp verbs properly in the action logerdgeist
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-24Add TOTP enrollment and verification to User, witnessed in the action logerdgeist
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.