fixed depth
This commit is contained in:
parent
07d7de60d8
commit
afc2dbea08
1 changed files with 17 additions and 11 deletions
18
main.go
18
main.go
|
@ -86,29 +86,35 @@ func (web Web) viewWatch(c *gin.Context) {
|
||||||
filterMap[filters[i].ID] = &filters[i]
|
filterMap[filters[i].ID] = &filters[i]
|
||||||
}
|
}
|
||||||
|
|
||||||
queuedFilters := []*Filter{}
|
currentLayerFilters := []*Filter{}
|
||||||
for i := range filters {
|
for i := range filters {
|
||||||
filter := &filters[i]
|
filter := &filters[i]
|
||||||
if filter.ParentID != nil {
|
if filter.ParentID != nil {
|
||||||
parent := filterMap[*filter.ParentID]
|
parent := filterMap[*filter.ParentID]
|
||||||
parent.Filters = append(parent.Filters, *filter)
|
parent.Filters = append(parent.Filters, *filter)
|
||||||
} else {
|
} else {
|
||||||
queuedFilters = append(queuedFilters, filter)
|
currentLayerFilters = append(currentLayerFilters, filter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bftFilters := []FilterDepth{}
|
bftFilters := []FilterDepth{}
|
||||||
|
nextLayerFilters := []*Filter{}
|
||||||
depth := 0
|
depth := 0
|
||||||
for len(queuedFilters) > 0 {
|
for len(nextLayerFilters) > 0 || len(currentLayerFilters) > 0 {
|
||||||
filter := queuedFilters[0]
|
for len(currentLayerFilters) > 0 {
|
||||||
|
filter := currentLayerFilters[0]
|
||||||
bftFilters = append(bftFilters, FilterDepth{
|
bftFilters = append(bftFilters, FilterDepth{
|
||||||
Filter: filter,
|
Filter: filter,
|
||||||
Depth: depth,
|
Depth: depth,
|
||||||
})
|
})
|
||||||
for _, filter := range filter.Filters {
|
for _, filter := range filter.Filters {
|
||||||
queuedFilters = append(queuedFilters, &filter)
|
nextLayerFilters = append(nextLayerFilters, &filter)
|
||||||
}
|
}
|
||||||
queuedFilters = queuedFilters[1:]
|
currentLayerFilters = currentLayerFilters[1:]
|
||||||
|
}
|
||||||
|
depth += 1
|
||||||
|
currentLayerFilters = nextLayerFilters
|
||||||
|
nextLayerFilters = []*Filter{}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
nextFilters := []*Filter{}
|
nextFilters := []*Filter{}
|
||||||
|
|
Loading…
Add table
Reference in a new issue