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