Skip to content

Redesign kubedb-ui-presets options with a sidebar layout - #1126

Draft
Sourav-Kumar-19 wants to merge 5 commits into
masterfrom
sourav-preset-sidebar
Draft

Redesign kubedb-ui-presets options with a sidebar layout#1126
Sourav-Kumar-19 wants to merge 5 commits into
masterfrom
sourav-preset-sidebar

Conversation

@Sourav-Kumar-19

Copy link
Copy Markdown
Contributor

Follow-up to #1107. Same sidebar treatment, this time for the kubedb-ui-presets side of chartsxhelmdev-clusterchartpreset-editor-options.

Why

The preset editor renders every option group on one page as nested accordions. With 30 databases under Configure Databases, getting to something like Alert or GitOps means scrolling past the whole catalog. The sidebar turns the groups into navigation instead.

What changed

ui/create-ui.yaml — the four group blocks (Machine specifics, Database specifics, Monitoring & Backups specifics, Extras) are replaced by a single sidebar-layout:

  • group headings become sidebar sections
  • each block inside a group becomes a sidebar item and its own page, guarded by if: isActivePage|<page>
  • the databases are nested one level under Configure Databases, collapsed by default (hideOptions: true)
  • FetchAllDbVersions moves onto a plain wrapper around the database pages, so it still runs exactly once

ui/functions.js — adds isActivePage() and seeds /presetPage with the first page, mirroring the TelemetryStack wizard.

What did not change

No schema paths, field definitions, loaders, watchers or existing functions were touched. Diffing the leaf elements before and after gives an identical set (256 elements). The only per-block edit is dropping hideBlock, which collapsed the accordion by default — pointless now that each block owns its page.

Also corrected the Database sepcificsDatabase specifics typo while it was becoming a section heading.

Notes

Needs appscode-cloud/form-builder#341 (sidebar-layout), same dependency as #1107.

./bin/uibuilder-tools check --wizard-dir=./charts/chartsxhelmdev-clusterchartpreset-editor-options passes, including schema-ref validation.

The preset editor was one long page of nested accordions, so reaching a
single setting meant scrolling past every other group. Move the four
option groups into the sidebar-layout the TelemetryStack editor already
uses: the group headings become sidebar sections, each block becomes its
own page, and the databases sit nested under "Configure Databases".

Every form, field, schema path and function is carried over untouched.
The only per-block change is dropping hideBlock, which used to collapse
the accordion by default and makes no sense now that a block owns the
whole page. The catalog loader stays on a wrapper around the database
pages so FetchAllDbVersions still runs once.

isActivePage() reads the page the sidebar wrote to the discriminator,
same as the TelemetryStack wizard.

Signed-off-by: Sourav Roy <souravroy@appscode.com>
Every page holds one card whose header just repeats the row you clicked,
and it was collapsible, so a single click emptied the page. fixedBlock
keeps the card as the page heading and drops the toggle.

Dropped the rail's own "KubeDB Presets / Configuration" title. The
breadcrumb and the H1 above it already say that, and the ~56px it took
pushed the first nav row well below the first card.

Icons on all 51 rows, keyed by hugeicons name. The databases are grouped
by what the engine actually is - analytics, search, cache, broker,
vector, proxy - rather than 30 copies of one glyph, so the list stays
scannable when it is expanded. Section headings get none on purpose: an
icon there shifts the heading text 22px right and eats the indent that
separates it from its own rows, which is why TelemetryStack has none
either.

No schema paths, fields, loaders, watchers or functions were touched.

Signed-off-by: Sourav Roy <souravroy@appscode.com>
Both of these ran past the rail and wrapped. "specifics" reads as filler
on a section header that already sits under a Monitoring & Backups
group, and MachineProfiles is the part of the row that matters.

Signed-off-by: Sourav Roy <souravroy@appscode.com>
Signed-off-by: Sourav Roy <souravroy@appscode.com>
@Sourav-Kumar-19 Sourav-Kumar-19 changed the title Redesign kubedb-ui-presets options with a sidebar layout #W.I.P Redesign kubedb-ui-presets options with a sidebar layout Aug 10, 2026
@Sourav-Kumar-19
Sourav-Kumar-19 marked this pull request as draft August 10, 2026 08:21
This branch was cut before the TelemetryStack sidebar was reworked, so it
still carries the first version of that wizard. Both branches land on
master, and the preset sidebar has nothing to do with the telemetry one,
so carry the newer files over verbatim to keep the second merge clean.

Taken as-is from sourav-telemetry-sidebar: Metrics moves ahead of Logs
and Traces is dropped, Thanos gets its own Additional Config page, S3
becomes one page shared by both pillars with the metrics copy kept in
sync, and volume mounts are derived from the volume at the same index.

Nothing outside charts/monitoringk8sappscodecom-telemetrystack-editor-options/ui
is touched.

Signed-off-by: Sourav Roy <souravroy@appscode.com>
@SamiulSourav
SamiulSourav marked this pull request as ready for review August 12, 2026 07:53
@SamiulSourav SamiulSourav changed the title #W.I.P Redesign kubedb-ui-presets options with a sidebar layout Redesign kubedb-ui-presets options with a sidebar layout Aug 12, 2026
@SamiulSourav
SamiulSourav marked this pull request as draft August 12, 2026 09:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants