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">
|
||||
<b>{{.NumFiles}}</b> file{{if ne 1 .NumFiles}}s{{end}}
|
||||
</span>
|
||||
<span class="meta-item">
|
||||
<b>{{.HumanTotalFileSize}}</b> total
|
||||
</span>
|
||||
{{- if ne 0 .Limit}}
|
||||
<span class="meta-item">
|
||||
(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.
|
||||
}
|
||||
|
||||
if !isDir {
|
||||
tplCtx.TotalFileSize += size
|
||||
}
|
||||
|
||||
u := url.URL{Path: "./" + name} // prepend with "./" to fix paths with ':' in the name
|
||||
|
||||
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.
|
||||
NumFiles int `json:"num_files"`
|
||||
|
||||
// The total size of all files in the listing.
|
||||
TotalFileSize int64 `json:"total_file_size"`
|
||||
|
||||
// Sort column used
|
||||
Sort string `json:"sort,omitempty"`
|
||||
|
||||
|
@ -252,6 +259,13 @@ func (fi fileInfo) HumanSize() string {
|
|||
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
|
||||
// as a human-readable string given by format.
|
||||
func (fi fileInfo) HumanModTime(format string) string {
|
||||
|
|
Loading…
Reference in New Issue