fileserver: Fix inconsistencies in browse JSON

This commit is contained in:
Matthew Holt 2020-08-31 12:33:43 -06:00
parent 744d04c258
commit 4940325844
No known key found for this signature in database
GPG key ID: 2A349DD577D586A5
2 changed files with 40 additions and 40 deletions

View file

@ -11,15 +11,15 @@ func BenchmarkBrowseWriteJSON(b *testing.B) {
fsrv := new(FileServer) fsrv := new(FileServer)
fsrv.Provision(caddy.Context{}) fsrv.Provision(caddy.Context{})
listing := browseListing{ listing := browseListing{
Name: "test", Name: "test",
Path: "test", Path: "test",
CanGoUp: false, CanGoUp: false,
Items: make([]fileInfo, 100), Items: make([]fileInfo, 100),
NumDirs: 42, NumDirs: 42,
NumFiles: 420, NumFiles: 420,
Sort: "", Sort: "",
Order: "", Order: "",
ItemsLimitedTo: 42, Limit: 42,
} }
b.ResetTimer() b.ResetTimer()
@ -36,15 +36,15 @@ func BenchmarkBrowseWriteHTML(b *testing.B) {
template: template.New("test"), template: template.New("test"),
} }
listing := browseListing{ listing := browseListing{
Name: "test", Name: "test",
Path: "test", Path: "test",
CanGoUp: false, CanGoUp: false,
Items: make([]fileInfo, 100), Items: make([]fileInfo, 100),
NumDirs: 42, NumDirs: 42,
NumFiles: 420, NumFiles: 420,
Sort: "", Sort: "",
Order: "", Order: "",
ItemsLimitedTo: 42, Limit: 42,
} }
b.ResetTimer() b.ResetTimer()

View file

@ -76,34 +76,34 @@ func (fsrv *FileServer) directoryListing(files []os.FileInfo, canGoUp bool, urlP
type browseListing struct { type browseListing struct {
// The name of the directory (the last element of the path). // The name of the directory (the last element of the path).
Name string Name string `json:"name"`
// The full path of the request. // The full path of the request.
Path string Path string `json:"path"`
// Whether the parent directory is browseable. // Whether the parent directory is browseable.
CanGoUp bool CanGoUp bool `json:"can_go_up"`
// The items (files and folders) in the path. // The items (files and folders) in the path.
Items []fileInfo Items []fileInfo `json:"items,omitempty"`
// The number of directories in the listing.
NumDirs int
// The number of files (items that aren't directories) in the listing.
NumFiles int
// Sort column used
Sort string
// Sorting order
Order string
// If ≠0 then Items have been limited to that many elements.
ItemsLimitedTo int
// If ≠0 then Items starting from that many elements. // If ≠0 then Items starting from that many elements.
ItemOffset int Offset int `json:"offset,omitempty"`
// If ≠0 then Items have been limited to that many elements.
Limit int `json:"limit,omitempty"`
// The number of directories in the listing.
NumDirs int `json:"num_dirs"`
// The number of files (items that aren't directories) in the listing.
NumFiles int `json:"num_files"`
// Sort column used
Sort string `json:"sort,omitempty"`
// Sorting order
Order string `json:"order,omitempty"`
} }
// Breadcrumbs returns l.Path where every element maps // Breadcrumbs returns l.Path where every element maps
@ -166,7 +166,7 @@ func (l *browseListing) applySortAndLimit(sortParam, orderParam, limitParam stri
offset, _ := strconv.Atoi(offsetParam) offset, _ := strconv.Atoi(offsetParam)
if offset > 0 && offset <= len(l.Items) { if offset > 0 && offset <= len(l.Items) {
l.Items = l.Items[offset:] l.Items = l.Items[offset:]
l.ItemOffset = offset l.Offset = offset
} }
} }
@ -175,7 +175,7 @@ func (l *browseListing) applySortAndLimit(sortParam, orderParam, limitParam stri
if limit > 0 && limit <= len(l.Items) { if limit > 0 && limit <= len(l.Items) {
l.Items = l.Items[:limit] l.Items = l.Items[:limit]
l.ItemsLimitedTo = limit l.Limit = limit
} }
} }
} }