Files
personotes/templates/file-tree.html

57 lines
2.4 KiB
HTML

<!-- Indicateur de racine (maintenant cliquable et rétractable) -->
<div class="sidebar-section-header" data-section="notes" data-path="" data-is-dir="true" onclick="toggleSidebarSection('notes', event)" style="cursor: pointer;">
<span class="section-toggle expanded"></span>
<span class="folder-icon">🏠</span>
<span class="folder-name">Racine</span>
<span class="root-hint">(notes/)</span>
</div>
<!-- Contenu rétractable du file-tree -->
<div class="sidebar-section-content" id="notes-content" style="display: block;">
<hr style="border: none; border-top: 1px solid var(--border-primary); margin: 0.75rem 0;">
{{if .Tree}}
{{if .Tree.Children}}
{{template "tree-node" .Tree}}
{{else}}
<p style="color: var(--text-muted); font-size: 0.85rem;">Aucune note trouvée.</p>
{{end}}
{{else}}
<p style="color: var(--text-muted); font-size: 0.85rem;">Aucune note trouvée.</p>
{{end}}
</div>
{{define "tree-node"}}
{{range .Children}}
{{if .IsDir}}
<div class="folder-item" data-path="{{.Path}}" data-is-dir="true">
<div class="folder-header">
<input type="checkbox" class="selection-checkbox folder-checkbox" data-path="{{.Path}}" data-is-dir="true" style="display: none;">
<span class="folder-toggle"></span>
<span class="folder-icon">📁</span>
<span class="folder-name">{{.Name}}</span>
</div>
<div class="folder-children" style="display: none;">
{{if .Children}}
{{template "tree-node" .}}
{{end}}
</div>
</div>
{{else}}
<div class="file-item-wrapper">
<input type="checkbox" class="selection-checkbox file-checkbox" data-path="{{.Path}}" data-is-dir="false" style="display: none;">
<a href="#"
class="file-item"
data-path="{{.Path}}"
data-is-dir="false"
hx-get="/api/notes/{{.Path}}"
hx-target="#editor-container"
hx-swap="innerHTML"
hx-push-url="true"
draggable="true">
📄 {{.Name}}
</a>
</div>
{{end}}
{{end}}
{{end}}