104 lines
3.5 KiB
Cheetah
104 lines
3.5 KiB
Cheetah
{{ define "content" }}
|
|
<div class="container {{ .Display }}" id="listing">
|
|
{{- with .Data -}}
|
|
<div>
|
|
<div class="item header">
|
|
<div></div>
|
|
<div>
|
|
<p class="name{{ if eq .Sort "name" }} active{{ end }}"><span>Name</span>
|
|
{{- if eq .Sort "name" -}}
|
|
{{- if eq .Order "asc" -}}
|
|
<a href="?sort=name&order=desc"><i class="material-icons">arrow_downward</i></a>
|
|
{{- else -}}
|
|
<a href="?sort=name&order=asc"><i class="material-icons">arrow_upward</i></a>
|
|
{{- end -}}
|
|
{{- else -}}
|
|
<a href="?sort=name&order=desc"><i class="material-icons">arrow_downward</i></a>
|
|
{{- end -}}
|
|
</p>
|
|
<p class="size{{ if eq .Sort "size" }} active{{ end }}"><span>File Size</span>
|
|
{{- if eq .Sort "size" -}}
|
|
{{- if eq .Order "asc" -}}
|
|
<a href="?sort=size&order=desc"><i class="material-icons">arrow_downward</i></a>
|
|
{{- else -}}
|
|
<a href="?sort=size&order=asc"><i class="material-icons">arrow_upward</i></a>
|
|
{{- end -}}
|
|
{{- else -}}
|
|
<a href="?sort=size&order=desc"><i class="material-icons">arrow_downward</i></a>
|
|
{{- end -}}
|
|
</p>
|
|
<p class="modified">Last modified</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{{ if and (eq .NumDirs 0) (eq .NumFiles 0) }}
|
|
<h2 class="message">It feels lonely here :'(</h2>
|
|
{{ end }}
|
|
|
|
{{- if not (eq .NumDirs 0)}}
|
|
<h2>Folders</h2>
|
|
<div>
|
|
{{- range .Items }}
|
|
{{- if (.IsDir) }}
|
|
{{ template "item" .}}
|
|
{{- end }}
|
|
{{- end }}
|
|
</div>
|
|
{{- end }}
|
|
|
|
{{- if not (eq .NumFiles 0)}}
|
|
<h2>Files</h2>
|
|
<div>
|
|
{{- range .Items }}
|
|
{{- if (not .IsDir) }}
|
|
{{ template "item" .}}
|
|
{{- end }}
|
|
{{- end }}
|
|
</div>
|
|
{{- end }}
|
|
</div>
|
|
|
|
<input style="display:none" type="file" id="upload-input" onchange="listing.handleFiles(this.files, '')" value="Upload" multiple>
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{ define "item" }}
|
|
<div ondragstart="listing.itemDragStart(event)"
|
|
{{ if .IsDir}}ondragover="listing.itemDragOver(event)" ondrop="listing.itemDrop(event)"{{ end }}
|
|
draggable="true"
|
|
class="item"
|
|
onclick="listing.selectItem(event)"
|
|
ondblclick="listing.openItem(event)"
|
|
data-dir="{{ .IsDir }}"
|
|
data-url="{{ .URL }}"
|
|
id="{{ EncodeBase64 .Name }}">
|
|
<div>
|
|
{{- if .IsDir}}
|
|
<i class="material-icons">folder</i>
|
|
{{- else}}
|
|
{{ if eq .Type "image" }}
|
|
<i class="material-icons">insert_photo</i>
|
|
{{ else if eq .Type "audio" }}
|
|
<i class="material-icons">volume_up</i>
|
|
{{ else if eq .Type "video" }}
|
|
<i class="material-icons">movie</i>
|
|
{{ else }}
|
|
<i class="material-icons">insert_drive_file</i>
|
|
{{ end }}
|
|
{{- end}}
|
|
</div>
|
|
<div>
|
|
<p class="name">{{.Name}}</p>
|
|
{{- if .IsDir}}
|
|
<p class="size" data-order="-1">—</p>
|
|
{{- else}}
|
|
<p class="size" data-order="{{.Size}}">{{.HumanSize}}</p>
|
|
{{- end}}
|
|
<p class="modified">
|
|
<time datetime="{{.HumanModTime "2006-01-02T15:04:05Z"}}">{{.HumanModTime "2 Jan 2006 03:04 PM"}}</time>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{{ end }}
|