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.GetDisplayAddress()}
                                                    
                                                
                                             | 
                                            {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")}
                
            
         
     
}