<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/app/views/layouts/application.html.erb, branch master</title>
<subtitle>[no description]</subtitle>
<id>https://erdgeist.org/gitweb/cccms/atom?h=master</id>
<link rel='self' href='https://erdgeist.org/gitweb/cccms/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/'/>
<updated>2026-06-30T15:29:12Z</updated>
<entry>
<title>Replace Shadowbox with GLightbox, drop jQuery from public site</title>
<updated>2026-06-30T15:29:12Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-30T15:11:32Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=3e87925a35f73aa2261eb66df3ef4ca11b64eeea'/>
<id>urn:sha1:3e87925a35f73aa2261eb66df3ef4ca11b64eeea</id>
<content type='text'>
Vendors GLightbox 3.3.1 (MIT, dependency-free) as static files in
public/javascripts and public/stylesheets, replacing the Shadowbox
2009 vendor tree and its jQuery adapter. Public site no longer loads
jQuery at all.

- app/views/layouts/application.html.erb: swap Shadowbox script/style
  includes and the public_bundle (jQuery) include for GLightbox's
  CSS/JS
- app/views/content/_headline_image.html.erb: headline image is now
  itself a GLightbox trigger; additional images are direct
  a.glightbox links sharing a per-page data-gallery group, replacing
  the hidden shadowbox_images div and its click-forwarding trigger
- public/javascripts/public.js: replace Shadowbox.init/setup and the
  click-forwarding handler with a single GLightbox() init call;
  remove the unused image_handler object
- Remove public/javascripts/shadowbox/ (including vendored Sizzle,
  swfobject, and unused video/Flash players) and
  public/stylesheets/shadowbox.css
- Remove app/assets/javascripts/public_bundle.js (jquery require)
</content>
</entry>
<entry>
<title>Unify jQuery: serve public site jQuery via asset pipeline</title>
<updated>2026-06-30T15:29:12Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-30T02:58:37Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=b97466cdfbcb5b02d4eaf38661c051d1a095838e'/>
<id>urn:sha1:b97466cdfbcb5b02d4eaf38661c051d1a095838e</id>
<content type='text'>
Remove vendored jquery-1.3.2.min.js, jquery-ui-1.7.2.custom.min.js,
and the unreferenced duplicate jquery.hotkeys.js from public/javascripts/.

Public layout now loads jQuery via a small public_bundle.js manifest
through the asset pipeline, same mechanism already used for the admin
interface (admin_bundle.js). This brings the public site from jQuery
1.3.2 (2009) to the current jquery-rails-provided version (3.7.x).

Shadowbox's jQuery adapter (shadowbox-jquery.js) only uses stable APIs
(.css, .remove, .bind, .unbind, .append, .extend) unchanged across this
version span. Verified by manual click-test: gallery image opens,
displays, and dismisses correctly.

public.js required no changes — all jQuery APIs used
(.ready, .bind, .trigger, .length) are stable across versions.
</content>
</entry>
<entry>
<title>Stage 7: Rails 7.2 → 8.1 on Ruby 3.2.11</title>
<updated>2026-06-27T14:58:53Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-27T14:58:53Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=420506e58fdfc84f1a5bede0a01dedf0af3bb4f3'/>
<id>urn:sha1:420506e58fdfc84f1a5bede0a01dedf0af3bb4f3</id>
<content type='text'>
- Bump Rails to 8.1.3 (Ruby unchanged at 3.2.11, new gemset rails8-upgrade)
- config.load_defaults 8.1; merge app:update diffs for all environment files
- Remove routing-filter 0.7.0; replace with native scope '(:locale)' in
  routes.rb and default_url_options in ApplicationController
- Delete config/initializers/routing_filter_rails71_patch.rb
- Replace vendored TinyMCE 3.x (~200 files) with tinymce-rails ~&gt; 8.3;
  migrate admin_interface.js from jQuery .tinymce()/advanced theme to
  tinymce.init(); add config/tinymce.yml; note: TinyMCE 7+ is GPL
- rails-i18n ~&gt; 8.0 added explicitly (previously indirect dependency)
- awesome_nested_set, acts-as-taggable-on pinned to git main/master
  (gemspec activerecord &lt; 8.1 ceiling; no functional incompatibility;
  repin to version once upstream releases updated gemspecs)
- globalize ~&gt; 7.0, libxml-ruby ~&gt; 5.0, nokogiri ~&gt; 1.18, pg ~&gt; 1.5
- sass-rails, coffee-rails, uglifier moved from :assets group to main
  (Sprockets 4 convention; :assets group no longer meaningful)
- Node: head, draft, lock_owner marked belongs_to optional: true
- Page: node, user, editor marked belongs_to optional: true
- Static assets in public/images/ and public/javascripts/ referenced via
  plain HTML tags; Rails 8 load_defaults raises on pipeline helpers for
  undeclared assets
- sessions_controller_test.rb: remove stale require and dead rescue_action
- users_controller_test.rb: assert button[type=submit] not input[type=submit]
  (Rails 8 button_to renders &lt;button&gt; not &lt;input&gt;)
- test_helper.rb: node.reload after children.create! (awesome_nested_set
  3.9.0 does not refresh parent in memory after callback)
