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 :headnote, 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 show_url return document_doctrine_path(jurisprudence.id, id, is_index_table: false, subject_ids: opts[:subject_ids].reject(&:blank?)) if jurisprudence.present? doctrine_path(id, is_index_table: false, subject_ids: opts[:subject_ids].reject(&:blank?)) end def render? doctrine.present? && doctrine.persisted? end end