From f04b3f70a443d21b7560da67d096d8beba3ff4d0 Mon Sep 17 00:00:00 2001 From: Angel Aviel Domaoan Date: Thu, 27 Jan 2022 07:11:25 +0000 Subject: [PATCH] Implement documents#search --- .../sidenav_component.html.erb | 2 +- ...jects_sidenav_sub_menu_component.html.erb} | 10 +++++----- .../concerns/jurisprudence_search.rb | 4 ++-- app/controllers/documents_controller.rb | 11 ++++++++++- app/controllers/subject_indexes_controller.rb | 4 +++- app/views/documents/index.html.erb | 4 +--- app/views/documents/search.html.erb | 19 +++++++++++++++++++ config/routes.rb | 4 +++- 8 files changed, 44 insertions(+), 14 deletions(-) rename app/components/subjects_sidenav_sub_menu_component/{subjects_sidenav_sub_menu_component.erb => subjects_sidenav_sub_menu_component.html.erb} (89%) create mode 100644 app/views/documents/search.html.erb diff --git a/app/components/sidenav_component/sidenav_component.html.erb b/app/components/sidenav_component/sidenav_component.html.erb index cb79ba3..0310eef 100644 --- a/app/components/sidenav_component/sidenav_component.html.erb +++ b/app/components/sidenav_component/sidenav_component.html.erb @@ -6,7 +6,7 @@
diff --git a/app/components/subjects_sidenav_sub_menu_component/subjects_sidenav_sub_menu_component.erb b/app/components/subjects_sidenav_sub_menu_component/subjects_sidenav_sub_menu_component.html.erb similarity index 89% rename from app/components/subjects_sidenav_sub_menu_component/subjects_sidenav_sub_menu_component.erb rename to app/components/subjects_sidenav_sub_menu_component/subjects_sidenav_sub_menu_component.html.erb index be58495..94a624c 100644 --- a/app/components/subjects_sidenav_sub_menu_component/subjects_sidenav_sub_menu_component.erb +++ b/app/components/subjects_sidenav_sub_menu_component/subjects_sidenav_sub_menu_component.html.erb @@ -5,7 +5,7 @@
@@ -17,7 +17,7 @@
@@ -28,7 +28,7 @@
@@ -39,7 +39,7 @@
@@ -48,7 +48,7 @@ <% sub3.children.each do |sub4| %>

- <%= link_to sub4.name, subject_index_path(sub4.id), class: "accordion-link text-dark" %> + <%= link_to sub4.name, search_documents_path(subject_ids: sub4.id), class: "accordion-link text-dark" %>

<% end if sub3.children.present? %> diff --git a/app/controllers/concerns/jurisprudence_search.rb b/app/controllers/concerns/jurisprudence_search.rb index e0ce97c..7f57ad6 100644 --- a/app/controllers/concerns/jurisprudence_search.rb +++ b/app/controllers/concerns/jurisprudence_search.rb @@ -13,8 +13,8 @@ module JurisprudenceSearch with(:subject_ids).any_of(search_params[:subject_ids].split(",").map(&:strip).map(&:to_i)) if search_params[:subject_ids].present? - order_by :doc_date - order_by :year + order_by :doc_date, :desc + order_by :year, :desc paginate page: search_params[:page] || 1, per_page: search_params[:per_page] || 20 end diff --git a/app/controllers/documents_controller.rb b/app/controllers/documents_controller.rb index 958bd35..541a9c6 100644 --- a/app/controllers/documents_controller.rb +++ b/app/controllers/documents_controller.rb @@ -17,8 +17,17 @@ class DocumentsController < ApplicationController @doctrines = @document.doctrines end + def search + index + + respond_to do |format| + format.html { render :search } + end + end + private def search_params - params.permit(:reference_number, :title, :short_title, :q, :page, :per_page) + params.permit(:reference_number, :title, :short_title, :q, :page, :per_page, + :subject_ids) end end diff --git a/app/controllers/subject_indexes_controller.rb b/app/controllers/subject_indexes_controller.rb index 8d2e948..4ef65c8 100644 --- a/app/controllers/subject_indexes_controller.rb +++ b/app/controllers/subject_indexes_controller.rb @@ -1,5 +1,7 @@ class SubjectIndexesController < ApplicationController - load_and_authorize_resource :subject_index, class: "Cdao::Subject" + include JurisprudenceSearch + + load_and_authorize_resource :subject_index, class: "Cdao::Subject", except: %i[search] def index; end diff --git a/app/views/documents/index.html.erb b/app/views/documents/index.html.erb index 9176ad9..90890a7 100644 --- a/app/views/documents/index.html.erb +++ b/app/views/documents/index.html.erb @@ -3,9 +3,7 @@ <%= form_tag(documents_path, method: :get) do %>
-
- <%= text_field_tag :q, params[:q], class: "form-control" %> -
+ <%= text_field_tag :q, params[:q], class: "form-control" %>
diff --git a/app/views/documents/search.html.erb b/app/views/documents/search.html.erb new file mode 100644 index 0000000..038b260 --- /dev/null +++ b/app/views/documents/search.html.erb @@ -0,0 +1,19 @@ +
+ <% Cdao::Subject.where(id: params[:subject_ids].split(",").map(&:strip).map(&:to_i)).each do |subject| %> +
+ <%= subject.path.map(&:name).join(' > ') %> +
+ <% end %> +
+ + + + + + + + <%= render(DocumentIndexTableComponent.with_collection(@jurisprudences, current_user: current_user)) %> + +
Reference No. Title Date
+
+
diff --git a/config/routes.rb b/config/routes.rb index 772fc8f..52306f5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -15,7 +15,9 @@ Rails.application.routes.draw do end end - resources :documents, only: %i[index show] + resources :documents, only: %i[index show] do + get :search, on: :collection + end resources :decisions, only: %i[index show] resources :subject_indexes