@@ -395,9 +558,15 @@ const WizardFileManager = () => {
{viewMode === 'card' ? (
- {filteredFiles.map((f) => {
+ {tree.map((node) => {
+ const f = node.file
const Icon = navigationIcon[f.menuIcon] ?? FaDatabase
const isCustom = f.componentKind === WizardComponentKindEnum.Custom
+ const prefix = `${f.fileName}/`
+ const dependencyCount = flattenWizardTree(node.children, new Set(), 1, prefix).length
+ const children = effectiveCollapsed.has(f.fileName)
+ ? []
+ : flattenWizardTree(node.children, effectiveCollapsed, 1, prefix)
return (
{
{f.fileName}
- {/* 3. satır: yol ayrımı (Custom / List), layout ve menü adresi */}
+ {/* 3. satır: yol ayrımı (Custom / List) ve bileşen kodu */}
-
- {isCustom ? : }
- {translate(
- isCustom
- ? '::App.WizardStepComponent.CustomComponent'
- : '::App.Listforms.Listform',
- )}
-
-
- {isCustom ? f.customComponentName : f.listFormCode}
-
+ {renderKindBadge(f)}
+
{componentName(f)}
+ {/* 4. satır: ekranın bulunduğu menü */}
+ {renderMenuPath(f, 'pt-1 text-xs text-gray-600 dark:text-gray-300')}
+
{/* Custom yolunda layout kavramı yoktur. */}
{!isCustom && f.defaultLayout && (
@@ -466,6 +622,40 @@ const WizardFileManager = () => {
f,
'flex items-center justify-end gap-1 pt-1 border-t border-gray-200 dark:border-gray-700',
)}
+
+ {/* Bağlı wizard'lar (alt formlar / component bağımlılıkları) aynı kartta kalır. */}
+ {dependencyCount > 0 && (
+
+
+ {renderGroupToggle({ key: f.fileName, hasChildren: true })}
+ {translate('::App.Platform.Dependencies')} ({dependencyCount})
+
+ {children.map((row) => {
+ const { file: child, depth, key } = row
+ const ChildIcon = navigationIcon[child.menuIcon] ?? FaDatabase
+ return (
+
+ {renderDepthMarker(depth)}
+ {renderGroupToggle(row)}
+
+
+
+ {child.wizardName || child.fileName}
+
+ {renderMenuPath(child, 'text-[11px] text-gray-500')}
+
+ {renderActions(child, 'flex shrink-0 items-center gap-0.5')}
+
+ )
+ })}
+
+ )}
)
})}
@@ -487,6 +677,9 @@ const WizardFileManager = () => {
{translate('::App.WizardStepComponent.ComponentType')}
|
+
+ {translate('::App.Platform.MenuParent')}
+ |
{translate('::App.WizardStepComponent.MenuUrl')}
|
@@ -496,16 +689,24 @@ const WizardFileManager = () => {
- {filteredFiles.map((f) => {
+ {tableRows.map((row) => {
+ const { file: f, depth, key } = row
const Icon = navigationIcon[f.menuIcon] ?? FaDatabase
- const isCustom = f.componentKind === WizardComponentKindEnum.Custom
return (
|
+ {renderDepthMarker(depth)}
+ {renderGroupToggle(row)}
{
{f.fileName}
|
- {isCustom ? f.customComponentName : f.listFormCode}
+ {componentName(f)}
|
-
-
- {isCustom ? : }
- {translate(
- isCustom
- ? '::App.WizardStepComponent.CustomComponent'
- : '::App.Listforms.Listform',
- )}
-
+ | {renderKindBadge(f)} |
+
+ {renderMenuPath(f)}
|
|