diff --git a/app/components/sidenav_component/sidenav_component.html.erb b/app/components/sidenav_component/sidenav_component.html.erb
index 2a1cab6..8285f0a 100644
--- a/app/components/sidenav_component/sidenav_component.html.erb
+++ b/app/components/sidenav_component/sidenav_component.html.erb
@@ -88,12 +88,16 @@
<%= link_to 'Search'.html_safe, documents_path, class: "nav-link" %>
-
+
Subjects
-
+
Doctrines
@@ -112,7 +116,5 @@
-
-
<% end %>
<% end %>
diff --git a/app/components/subject_accordion_component.rb b/app/components/subject_accordion_component.rb
index 187ae62..ab8a2a9 100644
--- a/app/components/subject_accordion_component.rb
+++ b/app/components/subject_accordion_component.rb
@@ -1,10 +1,35 @@
class SubjectAccordionComponent < BaseComponent
- attr_reader :parent, :subjects, :opts
+ with_collection_parameter :search_result
+ attr_reader :search_result, :opts
+
+ def initialize(search_result:, current_user:, opts: {})
+ @search_result = search_result
+ @opts = opts
+ end
- def initialize(current_user:, parent:, subjects: nil, opts: {})
- @parent = parent
- @subjects = subjects
- @opts = opts
- end
+ def parent_accordion_id
+ return "subjectsAccordion" if search_result["parent_id"].blank?
+
+ ["subjectsAccordion", search_result["parent_id"]].join
+ end
+
+ def children_accordion_id
+ ["subjectsAccordion", search_result["id"]].join
+ end
+
+ def accordion_id
+ ["subjectsAccordion", search_result["id"]].join
+ end
+
+ def accordion_body_id
+ ["subjectsAccordionBody", search_result["id"]].join
+ end
+
+ def custom_url
+ return search_doctrines_path(subject_ids: [search_result["id"]], is_index_table: false) if opts[:accordionFor].present? && opts[:accordionFor].to_s.eql?("subjects")
+ return search_doctrines_path(subject_ids: [search_result["id"]], is_index_table: true) if opts[:accordionFor].present? && opts[:accordionFor].to_s.eql?("doctrines")
+
+ return subject_index_path(search_result["id"]).blank?
end
+end
\ No newline at end of file
diff --git a/app/components/subject_accordion_component/subject_accordion_component.html.erb b/app/components/subject_accordion_component/subject_accordion_component.html.erb
index 6fa8b33..9ab9123 100644
--- a/app/components/subject_accordion_component/subject_accordion_component.html.erb
+++ b/app/components/subject_accordion_component/subject_accordion_component.html.erb
@@ -1,168 +1,21 @@
-<% if opts[:is_offcanvas].present? %>
- <% Cdao::Subject.roots.order(name: :asc).each do |root| %>
-