class DoctrineIndexComponent < BaseComponent with_collection_parameter :doctrine attr_reader :doctrine, :opts include AnnotationSearch 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 :subjects, to: :doctrine delegate :headnote, to: :doctrine delegate :doctrine_jurisprudences, to: :doctrine delegate :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? jurisprudences.first 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 clean_phil_rep(annotation) return if annotation.phil_rep.blank? annotation.phil_rep.gsub(/(PhilRep|Phil)\.?,?/i, "Phil") end def annotations search = annotation_search(doctrine_id: id) search.results end def content_diplay_text(annotation) return annotation.content.gsub("