swarm/api/http: fixed list leaf links (#17342)

This commit is contained in:
Giulio M 2018-08-08 09:33:06 +02:00 committed by Balint Gabor
parent 00e6da9704
commit a1eb9c7d13
2 changed files with 15 additions and 6 deletions

View File

@ -576,7 +576,7 @@ func testBzzGetPath(encrypted bool, t *testing.T) {
pageFragments: []string{ pageFragments: []string{
fmt.Sprintf("Swarm index of bzz:/%s/a/", ref), fmt.Sprintf("Swarm index of bzz:/%s/a/", ref),
`<a class="normal-link" href="b/">b/</a>`, `<a class="normal-link" href="b/">b/</a>`,
`<a class="normal-link" href="a">a</a>`, fmt.Sprintf(`<a class="normal-link" href="/bzz:/%s/a/a">a</a>`, ref),
}, },
}, },
{ {
@ -584,8 +584,8 @@ func testBzzGetPath(encrypted bool, t *testing.T) {
json: `{"entries":[{"hash":"011b4d03dd8c01f1049143cf9c4c817e4b167f1d1b83e5c6f0f10d89ba1e7bce","path":"a/b/b","mod_time":"0001-01-01T00:00:00Z"},{"hash":"011b4d03dd8c01f1049143cf9c4c817e4b167f1d1b83e5c6f0f10d89ba1e7bce","path":"a/b/c","mod_time":"0001-01-01T00:00:00Z"}]}`, json: `{"entries":[{"hash":"011b4d03dd8c01f1049143cf9c4c817e4b167f1d1b83e5c6f0f10d89ba1e7bce","path":"a/b/b","mod_time":"0001-01-01T00:00:00Z"},{"hash":"011b4d03dd8c01f1049143cf9c4c817e4b167f1d1b83e5c6f0f10d89ba1e7bce","path":"a/b/c","mod_time":"0001-01-01T00:00:00Z"}]}`,
pageFragments: []string{ pageFragments: []string{
fmt.Sprintf("Swarm index of bzz:/%s/a/b/", ref), fmt.Sprintf("Swarm index of bzz:/%s/a/b/", ref),
`<a class="normal-link" href="b">b</a>`, fmt.Sprintf(`<a class="normal-link" href="/bzz:/%s/a/b/b">b</a>`, ref),
`<a class="normal-link" href="c">c</a>`, fmt.Sprintf(`<a class="normal-link" href="/bzz:/%s/a/b/c">c</a>`, ref),
}, },
}, },
{ {

View File

@ -18,6 +18,7 @@ package http
import ( import (
"encoding/hex" "encoding/hex"
"fmt"
"html/template" "html/template"
"path" "path"
@ -45,7 +46,10 @@ func init() {
{ {
templateName: "bzz-list", templateName: "bzz-list",
partial: bzzList, partial: bzzList,
funcs: template.FuncMap{"basename": path.Base}, funcs: template.FuncMap{
"basename": path.Base,
"leaflink": leafLink,
},
}, },
{ {
templateName: "landing-page", templateName: "landing-page",
@ -62,6 +66,10 @@ func init() {
faviconBytes = bytes faviconBytes = bytes
} }
func leafLink(URI api.URI, manifestEntry api.ManifestEntry) string {
return fmt.Sprintf("/bzz:/%s/%s", URI.Addr, manifestEntry.Path)
}
const bzzList = `{{ define "content" }} const bzzList = `{{ define "content" }}
<h3 class="top-space">Swarm index of {{ .URI }}</h3> <h3 class="top-space">Swarm index of {{ .URI }}</h3>
<hr> <hr>
@ -83,10 +91,11 @@ const bzzList = `{{ define "content" }}
<td>DIR</td> <td>DIR</td>
<td>-</td> <td>-</td>
</tr> </tr>
{{ end }} {{ range .List.Entries }} {{ end }}
{{ range .List.Entries }}
<tr> <tr>
<td> <td>
<a class="normal-link" href="{{ basename .Path }}">{{ basename .Path }}</a> <a class="normal-link" href="{{ leaflink $.URI . }}">{{ basename .Path }}</a>
</td> </td>
<td>{{ .ContentType }}</td> <td>{{ .ContentType }}</td>
<td>{{ .Size }}</td> <td>{{ .Size }}</td>