<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/public, branch erdgeist-modernize-auth</title>
<subtitle>[no description]</subtitle>
<id>https://erdgeist.org/gitweb/cccms/atom?h=erdgeist-modernize-auth</id>
<link rel='self' href='https://erdgeist.org/gitweb/cccms/atom?h=erdgeist-modernize-auth'/>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/'/>
<updated>2026-07-16T22:42:54Z</updated>
<entry>
<title>Cutover to new Recent Changes widget</title>
<updated>2026-07-16T22:42:54Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-16T22:42:54Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=c810d1aa93a267dd8fcf8984c5d0b125629efa31'/>
<id>urn:sha1:c810d1aa93a267dd8fcf8984c5d0b125629efa31</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Construct DOM elements using escaping helpers to prevent XSS</title>
<updated>2026-07-16T20:41:46Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-16T15:15:54Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=855fc9c9c85720b5e0c6b9086083165492e2a864'/>
<id>urn:sha1:855fc9c9c85720b5e0c6b9086083165492e2a864</id>
<content type='text'>
</content>
</entry>
<entry>
<title>managed RRULE constructs now include week selection</title>
<updated>2026-07-16T14:43:11Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-16T14:43:11Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=35dc05de97677d57123617a7c4e78aad1611b28d'/>
<id>urn:sha1:35dc05de97677d57123617a7c4e78aad1611b28d</id>
<content type='text'>
Improve the humanizer to also understand weekly patters that
an editor can manually select, on top of the single week
rules.

Extend template and javascript controller to reflect these
changes.
</content>
</entry>
<entry>
<title>Condense the action log into a scannable table</title>
<updated>2026-07-16T11:50:15Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-16T11:50:15Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=603ccfbd5fe96f0b83aaf3d5118aded2a39992fb'/>
<id>urn:sha1:603ccfbd5fe96f0b83aaf3d5118aded2a39992fb</id>
<content type='text'>
Several minor improvements to the action log presentation:
* Now a table with date and human readable presentation as
  rows is displayed
* If no changes in a title were detected, the old version
  is omitted
* The "inferred" flag is demoted to the end of the line
* You can zoom in on the node's history directly from a
  log line
* byline for the first publish action is preserved
* Revisions are directly linked to when a new one i
  published
</content>
</entry>
<entry>
<title>Remove some remnants of legacy admin wizard interface</title>
<updated>2026-07-15T23:37:12Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-15T23:37:12Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=467ec340be673fbc7c3140b86d8aa7e43307ad1d'/>
<id>urn:sha1:467ec340be673fbc7c3140b86d8aa7e43307ad1d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make the recent-changes page match the widget it links from</title>
<updated>2026-07-14T23:10:17Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-14T23:10:17Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=28a6999b55cbec555696df848d6e924aae3166ee'/>
<id>urn:sha1:28a6999b55cbec555696df848d6e924aae3166ee</id>
<content type='text'>
nodes/recent rendered the generic node-listing partial (id,
actions, current lock owner, revision number) -- nothing
resembling what 'See all recent changes' actually promised to
show more of. Both surfaces now render the same extracted
partial, so they can't tell two different stories again.

Also: head.editor correctly identifies who last wrote the content
sitting in head, but publish_draft! never touches editor at all
-- nobody has ever had the specific act of publishing recorded
anywhere. 'Published by X' was a claim the data never supported,
only incidentally true when the same person who drafted something
also happened to publish it. Relabeled to 'last edited by' -- same
data, accurately described. A real publish-actor is separate,
future work, once the action log exists.

Basic list styling added for the full page, which had never
rendered outside the widget's own compact five-line context
before.
</content>
</entry>
<entry>
<title>Supply related-asset URLs/name and public inline-image CSS</title>
<updated>2026-07-14T16:30:40Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-14T15:25:37Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=6ddc9d73f1299cdeb90bc88ed0bb53821c4825aa'/>
<id>urn:sha1:6ddc9d73f1299cdeb90bc88ed0bb53821c4825aa</id>
<content type='text'>
RelatedAssetsController#create's JSON includes large_url,
original_url, and name alongside thumb_url/url; the related-asset
list items in both editors carry them as data-large-url,
data-original-url, and data-name.

ccc.css gets the public-facing .inline-image--full/--half/--left/
--right rules -- admin.css and TinyMCE's content_style cover the
cockpit and in-editor renderings respectively.
</content>
</entry>
<entry>
<title>Add inline image insertion for page bodies, plus a headline-conflict badge</title>
<updated>2026-07-14T16:30:40Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-14T15:06:59Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=8847db139bef9dd8f9465c31438f16af13593267'/>
<id>urn:sha1:8847db139bef9dd8f9465c31438f16af13593267</id>
<content type='text'>
Custom TinyMCE toolbar button opens a picker scoped to a page's own
attached images. Selecting one and a placement (full width, left,
right) inserts &lt;a class="glightbox" data-gallery="page-N"&gt;
wrapping an &lt;img&gt;, sharing the existing headline-image lightbox
gallery. No native TinyMCE image dialog or resize handles --
placement is fixed to the three options via CSS classes only.

extended_valid_elements defines a and img explicitly and
symmetrically; valid_classes allows the placement classes and
glightbox specifically. content_style renders placement inside the
editing iframe, since ccc.css doesn't load there.

A pre-save pass removes any a.glightbox left without an img,
covering in-editor deletion regardless of how it happened.

Alt text comes from the asset's name, escaped.

A badge marks whichever attached image sits at position 0, since
_headline_image.html.erb always renders that position as the
page's automatic headline. Shown in the sidebar Images list and in
the picker grid.
</content>
</entry>
<entry>
<title>Add chapter images: thumbnail on the list, headline image on the detail page</title>
<updated>2026-07-14T02:25:14Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-14T02:25:14Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=6b302d263ac66b521a743f1e8e1cc82997b54b5d'/>
<id>urn:sha1:6b302d263ac66b521a743f1e8e1cc82997b54b5d</id>
<content type='text'>
_chapter.html.erb (the aggregator partial used by the erfas/
chaostreffs overview pages) never rendered an image at all --
editors attaching a hackerspace photo via the asset picker would see
zero visible effect on exactly the pages they'd check first.
chapter_detail.html.erb (the individual page template) had the same
gap. Both fixed by reusing existing infrastructure rather than
inventing anything: the overview list gets a small, aspect-preserving
:thumb image beside the heading; the detail page gets the app's
existing headline_image helper, the same one every other full-page
template already uses.
</content>
</entry>
<entry>
<title>Add a toggleable live preview panel to both editors</title>
<updated>2026-07-14T02:10:01Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-14T02:10:01Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=e0f2394fd0816ef03bf4b928ab9fa5a18c32ffda'/>
<id>urn:sha1:e0f2394fd0816ef03bf4b928ab9fa5a18c32ffda</id>
<content type='text'>
Hidden by default, shares horizontal space with the body editor once
opened rather than a separate section, and only requests the iframe's
src on first toggle -- no preview traffic at all until someone
actually wants to see it. Refreshes automatically on every successful
autosave; a separate force-render button re-attempts a save-and-
refresh cycle immediately, for when the normal 7-second cycle has
been interrupted (a lock-lost error, a transient failure) and waiting
for the next tick isn't good enough.
</content>
</entry>
</feed>
