Single templates

{{/* takes in rooms.GestureInfo as parameter */}} {{ define "inactiveBrick" }}
{{ end }} {{ define "raisedBrick" }}
{{ end }} {{ define "speakerBrick" }}
{{ end }} {{ define "markBrick" }}
X
{{ end }} {{ define "markAndRaisedBrick" }}
X
{{ end }} {{/* takes in router.brickState as parameter */}}

Now for BrickData taking parametrized template name

{{ define "brick" }} {{ if eq .TemplateType "inactiveBrick" }} {{ template "inactiveBrick" .Gesture.GetGestureInfo }} {{ else if eq .TemplateType "raisedBrick" }} {{template "raisedBrick" .Gesture.GetGestureInfo }} {{ else if eq .TemplateType "speakerBrick"}} {{ template "speakerBrick" .Gesture.GetGestureInfo }} {{ else if eq .TemplateType "markBrick" }} {{ template "markBrick" .Gesture.GetGestureInfo }} {{ else if eq .TemplateType "markAndRaisedBrick" }} {{ template "markAndRaisedBrick" .Gesture.GetGestureInfo }} {{ end }} {{end}}

Now for a person

expected to be called with personData

{{ define "personBlocks" }}
{{ range .BricksForPerson }} {{ template "brick" . }} {{ end }}

{{ .Name }}

{{ end }}

And now i'll want to get all persons for a room

expected be called with room *roomTableData

{{ define "roomPeople" }}
{{ with .ArrowData }} {{ if .IsVisible }} {{ end }} {{ end }} {{ range .Persons }} {{ template "personBlocks" . }} {{ end }}
{{end}}