menu_helper.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package layout
  2. import (
  3. "github.com/seaweedfs/seaweedfs/weed/admin/maintenance"
  4. // Import task packages to trigger their auto-registration
  5. _ "github.com/seaweedfs/seaweedfs/weed/worker/tasks/balance"
  6. _ "github.com/seaweedfs/seaweedfs/weed/worker/tasks/erasure_coding"
  7. _ "github.com/seaweedfs/seaweedfs/weed/worker/tasks/vacuum"
  8. )
  9. // MenuItemData represents a menu item
  10. type MenuItemData struct {
  11. Name string
  12. URL string
  13. Icon string
  14. Description string
  15. }
  16. // GetConfigurationMenuItems returns the dynamic configuration menu items
  17. func GetConfigurationMenuItems() []*MenuItemData {
  18. var menuItems []*MenuItemData
  19. // Add system configuration item
  20. menuItems = append(menuItems, &MenuItemData{
  21. Name: "System",
  22. URL: "/maintenance/config",
  23. Icon: "fas fa-cogs",
  24. Description: "System-level configuration",
  25. })
  26. // Get all registered task types and add them as submenu items
  27. registeredTypes := maintenance.GetRegisteredMaintenanceTaskTypes()
  28. for _, taskType := range registeredTypes {
  29. menuItem := &MenuItemData{
  30. Name: maintenance.GetTaskDisplayName(taskType),
  31. URL: "/maintenance/config/" + string(taskType),
  32. Icon: maintenance.GetTaskIcon(taskType),
  33. Description: maintenance.GetTaskDescription(taskType),
  34. }
  35. menuItems = append(menuItems, menuItem)
  36. }
  37. return menuItems
  38. }