diff options
Diffstat (limited to 'weed/admin/view/app/template_helpers.go')
| -rw-r--r-- | weed/admin/view/app/template_helpers.go | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/weed/admin/view/app/template_helpers.go b/weed/admin/view/app/template_helpers.go new file mode 100644 index 000000000..04eebb272 --- /dev/null +++ b/weed/admin/view/app/template_helpers.go @@ -0,0 +1,84 @@ +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 +} |
