Class: Spina::Admin::Journal::VolumesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/spina/admin/journal/volumes_controller.rb

Overview

Controller for Volume records.

Instance Method Summary collapse

Instance Method Details

#createObject

rubocop:disable Metrics/AbcSize



28
29
30
31
32
33
34
35
36
37
38
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 28

def create # rubocop:disable Metrics/AbcSize
  @volume = Volume.new
  @volume.journal_id = Journal.instance.id
  @volume.number = Volume.any? ? Volume.sorted_desc.first.number + 1 : 1
  @volume.save!
  redirect_to edit_admin_journal_volume_path(@volume), success: t('.created', number: @volume.number)
rescue ActiveRecord::RecordNotUnique
  # can only happen because of some race condition where two Volumes are created at the same time
  logger.error 'Error when creating new volume. Retrying...'
  retry
end

#destroyObject



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

def destroy
  @volume.destroy
  respond_to do |format|
    format.html do
      redirect_to admin_journal_volumes_path, success: 'Volume deleted.'
    end
  end
end

#editObject



18
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 18

def edit; end

#indexObject



14
15
16
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 14

def index
  @volumes = Volume.sorted_asc
end

#newObject



24
25
26
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 24

def new
  create
end

#sortObject



49
50
51
52
53
54
55
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 49

def sort
  params[:ids].each.with_index do |id, index|
    Volume.where(id: id).update_all(number: index + 1) # rubocop:disable Rails/SkipsModelValidations
  end
  flash.now[:info] = t('spina.pages.sorting_saved')
  render_flash
end

#view_issuesObject



20
21
22
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 20

def view_issues
  render layout: false
end