aboutsummaryrefslogtreecommitdiff
path: root/weed/server/filer_ui/breadcrumb.go
blob: 638638196e7492c309b568aea6bf86c6780cd1cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package filer_ui

import (
	"strings"

	"github.com/seaweedfs/seaweedfs/weed/util"
)

type Breadcrumb struct {
	Name string
	Link string
}

func ToBreadcrumb(fullpath string) (crumbs []Breadcrumb) {
	parts := strings.Split(fullpath, "/")
	if fullpath == "/" {
		parts = []string{""}
	}

	for i := 0; i < len(parts); i++ {
		name := parts[i]
		if name == "" {
			name = "/"
		}
		crumb := Breadcrumb{
			Name: name,
			Link: "/" + util.Join(parts[0:i+1]...),
		}
		if !strings.HasSuffix(crumb.Link, "/") {
			crumb.Link += "/"
		}
		crumbs = append(crumbs, crumb)
	}

	return
}