File tree Expand file tree Collapse file tree 4 files changed +40
-22
lines changed Expand file tree Collapse file tree 4 files changed +40
-22
lines changed Original file line number Diff line number Diff line change @@ -2,24 +2,42 @@ package serverHandler
2
2
3
3
import (
4
4
tplutil "../tpl/util"
5
+ "html/template"
5
6
"net/http"
6
7
)
7
8
9
+ const TypeDir = template .HTML ("dir" )
10
+ const TypeFile = template .HTML ("file" )
11
+
8
12
func updateSubItemsHtml (data * responseData ) {
9
13
length := len (data .SubItems )
10
14
11
15
data .SubItemsHtml = make ([]* itemHtml , length )
12
16
13
- for i := 0 ; i < length ; i ++ {
14
- info := data .SubItems [i ]
17
+ for i , info := range data .SubItems {
15
18
name := info .Name ()
19
+ displayName := tplutil .FormatFilename (name )
20
+
21
+ var typ template.HTML
22
+ var url string
23
+ var readableSize template.HTML
24
+
25
+ if info .IsDir () {
26
+ typ = TypeDir
27
+ url = data .SubItemPrefix + name + "/"
28
+ displayName += "/"
29
+ } else {
30
+ typ = TypeFile
31
+ url = data .SubItemPrefix + name
32
+ readableSize = tplutil .FormatSize (info .Size ())
33
+ }
16
34
17
35
data .SubItemsHtml [i ] = & itemHtml {
18
- IsDir : info . IsDir () ,
19
- Link : name ,
20
- Name : tplutil . FormatFilename ( name ) ,
21
- Size : tplutil . FormatSize ( info . Size ()) ,
22
- ModTime : tplutil .FormatTime (info .ModTime ()),
36
+ Type : typ ,
37
+ Url : url ,
38
+ DisplayName : displayName ,
39
+ DisplaySize : readableSize ,
40
+ DisplayTime : tplutil .FormatTime (info .ModTime ()),
23
41
}
24
42
}
25
43
}
Original file line number Diff line number Diff line change @@ -17,11 +17,11 @@ type pathEntry struct {
17
17
}
18
18
19
19
type itemHtml struct {
20
- IsDir bool
21
- Link string
22
- Name template.HTML
23
- Size template.HTML
24
- ModTime template.HTML
20
+ Type template. HTML
21
+ Url string
22
+ DisplayName template.HTML
23
+ DisplaySize template.HTML
24
+ DisplayTime template.HTML
25
25
}
26
26
27
27
type responseData struct {
Original file line number Diff line number Diff line change 46
46
</ a >
47
47
</ li >
48
48
{{range .SubItemsHtml}}
49
- < li class ="{{if .IsDir}}dir{{else}}file{{end }} ">
50
- < a href ="{{$subItemPrefix}}{{.Link}}{{if .IsDir}}/{{end }} ">
51
- < span class ="name "> {{.Name}}{{if .IsDir}}/{{end }}</ span >
52
- < span class ="size "> {{if not .IsDir}}{{.Size}}{{end }}</ span >
53
- < span class ="time "> {{.ModTime }}</ span >
49
+ < li class ="{{.Type }} ">
50
+ < a href ="{{.Url }} ">
51
+ < span class ="name "> {{.DisplayName }}</ span >
52
+ < span class ="size "> {{.DisplaySize }}</ span >
53
+ < span class ="time "> {{.DisplayTime }}</ span >
54
54
</ a >
55
55
</ li >
56
56
{{end}}
Original file line number Diff line number Diff line change @@ -51,11 +51,11 @@ const pageTplStr = `
51
51
</a>
52
52
</li>
53
53
{{range .SubItemsHtml}}
54
- <li class="{{if .IsDir}}dir{{else}}file{{end }}">
55
- <a href="{{$subItemPrefix}}{{.Link}}{{if .IsDir}}/{{end }}">
56
- <span class="name">{{.Name}}{{if .IsDir}}/{{end }}</span>
57
- <span class="size">{{if not .IsDir}}{{.Size}}{{end }}</span>
58
- <span class="time">{{.ModTime }}</span>
54
+ <li class="{{.Type }}">
55
+ <a href="{{.Url }}">
56
+ <span class="name">{{.DisplayName }}</span>
57
+ <span class="size">{{.DisplaySize }}</span>
58
+ <span class="time">{{.DisplayTime }}</span>
59
59
</a>
60
60
</li>
61
61
{{end}}
You can’t perform that action at this time.
0 commit comments