Sha256: 81152c69fa48d4c9c8e2b704e02e48dad3e5bf8f6fe57b7d7aed637138090881

Contents?: true

Size: 1.59 KB

Versions: 4

Compression:

Stored size: 1.59 KB

Contents

# frozen_string_literal: true

module Katalyst
  module Navigation
    class MenusController < BaseController
      def index
        sort, menus = table_sort(Menu.all)

        render locals: { menus: menus, sort: sort }
      end

      def show
        menu = Menu.find(params[:id])

        render locals: { menu: menu }
      end

      def new
        render locals: { menu: Menu.new }
      end

      def edit
        menu = Menu.find(params[:id])

        render locals: { menu: menu }
      end

      def create
        @menu = Menu.new(menu_params)

        if @menu.save
          redirect_to @menu
        else
          render :new, locals: { menu: @menu }, status: :unprocessable_entity
        end
      end

      # PATCH /admins/navigation_menus/:slug
      def update
        menu = Menu.find(params[:id])

        menu.attributes = menu_params

        unless menu.valid?
          return render turbo_stream: helpers.navigation_editor_errors(menu: menu),
                        status:       :unprocessable_entity
        end

        case params[:commit]
        when "publish"
          menu.save!
          menu.publish!
        when "save"
          menu.save!
        when "revert"
          menu.revert!
        end
        redirect_to menu
      end

      def destroy
        menu = Menu.find(params[:id])

        menu.destroy!

        redirect_to action: :index, status: :see_other
      end

      private

      def menu_params
        return {} if params[:menu].blank?

        params.require(:menu).permit(:title, :slug, :depth, items_attributes: %i[id index depth])
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
katalyst-navigation-1.3.4 app/controllers/katalyst/navigation/menus_controller.rb
katalyst-navigation-1.3.3 app/controllers/katalyst/navigation/menus_controller.rb
katalyst-navigation-1.3.2 app/controllers/katalyst/navigation/menus_controller.rb
katalyst-navigation-1.3.1 app/controllers/katalyst/navigation/menus_controller.rb