Fix listing icons and more
Former-commit-id: 9406455a67d31ba221f4d770c27e6b019531317a [formerly 8b09c630bb53a1402aeceb5a6aa925c30935a796] [formerly 12b8050b5f3950fbd08238b431fa2f80c7a7cf6b [formerly 338e73a8b208b8bcb09568e1b309809c4c6f45fe]] Former-commit-id: 5e065778adf3521aea2da98d4dd2054cf29f28bd [formerly c00e9fec37dd8004bb6f5cdbb41adf4f6a460e7a] Former-commit-id: 532f25d150440d2eb1254fc0d77270f8144e0e0c
This commit is contained in:
27
file.go
27
file.go
@@ -64,7 +64,7 @@ type file struct {
|
||||
// A listing is the context used to fill out a template.
|
||||
type listing struct {
|
||||
// The items (files and folders) in the path.
|
||||
Items []file `json:"items"`
|
||||
Items []*file `json:"items"`
|
||||
// The number of directories in the listing.
|
||||
NumDirs int `json:"numDirs"`
|
||||
// The number of files (items that aren't directories) in the listing.
|
||||
@@ -124,7 +124,7 @@ func (i *file) getListing(c *requestContext, r *http.Request) error {
|
||||
}
|
||||
|
||||
var (
|
||||
fileinfos []file
|
||||
fileinfos []*file
|
||||
dirCount, fileCount int
|
||||
)
|
||||
|
||||
@@ -146,16 +146,19 @@ func (i *file) getListing(c *requestContext, r *http.Request) error {
|
||||
// Absolute URL
|
||||
url := url.URL{Path: i.URL + name}
|
||||
|
||||
i := file{
|
||||
Name: f.Name(),
|
||||
Size: f.Size(),
|
||||
ModTime: f.ModTime(),
|
||||
Mode: f.Mode(),
|
||||
IsDir: f.IsDir(),
|
||||
URL: url.String(),
|
||||
i := &file{
|
||||
Name: f.Name(),
|
||||
Size: f.Size(),
|
||||
ModTime: f.ModTime(),
|
||||
Mode: f.Mode(),
|
||||
IsDir: f.IsDir(),
|
||||
URL: url.String(),
|
||||
Extension: filepath.Ext(name),
|
||||
VirtualPath: filepath.Join(i.VirtualPath, name),
|
||||
Path: filepath.Join(i.Path, name),
|
||||
}
|
||||
i.RetrieveFileType()
|
||||
|
||||
i.RetrieveFileType(false)
|
||||
fileinfos = append(fileinfos, i)
|
||||
}
|
||||
|
||||
@@ -198,14 +201,14 @@ func (i *file) getEditor() error {
|
||||
|
||||
// RetrieveFileType obtains the mimetype and converts it to a simple
|
||||
// type nomenclature.
|
||||
func (i *file) RetrieveFileType() error {
|
||||
func (i *file) RetrieveFileType(checkContent bool) error {
|
||||
var content []byte
|
||||
var err error
|
||||
|
||||
// Tries to get the file mimetype using its extension.
|
||||
mimetype := mime.TypeByExtension(i.Extension)
|
||||
|
||||
if mimetype == "" {
|
||||
if mimetype == "" && checkContent {
|
||||
content, err = ioutil.ReadFile(i.Path)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user