- 129 runs, 339 assertions, 3 failures, 0 errors — identical baseline to 7.2
</content>
</entry>
<entry>
<title>Stage 5 fixes: RouteWithParams removal, Globalize fallbacks, search stub, to_s(:db) → to_fs(:db), LockedByAnotherUser autoload, test environment config</title>
<updated>2026-06-26T03:19:28Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-26T03:19:28Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=a1ddc25da0d2aa79a4d9216ef7792f26233bd38e'/>
<id>urn:sha1:a1ddc25da0d2aa79a4d9216ef7792f26233bd38e</id>
<content type='text'>
- Remove safe_path helper and content_path shim from link_helper.rb
- Update all safe_path call sites in views to use named route helpers directly
- Fix Globalize fallbacks via config.i18n.fallbacks in application.rb, remove i18n initializer
- Stub Node.search returning none (search disabled pending PostgreSQL upgrade)
- Replace to_s(:db) with to_fs(:db) in node.rb, nodes_helper.rb, link_helper.rb, admin view
- Move LockedByAnotherUser to app/models/locked_by_another_user.rb for Zeitwerk autoloading
- Fix config/environments/test.rb: config.assets removed, cache_classes → enable_reloading,
  test_order removed, minitest pinned to ~&gt; 5.25
- Fix config/environments/development.rb: cache_classes → enable_reloading
- Park search vector migration in doc/ pending PostgreSQL and plpgsql availability
</content>
</entry>
<entry>
<title>Stage 4: Rails 5.2 -&gt; 6.1 on Ruby 2.7.2</title>
<updated>2026-06-25T23:59:57Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-25T23:59:57Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=c06723ee715512c2033c7786c48f15674585b56b'/>
<id>urn:sha1:c06723ee715512c2033c7786c48f15674585b56b</id>
<content type='text'>
- routing-filter 0.6.3 -&gt; 0.7.0 (Rails 6.1 compatibility)
- RSS named routes rss_xml/rss_rdf added
- RouteWithParams workarounds: will_paginate_patch, content_path shim, safe_path helper
- Paperclip removed, replaced with FileAttachment concern (preserves URL scheme)
- Assets resource moved to /admin/assets (Sprockets middleware conflict)
- ApplicationRecord base class added, all models migrated
- Strong parameters added to Assets, Occurrences, Events, MenuItems controllers
- update_attributes -&gt; update throughout
- render :nothing -&gt; head :ok/:not_found throughout
- language_selector rewritten (removes :overwrite_params)
- Environment files updated for Rails 6.1 (eager_load, public_file_server, ActionMailer)
- Arel::Visitors::DepthFirst and Integer/Float duration patches removed from test_helper
- AssetsController tests added (10 tests covering upload, variants, destroy, auth)
- ImageMagick geometry: 460x250! for headline crop (not # which is invalid in IM6)

129 runs, 311 assertions, 5 failures (all pre-existing), 0 errors
</content>
</entry>
<entry>
<title>Stage 1 complete: Rails 2.3.5 to Rails 3.2.22.5 upgrade</title>
<updated>2026-06-24T02:13:16Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-24T02:13:16Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=e0a7e0fec760ba12c8067a37e10c96f1f05876e2'/>
<id>urn:sha1:e0a7e0fec760ba12c8067a37e10c96f1f05876e2</id>
<content type='text'>
- Converted plugins to gems (Gemfile)
- Updated config structure (application.rb, boot.rb, environment.rb)
- Converted routes to Rails 3 DSL
- Converted named_scope to scope throughout models
- Converted find(:all, :conditions) to where() chains
- Fixed has_many :order to use ordering scope
- Updated session store and secret token configuration
- Fixed exception_notification middleware configuration
- Patched Ruby 2.4 / Rails 3.2 incompatibilities:
  - Integer/Float duration arithmetic (ActiveSupport)
  - Arel visit_Integer for PostgreSQL adapter
  - create_database String/Integer coercion
  - ActionController consider_all_requests_local
- Migrated taggings schema for acts-as-taggable-on
- Replaced dynamic_form gem with custom form_error_messages helper
- Fixed Rails 3 block helper syntax (form_for, form_tag, fields_for)
- Fixed admin layout yield
- Updated test suite for Rails 3 APIs
</content>
</entry>
<entry>
<title>Update deployed state to what's currently running</title>
<updated>2026-06-23T16:04:37Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-23T16:04:37Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=6424e10be5a89f175a74c71c55660412a169b8b8'/>
<id>urn:sha1:6424e10be5a89f175a74c71c55660412a169b8b8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move footer back at its position</title>
<updated>2025-01-29T02:20:57Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2025-01-29T02:20:57Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=ce233e14800f91b5263cf66a9272004b80884d86'/>
<id>urn:sha1:ce233e14800f91b5263cf66a9272004b80884d86</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Undo merge conflict</title>
<updated>2025-01-28T21:51:47Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2025-01-28T21:51:47Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=be2647c7990cd7bc0ebdb996a7e565743b6857b1'/>
<id>urn:sha1:be2647c7990cd7bc0ebdb996a7e565743b6857b1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Big overhaul patch and style changes</title>
<updated>2025-01-28T21:47:15Z</updated>
<author>
<name>Charlie Root</name>
<email>root@web.ccc.local</email>
</author>
<published>2025-01-28T21:47:15Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=c4296b59a7f9d667d295f9c37b71f7849b818fb3'/>
<id>urn:sha1:c4296b59a7f9d667d295f9c37b71f7849b818fb3</id>
<content type='text'>
</content>
</entry>
</feed>
