You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							47 lines
						
					
					
						
							1.3 KiB
						
					
					
				
								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
							 | 
						|
								}
							 |