frostfs-http-gw/internal/templates/index.gotmpl
Nikita Zinkevich 3f421c6d12
All checks were successful
/ DCO (pull_request) Successful in 1m2s
/ Vulncheck (pull_request) Successful in 1m32s
/ Builds (pull_request) Successful in 1m8s
/ Lint (pull_request) Successful in 2m33s
/ Tests (pull_request) Successful in 1m6s
[#151] index page: Add browse via native protocol
Signed-off-by: Nikita Zinkevich <n.zinkevich@yadro.com>
2024-10-23 11:41:01 +03:00

108 lines
2.7 KiB
Go Template

{{$container := .Container}}
{{ $prefix := trimPrefix .Prefix }}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Index of {{.Protocol}}://{{$container}}
/{{if $prefix}}/{{$prefix}}/{{end}}</title>
<style>
table {
width: 80%;
border-collapse: collapse;
}
body {
background: #f2f2f2;
}
table, th, td {
border: 0 solid transparent;
}
th, td {
padding: 10px;
text-align: left;
}
th {
background-color: #c3bcbc;
}
h1 {
font-size: 1.5em;
}
tr:nth-child(even) {background-color: #ebe7e7;}
</style>
</head>
<body>
<h1>Index of {{.Protocol}}://{{$container}}/{{if $prefix}}{{$prefix}}/{{end}}</h1>
<table>
<thead>
<tr>
<th>Filename</th>
<th>OID</th>
<th>Size</th>
<th>Created</th>
<th>Download</th>
</tr>
</thead>
<tbody>
{{ $trimmedPrefix := trimPrefix $prefix }}
{{if $trimmedPrefix }}
<tr>
<td>
⮐<a href="/get/{{$container}}{{ urlencode $trimmedPrefix }}/">..</a>
</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{{else}}
<tr>
<td>
⮐<a href="/get/{{$container}}/">..</a>
</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{{end}}
{{range .Objects}}
<tr>
<td>
{{if .IsDir}}
🗀
<a href="/get/{{$container}}{{ urlencode .FilePath }}/">
{{.FileName}}/
</a>
{{else if .OID}}
🗎
<a href="/get/{{$container}}/{{ .OID }}">
{{.FileName}}
</a>
{{else}}
🗎
<a href="/get/{{$container}}{{ urlencode .FilePath }}">
{{.FileName}}
</a>
{{end}}
</td>
<td>{{.OID}}</td>
<td>{{if .Size}}{{ formatSize .Size }}{{end}}</td>
<td>{{ .Created }}</td>
<td>
{{if .OID}}
<a href="/get/{{$container}}/{{ .OID }}?download=true">
Link
</a>
{{else}}
<a href="/get/{{$container}}{{ urlencode .FilePath }}?download=true">
Link
</a>
{{ end }}
</td>
</tr>
{{end}}
</tbody>
</table>
</body>
</html>