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