4 changed files with 94 additions and 2 deletions
@ -0,0 +1,46 @@ |
|||||||
|
class DoctrineIndexComponent < BaseComponent |
||||||
|
with_collection_parameter :doctrine |
||||||
|
attr_reader :doctrine, :opts |
||||||
|
|
||||||
|
def initialize(doctrine:, current_user:, opts: {}) |
||||||
|
@doctrine = doctrine |
||||||
|
@opts = opts |
||||||
|
end |
||||||
|
|
||||||
|
delegate :id, to: :doctrine |
||||||
|
delegate :subject_ids, to: :doctrine |
||||||
|
delegate :content, to: :doctrine |
||||||
|
delegate :annotations, to: :doctrine |
||||||
|
delegate :subjects, to: :doctrine |
||||||
|
delegate :doctrine_jurisprudences, to: :doctrine |
||||||
|
|
||||||
|
def annotation_form_url |
||||||
|
doctrine_annotations_path(doctrine_id: id) |
||||||
|
end |
||||||
|
|
||||||
|
def subject_names |
||||||
|
"(No Subjects Provided)" |
||||||
|
end |
||||||
|
|
||||||
|
def jurisprudence |
||||||
|
return nil if doctrine_jurisprudences.blank? |
||||||
|
|
||||||
|
doctrine_jurisprudences.first.jurisprudence |
||||||
|
end |
||||||
|
|
||||||
|
def document_title(annotation) |
||||||
|
return annotation.document.short_title if annotation.document.short_title.present? |
||||||
|
|
||||||
|
annotation.document.title |
||||||
|
end |
||||||
|
|
||||||
|
def date_or_year(annotation) |
||||||
|
return annotation.document.docdate.to_date.strftime("%B %d, %Y") if annotation.document.docdate.present? |
||||||
|
|
||||||
|
annotation.document.year |
||||||
|
end |
||||||
|
|
||||||
|
def render? |
||||||
|
doctrine.present? && doctrine.persisted? |
||||||
|
end |
||||||
|
end |
||||||
@ -0,0 +1,45 @@ |
|||||||
|
<div class="row-flex m-3 mt-0 doctrine-content-body clickable-link" href="<%= jurisprudence.present? ? document_doctrine_path(jurisprudence.id, id, is_index_table: false, section_ids: opts[:subject_ids].reject(&:blank?)) : doctrine_path(id, is_index_table: false)%>"> |
||||||
|
<% if opts[:subject_ids].reject(&:blank?).present? %> |
||||||
|
<h5 style="color: darkred;"> <%= subjects.where(id: opts[:subject_ids].map(&:to_i)).map(&:lineage_name).join("") %> </h5> |
||||||
|
<% else %> |
||||||
|
<h5> (No Subjects Provided) </h5> |
||||||
|
<% end %> |
||||||
|
|
||||||
|
<div class="container-sm <%= opts[:is_subjects_index].present? ? 'm-0 ps-0' : '' %>"> |
||||||
|
<p class="mb-0"> <%= raw content.html_safe %> </p> |
||||||
|
|
||||||
|
<div class="container-fluid p-0"> |
||||||
|
<% document_title = jurisprudence.short_title || jurisprudence.title %> |
||||||
|
<% date_or_year = jurisprudence.docdate.present? ? jurisprudence.docdate.to_date.strftime("%B %d, %Y") : jurisprudence.year %> |
||||||
|
<h5 style="color: darkred;"> <%= [document_title, jurisprudence.reference_number, date_or_year].join(", ") %> </h5> |
||||||
|
|
||||||
|
<% annotations.each do |annotation| %> |
||||||
|
<p class="mb-0 ms-3"> |
||||||
|
<% annotated_documents_title = [] %> |
||||||
|
<% annotation.documents.each do |annotated_document| %> |
||||||
|
<% ad_title = annotated_document.short_title || annotated_document.title %> |
||||||
|
<% ad_date_or_year = annotated_document.docdate.present? ? annotated_document.docdate.strftime("%B %d, %Y") : annotated_document.year %> |
||||||
|
<% annotated_documents_title << [" citing #{ad_title}", annotated_document.reference_number, ad_date_or_year].join(", ") %> |
||||||
|
<% end %> |
||||||
|
|
||||||
|
<strong> <%= "#{annotation.annomarks.map { |annomark| "(#{annomark.code})" }.join(" ")}" %> </strong> |
||||||
|
<%= raw [document_title(annotation), annotation.document.reference_number, date_or_year(annotation), annotation.phil_rep, annotated_documents_title].reject(&:blank?).join(', ') %> |
||||||
|
</p> |
||||||
|
|
||||||
|
<% if annotation.editor_notes.present? %> |
||||||
|
<div class="row ms-5"> |
||||||
|
<div class="col-sm-2 p-0" style="width: 105px;"> |
||||||
|
<span> Editors Note: </span> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-sm-10 ps-0"> |
||||||
|
<%= raw annotation.editor_notes %> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<% end %> |
||||||
|
<% end %> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<hr/> |
||||||
|
</div> |
||||||
Loading…
Reference in new issue