diff options
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/page_translations_controller.rb | 5 | ||||
| -rw-r--r-- | app/controllers/revisions_controller.rb | 16 |
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 | ||
| 54 | end | 64 | end |
