Browse Source

pretty size in status ui

pull/279/head
tnextday 10 years ago
parent
commit
71b6f72f97
  1. 36
      go/weed/weed_server/volume_server_ui/templates.go

36
go/weed/weed_server/volume_server_ui/templates.go

@ -1,11 +1,21 @@
package master_ui
import (
"fmt"
"html/template"
"strconv"
"strings"
)
const (
_ = iota // ignore first value by assigning to blank identifier
KB float64 = 1 << (10 * iota)
MB
GB
TB
PB
)
func join(data []int64) string {
var ret []string
for _, d := range data {
@ -14,8 +24,26 @@ func join(data []int64) string {
return strings.Join(ret, ",")
}
func prettySize(byteSize uint64) string {
sz := float64(byteSize)
switch {
case sz >= PB:
return fmt.Sprintf("%.2f PB", sz/PB)
case sz >= TB:
return fmt.Sprintf("%.2f TB", sz/TB)
case sz >= GB:
return fmt.Sprintf("%.2f GB", sz/GB)
case sz >= MB:
return fmt.Sprintf("%.2f MB", sz/MB)
case sz >= KB:
return fmt.Sprintf("%.2f KB", sz/KB)
}
return fmt.Sprintf("%.0f Bytes", sz)
}
var funcMap = template.FuncMap{
"join": join,
"join": join,
"prettySize": prettySize,
}
var StatusTpl = template.Must(template.New("status").Funcs(funcMap).Parse(`<!DOCTYPE html>
@ -62,7 +90,7 @@ var StatusTpl = template.Must(template.New("status").Funcs(funcMap).Parse(`<!DOC
{{ range .DiskStatuses }}
<tr>
<th>{{ .Dir }}</th>
<td>{{ .Free }} Bytes Free</td>
<td>{{ .Free | prettySize }} Free</td>
</tr>
{{ end }}
</table>
@ -119,9 +147,9 @@ var StatusTpl = template.Must(template.New("status").Funcs(funcMap).Parse(`<!DOC
<tr>
<td><code>{{ .Id }}</code></td>
<td>{{ .Collection }}</td>
<td>{{ .Size }} Bytes</td>
<td>{{ .Size | prettySize }}</td>
<td>{{ .FileCount }}</td>
<td>{{ .DeleteCount }} / {{.DeletedByteCount}} Bytes</td>
<td>{{ .DeleteCount }} / {{.DeletedByteCount | prettySize }}</td>
<td>{{ .Ttl }}</td>
</tr>
{{ end }}

Loading…
Cancel
Save