aboutsummaryrefslogtreecommitdiff
path: root/weed/admin/view/layout/menu_helper.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/admin/view/layout/menu_helper.go')
-rw-r--r--weed/admin/view/layout/menu_helper.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/weed/admin/view/layout/menu_helper.go b/weed/admin/view/layout/menu_helper.go
new file mode 100644
index 000000000..fc8954423
--- /dev/null
+++ b/weed/admin/view/layout/menu_helper.go
@@ -0,0 +1,47 @@
+package layout
+
+import (
+ "github.com/seaweedfs/seaweedfs/weed/admin/maintenance"
+
+ // Import task packages to trigger their auto-registration
+ _ "github.com/seaweedfs/seaweedfs/weed/worker/tasks/balance"
+ _ "github.com/seaweedfs/seaweedfs/weed/worker/tasks/erasure_coding"
+ _ "github.com/seaweedfs/seaweedfs/weed/worker/tasks/vacuum"
+)
+
+// MenuItemData represents a menu item
+type MenuItemData struct {
+ Name string
+ URL string
+ Icon string
+ Description string
+}
+
+// GetConfigurationMenuItems returns the dynamic configuration menu items
+func GetConfigurationMenuItems() []*MenuItemData {
+ var menuItems []*MenuItemData
+
+ // Add system configuration item
+ menuItems = append(menuItems, &MenuItemData{
+ Name: "System",
+ URL: "/maintenance/config",
+ Icon: "fas fa-cogs",
+ Description: "System-level configuration",
+ })
+
+ // Get all registered task types and add them as submenu items
+ registeredTypes := maintenance.GetRegisteredMaintenanceTaskTypes()
+
+ for _, taskType := range registeredTypes {
+ menuItem := &MenuItemData{
+ Name: maintenance.GetTaskDisplayName(taskType),
+ URL: "/maintenance/config/" + string(taskType),
+ Icon: maintenance.GetTaskIcon(taskType),
+ Description: maintenance.GetTaskDescription(taskType),
+ }
+
+ menuItems = append(menuItems, menuItem)
+ }
+
+ return menuItems
+}