phonograph/interim-server/templates/navbar.html
Brent Schroeter f6118e4d5b misc cleanup
2025-09-14 16:22:42 -04:00

87 lines
3.5 KiB
HTML

<link rel="stylesheet" href="{{ root_path }}/css_dist/navbar.css">
<nav class="navbar">
<button type="button" class="base-switcher">
<div>{{ base.name }}</div>
{#- TODO: icon #}
</button>
<section>
<h2 class="navbar__heading">Tables</h2>
<menu class="navbar__menu">
{%- for schema in namespaces %}
<li class="navbar__menu-item">
<collapsible-menu class="navbar__collapsible-menu" root-path="{{ root_path }}">
<h3 slot="summary" class="navbar__heading navbar__heading--entity">
{{ schema.name }}
</h3>
<menu slot="content" class="navbar__menu">
{%- for rel in schema.rels %}
<li class="navbar__menu-item
{%- if current == Some(NavLocation::Rel(rel.class_oid.to_owned(), None)) -%}
{# preserve space #} navbar__menu-item--active
{%- endif -%}
">
<collapsible-menu
class="navbar__collapsible-menu"
root-path="{{ root_path }}"
expanded="
{%- if let Some(NavLocation::Rel(rel_oid, _)) = current -%}
{%- if rel_oid.to_owned() == rel.class_oid -%}
true
{%- endif -%}
{%- endif -%}
"
>
<h4 slot="summary" class="navbar__heading navbar__heading--entity">
{{ rel.name }}
</h4>
<menu slot="content" class="navbar__menu">
<li class="navbar__menu-item">
<a
href="{{ root_path }}/d/{{ base.id.simple() }}/r/{{ rel.class_oid.0 }}/rbac"
class="navbar__menu-link"
>
Sharing
</a>
</li>
<li class="navbar__menu-item">
<collapsible-menu class="navbar__collapsible-menu" root-path="{{ root_path }}">
<h5 slot="summary" class="navbar__heading">Tabs</h5>
<menu slot="content" class="navbar__menu">
{% for lens in rel.lenses %}
<li class="navbar__menu-item
">
<a
href="
{{- root_path -}}
/d/
{{- base.id.simple() -}}
/r/
{{- rel.class_oid.0 -}}
/l/
{{- lens.id.simple() -}}
"
class="navbar__menu-link navbar__menu-link--entity
{%- if current == Some(NavLocation::Rel(rel.class_oid.to_owned(), Some(RelLocation::Lens(lens.id.to_owned())))) -%}
{# preserve space #} navbar__menu-link--current
{%- endif -%}
"
>
{{ lens.name }}
</a>
</li>
{% endfor %}
</menu>
</collapsible-menu>
</li>
</menu>
</collapsible-menu>
</li>
{% endfor -%}
</menu>
</collapsible-menu>
</li>
{% endfor -%}
</menu>
</section>
<script type="module" src="{{ root_path }}/js_dist/collapsible-menu.webc.mjs"></script>
</nav>