package ui import ( "git.wamblee.org/converge/pkg/models" "time" _ "time/tzdata" ) templ Sessions(agents []*models.Agent, clients []*models.Client, loc *time.Location) { <div> <div ws-send hx-trigger="load" hx-vals='{"message": "Hello, server! Page loaded."}'> </div> <h1>sessions</h1> <div id="status"> if len(agents) > 0 { @State(agents, clients, loc) } else { Loading... } </div> </div> } templ State(agents []*models.Agent, clients []*models.Client, location *time.Location) { <div id="status"> <h3>agents</h3> if len(agents) == 0 { <p>-</p> } else { <table class="table"> <thead> <tr> <th>rendez-vous id</th> <th>start time</th> <th> time</th> <th>username</th> <th>host</th> <th>os</th> <th>shell</th> </tr> </thead> for _, agent := range agents { <tr> <td>{string(agent.PublicId)}</td> <td>{agent.StartTime.In(location).Format(time.DateTime)}</td> <td>{agent.GetExpiryTime().In(location).Format(time.DateTime)}</td> <td>{agent.EnvironmentInfo.Username}</td> <td>{agent.EnvironmentInfo.Hostname}</td> <td>{agent.EnvironmentInfo.OS}</td> <td>{agent.EnvironmentInfo.Shell}</td> </tr> } </table> } <h3>clients</h3> if len(clients) == 0 { <p>-</p> } else { <table class="table"> <thead> <tr> <th>id</th> <th>start time</th> <th>session type</th> <th>rendez-vous id</th> <th>username</th> <th>host</th> <th>os</th> <th>shell</th> </tr> </thead> for _, client := range clients { <tr> <td>{string(client.ClientId)}</td> <td>{client.StartTime.In(location).Format(time.DateTime)}</td> <td>{string(client.SessionType)}</td> <td>{string(client.PublicId)}</td> <td>{client.EnvironmentInfo.Username}</td> <td>{client.EnvironmentInfo.Hostname}</td> <td>{client.EnvironmentInfo.OS}</td> <td>{client.EnvironmentInfo.Shell}</td> </tr> } </table> } </div> } templ SessionsTab(agents []*models.Agent, clients []*models.Client, loc *time.Location) { @BasePage(4) { @Sessions(agents, clients, loc) } }