mirror of
https://github.com/chrislusf/seaweedfs
synced 2025-07-26 05:22:46 +02:00
* init version * relocate * add s3 bucket link * refactor handlers into weed/admin folder * fix login logout * adding favicon * remove fall back to http get topology * grpc dial option, disk total capacity * show filer count * fix each volume disk usage * add filers to dashboard * adding hosts, volumes, collections * refactor code and menu * remove "refresh" button * fix data for collections * rename cluster hosts into volume servers * add masters, filers * reorder * adding file browser * create folder and upload files * add filer version, created at time * remove mock data * remove fields * fix submenu item highlighting * fix bucket creation * purge files * delete multiple * fix bucket creation * remove region from buckets * add object store with buckets and users * rendering permission * refactor * get bucket objects and size * link to file browser * add file size and count for collections page * paginate the volumes * fix possible SSRF https://github.com/seaweedfs/seaweedfs/pull/6928/checks?check_run_id=45108469801 * Update weed/command/admin.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update weed/command/admin.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix build * import * remove filer CLI option * remove filer option * remove CLI options --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
84 lines
1.5 KiB
Go
84 lines
1.5 KiB
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
)
|
|
|
|
// getStatusColor returns Bootstrap color class for status
|
|
func getStatusColor(status string) string {
|
|
switch status {
|
|
case "active", "healthy":
|
|
return "success"
|
|
case "warning":
|
|
return "warning"
|
|
case "critical", "unreachable":
|
|
return "danger"
|
|
default:
|
|
return "secondary"
|
|
}
|
|
}
|
|
|
|
// getHealthColor returns Bootstrap color class for health status
|
|
func getHealthColor(health string) string {
|
|
switch health {
|
|
case "excellent":
|
|
return "success"
|
|
case "good":
|
|
return "primary"
|
|
case "fair":
|
|
return "warning"
|
|
case "poor":
|
|
return "danger"
|
|
default:
|
|
return "secondary"
|
|
}
|
|
}
|
|
|
|
// formatBytes converts bytes to human readable format
|
|
func formatBytes(bytes int64) string {
|
|
if bytes == 0 {
|
|
return "0 B"
|
|
}
|
|
|
|
units := []string{"B", "KB", "MB", "GB", "TB", "PB"}
|
|
var i int
|
|
value := float64(bytes)
|
|
|
|
for value >= 1024 && i < len(units)-1 {
|
|
value /= 1024
|
|
i++
|
|
}
|
|
|
|
if i == 0 {
|
|
return fmt.Sprintf("%.0f %s", value, units[i])
|
|
}
|
|
return fmt.Sprintf("%.1f %s", value, units[i])
|
|
}
|
|
|
|
// formatNumber formats large numbers with commas
|
|
func formatNumber(num int64) string {
|
|
if num == 0 {
|
|
return "0"
|
|
}
|
|
|
|
str := strconv.FormatInt(num, 10)
|
|
result := ""
|
|
|
|
for i, char := range str {
|
|
if i > 0 && (len(str)-i)%3 == 0 {
|
|
result += ","
|
|
}
|
|
result += string(char)
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
// calculatePercent calculates percentage for progress bars
|
|
func calculatePercent(current, max int) int {
|
|
if max == 0 {
|
|
return 0
|
|
}
|
|
return (current * 100) / max
|
|
}
|