<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/app/views, branch erdgeist-revive-events</title>
<subtitle>[no description]</subtitle>
<id>https://erdgeist.org/gitweb/cccms/atom?h=erdgeist-revive-events</id>
<link rel='self' href='https://erdgeist.org/gitweb/cccms/atom?h=erdgeist-revive-events'/>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/'/>
<updated>2026-06-30T22:24:10Z</updated>
<entry>
<title>Add RRULE humanizer and wire events into nodes#show</title>
<updated>2026-06-30T22:24:10Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-30T22:24:10Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=95955abaa339098755a214cfcadf87c90211fe64'/>
<id>urn:sha1:95955abaa339098755a214cfcadf87c90211fe64</id>
<content type='text'>
- app/models/concerns/rrule_humanizer.rb: new concern included into
  Event, renders recurring schedule as natural-language German or
  English from RRULE string; handles WEEKLY/MONTHLY, biweekly
  (INTERVAL=2), ordinal weekday positions (1TU, -1TH, -2WE),
  BYMONTH single-month exclusions (December pause convention);
  gracefully returns nil for COUNT/UNTIL/unrecognized shapes
- test/models/concerns/rrule_humanizer_test.rb: 15 tests covering
  all distinct RRULE shapes found in production data
- app/helpers/nodes_helper.rb: add event_schedule_text helper
  combining humanize_rrule with start_time formatting
- app/views/nodes/show.html.erb: add events row, conditionally
  rendered when node has associated events
- config/locales/de.yml, en.yml: add event_schedule_time,
  event_schedule_unrecognized, event_schedule_none keys
</content>
</entry>
<entry>
<title>Fix events CRUD for standalone events and add events to admin menu</title>
<updated>2026-06-30T17:22:24Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-30T01:55:42Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=51629c5c42270a346885057a441095c964101cc1'/>
<id>urn:sha1:51629c5c42270a346885057a441095c964101cc1</id>
<content type='text'>
- event_params now permits title, description, is_primary
- event_information helper lists all node.events, not just the first
- Occurrence.generate handles nil node (standalone events)
- Page.aggregate order_by title uses correlated subquery to avoid
  GROUP BY conflict with tag-filter path; order_direction whitelisted
  to ASC/DESC to prevent SQL injection
- Events link added to admin menu bar
- events/index shows title, is_primary; drops latitude/longitude columns
</content>
</entry>
<entry>
<title>Add chapter_detail template with events and external URL rendering</title>
<updated>2026-06-30T17:22:24Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-29T14:26:31Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=4705ef970469a852c7bdb4c097ba748e972c8f63'/>
<id>urn:sha1:4705ef970469a852c7bdb4c097ba748e972c8f63</id>
<content type='text'>
New public page template for erfa and chaostreff nodes. Renders the
node's external_url and lists associated events below the page content.

Seed script updated to set template_name: 'chapter_detail' on all
chapter drafts so the template is applied on publish.
</content>
</entry>
<entry>
<title>Phase 2: chapter nodes, aggregate partial, fixes</title>
<updated>2026-06-30T17:22:24Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-28T02:43:28Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=4dd49b1eebb0a99d3aee66b7eca539c87a9c6332'/>
<id>urn:sha1:4dd49b1eebb0a99d3aee66b7eca539c87a9c6332</id>
<content type='text'>
- _chapter.html.erb: new partial for erfa/chaostreff aggregated lists;
  renders title, location, external_url, sanitized body
- content_helper: fix aggregate attr regex to allow hyphens in values
  (erfa-detail tag was silently dropped); add debug logging (remove)
- page.rb: suppress libxml stderr noise in rewrite_links_in_body
- db/seeds/chapters.rb: one-shot seed script for erfa and chaostreff
  chapter nodes under parent nodes 548/549; creates bilingual pages,
  external_url, primary events with RRULEs where known
  Note: run Node.rebuild!(false) after execution to fix lft/rgt values
</content>
</entry>
<entry>
<title>Remove recent_changes RSS feed.  It leaks unpublished drafts and the basic auth was only symbolic</title>
<updated>2026-06-30T17:21:09Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-29T19:32:32Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=3bb2271850bab577f35291a174b1985aea2b2b55'/>
<id>urn:sha1:3bb2271850bab577f35291a174b1985aea2b2b55</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove obsolete view</title>
<updated>2026-06-30T17:21:02Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-29T19:14:16Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=3e81d3fabc663aafb942b3cac0a4cbfb5853e58b'/>
<id>urn:sha1:3e81d3fabc663aafb942b3cac0a4cbfb5853e58b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove obsolete partial</title>
<updated>2026-06-30T17:20:43Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-29T19:27:04Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=98bfc2c01cb802a6857252568876a7af64edbe8f'/>
<id>urn:sha1:98bfc2c01cb802a6857252568876a7af64edbe8f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prevent xss by not allowing return_to to point to javascript resources</title>
<updated>2026-06-30T17:19:06Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-29T19:25:22Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=e6f59af64c7645cae130a92a4b7afd908a84c983'/>
<id>urn:sha1:e6f59af64c7645cae130a92a4b7afd908a84c983</id>
<content type='text'>
</content>
</entry>
<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>
</feed>
