mirror of https://github.com/caddyserver/caddy.git
fileserver: Add total file size to directory listing (#6003)
* browse: Add total file size to directory listing * Apply suggestion to remove "in " Co-authored-by: Matt Holt <mholt@users.noreply.github.com> --------- Co-authored-by: Matt Holt <mholt@users.noreply.github.com>
This commit is contained in:
parent
f976c84d9e
commit
8f9ffc587e
|
@ -790,6 +790,9 @@ footer {
|
||||||
<span class="meta-item">
|
<span class="meta-item">
|
||||||
<b>{{.NumFiles}}</b> file{{if ne 1 .NumFiles}}s{{end}}
|
<b>{{.NumFiles}}</b> file{{if ne 1 .NumFiles}}s{{end}}
|
||||||
</span>
|
</span>
|
||||||
|
<span class="meta-item">
|
||||||
|
<b>{{.HumanTotalFileSize}}</b> total
|
||||||
|
</span>
|
||||||
{{- if ne 0 .Limit}}
|
{{- if ne 0 .Limit}}
|
||||||
<span class="meta-item">
|
<span class="meta-item">
|
||||||
(of which only <b>{{.Limit}}</b> are displayed)
|
(of which only <b>{{.Limit}}</b> are displayed)
|
||||||
|
|
|
@ -86,6 +86,10 @@ func (fsrv *FileServer) directoryListing(ctx context.Context, entries []fs.DirEn
|
||||||
// was already set above.
|
// was already set above.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !isDir {
|
||||||
|
tplCtx.TotalFileSize += size
|
||||||
|
}
|
||||||
|
|
||||||
u := url.URL{Path: "./" + name} // prepend with "./" to fix paths with ':' in the name
|
u := url.URL{Path: "./" + name} // prepend with "./" to fix paths with ':' in the name
|
||||||
|
|
||||||
tplCtx.Items = append(tplCtx.Items, fileInfo{
|
tplCtx.Items = append(tplCtx.Items, fileInfo{
|
||||||
|
@ -129,6 +133,9 @@ type browseTemplateContext struct {
|
||||||
// The number of files (items that aren't directories) in the listing.
|
// The number of files (items that aren't directories) in the listing.
|
||||||
NumFiles int `json:"num_files"`
|
NumFiles int `json:"num_files"`
|
||||||
|
|
||||||
|
// The total size of all files in the listing.
|
||||||
|
TotalFileSize int64 `json:"total_file_size"`
|
||||||
|
|
||||||
// Sort column used
|
// Sort column used
|
||||||
Sort string `json:"sort,omitempty"`
|
Sort string `json:"sort,omitempty"`
|
||||||
|
|
||||||
|
@ -252,6 +259,13 @@ func (fi fileInfo) HumanSize() string {
|
||||||
return humanize.IBytes(uint64(fi.Size))
|
return humanize.IBytes(uint64(fi.Size))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HumanTotalFileSize returns the total size of all files
|
||||||
|
// in the listing as a human-readable string in IEC format
|
||||||
|
// (i.e. power of 2 or base 1024).
|
||||||
|
func (btc browseTemplateContext) HumanTotalFileSize() string {
|
||||||
|
return humanize.IBytes(uint64(btc.TotalFileSize))
|
||||||
|
}
|
||||||
|
|
||||||
// HumanModTime returns the modified time of the file
|
// HumanModTime returns the modified time of the file
|
||||||
// as a human-readable string given by format.
|
// as a human-readable string given by format.
|
||||||
func (fi fileInfo) HumanModTime(format string) string {
|
func (fi fileInfo) HumanModTime(format string) string {
|
||||||
|
|
Loading…
Reference in New Issue