aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/api
diff options
context:
space:
mode:
authorGiulio M <sperectrum@gmail.com>2018-08-08 15:33:06 +0800
committerBalint Gabor <balint.g@gmail.com>2018-08-08 15:33:06 +0800
commita1eb9c7d13240fd250866219a502d0cdc9924e06 (patch)
tree37126b9c5d169bd9eadf0559edbbea7075eecbb0 /swarm/api
parent00e6da9704b2cd7ddcc1cd31ed3f6bbaa8e1e284 (diff)
downloaddexon-a1eb9c7d13240fd250866219a502d0cdc9924e06.tar.gz
dexon-a1eb9c7d13240fd250866219a502d0cdc9924e06.tar.zst
dexon-a1eb9c7d13240fd250866219a502d0cdc9924e06.zip
swarm/api/http: fixed list leaf links (#17342)
Diffstat (limited to 'swarm/api')
-rw-r--r--swarm/api/http/server_test.go6
-rw-r--r--swarm/api/http/templates.go15
2 files changed, 15 insertions, 6 deletions
diff --git a/swarm/api/http/server_test.go b/swarm/api/http/server_test.go
index 3ac60596b..7934e37eb 100644
--- a/swarm/api/http/server_test.go
+++ b/swarm/api/http/server_test.go
@@ -576,7 +576,7 @@ func testBzzGetPath(encrypted bool, t *testing.T) {
pageFragments: []string{
fmt.Sprintf("Swarm index of bzz:/%s/a/", ref),
`<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"}]}`,
pageFragments: []string{
fmt.Sprintf("Swarm index of bzz:/%s/a/b/", ref),
- `<a class="normal-link" href="b">b</a>`,
- `<a class="normal-link" href="c">c</a>`,
+ fmt.Sprintf(`<a class="normal-link" href="/bzz:/%s/a/b/b">b</a>`, ref),
+ fmt.Sprintf(`<a class="normal-link" href="/bzz:/%s/a/b/c">c</a>`, ref),
},
},
{
diff --git a/swarm/api/http/templates.go b/swarm/api/http/templates.go
index 1cd42ca37..986f5f887 100644
--- a/swarm/api/http/templates.go
+++ b/swarm/api/http/templates.go
@@ -18,6 +18,7 @@ package http
import (
"encoding/hex"
+ "fmt"
"html/template"
"path"
@@ -45,7 +46,10 @@ func init() {
{
templateName: "bzz-list",
partial: bzzList,
- funcs: template.FuncMap{"basename": path.Base},
+ funcs: template.FuncMap{
+ "basename": path.Base,
+ "leaflink": leafLink,
+ },
},
{
templateName: "landing-page",
@@ -62,6 +66,10 @@ func init() {
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" }}
<h3 class="top-space">Swarm index of {{ .URI }}</h3>
<hr>
@@ -83,10 +91,11 @@ const bzzList = `{{ define "content" }}
<td>DIR</td>
<td>-</td>
</tr>
- {{ end }} {{ range .List.Entries }}
+ {{ end }}
+ {{ range .List.Entries }}
<tr>
<td>
- <a class="normal-link" href="{{ basename .Path }}">{{ basename .Path }}</a>
+ <a class="normal-link" href="{{ leaflink $.URI . }}">{{ basename .Path }}</a>
</td>
<td>{{ .ContentType }}</td>
<td>{{ .Size }}</td>