diff --git a/app/components/reports_search_results_component.rb b/app/components/reports_search_results_component.rb
new file mode 100644
index 0000000..d5ac7e0
--- /dev/null
+++ b/app/components/reports_search_results_component.rb
@@ -0,0 +1,47 @@
+class ReportsSearchResultsComponent < BaseComponent
+ with_collection_parameter :search_result
+ attr_reader :search_result, :opts
+
+ def initialize(search_result:, current_user:, opts: {})
+ @search_result = search_result
+ @opts = opts
+ end
+
+ delegate :id, to: :search_result
+ delegate :headnote, to: :search_result
+ delegate :subject_ids, to: :search_result
+ delegate :content, to: :search_result
+ delegate :annotations, to: :search_result
+ delegate :subjects, to: :search_result
+ delegate :doctrine_jurisprudences, to: :search_result
+
+ 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?
+ opts[:is_render].present?
+ end
+end
diff --git a/app/components/reports_search_results_component/reports_search_results_component.html.erb b/app/components/reports_search_results_component/reports_search_results_component.html.erb
new file mode 100644
index 0000000..287f910
--- /dev/null
+++ b/app/components/reports_search_results_component/reports_search_results_component.html.erb
@@ -0,0 +1,40 @@
+
+
+
<%= raw content.html_safe %>
+
+
+
+ <% annotations.each do |annotation| %>
+ <% document_title = annotation.document.short_title || annotation.document.title %>
+ <% date_or_year = annotation.document.docdate.present? ? annotation.document.docdate : annotation.document.year %>
+
<%= [document_title, annotation.document.reference_number, date_or_year].join(", ") %>
+
+
+ <% 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 %>
+
+ <%= "#{annotation.annomarks.map { |annomark| "(#{annomark.code})" }.join(" ")}" %>
+ <%= raw [document_title(annotation), annotation.document.reference_number, date_or_year(annotation), annotation.phil_rep, annotated_documents_title].reject(&:blank?).join(', ') %>
+
+
+ <% if annotation.editor_notes.present? %>
+
+
+ Editors Note:
+
+
+
+ <%= raw annotation.editor_notes %>
+
+
+ <% end %>
+ <% end %>
+
+
+
+
+
diff --git a/app/components/sidenav_component/sidenav_component.html.erb b/app/components/sidenav_component/sidenav_component.html.erb
index 013d2a6..0c26096 100644
--- a/app/components/sidenav_component/sidenav_component.html.erb
+++ b/app/components/sidenav_component/sidenav_component.html.erb
@@ -107,6 +107,9 @@
+
+ <%= image_pack_tag 'application/search-icon.png', class: "search-doc-icon"%>
+
+
+ No Results Found
+
+
+<% end %>
\ No newline at end of file
diff --git a/app/views/reports/index.html.erb b/app/views/reports/index.html.erb
new file mode 100644
index 0000000..4baedcd
--- /dev/null
+++ b/app/views/reports/index.html.erb
@@ -0,0 +1,41 @@
+
+
+
+ <%= form_with(url: reports_path, method: :get) do %>
+
+ <%= text_field_tag :q, params[:q], placeholder: 'Full text search', class: "form-control" %>
+
+
+
+ Subjects
+
+
+
+
+ Users
+ <%= select_tag :user_ids, options_from_collection_for_select(@users, :id, :name, params[:user_ids]), class: "form-control default-selectize p-0", multiple: true %>
+
+
+
+ Refresh
+ Search
+
+ <% end %>
+
+
+
+
<%= render PaginationComponent.new(data: @results, opts: { is_subject_breadcrums: true, subject_ids: params[:subject_ids] }) %>
+ <% if @results.present? %>
+ <%= render(ReportsSearchResultsComponent.with_collection(@results, current_user: current_user, opts: { is_render: true })) %>
+ <% else %>
+
+
+ <%= image_pack_tag 'application/search-icon.png', class: "search-doc-icon"%>
+
+
+ No Results Found
+
+
+ <% end %>
+
+
diff --git a/app/views/shared/_reports_pagination.html.erb b/app/views/shared/_reports_pagination.html.erb
new file mode 100644
index 0000000..ff3e030
--- /dev/null
+++ b/app/views/shared/_reports_pagination.html.erb
@@ -0,0 +1,15 @@
+