<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/app, branch master</title>
<subtitle>[no description]</subtitle>
<id>http://erdgeist.org/gitweb/cccms/atom?h=master</id>
<link rel='self' href='http://erdgeist.org/gitweb/cccms/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/'/>
<updated>2026-08-27T00:14:38Z</updated>
<entry>
<title>Clean up rss and rdf feed. The items list was missing and host names were hard coded</title>
<updated>2026-08-27T00:14:38Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-27T00:14:38Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=a0b182a7bbea636e6f51c8a55df10d9d6956947b'/>
<id>urn:sha1:a0b182a7bbea636e6f51c8a55df10d9d6956947b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add banner partials</title>
<updated>2026-08-21T18:53:12Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-21T18:53:12Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=d75d8cc3e6e772a00b92c050e8dd3ee0b0dbcb94'/>
<id>urn:sha1:d75d8cc3e6e772a00b92c050e8dd3ee0b0dbcb94</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add banner render logic</title>
<updated>2026-08-20T17:39:39Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-20T17:39:39Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=a986b1f2b5676624f02373cb54eb3b81b18f3f79'/>
<id>urn:sha1:a986b1f2b5676624f02373cb54eb3b81b18f3f79</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Surface redirects in nodes#show, the action log and when publishing</title>
<updated>2026-08-20T15:37:01Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-20T15:37:01Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=a1794d3087e6cbd228f3641e7313815d8c59695f'/>
<id>urn:sha1:a1794d3087e6cbd228f3641e7313815d8c59695f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Force a blank redirect status to nil</title>
<updated>2026-08-20T11:19:38Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-20T11:19:38Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=3e77e5fca9f66f5be9c12085fd68c4e9d0ba79be'/>
<id>urn:sha1:3e77e5fca9f66f5be9c12085fd68c4e9d0ba79be</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Also redirect on restricted pages</title>
<updated>2026-08-20T11:03:33Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-20T11:03:33Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=9d5c3cf1e5db83203ac30f3c1ddee9a61e4b14d0'/>
<id>urn:sha1:9d5c3cf1e5db83203ac30f3c1ddee9a61e4b14d0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add redirect ui in in nodes#edit and apply some minor cleanup</title>
<updated>2026-08-20T10:50:30Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-20T10:50:30Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=a8cf725312d245d8d1f1df0fff22718975ce249e'/>
<id>urn:sha1:a8cf725312d245d8d1f1df0fff22718975ce249e</id>
<content type='text'>
Also give search inputs a magnifier and a clear control: input_group
wraps a field with an icon and, where clearing is meaningful, a
button that empties it and any hidden companion named by data-clears.

Clean up some inconistency between field hints presented as p and as
span.

Remove stray console.log.
</content>
</entry>
<entry>
<title>Redirect a page to a node or an external URL</title>
<updated>2026-08-19T14:05:40Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-19T14:05:40Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=4df88b601b1900c287051d827eaff46f498f60d0'/>
<id>urn:sha1:4df88b601b1900c287051d827eaff46f498f60d0</id>
<content type='text'>
Page#redirect_target resolves the precedence and returns nil for a
destination that is restricted or has no head, so a page with a broken
target renders itself rather than linking nowhere. The banner partial will
call the same method, so the redirect and the link cannot drift.

One hop, no exceptions, checked in publish_draft! rather than as a
validation: two nodes publishing concurrently could each pass a save-time
check and still produce a chain. "Live" means heads only, a draft redirect
that has not published is not yet a link anyone can follow.

Node.search excludes redirecting pages. editor_search does not: an editor
looking for one searches by title, and only the body is worth hiding.
</content>
</entry>
<entry>
<title>Wrap localStorage access in try/catch</title>
<updated>2026-08-17T23:49:17Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-17T23:49:17Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=edf0d64aa2c837b4bb28787483f98cb4815601c2'/>
<id>urn:sha1:edf0d64aa2c837b4bb28787483f98cb4815601c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Toggle the search widget from a button</title>
<updated>2026-08-17T01:11:37Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-17T01:11:37Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=0e15d4461cc9b8e8baeeab2288ef8bbc2d30c3e6'/>
<id>urn:sha1:0e15d4461cc9b8e8baeeab2288ef8bbc2d30c3e6</id>
<content type='text'>
</content>
</entry>
</feed>
