package app
import (
    "fmt"
    "github.com/seaweedfs/seaweedfs/weed/admin/dash"
)
templ Admin(data dash.AdminData) {
    
        
        
            
                
                    
                        
                            
                                
                                    Total Volumes
                                
                                
                                    {fmt.Sprintf("%d", data.TotalVolumes)}
                                
                             
                            
                                
                            
                         
                     
                 
             
            
                
                    
                        
                            
                                
                                    Total Files
                                
                                
                                    {formatNumber(data.TotalFiles)}
                                
                             
                            
                                
                            
                         
                     
                 
             
            
                
                    
                        
                            
                                
                                    Total Size
                                
                                
                                    {formatBytes(data.TotalSize)}
                                
                             
                            
                                
                            
                         
                     
                 
             
            
                
                    
                        
                            
                                
                                    Volume Size Limit
                                
                                
                                    {fmt.Sprintf("%d MB", data.VolumeSizeLimitMB)}
                                
                             
                            
                                
                            
                         
                     
                 
             
         
        
        
            
                
                    
                        
                            
                                
                                    EC Volumes
                                
                                
                                    {fmt.Sprintf("%d", data.TotalEcVolumes)}
                                
                             
                            
                                
                            
                         
                     
                 
             
            
                
                    
                        
                            
                                
                                    EC Shards
                                
                                
                                    {fmt.Sprintf("%d", data.TotalEcShards)}
                                
                             
                            
                                
                            
                         
                     
                 
             
            
            
            
         
        
        
            
                
                    
                    
                        
                            
                                
                                    
                                        | Address | Role | 
                                
                                
                                    for _, master := range data.MasterNodes {
                                        
                                            | {master.Address} | if master.IsLeader {
                                                    Leader
                                                } else {
                                                    Follower
                                                } | 
                                    }
                                
                            
                         
                     
                 
             
            
            
                
                    
                    
                        
                            
                                
                                    
                                        
{fmt.Sprintf("%d", len(data.MasterNodes))}
                                        Masters
                                    
                                 
                             
                            
                                
                                    
                                        
{fmt.Sprintf("%d", len(data.VolumeServers))}
                                        Volume Servers
                                    
                                 
                             
                            
                                
                                    
                                        
{fmt.Sprintf("%d", len(data.FilerNodes))}
                                        Filers
                                    
                                 
                             
                            
                                
                                    
                                        
{fmt.Sprintf("%d", len(data.MessageBrokers))}
                                        Message Brokers
                                    
                                 
                             
                         
                     
                 
             
         
        
        
            
                
                    
                    
                        
                            
                                
                                    
                                        | ID | Address | Data Center | Rack | Volumes | EC Shards | Capacity | 
                                
                                
                                    for _, vs := range data.VolumeServers {
                                        
                                            | {vs.ID} | {vs.Address} | {vs.DataCenter} | {vs.Rack} | 
                                                    
                                                        {fmt.Sprintf("%d/%d", vs.Volumes, vs.MaxVolumes)}
                                                     | if vs.EcShards > 0 {
                                                    {fmt.Sprintf("%d", vs.EcShards)}
                                                    if vs.EcVolumes > 0 {
                                                        ({fmt.Sprintf("%d vol", vs.EcVolumes)})
                                                    }
                                                } else {
                                                    -
                                                } | {formatBytes(vs.DiskUsage)} / {formatBytes(vs.DiskCapacity)} | 
                                    }
                                    if len(data.VolumeServers) == 0 {
                                        
                                            | No volume servers found | 
                                    }
                                
                            
                         
                     
                 
             
         
        
        
            
                
                    
                    
                        
                            
                                
                                    
                                        | Address | Data Center | Rack | Last Updated | 
                                
                                
                                    for _, filer := range data.FilerNodes {
                                        
                                            | {filer.Address} | {filer.DataCenter} | {filer.Rack} | {filer.LastUpdated.Format("2006-01-02 15:04:05")} | 
                                    }
                                    if len(data.FilerNodes) == 0 {
                                        
                                            | No filer nodes found | 
                                    }
                                
                            
                         
                     
                 
             
         
        
        
            
                
                    
                    Last updated: {data.LastUpdated.Format("2006-01-02 15:04:05")}
                
            
         
     
}