| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-07-30 | Provide link cells for the i18n matrix | erdgeist | |
| 2026-07-30 | Provide the full i18n matrix for public/admin-preview/shared-preview urls | erdgeist | |
| 2026-07-30 | Replaces the grey slab and filled-box handle with the house card idiom, | erdgeist | |
| a tabler grip and icon-only edit and delete actions. Shows each item's non-default translations muted below the title, read from the translation rows rather than the accessor so the fallback chain cannot disguise a missing label as a translated one. Adds move up/down buttons via acts_as_list, the single-pointer alternative WCAG 2.5.7 requires: the jQuery UI sortable binds mouse events only, so dragging works neither on touch nor from the keyboard. The grip is hidden below the desktop breakpoint for the same reason. The sort handler dropped dataType: "json" against a head :ok response, which sent every success down the error path, and now reloads so the disabled chevron states match the stored order after a drag. | |||
| 2026-07-30 | Give action_participants an explicit order | erdgeist | |
| 2026-07-30 | Localise model validation messages and refusal reasons | erdgeist | |
| 2026-07-30 | Fixup favicon, iconv.svg and apple-touch-icon | erdgeist | |
| 2026-07-30 | Use icon sets on the public page and add a public-site shortcut in admin realm | erdgeist | |
| 2026-07-30 | Retire the unroutable scaffold views | erdgeist | |
| 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-30 | Canonicalise per locale and declare hreflang alternates | erdgeist | |
| 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-30 | Bring some tags forward to 2026 and provide humanized asset name | erdgeist | |
| 2026-07-30 | Emit per-page Open Graph metadata | erdgeist | |
| 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-30 | Generate a 1200x630 social card variant for every asset | erdgeist | |
| 2026-07-29 | Don't display file icon in headline card, it's superflous | erdgeist | |
| 2026-07-28 | add partial for menu_item titles in both locales | erdgeist | |
| 2026-07-28 | Let editors manage menu titles in both locales | erdgeist | |
| 2026-07-27 | Permit editors to touch menu_items' title | erdgeist | |
| 2026-07-27 | Fix locale dependent param compare | erdgeist | |
| 2026-07-27 | Pin the two translation editors as well | erdgeist | |
| 2026-07-27 | Pin admin content reads to the default locale | erdgeist | |
| 2026-07-27 | Surface held locks in the dashboard's work-in-progress widget | erdgeist | |
| 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-27 | Retire orphaned drafts partial and their translations | erdgeist | |
| 2026-07-27 | Consolidate all main nav items in a single partial | erdgeist | |
| 2026-07-27 | Let Globalize decide what locale to display for a page translation | erdgeist | |
| 2026-07-27 | Move switchers out of the user check, so it also works when logged out | erdgeist | |
| 2026-07-26 | Fix redundant link_to in assets#show | erdgeist | |
| 2026-07-26 | Fix redundant link_to in assets#new | erdgeist | |
| 2026-07-26 | Fix login view so the user knows where they are logging in to | erdgeist | |
| 2026-07-26 | More visual cleanups for input fields | erdgeist | |
| 2026-07-25 | Give our layouts proper language meta and viewports | erdgeist | |
| 2026-07-25 | Extract public-site strings to i18n | erdgeist | |
| 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-25 | Extract admin strings to i18n: revisions, page_translations, and menu items, | erdgeist | |
| 2026-07-25 | Retire the unroutable occurrences scaffolding | erdgeist | |
| 2026-07-25 | Extract admin strings to i18n: dashboard, layout chrome, and the JS bridge | erdgeist | |
| 2026-07-25 | Extract admin strings to i18n Fix straggler from batch 1 | erdgeist | |
| 2026-07-25 | Extract admin strings to i18n: assets and events clusters | erdgeist | |
| 2026-07-25 | Extract flashes to i18n and stop dispatching on submit labels | erdgeist | |
| 2026-07-25 | Extract admin strings to i18n: users and tags clusters | erdgeist | |
| 2026-07-25 | Extract admin strings to i18n: the nodes cluster | erdgeist | |
| 2026-07-24 | Extract admin strings to i18n: sessions, otp, users/edit | erdgeist | |
| 2026-07-24 | Rename layout classes to what they actually do | erdgeist | |
| 2026-07-24 | Give all sessions a uniform absolute lifetime of one week | erdgeist | |
| 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-24 | Render the otp verbs properly in the action log | erdgeist | |
| 2026-07-24 | Polish the OTP flows: autocomplete tokens, button dialect, QR sizing, my-account link | erdgeist | |
| 2026-07-24 | Complete the login only after the second factor | erdgeist | |
| 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-24 | Add self-service TOTP enrollment UI and witnessed admin reset | erdgeist | |
| 2026-07-24 | Add TOTP enrollment and verification to User, witnessed in the action log | erdgeist | |
| 2026-07-24 | Prevent the more … link from line breaking | erdgeist | |
| 2026-07-24 | Reduce visual clutter: remove time from article partials | erdgeist | |
| 2026-07-23 | More tiny visual cleanups | erdgeist | |
| 2026-07-23 | articles partials now render the thumb of their headline media in the list | erdgeist | |
