fix: form-content layout always shows tabs + expanded content
Reverts single-block optimization. All form-content layouts now render identically: tab bar visible, content expanded by default (collapsed=false). Single-block selectors (warehouse) now match multi-block selectors (mprfriendlyurl) in structure. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -345,16 +345,13 @@ class EntitySelectorRenderer
|
|||||||
{
|
{
|
||||||
$requiredClass = !empty($config['required']) ? ' trait-required' : '';
|
$requiredClass = !empty($config['required']) ? ' trait-required' : '';
|
||||||
$singleModeClass = $globalMode === 'single' ? ' single-mode' : '';
|
$singleModeClass = $globalMode === 'single' ? ' single-mode' : '';
|
||||||
$isSingleBlock = count($enabledBlocks) <= 1;
|
|
||||||
|
|
||||||
// For single-block selectors: no tab bar, always show content directly
|
// Default: expanded (collapsed=false) so content is visible immediately
|
||||||
// For multi-block selectors: show tab bar, collapsed by default
|
$collapsed = isset($config['collapsed']) ? $config['collapsed'] : false;
|
||||||
$collapsed = $isSingleBlock ? false : (isset($config['collapsed']) ? $config['collapsed'] : true);
|
|
||||||
$collapsedClass = $collapsed ? ' blocks-collapsed' : '';
|
$collapsedClass = $collapsed ? ' blocks-collapsed' : '';
|
||||||
$singleBlockClass = $isSingleBlock ? ' single-block' : '';
|
|
||||||
|
|
||||||
// Entity selector container (without form-group wrapper, without header)
|
// Entity selector container (without form-group wrapper, without header)
|
||||||
$html = '<div class="condition-trait target-conditions-trait layout-form-group' . $singleModeClass . $requiredClass . $collapsedClass . $singleBlockClass . '"';
|
$html = '<div class="condition-trait target-conditions-trait layout-form-group' . $singleModeClass . $requiredClass . $collapsedClass . '"';
|
||||||
$html .= ' data-entity-selector-id="' . $this->escapeAttr($config['id']) . '"';
|
$html .= ' data-entity-selector-id="' . $this->escapeAttr($config['id']) . '"';
|
||||||
$html .= ' data-mode="' . $this->escapeAttr($globalMode) . '"';
|
$html .= ' data-mode="' . $this->escapeAttr($globalMode) . '"';
|
||||||
if (!empty($config['required'])) {
|
if (!empty($config['required'])) {
|
||||||
@@ -366,13 +363,7 @@ class EntitySelectorRenderer
|
|||||||
}
|
}
|
||||||
$html .= ' data-config=\'' . $jsConfigJson . '\'>';
|
$html .= ' data-config=\'' . $jsConfigJson . '\'>';
|
||||||
|
|
||||||
if ($isSingleBlock) {
|
// Tabs row (always visible) with collapse toggle
|
||||||
// Single block: no tab bar, no collapse toggle — show content directly
|
|
||||||
$html .= '<div class="entity-selector-blocks-content">';
|
|
||||||
$html .= $this->renderBlocks($enabledBlocks, $activeBlock, $savedData, $config, $globalMode);
|
|
||||||
$html .= '</div>';
|
|
||||||
} else {
|
|
||||||
// Multiple blocks: show tab bar with collapse toggle
|
|
||||||
$html .= '<div class="entity-selector-tabs-row">';
|
$html .= '<div class="entity-selector-tabs-row">';
|
||||||
$html .= $this->renderTabs($enabledBlocks, $activeBlock, $savedData, $config);
|
$html .= $this->renderTabs($enabledBlocks, $activeBlock, $savedData, $config);
|
||||||
|
|
||||||
@@ -382,13 +373,17 @@ class EntitySelectorRenderer
|
|||||||
$html .= '</div>';
|
$html .= '</div>';
|
||||||
$html .= '</div>'; // End tabs-row
|
$html .= '</div>'; // End tabs-row
|
||||||
|
|
||||||
// Blocks content (hidden when collapsed)
|
// Blocks content (visible by default when not collapsed)
|
||||||
$blocksStyle = $collapsed ? ' style="display:none;"' : '';
|
$blocksStyle = $collapsed ? ' style="display:none;"' : '';
|
||||||
$html .= '<div class="entity-selector-blocks-content"' . $blocksStyle . '>';
|
$html .= '<div class="entity-selector-blocks-content"' . $blocksStyle . '>';
|
||||||
|
|
||||||
|
// Blocks
|
||||||
$html .= $this->renderBlocks($enabledBlocks, $activeBlock, $savedData, $config, $globalMode);
|
$html .= $this->renderBlocks($enabledBlocks, $activeBlock, $savedData, $config, $globalMode);
|
||||||
|
|
||||||
|
// Tips box
|
||||||
$html .= $this->renderTipsBox();
|
$html .= $this->renderTipsBox();
|
||||||
|
|
||||||
$html .= '</div>'; // End blocks-content
|
$html .= '</div>'; // End blocks-content
|
||||||
}
|
|
||||||
|
|
||||||
// Hidden input (outside collapsed area)
|
// Hidden input (outside collapsed area)
|
||||||
$html .= '<input type="hidden" name="' . $this->escapeAttr($config['name']) . '" value="' . $this->escapeAttr(json_encode($savedData)) . '">';
|
$html .= '<input type="hidden" name="' . $this->escapeAttr($config['name']) . '" value="' . $this->escapeAttr(json_encode($savedData)) . '">';
|
||||||
|
|||||||
Reference in New Issue
Block a user