You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.3 KiB
63 lines
1.3 KiB
package volume_server_ui
|
|
|
|
import (
|
|
_ "embed"
|
|
"fmt"
|
|
"html/template"
|
|
"strconv"
|
|
"strings"
|
|
|
|
"github.com/seaweedfs/seaweedfs/weed/util"
|
|
)
|
|
|
|
func percentFrom(total uint64, part_of uint64) string {
|
|
return fmt.Sprintf("%.2f", (float64(part_of)/float64(total))*100)
|
|
}
|
|
|
|
func bytesToHumanReadable(b interface{}) string {
|
|
switch v := b.(type) {
|
|
case uint64:
|
|
return util.BytesToHumanReadable(v)
|
|
case int64:
|
|
if v < 0 {
|
|
return fmt.Sprintf("%d B", v)
|
|
}
|
|
return util.BytesToHumanReadable(uint64(v))
|
|
case int:
|
|
if v < 0 {
|
|
return fmt.Sprintf("%d B", v)
|
|
}
|
|
return util.BytesToHumanReadable(uint64(v))
|
|
case uint32:
|
|
return util.BytesToHumanReadable(uint64(v))
|
|
case int32:
|
|
if v < 0 {
|
|
return fmt.Sprintf("%d B", v)
|
|
}
|
|
return util.BytesToHumanReadable(uint64(v))
|
|
case uint:
|
|
return util.BytesToHumanReadable(uint64(v))
|
|
default:
|
|
return fmt.Sprintf("%v", b)
|
|
}
|
|
}
|
|
|
|
func join(data []int64) string {
|
|
var ret []string
|
|
for _, d := range data {
|
|
ret = append(ret, strconv.Itoa(int(d)))
|
|
}
|
|
return strings.Join(ret, ",")
|
|
}
|
|
|
|
var funcMap = template.FuncMap{
|
|
"join": join,
|
|
"bytesToHumanReadable": bytesToHumanReadable,
|
|
"percentFrom": percentFrom,
|
|
"isNotEmpty": util.IsNotEmpty,
|
|
}
|
|
|
|
//go:embed volume.html
|
|
var volumeHtml string
|
|
|
|
var StatusTpl = template.Must(template.New("status").Funcs(funcMap).Parse(volumeHtml))
|