36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package workbench
|
|||
|
|
|
||
|
|
type resourceListSummary struct {
|
||
|
|
Resource
|
||
|
|
Summary bool `json:"summary"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// Lists carry selection metadata; editing always loads the complete resource.
|
||
|
|
func summarizeResource(resource Resource) resourceListSummary {
|
||
|
|
data := JSON{}
|
||
|
|
for _, key := range []string{"agent_id", "flow_id", "days_count"} {
|
||
|
|
if value, ok := resource.Data[key]; ok {
|
||
|
|
data[key] = value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if resource.Data["legacy_import"] != nil {
|
||
|
|
data["legacy_import"] = JSON{"imported": true}
|
||
|
|
}
|
||
|
|
if activation, err := decode[struct {
|
||
|
|
Configured bool `json:"configured"`
|
||
|
|
}](asJSON(resource.Data["legacy_activation"])); err == nil && resource.Data["legacy_activation"] != nil {
|
||
|
|
data["legacy_activation"] = JSON{"configured": activation.Configured}
|
||
|
|
}
|
||
|
|
if resource.Kind == "training-maps" {
|
||
|
|
if plan, err := decode[MapData](resource.Data); err == nil {
|
||
|
|
days := make([]JSON, 0, len(plan.Days))
|
||
|
|
for _, day := range plan.Days {
|
||
|
|
days = append(days, JSON{"day": day.Day, "title": day.Title})
|
||
|
|
}
|
||
|
|
data["days"] = days
|
||
|
|
}
|
||
|
|
}
|
||
|
|
resource.Data = data
|
||
|
|
return resourceListSummary{Resource: resource, Summary: true}
|
||
|
|
}
|