Class: Spina::Blocks::Admin::PageBlocksController

Inherits:
Admin::AdminController
  • Object
show all
Defined in:
app/controllers/spina/blocks/admin/page_blocks_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/controllers/spina/blocks/admin/page_blocks_controller.rb', line 20

def create
  @page_block = @page.page_blocks.build(page_block_params)
  @page_block.position = @page.page_blocks.maximum(:position).to_i + 1

  if @page_block.save
    flash[:success] = I18n.t('spina.page_blocks.added')
  else
    flash[:error] = I18n.t('spina.page_blocks.couldnt_be_added')
  end

  redirect_to spina.blocks_admin_page_page_blocks_url(page_id: @page.id)
end

#destroyObject



33
34
35
36
37
38
# File 'app/controllers/spina/blocks/admin/page_blocks_controller.rb', line 33

def destroy
  @page_block = @page.page_blocks.find(params[:id])
  @page_block.destroy
  flash[:info] = I18n.t('spina.page_blocks.removed')
  redirect_to spina.blocks_admin_page_page_blocks_url(page_id: @page.id)
end

#indexObject



11
12
13
14
15
16
17
18
# File 'app/controllers/spina/blocks/admin/page_blocks_controller.rb', line 11

def index
  add_breadcrumb I18n.t('spina.website.pages'), spina.admin_pages_path, class: 'text-gray-400'
  add_breadcrumb @page.title, spina.edit_admin_page_path(@page), class: 'text-gray-400'
  add_breadcrumb I18n.t('spina.page_blocks.title')

  @page_blocks = @page.page_blocks.sorted.includes(:block)
  @available_blocks = Spina::Blocks::Block.active.sorted.where.not(id: @page.block_ids)
end

#sortObject



40
41
42
43
44
45
46
47
# File 'app/controllers/spina/blocks/admin/page_blocks_controller.rb', line 40

def sort
  params[:ids].each.with_index do |id, index|
    @page.page_blocks.where(id: id).update_all(position: index + 1)
  end

  flash.now[:info] = I18n.t('spina.page_blocks.sorting_saved')
  render_flash
end