Skip to content

[Studio UI] Saved search grid UI improvements (#3836) - #4068

Open
idaiv wants to merge 6 commits into
2026.xfrom
fix/saved-search-grid-ui-improvements
Open

[Studio UI] Saved search grid UI improvements (#3836)#4068
idaiv wants to merge 6 commits into
2026.xfrom
fix/saved-search-grid-ui-improvements

Conversation

@idaiv

@idaiv idaiv commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Addresses #3836

Header (TopBar):

  • Saved search result tab now shows a Header component (matching Redirects pattern) with:
    • Saved search name as Title on the left
    • Type select and class select dropdowns alongside the title
    • Search input on the right (width: 320px, matching SearchInput default)
  • Inside the search modal, the existing Toolbar layout is preserved unchanged

Toolbar (bottom):

  • Object listing: language switch on the LEFT, refresh + pagination on the RIGHT when inside a saved search widget
  • Uses Toolbar's default token.paddingXS padding (removed padding: none override)
  • Inside the search modal, the original layout is preserved unchanged

Applies to all three listing types (Asset, Document, Data Object).

Test plan

  • Open a saved search from Quick Search → verify Header shows saved search name + dropdowns + search on right
  • Verify the search input width matches the Redirects search input width
  • Verify the bottom toolbar has language switch left, refresh + pagination right
  • Verify the toolbar has proper padding (not flush to edges)
  • Open the same search type inside the Quick Search modal → verify the original TopBar and Toolbar layouts are unchanged
  • Test with Asset, Document, and Data Object saved searches

🤖 Generated with Claude Code

idaiv and others added 3 commits September 2, 2026 11:05
When a saved search is opened as a tab, the result widget now shows
a Header component with the saved search name as the title, following
the with-actions Header pattern. Uses position="top" for the bottom
border separator.

The listing components (Asset/Object/Document) already provide:
- Secondary toolbar with language switch (Object), refresh, pagination
- TopBar with type select, class select, and search input

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Header (TopBar):
- When a saved search is opened as a tab, the TopBar now renders a
  Header component (matching Redirects pattern) with the saved search
  name as Title, type/class dropdowns alongside, and search input on
  the right (width: 320px, matching SearchInput default)
- Inside the search modal, the existing Toolbar layout is preserved

Toolbar (bottom):
- Object listing: language switch on the LEFT, refresh + pagination
  on the RIGHT when inside a saved search widget
- Removed padding override — uses Toolbar's default token.paddingXS
- Inside the search modal, the original layout is preserved

Applies to all three listing types (Asset, Document, Data Object).

Relates to pimcore/product-management#1448

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings September 2, 2026 11:45
@idaiv idaiv added this to the 2026.3.0 milestone Sep 2, 2026
@idaiv
idaiv requested a review from xIrusux September 2, 2026 11:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Asset and Document toolbar requirements are unimplemented, while Object modal padding regresses.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Verdict: Needs changes. The PR introduces saved-search widget headers and toolbar layout improvements.

Changes:

  • Adds saved-search titles, selectors, and right-aligned search fields.
  • Repositions Data Object toolbar controls.
  • Restores default toolbar padding for widgets.

Review assessment:

  • Root cause: Partially addressed; widget/modal layouts are distinguished, but toolbar handling is incomplete.
  • Call sites: Asset and Document toolbars were missed.
  • Boundary/BC: Component boundaries are appropriate; no public API break.
  • Tests/docs: No automated regression coverage or documentation changes.
  • Risk: The Object modal layout changes unintentionally.
File summaries
File Description
asset/.../top-bar.tsx Adds the Asset saved-search header.
document/.../top-bar.tsx Adds the Document saved-search header.
object/.../top-bar.tsx Adds the Data Object saved-search header.
object/.../toolbar.tsx Repositions language and paging controls.
Review details
  • Files reviewed: 4/5 changed files
  • Comments generated: 6
  • Review effort level: Balanced

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.


const search = <SearchTermFilter onCommit={ isOpen ? setSearchTerm : undefined } />

if (isSavedSearchWidget) {

const search = <SearchTermFilter onCommit={ isOpen ? setSearchTerm : undefined } />

if (isSavedSearchWidget) {
Comment on lines 26 to 27
<BaseToolbar
padding={ { right: 'none', left: 'none' } }
theme='secondary'
<Title>{loadedSavedSearch.name}</Title>
<ProvidedTypeSelect />
</Flex>
<div style={ { width: 320, flexShrink: 0 } }>
<Title>{loadedSavedSearch.name}</Title>
<ProvidedTypeSelect />
</Flex>
<div style={ { width: 320, flexShrink: 0 } }>
<ProvidedTypeSelect />
<ClassDefinitionSelect nullable />
</Flex>
<div style={ { width: 320, flexShrink: 0 } }>
idaiv and others added 3 commits September 2, 2026 11:50
…ent toolbars

- Toolbar padding: conditionally apply padding={{ none }} only inside
  the search modal, use default token.paddingXS in saved search widget
- Asset and document toolbars: updated with same conditional padding
  pattern and space-between layout (matching object toolbar)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@sonarqubecloud

sonarqubecloud Bot commented Sep 2, 2026

Copy link
Copy Markdown

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