64 lines
1.4 KiB
Ruby
64 lines
1.4 KiB
Ruby
class Admin::ChaptersController < OrbitAdminController
|
|
def initialize
|
|
super
|
|
@app_title = "publication"
|
|
end
|
|
|
|
def index
|
|
@table_fields = [:title, :author, :page, :sort_number]
|
|
@chapters = Chapter.order_by(sort).page(params[:page]).per(10)
|
|
render partial: "index" if request.xhr?
|
|
end
|
|
|
|
def new
|
|
@chapter = Chapter.new
|
|
@publication = Publication.find(params[:publication_id])
|
|
if can_edit_or_delete?(@publication)
|
|
@tags = @module_app.tags || []
|
|
else
|
|
render_401
|
|
end
|
|
end
|
|
|
|
def create
|
|
chapter = Chapter.create(chapter_params)
|
|
redirect_to params[:referer_url]
|
|
end
|
|
|
|
def edit
|
|
@chapter = Chapter.find(params[:id])
|
|
if can_edit_or_delete?(@publication)
|
|
@publication = @chapter.publication
|
|
else
|
|
render_401
|
|
end
|
|
end
|
|
|
|
def update
|
|
chapter = Chapter.find(params[:id])
|
|
chapter.update_attributes(chapter_params)
|
|
redirect_to params[:referer_url]
|
|
end
|
|
|
|
def destroy
|
|
chapter = Chapter.find(params[:id])
|
|
publication = chapter.publication
|
|
chapter.destroy
|
|
redirect_to admin_publication_path(publication.id, page: params[:page])
|
|
end
|
|
|
|
private
|
|
|
|
def chapter_params
|
|
tmp = params.require(:chapter).permit!
|
|
if tmp['chapter_files_attributes']['0']['file'].nil? && !tmp['chapter_files_attributes']['0']['_destroy']
|
|
tmp.delete('chapter_files_attributes')
|
|
end
|
|
tmp
|
|
end
|
|
|
|
def setup_vars
|
|
@module_app = ModuleApp.where(key: "publication").first
|
|
end
|
|
end
|