From 88ebeaac7fcf140cbab489e841bf9c197f84c4ea Mon Sep 17 00:00:00 2001 From: erdgeist Date: Tue, 14 Jul 2026 02:17:04 +0200 Subject: Make revisions locale aware --- app/controllers/page_translations_controller.rb | 5 ----- app/controllers/revisions_controller.rb | 16 +++++++++++++--- 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/page_translations_controller.rb b/app/controllers/page_translations_controller.rb index 9446cd2..38a7c4f 100644 --- a/app/controllers/page_translations_controller.rb +++ b/app/controllers/page_translations_controller.rb @@ -5,11 +5,6 @@ class PageTranslationsController < ApplicationController before_action :find_node before_action :find_locale, :only => [:show, :edit, :update, :autosave, :destroy] - def index - page = @node.draft || @node.head - @translations = page ? page.translation_summary : [] - end - def show @page = @node.draft || @node.head @translation = @page.translations.find_by(:locale => @locale) diff --git a/app/controllers/revisions_controller.rb b/app/controllers/revisions_controller.rb index 0aed243..c5932a4 100644 --- a/app/controllers/revisions_controller.rb +++ b/app/controllers/revisions_controller.rb @@ -5,10 +5,11 @@ class RevisionsController < ApplicationController before_action :login_required layout 'admin' - + def index - @node = Node.find(params[:node_id]) - @pages = @node.pages.all + @node = Node.find(params[:node_id]) + @pages = @node.pages.all + @locale = resolve_locale(params[:locale]) end def diff @@ -43,6 +44,7 @@ class RevisionsController < ApplicationController def show @node = Node.find(params[:node_id]) @page = @node.pages.find(params[:id]) + @locale = resolve_locale(params[:locale]) end def restore @@ -51,4 +53,12 @@ class RevisionsController < ApplicationController flash[:notice] = "Revision #{page.revision} restored" redirect_to node_path(page.node) end + + private + + def resolve_locale(requested) + candidate = requested.presence&.to_sym + allowed = [I18n.default_locale] + Page.non_default_locales + allowed.include?(candidate) ? candidate : I18n.default_locale + end end -- cgit v1.3