mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-11 18:26:50 +00:00
75 lines
2.0 KiB
Ruby
75 lines
2.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Spree
|
|
module Admin
|
|
class TaxonsController < ::Admin::ResourceController
|
|
before_action :set_taxon, except: %i[create index new]
|
|
|
|
def index
|
|
@taxons = Taxon.order(:name)
|
|
end
|
|
|
|
def new
|
|
@taxon = Taxon.new
|
|
end
|
|
|
|
def edit; end
|
|
|
|
def create
|
|
@taxon = Spree::Taxon.new(taxon_params)
|
|
if @taxon.save
|
|
flash[:success] = flash_message_for(@taxon, :successfully_created)
|
|
redirect_to edit_admin_taxon_path(@taxon.id)
|
|
else
|
|
render :new, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @taxon.update(taxon_params)
|
|
flash[:success] = flash_message_for(@taxon, :successfully_updated)
|
|
redirect_to edit_admin_taxon_path(@taxon.id)
|
|
else
|
|
render :edit, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
status = if @taxon.destroy
|
|
flash_message = t('.delete_taxon.success')
|
|
status = :ok
|
|
else
|
|
flash_message = t('.delete_taxon.error')
|
|
status = :unprocessable_entity
|
|
end
|
|
|
|
respond_to do |format|
|
|
format.html {
|
|
flash[:success] = flash_message if status == :ok
|
|
flash[:error] = flash_message if status == :unprocessable_entity
|
|
redirect_to admin_taxons_path
|
|
}
|
|
format.turbo_stream {
|
|
flash[:success] = flash_message if status == :ok
|
|
flash[:error] = flash_message if status == :unprocessable_entity
|
|
render :destroy_taxon, status:
|
|
}
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def set_taxon
|
|
@taxon = Taxon.find(params[:id])
|
|
end
|
|
|
|
def taxon_params
|
|
params.require(:taxon).permit(
|
|
:name, :position, :icon, :description, :permalink,
|
|
:meta_description, :meta_keywords, :meta_title, :dfc_id
|
|
)
|
|
end
|
|
end
|
|
end
|
|
end
|