You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
1.7 KiB
79 lines
1.7 KiB
class DoctrinesController < ApplicationController |
|
include DoctrineSearch |
|
include AnnotationSearch |
|
|
|
load_and_authorize_resource :doctrine, class: "Doctrine" |
|
|
|
def new; end |
|
|
|
def edit; end |
|
|
|
def index |
|
@search = doctrine_search(search_params) |
|
@doctrines = @search.results |
|
|
|
respond_to do |format| |
|
format.html |
|
end |
|
end |
|
|
|
def search |
|
@search = doctrine_search(search_params) |
|
@search_results = @search.results |
|
|
|
respond_to do |format| |
|
format.html |
|
end |
|
end |
|
|
|
def show |
|
@jurisprudence = @doctrine.doctrine_jurisprudences.present? ? @doctrine.doctrine_jurisprudences.first.jurisprudence : nil |
|
|
|
search = annotation_search({ doctrine_id: @doctrine.id }) |
|
@annotations = search.results |
|
end |
|
|
|
def create |
|
attrs = resource_params.to_unsafe_h.deep_symbolize_keys |
|
subject_ids = attrs.delete(:subject_ids) |
|
|
|
@doctrine = Doctrine.new(attrs) |
|
|
|
if @doctrine.save |
|
@doctrine.subject_ids = subject_ids if subject_ids.present? |
|
|
|
respond_with @doctrine |
|
else |
|
render errors: @doctrine.errors, status: 422 |
|
end |
|
end |
|
|
|
def update |
|
attrs = resource_params.to_unsafe_h.deep_symbolize_keys |
|
subject_ids = attrs.delete(:subject_ids) |
|
|
|
if @doctrine.update(attrs) |
|
@doctrine.subject_ids = subject_ids if subject_ids.present? |
|
|
|
respond_with @doctrine |
|
else |
|
render errors: @doctrine.errors, status: 422 |
|
end |
|
end |
|
|
|
def destroy |
|
@doctrine.destroy |
|
|
|
respond_with @doctrine |
|
end |
|
|
|
private |
|
|
|
def resource_params |
|
params.permit(:content, :headnote, jurisprudence_ids: [], subject_ids: []) |
|
end |
|
|
|
def search_params |
|
params.permit(:page, :per_page, jurisprudence_ids: [], subject_ids: []) |
|
end |
|
end
|
|
|