Class: Spina::Admin::Journal::JournalsController

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

Overview

Controller for Journal records. A site only ever has a single journal, so the index action is not needed.

Constant Summary collapse

PARTS_PARAMS =
:name, :title, :type, :content, :filename, :signed_blob_id, :alt, :attachment_id, :image_id,
  { images_attributes: %i[filename signed_blob_id image_id alt],
    content_attributes: [
      :name, :title,
      { parts_attributes: [
        :name, :title, :type, :content, :filename, :signed_blob_id, :alt, :attachment_id, :image_id,
        { images_attributes: %i[filename signed_blob_id image_id alt] }
      ] }
    ] }
].freeze
CONTENT_PARAMS =
Spina.config.locales.inject({}) do |params, locale|
  params.merge("#{locale}_content_attributes": [*PARTS_PARAMS])
end
PARAMS =
[:name, { **CONTENT_PARAMS }].freeze
PARTS =
%w[journal_abbreviation logo description documents issn].freeze

Instance Method Summary collapse

Instance Method Details

#destroyObject



45
46
47
48
49
50
51
52
# File 'app/controllers/spina/admin/journal/journals_controller.rb', line 45

def destroy
  @journal.destroy
  respond_to do |format|
    format.html do
      redirect_to edit_admin_journal_journal_path(Journal.instance), success: t('.deleted')
    end
  end
end

#editObject



32
33
34
# File 'app/controllers/spina/admin/journal/journals_controller.rb', line 32

def edit
  add_breadcrumb @journal.name
end

#updateObject



36
37
38
39
40
41
42
43
# File 'app/controllers/spina/admin/journal/journals_controller.rb', line 36

def update
  if @journal.update(journal_params)
    redirect_to edit_admin_journal_journal_path(@journal), success: t('.saved')
  else
    flash.now[:alert] = t('.failed')
    render :edit, status: :unprocessable_entity
  end
end