Class: Katalyst::Navigation::MenusController

Inherits:
Object
  • Object
show all
Includes:
Tables::Backend
Defined in:
app/controllers/katalyst/navigation/menus_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/controllers/katalyst/navigation/menus_controller.rb', line 42

def create
  @menu = Menu.new(menu_params)
  editor = Katalyst::Navigation::EditorComponent.new(menu: @menu)

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

#destroyObject



80
81
82
83
84
85
86
# File 'app/controllers/katalyst/navigation/menus_controller.rb', line 80

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

  menu.destroy!

  redirect_to action: :index, status: :see_other
end

#editObject



35
36
37
38
39
40
# File 'app/controllers/katalyst/navigation/menus_controller.rb', line 35

def edit
  menu   = Menu.find(params[:id])
  editor = Katalyst::Navigation::EditorComponent.new(menu:)

  render locals: { menu:, editor: }
end

#indexObject



8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/controllers/katalyst/navigation/menus_controller.rb', line 8

def index
  collection = Katalyst::Tables::Collection::Base.new(sorting: :title).with_params(params).apply(Menu.all)
  table      = Katalyst::Turbo::TableComponent.new(collection:,
                                                   id:         "index-table",
                                                   class:      "index-table",
                                                   caption:    true)

  respond_to do |format|
    format.turbo_stream { render(table) } if self_referred?
    format.html { render :index, locals: { table: } }
  end
end

#newObject



28
29
30
31
32
33
# File 'app/controllers/katalyst/navigation/menus_controller.rb', line 28

def new
  menu   = Menu.new
  editor = Katalyst::Navigation::EditorComponent.new(menu:)

  render locals: { menu:, editor: }
end

#showObject



21
22
23
24
25
26
# File 'app/controllers/katalyst/navigation/menus_controller.rb', line 21

def show
  menu   = Menu.find(params[:id])
  editor = Katalyst::Navigation::EditorComponent.new(menu:)

  render locals: { menu:, editor: }
end

#updateObject

PATCH /admins/navigation_menus/:slug



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'app/controllers/katalyst/navigation/menus_controller.rb', line 56

def update
  menu = Menu.find(params[:id])
  editor = Katalyst::Navigation::EditorComponent.new(menu:)

  menu.attributes = menu_params

  unless menu.valid?
    return respond_to do |format|
      format.turbo_stream { render editor.errors, status: :unprocessable_entity }
    end
  end

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