This commit is contained in:
julien 2025-06-20 16:52:20 +02:00
parent 4072e9888c
commit 86c3b88f97
4 changed files with 84 additions and 104 deletions

View File

@ -1,14 +1,13 @@
{{ define "_file_detail" }}
<div class="box"> <div class="box">
{{ with .Entry }} <h4 class="title is-5">{{ .Entry.Name }}</h4>
<h4 class="title is-5">{{ .Name }}</h4> <p><strong>Type :</strong> {{ ext .Entry.Name }}</p>
<p><strong>Type :</strong> {{ ext .Name }}</p> <p><strong>Taille :</strong> {{ printf "%.1f KB" (toKB .Entry.Size) }}</p>
<p><strong>Taille :</strong> {{ printf "%.1f KB" (toKB .Size) }}</p> <p><strong>Modifié :</strong> {{ .Entry.ModTime.Format "02 Jan 2006 15:04" }}</p>
<p><strong>Modifié le :</strong> {{ .ModTime.Format "02 Jan 2006 15:04" }}</p> {{ if and (not .Entry.IsDir) (or (hasSuffix .Entry.Name ".jpg") (hasSuffix .Entry.Name ".png")) }}
{{ if and (not .IsDir) (or (hasSuffix .Name ".jpg") (hasSuffix .Name ".png")) }} <figure class="image">
<figure class="image"> <img src="/static/uploads/{{ .Entry.Path }}">
<img src="/app/upload/{{ .Path }}"> </figure>
</figure>
{{ end }}
{{ end }} {{ end }}
</div> </div>
{{ end }}

View File

@ -1,30 +1,16 @@
{{ define "_file_list" }}
<div class="columns is-multiline"> <div class="columns is-multiline">
{{- range .Entries }} {{- range .Entries }}
<div class="column is-4-mobile is-3-tablet"> <div class="column is-4-mobile is-3-tablet">
<div class="card" <div class="card"
hx-get="{{ if .IsDir }} hx-get="{{ if .IsDir }}/folders?path={{ urlquery .Path }}{{ else }}/folders/detail?path={{ urlquery .Path }}{{ end }}"
/folders?path={{ urlquery .Path }}
{{ else }}
/folders/detail?path={{ urlquery .Path }}
{{ end }}"
hx-target="{{ if .IsDir }}#file-list{{ else }}#detail-panel{{ end }}" hx-target="{{ if .IsDir }}#file-list{{ else }}#detail-panel{{ end }}"
hx-swap="innerHTML"
hx-push-url="true" hx-push-url="true"
style="cursor:pointer"> style="cursor:pointer">
<div class="card-image"> <!-- … contenu de la carte … -->
<figure class="image is-4by3">
{{ if .IsDir }}
<i class="fas fa-folder fa-3x has-text-warning" style="margin:1rem"></i>
{{ else if or (hasSuffix .Name ".jpg") (hasSuffix .Name ".png") }}
<img src="/app/upload/{{ .Path }}" alt="{{ .Name }}">
{{ else }}
<i class="fas fa-file fa-3x"></i>
{{ end }}
</figure>
</div>
<div class="card-content">
<p class="title is-6">{{ .Name }}</p>
</div>
</div> </div>
</div> </div>
{{- end }} {{- end }}
</div> </div>
{{ end }}

View File

@ -43,7 +43,11 @@
</li> </li>
</ul> </ul>
</li> </li>
<li><a hx-get="/folders" class="nav-link" hx-target="#content" hx-swap-oob="beforeend">Folders</a></li> <li> <a hx-get="/folders"
hx-target="#content"
hx-swap="innerHTML">
Folders
</li>
<li><a hx-get="/settings" class="nav-link" hx-target="#content" hx-swap-oob="beforeend">Settings</a></li> <li><a hx-get="/settings" class="nav-link" hx-target="#content" hx-swap-oob="beforeend">Settings</a></li>
</li> </li>
</ul> </ul>

View File

@ -1,80 +1,71 @@
{{ define "folders" }}
<section class="section">
<div class="container is-fluid">
<div class="columns">
<!-- Sidebar interne si besoin -->
<div class="column is-2">
<aside class="menu">
<p class="menu-label">Dossiers</p>
<ul class="menu-list">
{{- range .Dirs }}
<li>
<a
hx-get="/folders?path={{ urlquery .Path }}"
hx-target="#file-list"
hx-swap="innerHTML"
hx-push-url="true"
class="{{ if eq $.CurrentPath .Path }}is-active{{ end }}"
>
{{ .Name }}
</a>
</li>
{{- end }}
</ul>
</aside>
</div>
<!-- Grille principale -->
<section class="section"> <div class="column is-7">
<div class="container is-fluid"> <nav class="breadcrumb" aria-label="breadcrumbs">
<div class="columns"> <ul>
<li>
<!-- Sidebar --> <a hx-get="/folders"
<div class="column is-2"> hx-target="#file-list"
<aside class="menu"> hx-swap="innerHTML"
<p class="menu-label">Dossiers</p> hx-push-url="true">
<ul class="menu-list"> Home
{{- range .Dirs }} </a>
<li> </li>
<a {{- $parts := split .CurrentPath "/" }}
hx-get="/folders?path={{ urlquery .Name }}" {{- $acc := "" }}
hx-target="#file-list" {{- range $i, $p := $parts }}
hx-push-url="true" {{- if ne $p "" }}
class="{{ if eq $.CurrentPath .Name }}is-active{{ end }}" {{- $acc = printf "%s/%s" $acc $p }}
> <li class="is-active">
{{ .Name }} <a hx-get="/folders?path={{ urlquery (trimPrefix "/" $acc) }}"
</a> hx-target="#file-list"
</li> hx-swap="innerHTML"
hx-push-url="true">
{{ $p }}
</a>
</li>
{{- end }} {{- end }}
</ul> {{- end }}
</aside> </ul>
</nav>
<div id="file-list">
{{ template "_file_list" . }}
</div> </div>
</div>
<!-- Grille --> <!-- Détails -->
<div class="column is-7"> <div class="column is-3">
<nav class="breadcrumb" aria-label="breadcrumbs"> <div id="detail-panel">
<ul> <em>Sélectionnez un fichier ou un dossier…</em>
<li>
<a
hx-get="/folders"
hx-target="#file-list"
hx-push-url="true"
>
Home
</a>
</li>
{{- $parts := split .CurrentPath "/" }}
{{- $acc := "" }}
{{- range $i, $p := $parts }}
{{- if ne $p "" }}
{{- $acc = printf "%s/%s" $acc $p }}
<li class="is-active">
<a
hx-get="/folders?path={{ urlquery (trimPrefix "/" $acc) }}"
hx-target="#file-list"
hx-push-url="true"
>
{{ $p }}
</a>
</li>
{{- end }}
{{- end }}
</ul>
</nav>
<div
id="file-list"
hx-trigger="load"
hx-get="/folders?path={{ urlquery .CurrentPath }}"
hx-target="#file-list"
>
{{ template "_file_list.pages.tmpl" . }}
</div>
</div> </div>
<!-- Détails -->
<div class="column is-3">
<div id="detail-panel">
<em>Sélectionnez un fichier ou dossier…</em>
</div>
</div>
</div> </div>
</div> </div>
</section> </div>
</section>
{{ end }}