From e6ea4d4e6af056177c175b5b920679ff679d310b Mon Sep 17 00:00:00 2001 From: alexdbondoc17 Date: Tue, 1 Mar 2022 05:24:43 +0000 Subject: [PATCH] Enhance UI for `subjects#offcanvas` and `doctrines#offcanvas` --- .../doctrines_offcanvas_component.rb | 11 ++++++ .../doctrines_offcanvas_component.html.erb | 38 +++++++++++++++++++ .../sidenav_component.html.erb | 4 +- .../subjects_offcanvas_component.html.erb | 37 ++++++++++++++---- app/views/layouts/application.html.erb | 10 ++--- 5 files changed, 83 insertions(+), 17 deletions(-) create mode 100644 app/components/doctrines_offcanvas_component.rb create mode 100644 app/components/doctrines_offcanvas_component/doctrines_offcanvas_component.html.erb diff --git a/app/components/doctrines_offcanvas_component.rb b/app/components/doctrines_offcanvas_component.rb new file mode 100644 index 0000000..bc0a32e --- /dev/null +++ b/app/components/doctrines_offcanvas_component.rb @@ -0,0 +1,11 @@ +class DoctrinesOffcanvasComponent < BaseComponent + attr_reader :opts + + def initialize(current_user:, opts: {}) + @opts = opts + end + + def render? + opts[:is_render].present? + end +end diff --git a/app/components/doctrines_offcanvas_component/doctrines_offcanvas_component.html.erb b/app/components/doctrines_offcanvas_component/doctrines_offcanvas_component.html.erb new file mode 100644 index 0000000..c912c49 --- /dev/null +++ b/app/components/doctrines_offcanvas_component/doctrines_offcanvas_component.html.erb @@ -0,0 +1,38 @@ +
+
+
Doctrines
+
+ +
+ +
+
+ <% Cdao::Subject.roots.order(name: :asc).each do |root| %> +
+
+ <% if root.children.present? %> + + <% else %> + <%= link_to root.name, subject_index_path(root.id), class: "accordion-link text-decoration-none text-dark d-block sub1 clickable-link" %> + <% end %> +
+ +
" data-bs-parent="#doctrinesOffCanvasMainAccordion"> +
"> +
+
+ Loading... +
+
+
+
+
+ <% end %> +
+
+
diff --git a/app/components/sidenav_component/sidenav_component.html.erb b/app/components/sidenav_component/sidenav_component.html.erb index 41def0c..03d4585 100644 --- a/app/components/sidenav_component/sidenav_component.html.erb +++ b/app/components/sidenav_component/sidenav_component.html.erb @@ -95,9 +95,7 @@ diff --git a/app/components/subjects_offcanvas_component/subjects_offcanvas_component.html.erb b/app/components/subjects_offcanvas_component/subjects_offcanvas_component.html.erb index 44e1a70..8aa5ae1 100644 --- a/app/components/subjects_offcanvas_component/subjects_offcanvas_component.html.erb +++ b/app/components/subjects_offcanvas_component/subjects_offcanvas_component.html.erb @@ -1,15 +1,38 @@ -
+
-
<%=opts[:header_title]%>
+
Subjects

-
-
-
- Loading... -
+
+
+ <% Cdao::Subject.roots.order(name: :asc).each do |root| %> +
+
+ <% if root.children.present? %> + + <% else %> + <%= link_to root.name, subject_index_path(root.id), class: "accordion-link text-decoration-none text-dark d-block sub1 clickable-link" %> + <% end %> +
+ +
" data-bs-parent="#subjectsOffCanvasMainAccordion"> +
"> +
+
+ Loading... +
+
+
+
+
+ <% end %>
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 1d27471..1b4aa1c 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -41,21 +41,17 @@ <%= render(SidenavComponent.new(current_user: current_user, opts: { is_nav_bar: true }))%>
"> <% if params[:is_index_table] === "true" %> -
+
<% else %> -
+
<% end %>
<%= render(SubjectsOffcanvasComponent.new(current_user: current_user, opts: { is_render: true, header_title: "Subjects", element_id: "subjectsOffCanvas", accordion_body_id: "subjectsOffCanvasAccordionBody" })) %> - <%= render(SubjectsOffcanvasComponent.new(current_user: current_user, opts: { is_render: true, header_title: "Doctrines", element_id: "doctrinesOffCanvas", accordion_body_id: "doctrinesOffCanvasAccordionBody" })) %> + <%= render(DoctrinesOffcanvasComponent.new(current_user: current_user, opts: { is_render: true })) %>