summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-14 02:17:04 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-14 02:17:04 +0200
commit88ebeaac7fcf140cbab489e841bf9c197f84c4ea (patch)
treeff97b50deebdaa44eb6a40d8550e912457c2fb8f /app/controllers
parentc693069db6ddce4582209a1cf60a564f6947bd56 (diff)
Make revisions locale aware
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/page_translations_controller.rb5
-rw-r--r--app/controllers/revisions_controller.rb16
2 files changed, 13 insertions, 8 deletions
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
5 before_action :find_node 5 before_action :find_node
6 before_action :find_locale, :only => [:show, :edit, :update, :autosave, :destroy] 6 before_action :find_locale, :only => [:show, :edit, :update, :autosave, :destroy]
7 7
8 def index
9 page = @node.draft || @node.head
10 @translations = page ? page.translation_summary : []
11 end
12
13 def show 8 def show
14 @page = @node.draft || @node.head 9 @page = @node.draft || @node.head
15 @translation = @page.translations.find_by(:locale => @locale) 10 @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
5 before_action :login_required 5 before_action :login_required
6 6
7 layout 'admin' 7 layout 'admin'
8 8
9 def index 9 def index
10 @node = Node.find(params[:node_id]) 10 @node = Node.find(params[:node_id])
11 @pages = @node.pages.all 11 @pages = @node.pages.all
12 @locale = resolve_locale(params[:locale])
12 end 13 end
13 14
14 def diff 15 def diff
@@ -43,6 +44,7 @@ class RevisionsController < ApplicationController
43 def show 44 def show
44 @node = Node.find(params[:node_id]) 45 @node = Node.find(params[:node_id])
45 @page = @node.pages.find(params[:id]) 46 @page = @node.pages.find(params[:id])
47 @locale = resolve_locale(params[:locale])
46 end 48 end
47 49
48 def restore 50 def restore
@@ -51,4 +53,12 @@ class RevisionsController < ApplicationController
51 flash[:notice] = "Revision #{page.revision} restored" 53 flash[:notice] = "Revision #{page.revision} restored"
52 redirect_to node_path(page.node) 54 redirect_to node_path(page.node)
53 end 55 end
56
57 private
58
59 def resolve_locale(requested)
60 candidate = requested.presence&.to_sym
61 allowed = [I18n.default_locale] + Page.non_default_locales
62 allowed.include?(candidate) ? candidate : I18n.default_locale
63 end
54end 64end