5 changed files with 83 additions and 17 deletions
@ -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 |
||||
@ -0,0 +1,38 @@
|
||||
<div class="offcanvas offcanvas-start offcanvas-contents" data-bs-scroll="true" tabindex="-1" data-bs-backdrop="false" id="doctrinesOffCanvas" data-controller="subjects"> |
||||
<div class="offcanvas-header"> |
||||
<h5 class="offcanvas-title"> Doctrines </h5> |
||||
<hr class="m-0"> |
||||
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> |
||||
</div> |
||||
|
||||
<div class="offcanvas-body"> |
||||
<div class="accordion accordion-flush subject-index-body" id="doctrinesOffCanvasMainAccordion" > |
||||
<% Cdao::Subject.roots.order(name: :asc).each do |root| %> |
||||
<div class="accordion-item"> |
||||
<div class="accordion-header d-flex justify-content-between"> |
||||
<% if root.children.present? %> |
||||
<div class="accordion-button collapsed m-0 p-0" data-bs-toggle="collapse" data-bs-target="#<%= ["doctrinesOffCanvasAccordion", root.id].join %>" |
||||
data-controller="subjects" data-subject-parent-id="<%= root.id %>" |
||||
data-accordion-target="#<%= ['doctrinesOffCanvasAccordionBody', root.id].join %>" |
||||
data-action="click->subjects#loadDoctrinesOffcanvasAccordion"> |
||||
<%= link_to root.name, subject_index_path(root.id), class: "accordion-link text-decoration-none text-dark d-block sub1 clickable-link" %> |
||||
</div> |
||||
<% else %> |
||||
<%= link_to root.name, subject_index_path(root.id), class: "accordion-link text-decoration-none text-dark d-block sub1 clickable-link" %> |
||||
<% end %> |
||||
</div> |
||||
|
||||
<div class="accordion-collapse collapse" id="<%= ["doctrinesOffCanvasAccordion", root.id].join %>" data-bs-parent="#doctrinesOffCanvasMainAccordion"> |
||||
<div class="accordion-body pt-1 pb-1 sub-body1" id="<%= ["doctrinesOffCanvasAccordionBody", root.id].join %>"> |
||||
<div class="text-center"> |
||||
<div class="spinner-border text-danger" role="status"> |
||||
<span class="visually-hidden">Loading...</span> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<% end %> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
@ -1,15 +1,38 @@
|
||||
<div class="offcanvas offcanvas-start offcanvas-contents" data-bs-scroll="true" tabindex="-1" data-bs-backdrop="false" id="<%= opts[:element_id] %>" data-controller="subjects"> |
||||
<div class="offcanvas offcanvas-start offcanvas-contents" data-bs-scroll="true" tabindex="-1" data-bs-backdrop="false" id="subjectsOffCanvas" data-controller="subjects"> |
||||
<div class="offcanvas-header"> |
||||
<h5 class="offcanvas-title"> <%=opts[:header_title]%> </h5> |
||||
<h5 class="offcanvas-title"> Subjects </h5> |
||||
<hr class="m-0"> |
||||
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> |
||||
</div> |
||||
|
||||
<div class="offcanvas-body" id="<%= opts[:accordion_body_id] %>"> |
||||
<div class="text-center"> |
||||
<div class="spinner-border text-danger" role="status"> |
||||
<span class="visually-hidden">Loading...</span> |
||||
</div> |
||||
<div class="offcanvas-body"> |
||||
<div class="accordion accordion-flush subject-index-body" id="subjectsOffCanvasMainAccordion" > |
||||
<% Cdao::Subject.roots.order(name: :asc).each do |root| %> |
||||
<div class="accordion-item"> |
||||
<div class="accordion-header d-flex justify-content-between"> |
||||
<% if root.children.present? %> |
||||
<div class="accordion-button collapsed m-0 p-0" data-bs-toggle="collapse" data-bs-target="#<%= ["subjectsOffCanvasAccordion", root.id].join %>" |
||||
data-controller="subjects" data-subject-parent-id="<%= root.id %>" |
||||
data-accordion-target="#<%= ['subjectsOffCanvasAccordionBody', root.id].join %>" |
||||
data-action="click->subjects#loadSubjectsOffcanvasAccordion"> |
||||
<%= link_to root.name, subject_index_path(root.id), class: "accordion-link text-decoration-none text-dark d-block sub1 clickable-link" %> |
||||
</div> |
||||
<% else %> |
||||
<%= link_to root.name, subject_index_path(root.id), class: "accordion-link text-decoration-none text-dark d-block sub1 clickable-link" %> |
||||
<% end %> |
||||
</div> |
||||
|
||||
<div class="accordion-collapse collapse" id="<%= ["subjectsOffCanvasAccordion", root.id].join %>" data-bs-parent="#subjectsOffCanvasMainAccordion"> |
||||
<div class="accordion-body pt-1 pb-1 sub-body1" id="<%= ["subjectsOffCanvasAccordionBody", root.id].join %>"> |
||||
<div class="text-center"> |
||||
<div class="spinner-border text-danger" role="status"> |
||||
<span class="visually-hidden">Loading...</span> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<% end %> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
Loading…
Reference in new issue