From eca95f90de3de7c6507fc529e00e1e36f136a234 Mon Sep 17 00:00:00 2001 From: erdgeist Date: Tue, 28 Jul 2026 00:02:55 +0200 Subject: Let editors manage menu titles in both locales --- app/controllers/menu_items_controller.rb | 6 ++++-- app/models/menu_item.rb | 6 ++++++ app/views/menu_items/edit.html.erb | 3 +-- app/views/menu_items/new.html.erb | 3 +-- 4 files changed, 12 insertions(+), 6 deletions(-) (limited to 'app') diff --git a/app/controllers/menu_items_controller.rb b/app/controllers/menu_items_controller.rb index b095c8df..8b4e636e 100644 --- a/app/controllers/menu_items_controller.rb +++ b/app/controllers/menu_items_controller.rb @@ -19,7 +19,9 @@ class MenuItemsController < ApplicationController end def create - if MenuItem.create( menu_item_params ) + @menu_item = MenuItem.new( menu_item_params ) + + if @menu_item.save redirect_to menu_items_path else render :new @@ -58,6 +60,6 @@ class MenuItemsController < ApplicationController private def menu_item_params - params.require(:menu_item).permit(:node_id, :path, :position, :type, :title, :type_id) + params.require(:menu_item).permit(:node_id, :path, :position, :titles => {}) end end diff --git a/app/models/menu_item.rb b/app/models/menu_item.rb index 7769b7fa..b8df9ddb 100644 --- a/app/models/menu_item.rb +++ b/app/models/menu_item.rb @@ -3,11 +3,17 @@ class MenuItem < ApplicationRecord default_scope -> { where(:type => "MenuItem") } translates :title + validates :title, presence: true acts_as_list :scope => :type before_save :determine_type_id + def titles=(values) + values.each do |locale, value| + Globalize.with_locale(locale) { self.title = value.to_s.strip.presence } + end + end private diff --git a/app/views/menu_items/edit.html.erb b/app/views/menu_items/edit.html.erb index 0652dc78..2bd65575 100644 --- a/app/views/menu_items/edit.html.erb +++ b/app/views/menu_items/edit.html.erb @@ -15,8 +15,7 @@
<%= MenuItem.human_attribute_name(:path) %>
<%= f.text_field :path %>
-
<%= MenuItem.human_attribute_name(:title) %>
-
<%= f.text_field :title %>
+ <%= render "title_fields", :menu_item => @menu_item %>
<%= f.submit t("admin.common.update") %>
diff --git a/app/views/menu_items/new.html.erb b/app/views/menu_items/new.html.erb index 713ac967..08872ec0 100644 --- a/app/views/menu_items/new.html.erb +++ b/app/views/menu_items/new.html.erb @@ -13,8 +13,7 @@
<%= MenuItem.human_attribute_name(:path) %>
<%= f.text_field :path %>
-
<%= MenuItem.human_attribute_name(:title) %>
-
<%= f.text_field :title %>
+ <%= render "title_fields", :menu_item => @menu_item %>
<%= f.submit t("admin.common.create") %>
<% end %> -- cgit v1.3