Class: CamaleonCms::Admin::Appearances::NavMenusController
- Inherits:
-
CamaleonCms::AdminController
- Object
- CamaleonCms::AdminController
- CamaleonCms::Admin::Appearances::NavMenusController
- Includes:
- Frontend::NavMenuHelper
- Defined in:
- app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb
Instance Method Summary collapse
-
#add_items ⇒ Object
add items to specific nav-menu.
- #create ⇒ Object
- #custom_settings ⇒ Object
- #delete_menu_item ⇒ Object
- #destroy ⇒ Object
- #edit ⇒ Object
-
#edit_menu_item ⇒ Object
render edit external menu item.
- #index ⇒ Object
- #new ⇒ Object
-
#reorder_items(items = nil, parent_id = nil, is_root = true) ⇒ Object
update the reorder of items.
- #save_custom_settings ⇒ Object
- #update ⇒ Object
-
#update_menu_item ⇒ Object
update an external menu item.
Instance Method Details
#add_items ⇒ Object
add items to specific nav-menu
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 94 def add_items items = [] @nav_menu = current_site..find(params[:nav_menu_id]) if params[:external].present? item = @nav_menu.((params[:external])) item.(params[:external].require(:options).permit!) if params[:external][:options].present? items << item end if params[:custom_items].present? # custom menu items params[:custom_items].each do |index, item| type = item['kind'].present? ? item['kind'] : 'external' item = @nav_menu.({label: item['label'], link: item['url'], type: type}) items << item end end if params[:items].present? params[:items].each do |index, item| item = @nav_menu.({label: 'auto', link: item['id'], type: item['kind']}) items << item end end render partial: 'menu_items', locals: {items: items, nav_menu: @nav_menu} end |
#create ⇒ Object
24 25 26 27 28 29 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 24 def create = current_site..new(params.require(:nav_menu).permit!) .save flash[:notice] = t('.created_menu', default: 'Created Menu') redirect_to action: :index, id: .id end |
#custom_settings ⇒ Object
49 50 51 52 53 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 49 def custom_settings @nav_menu = current_site..find(params[:nav_menu_id]) @nav_menu_item = current_site..find(params[:id]) render "_custom_fields", layout: "camaleon_cms/admin/_ajax" end |
#delete_menu_item ⇒ Object
75 76 77 78 79 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 75 def # @nav_menu = current_site.nav_menus.find(params[:nav_menu_id]) current_site..find(params[:id]).destroy head :ok end |
#destroy ⇒ Object
43 44 45 46 47 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 43 def destroy current_site..find(params[:id]).destroy flash[:notice] = t('.deleted_menu', default: 'Menu destroyed') redirect_to action: :index end |
#edit ⇒ Object
38 39 40 41 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 38 def edit @nav_menu = current_site..find(params[:id]) render partial: 'form' end |
#edit_menu_item ⇒ Object
render edit external menu item
62 63 64 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 62 def render "_external_menu", layout: false, locals: {nav_menu: current_site..find(params[:nav_menu_id]), menu_item: current_site..find(params[:id])} end |
#index ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 6 def index if params[:id].present? @nav_menu = current_site..find_by_id(params[:id]) elsif params[:slug].present? @nav_menu = current_site..find_by_slug(params[:slug]) else @nav_menu = current_site..first end @post_types = current_site.post_types add_asset_library("nav_menu") render "index" end |
#new ⇒ Object
19 20 21 22 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 19 def new @nav_menu = current_site..new render partial: 'form' end |
#reorder_items(items = nil, parent_id = nil, is_root = true) ⇒ Object
update the reorder of items
82 83 84 85 86 87 88 89 90 91 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 82 def reorder_items(items = nil, parent_id = nil, is_root = true) items = params[:items] if items.nil? parent_id = params[:nav_menu_id] if parent_id.nil? items.each do |index, _item| item = current_site..find(_item['id']) item.update(parent_id: parent_id, term_order: index) reorder_items(_item['children'], _item['id'], false) if _item['children'].present? end render(inline: '') if is_root end |
#save_custom_settings ⇒ Object
55 56 57 58 59 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 55 def save_custom_settings @nav_menu_item = current_site..find(params[:id]) @nav_menu_item.set_field_values(params.require(:field_options).permit!) head :ok end |
#update ⇒ Object
31 32 33 34 35 36 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 31 def update = current_site..find(params[:id]) .update(params.require(:nav_menu).permit!) flash[:notice] = t('.updated_menu', default: 'Menu updated') redirect_to action: :index, id: .id end |
#update_menu_item ⇒ Object
update an external menu item
67 68 69 70 71 72 73 |
# File 'app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb', line 67 def @nav_menu = current_site..find(params[:nav_menu_id]) item = current_site..find(params[:id]) item.((params)) item.(params.require(:options).permit!) if params[:options].present? render partial: 'menu_items', locals: {items: [item], nav_menu: @nav_menu} end |