Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to hide pages, sections and actions #523

Merged
merged 1 commit into from
Dec 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 27 additions & 5 deletions apis/ui/v1alpha1/openapi_generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions apis/ui/v1alpha1/resourceoutlinefilter_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ func (a ResourceOutlineFilterSpec) GetPage(name string) ResourcePageOutlineFilte
}
return ResourcePageOutlineFilter{
Name: name,
Show: false,
Sections: nil,
}
}
Expand All @@ -36,6 +37,7 @@ func (a ResourceOutlineFilterSpec) GetAction(name string) ActionTemplateGroupFil
}
return ActionTemplateGroupFilter{
Name: name,
Show: false,
Items: nil,
}
}
Expand All @@ -48,6 +50,7 @@ func (a ResourcePageOutlineFilter) GetSection(name string) SectionOutlineFilter
}
return SectionOutlineFilter{
Name: name,
Show: false,
Blocks: nil,
}
}
7 changes: 5 additions & 2 deletions apis/ui/v1alpha1/resourceoutlinefilter_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,18 @@ type ResourceOutlineFilterSpec struct {
type ResourcePageOutlineFilter struct {
Name string `json:"name"`
Sections []SectionOutlineFilter `json:"sections,omitempty"`
Show bool `json:"show"`
}

type ActionTemplateGroupFilter struct {
Name string `json:"name,omitempty"`
Items map[string]bool `json:"items"`
Name string `json:"name"`
Items map[string]bool `json:"items,omitempty"`
Show bool `json:"show"`
}

type SectionOutlineFilter struct {
Name string `json:"name,omitempty"`
Show bool `json:"show"`
Info bool `json:"info"`
Insight bool `json:"insight"`
Blocks map[string]bool `json:"blocks,omitempty"`
Expand Down
11 changes: 10 additions & 1 deletion crds/meta.k8s.appscode.com_resourceoutlinefilters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@ spec:
type: object
name:
type: string
show:
type: boolean
required:
- items
- name
- show
type: object
type: array
header:
Expand All @@ -65,13 +68,19 @@ spec:
type: boolean
name:
type: string
show:
type: boolean
required:
- info
- insight
- show
type: object
type: array
show:
type: boolean
required:
- name
- show
type: object
type: array
resource:
Expand Down
11 changes: 10 additions & 1 deletion crds/ui.k8s.appscode.com_resourceoutlinefilters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@ spec:
type: object
name:
type: string
show:
type: boolean
required:
- items
- name
- show
type: object
type: array
header:
Expand All @@ -65,13 +68,19 @@ spec:
type: boolean
name:
type: string
show:
type: boolean
required:
- info
- insight
- show
type: object
type: array
show:
type: boolean
required:
- name
- show
type: object
type: array
resource:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,11 @@ spec:
type: object
name:
type: string
show:
type: boolean
required:
- items
- name
- show
type: object
type: array
header:
Expand All @@ -88,13 +91,19 @@ spec:
type: boolean
name:
type: string
show:
type: boolean
required:
- info
- insight
- show
type: object
type: array
show:
type: boolean
required:
- name
- show
type: object
type: array
resource:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,11 @@ spec:
type: object
name:
type: string
show:
type: boolean
required:
- items
- name
- show
type: object
type: array
header:
Expand All @@ -88,13 +91,19 @@ spec:
type: boolean
name:
type: string
show:
type: boolean
required:
- info
- insight
- show
type: object
type: array
show:
type: boolean
required:
- name
- show
type: object
type: array
resource:
Expand Down
3 changes: 3 additions & 0 deletions pkg/layouts/filter.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ func GetDefaultResourceOutlineFilter(kc client.Client, outline *rsapi.ResourceOu
for _, ag := range ed.Spec.UI.Actions {
ag2 := uiapi.ActionTemplateGroupFilter{
Name: ag.Name,
Show: true,
Items: make(map[string]bool, len(ag.Items)),
}
for _, a := range ag.Items {
Expand Down Expand Up @@ -95,12 +96,14 @@ func GetDefaultResourceOutlineFilter(kc client.Client, outline *rsapi.ResourceOu
for _, pageOutline := range pages {
page := uiapi.ResourcePageOutlineFilter{
Name: pageOutline.Name,
Show: true,
Sections: make([]uiapi.SectionOutlineFilter, 0, len(pageOutline.Sections)),
}
for _, sectionOutline := range pageOutline.Sections {

section := uiapi.SectionOutlineFilter{
Name: sectionOutline.Name,
Show: true,
Info: sectionOutline.Info != nil,
Insight: sectionOutline.Insight != nil,
}
Expand Down
9 changes: 9 additions & 0 deletions pkg/layouts/lib.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,9 @@ func GetResourceLayout(kc client.Client, outline *rsapi.ResourceOutline) (*rsapi
result.Spec.UI.Actions = make([]*shared.ActionTemplateGroup, 0, len(ed.Spec.UI.Actions))
for _, ag := range ed.Spec.UI.Actions {
agFilter := filter.Spec.GetAction(ag.Name)
if !agFilter.Show {
continue
}
ag2 := shared.ActionTemplateGroup{
ActionInfo: ag.ActionInfo,
Items: make([]shared.ActionTemplate, 0, len(ag.Items)),
Expand Down Expand Up @@ -280,13 +283,19 @@ func GetResourceLayout(kc client.Client, outline *rsapi.ResourceOutline) (*rsapi

for _, pageOutline := range pages {
pageFilter := filter.Spec.GetPage(pageOutline.Name)
if !pageFilter.Show {
continue
}
page := rsapi.ResourcePageLayout{
Name: pageOutline.Name,
RequiredFeatureSets: pageOutline.RequiredFeatureSets,
Sections: make([]rsapi.SectionLayout, 0, len(pageOutline.Sections)),
}
for _, sectionOutline := range pageOutline.Sections {
sectionFilter := pageFilter.GetSection(sectionOutline.Name)
if !sectionFilter.Show {
continue
}

section := rsapi.SectionLayout{
Name: sectionOutline.Name,
Expand Down