package adminview import "git.haelnorr.com/h/oslstats/internal/db" import "fmt" import "time" import "encoding/json" templ AuditLogDetail(log *db.AuditLog) {

Audit Log Details

{ fmt.Sprintf("%d", log.ID) }

if log.User != nil { { log.User.Username } (ID: { fmt.Sprintf("%d", log.UserID) }) } else { Unknown User (ID: { fmt.Sprintf("%d", log.UserID) }) }

{ formatDetailTimestamp(log.CreatedAt) }

{ log.Action }

{ log.ResourceType }

if log.ResourceID != nil { { *log.ResourceID } } else { N/A }

@resultBadge(log.Result)
if log.ErrorMessage != nil && *log.ErrorMessage != "" {

{ *log.ErrorMessage }

}

{ log.IPAddress }

{ log.UserAgent }

if log.Details != nil && len(log.Details) > 0 && string(log.Details) != "null" {
{ formatJSON(log.Details) }
}
} func formatDetailTimestamp(unixTime int64) string { t := time.Unix(unixTime, 0) return t.Format("Monday, January 2, 2006 at 3:04:05 PM MST") } func formatJSON(raw []byte) string { if len(raw) == 0 || string(raw) == "null" { return "No details available" } // Pretty print the JSON var obj interface{} if err := json.Unmarshal(raw, &obj); err != nil { return string(raw) } pretty, err := json.MarshalIndent(obj, "", " ") if err != nil { return string(raw) } return string(pretty) }