summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
7 daysAdd assets:regenerate_variants rake taskerdgeist
Regenerates ImageMagick variants from each asset's stored original -- needed because assets uploaded before :headline existed in FileAttachment::STYLES never had that file generated, producing a 404 rather than a distorted image. Supports ASSET_ID=N scoping so a single asset can be tested before committing to a full, expensive sweep across everything. Doesn't touch the separate, still-open problem of :headline's forced non-uniform stretch (460x250!) -- this task faithfully regenerates whatever geometry the style defines, correctly. Fixing the distortion itself is its own, later piece.
8 daysGive the sitemap its own view, with collapse and descendant countserdgeist
Extracted from admin#index's inline table into NodesController#sitemap. Nested <details>/<summary> per branch, one linear pass over the existing flat [node, level] list (no added queries) -- each node's own descendant count computed the same way, via a small stack rather than re-walking the tree per node. Branches under updates/, club/erfas, club/chaostreffs, and disclosure start collapsed by default (CccConventions::SITEMAP_COLLAPSED_PATHS); any branch currently collapsed, whether by that default or because someone just closed it, is highlighted via a plain :not([open]) selector -- no state tracked outside the DOM itself. Dropped the update?-post exclusion this view used to rely on -- no longer needed now that updates/ collapses instead of being filtered out, so its real children (previously silently absent) now show up correctly. admin#index's own, separate @sitemap query is unchanged; that view has no collapse mechanism to compensate and wasn't part of this.
10 daysStop diff output from corrupting the document on structural tag changeserdgeist
sdiff aligned an inserted paragraph break correctly, but the renderer wrapped the raw </p>/<p> tokens in <ins> regardless -- invalid nesting that browsers silently repair by dropping the unmatched closing tag, leaving everything downstream rendered inside an <ins> with nothing left to close it. Same failure mode as the retired cacycle_diff.js, different cause. Tag tokens now render as a plain-text pilcrow with a tooltip naming the actual tag, never as literal markup inside <ins>/<del>. Applies to both inline and side-by-side. Side-by-side's new panel flattening a real paragraph break into a marker, rather than showing its own true structure, is a known, accepted trade-off for now -- not the same problem, and not fixed here.
10 daysRetire vendored cacycle_diff.js for a diff-lcs-based diff viewerdgeist
Revisions#diff now computes an inline or side-by-side word diff server-side (Page#diff_against, lib/html_word_diff.rb) instead of shipping raw/escaped content to the browser for a 2008-era vendored JS differ to mangle. View mode is picked via a `view` param, settable either on the diff page itself or directly from the revisions#index sticky bar next to "Diff revisions". Also fixes a pre-existing bug in RevisionsController#diff's single- revision branch, which set params[:start]/params[:end] instead of params[:start_revision]/params[:end_revision].
13 daysAdd context-aware child-creation shortcuts to nodes#showerdgeist
parent_match Procs on CccConventions::NODE_KINDS, matched against unique_path, decide which "add child" kinds show on a given node. Fixes nodes#new not honoring a pre-selected kind (radio group and parent-field visibility both defaulted to "generic" unconditionally).
14 daysAdd erfa/chaostreff node-kind creation conventions, part 2erdgeist
The following changes were already announced in the last commit, but the files forgotten. Here's them actually attached. lib/ccc_conventions.rb: NODE_KINDS registry replaces the kind-specific branches previously scattered across nodes_controller#create (tags), unique_path-position check). Each kind declares its parent lookup (a Proc - Update's "update"/"press_release" continue to genuinely find-or-create their year-folder via Update.find_or_create_parent; erfa/chaostreff use a plain find_by_unique_name!, since their parent nodes are fixed and a missing one should fail loudly, not be silently created), its tags, and (new) its default template. New read-only admin/conventions view dumps the NODE_KINDS registry as a reference table for whoever's confused later about how a given kind behaves - deliberately just renders the same label/hint text used on nodes#new rather than re-describing parent/tags/template separately, since decomposing the parent Proc would mean either invoking it (Update's has a real side effect - creates the year folder) or re-stating its logic a second time in a different shape, either of which risks drifting from the actual behavior.
2026-06-26Stage 5: Rails 6.1 → 7.2 on Ruby 3.2.11erdgeist
- Bump Rails to 7.2.3, Ruby to 3.2.11 (new gemset rails7-upgrade) - pg pinned to 1.4.6 (bridge: Ruby 3.2 compatible, PostgreSQL 9.6 tolerant) - acts-as-taggable-on → 12.x (Rails 7.2 + Ruby 3.2 support) - awesome_nested_set → 3.7.0 (Rails 7.2 support, avoids 3.9.0 lft/rgt bug) - globalize → 7.0 (Rails 7.x required) - libxml-ruby → 5.x (Ruby 3.2 required) - unicorn → 6.x; fix unicorn.rb: RAILS_ROOT→Rails.root, RAILS_ENV→ENV, File.exists?→File.exist? - Add puma for development server - Remove dead initializers: assets.rb, ruby2.rb, backtrace_silencers.rb, new_rails_defaults.rb - Fix File.exists? → File.exist? in page.rb and authors_importer.rb - Add routing_filter_rails71_patch.rb (restores params[:locale] on Rails 7.1+)
2026-06-26Stage 4: Rails 5.2 -> 6.1 on Ruby 2.7.2erdgeist
- routing-filter 0.6.3 -> 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 -> update throughout - render :nothing -> 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
2026-06-24Fix tagged content aggregator, assets path, and add regression testserdgeist
- Replace tagged_with calls in Page.aggregate, TagsController, RssController with direct SQL joins (acts-as-taggable-on 3.5 broken on Rails 3.2) - Fix Paperclip :path/:url to use plain :id format matching existing uploads - Add proper regression tests for aggregator, tags, and rss controllers - Fix assert_select assertions to target div.body div.article_partial
2026-06-24Stage 1 complete: Rails 2.3.5 to Rails 3.2.22.5 upgradeerdgeist
- 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
2010-03-02ruby 1.9 compatibility hukl
2009-11-15rake task to set the update template on all updateshukl
2009-11-12cleanup of rake task outputhukl
2009-11-11added rake task to remove orphan pages (pages without a node)hukl
2009-11-11added rake task to migrate to the new editor column.
also added rake task to repair pages that don't have a published_at date sethukl
2009-10-21adding admin flag in setup taskhukl
2009-10-07and add it back inhukl
2009-10-07remove update modulehukl
2009-09-17preparing for postgres migration. adding rake task for conversionhukl
2009-09-12added another gem requirement and updated the chaos_importer task to work with the current node validationshukl
2009-09-08lots of gui improvements for creating nodeshukl
2009-09-05changed the rcov gem requirement and updated rcov taskhukl
2009-04-19updated rake taskhukl
2009-04-18fixing the authors importerhukl
2009-04-18added update_authors_on_pages task. run after importing authorshukl
2009-04-13refactor of the authors importerhukl
2009-04-13uses the new chaos_calendar gem as wellhukl
2009-04-11removed lib/chaos_calendar as we now have the erdgeist-chaos_calendar gem on github - YAY!hukl
2009-04-09Merge branch 'master' of ssh://git@svn.medienhaus.udk-berlin.de/usr/local/git/cccmserdgeist
2009-04-09Make chaos calendar gemerdgeist
2009-04-07adding the new chaos_importer.rb to the setup_environment task.hukl
removed libxml-ruby dependency
2009-04-07adding authors_importer.rbhukl
2009-03-31don't even lookhukl
2009-03-31mini fixeshukl
2009-03-31renamed and refactored even furtherhukl
2009-03-30okay its done - complete rewrite of the importer. you will need nokogiri gem installed. i will test this a little more and extend it with new features i ↵hukl
wanted in the first place. but it had to be refactored first.
2009-03-30next level - events to gohukl
2009-03-29rewrite of the importer - not done yethukl
2009-03-18modified importer to update carefully!!!1elfhukl
2009-03-18fixed deprecation warninghukl
2009-03-18Add a duration parser to libical wrappererdgeist
2009-03-18small patch for reoccurrence rulehukl
2009-03-18Refactored Chaos Calendar by wrapping libical and introducing event and occurrence model. More improvements to come. Enables us to create events with ↵hukl
reoccurrence and intervals etc.
2009-03-17Rubify behavoir of helpererdgeist
2009-03-15Improve documentationerdgeist
2009-03-15Minor documentationerdgeist
2009-03-15ruby wrapper around libicalerdgeist
2009-03-10fix for vpimhukl
2009-03-10added calendar backend. more features and integration to comeerdgeist
2009-03-10Merge branch 'master' of ssh://git@svn.medienhaus.udk-berlin.de/usr/local/git/cccmserdgeist