lib/mokio/concerns/controllers/menus.rb in mokio-0.0.11 vs lib/mokio/concerns/controllers/menus.rb in mokio-0.0.12
- old
+ new
@@ -69,10 +69,23 @@
end
render :nothing => true
end
+ # Renders form for creating menu positon (fake menu - direct child of a lang root)
+
+ def new_menu_position
+ @menu = Mokio::Menu.new
+ end
+
+ def create_menu_position
+ parent = Mokio::Menu.where(lang_id: params[:menu][:lang_id], ancestry: nil).first
+ params[:menu][:parent_id] = parent.id
+ params[:menu][:deletable] = true
+ create
+ end
+
private
#
# Method to initialize menu's dual select boxes
#
def init_dual_select #:doc:
@@ -107,11 +120,21 @@
change
end
def transform_modules #:doc:
if !params[:menu][:available_module_ids].nil?
- params[:menu][:available_module_ids] = params[:menu][:available_module_ids].values.flatten
+ av_module_ids = params[:menu][:available_module_ids].values.flatten
+
+ # modules that are always displayed are not saved as selected_modules
+
+ av_modules = AvailableModule.where('id IN (?)', av_module_ids)
+ av_modules.each do |mod|
+ if mod.static_module.always_displayed
+ av_module_ids.delete(mod.id.to_s)
+ end
+ end
+ params[:menu][:available_module_ids] = av_module_ids
end
end
#
# After menu is saved, either order of menu articles and selected static modules is saved or they are cleared
@@ -144,10 +167,10 @@
#
# Never trust parameters from the scary internet, only allow the white list through.
#
def menu_params #:doc:
- params[:menu].permit(:name, :seq, :target, :external_link, :follow, :parent_id, :active, :visible, :description, :lang_id, :content_ids => [],:available_module_ids => [],
+ params[:menu].permit(:name, :seq, :target, :external_link, :follow, :parent_id, :active, :visible, :description, :lang_id, :fake, :content_ids => [],:available_module_ids => [],
:meta_attributes => Mokio::Meta.meta_attributes)
end
end
end
end
\ No newline at end of file