fix(console): comprehensive TUI rendering fixes
- Fix Enter key detection: handle multiple Enter key formats (\n, \r, \r\n) - Reduce flickering: lower render frequency from 60 FPS to 30 FPS - Fix menu bar visibility: re-render menu bar after content to prevent overwriting - Fix content positioning: explicit line positioning for categories and commands - Fix line shifting: clear lines before writing, control newlines manually - Limit visible items: prevent overflow with maxVisibleCategories/Commands - Improve CPU usage: increase sleep interval when no events processed This fixes: - Enter key not working for selection - Strong flickering of the application - Menu bar not visible or being overwritten - Top half of selection list not displayed - Lines being shifted/misaligned
This commit is contained in:
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Analytics;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Application\Analytics\Service\AnalyticsDashboardService;
|
||||
use App\Application\Analytics\Service\AnalyticsRealTimeService;
|
||||
use App\Application\Analytics\Service\AnalyticsReportService;
|
||||
@@ -22,10 +21,9 @@ use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
|
||||
#[AdminSection(name: 'Analytics', icon: 'chart-bar', order: 4, description: 'Analytics and reporting')]
|
||||
final class AnalyticsController
|
||||
final readonly class AnalyticsController
|
||||
{
|
||||
public function __construct(
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private AnalyticsDashboardService $dashboardService,
|
||||
private AnalyticsStorage $storage,
|
||||
private AnalyticsReportService $reportService,
|
||||
@@ -69,12 +67,10 @@ final class AnalyticsController
|
||||
'last_update' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'analytics-dashboard',
|
||||
metaData: new MetaData('Analytics Dashboard', 'Website Analytics and User Behavior'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Content;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Domain\Media\ImageRepository;
|
||||
use App\Domain\Media\ImageSlotRepository;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
@@ -21,7 +20,6 @@ final readonly class ImageManagerController
|
||||
public function __construct(
|
||||
private ImageSlotRepository $slotRepository,
|
||||
private ImageRepository $imageRepository,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private Clock $clock,
|
||||
) {
|
||||
}
|
||||
@@ -40,12 +38,10 @@ final readonly class ImageManagerController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
'image-manager',
|
||||
new MetaData('Image Manager'),
|
||||
$finalData
|
||||
$data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Content;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Domain\Media\ImageSlot;
|
||||
use App\Domain\Media\ImageSlotRepository;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
@@ -21,7 +20,6 @@ final readonly class ImageSlotsController
|
||||
{
|
||||
public function __construct(
|
||||
private ImageSlotRepository $imageSlotRepository,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private Clock $clock,
|
||||
) {
|
||||
}
|
||||
@@ -38,9 +36,7 @@ final readonly class ImageSlotsController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult('imageslots', new MetaData('Image Slots', 'Image Slots Management'), $finalData);
|
||||
return new ViewResult('imageslots', new MetaData('Image Slots', 'Image Slots Management'), $data);
|
||||
}
|
||||
|
||||
#[Route('/admin/content/image-slots/{slotName}', method: Method::POST)]
|
||||
@@ -55,9 +51,7 @@ final readonly class ImageSlotsController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult('imageslot', new MetaData('Edit Image Slot', 'Image Slot Management'), $finalData);
|
||||
return new ViewResult('imageslot', new MetaData('Edit Image Slot', 'Image Slot Management'), $data);
|
||||
}
|
||||
|
||||
#[Route('/admin/imageslots/create', method: Method::POST)]
|
||||
|
||||
@@ -6,7 +6,6 @@ namespace App\Application\Admin\Database;
|
||||
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\AdminPageRenderer;
|
||||
use App\Framework\Attributes\Route;
|
||||
use App\Framework\Database\Browser\Registry\DatabaseRegistry;
|
||||
@@ -24,7 +23,6 @@ final readonly class DatabaseBrowserController
|
||||
private DatabaseRegistry $databaseRegistry,
|
||||
private TableRegistry $tableRegistry,
|
||||
private AdminPageRenderer $pageRenderer,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private PaginationService $paginationService,
|
||||
private DatabaseTableGenerator $tableGenerator,
|
||||
) {
|
||||
@@ -72,12 +70,10 @@ final readonly class DatabaseBrowserController
|
||||
],
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'database/browser',
|
||||
metaData: new MetaData('Database Browser', 'Admin - Database Browser'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ declare(strict_types=1);
|
||||
namespace App\Application\Admin\Database;
|
||||
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Attributes\Route;
|
||||
use App\Framework\Database\Browser\Registry\TableRegistry;
|
||||
use App\Framework\Meta\MetaData;
|
||||
@@ -16,7 +15,6 @@ final readonly class TableBrowserController
|
||||
{
|
||||
public function __construct(
|
||||
private TableRegistry $tableRegistry,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private DatabaseMetadataTableGenerator $metadataTableGenerator,
|
||||
) {
|
||||
}
|
||||
@@ -33,12 +31,10 @@ final readonly class TableBrowserController
|
||||
'error' => "Table '{$table}' not found",
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'database/table-detail',
|
||||
metaData: new MetaData('Table Not Found', 'Admin - Table Not Found'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
|
||||
@@ -57,12 +53,10 @@ final readonly class TableBrowserController
|
||||
'has_foreign_keys' => !empty($tableSchema->foreignKeys),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'database/table-detail',
|
||||
metaData: new MetaData("Table: {$tableSchema->name}", "Admin - Table: {$tableSchema->name}"),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Development;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Attributes\Route;
|
||||
use App\Framework\DateTime\Clock;
|
||||
use App\Framework\Design\Component\ComponentCategory;
|
||||
@@ -33,7 +32,6 @@ final readonly class DesignSystemController
|
||||
private DesignSystemAnalyzer $analyzer,
|
||||
private FileScanner $fileScanner,
|
||||
private ComponentScanner $componentScanner,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private Clock $clock,
|
||||
) {
|
||||
}
|
||||
@@ -56,12 +54,10 @@ final readonly class DesignSystemController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
'design-dashboard',
|
||||
new MetaData('Design System Dashboard', 'Design System Dashboard'),
|
||||
$finalData
|
||||
$data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Development;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -17,7 +16,6 @@ final readonly class RoutesController
|
||||
{
|
||||
public function __construct(
|
||||
private DiscoveryRegistry $processedResults,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -110,12 +108,10 @@ final readonly class RoutesController
|
||||
'routes' => $routes,
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'routes-overview',
|
||||
metaData: new MetaData('Routes Overview', 'System Routes Overview'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Development;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Attributes\Route;
|
||||
use App\Framework\DateTime\Clock;
|
||||
use App\Framework\Http\Method;
|
||||
@@ -29,7 +28,6 @@ use App\Framework\Router\AdminRoutes;
|
||||
final readonly class StyleguideController
|
||||
{
|
||||
public function __construct(
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private Clock $clock,
|
||||
) {
|
||||
}
|
||||
@@ -52,12 +50,10 @@ final readonly class StyleguideController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'styleguide',
|
||||
metaData: $metaData,
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Development;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Attributes\Route;
|
||||
use App\Framework\Config\WafConfig as FrameworkWafConfig;
|
||||
use App\Framework\Core\ValueObjects\Duration;
|
||||
@@ -46,7 +45,6 @@ final class WafTestController
|
||||
private readonly PerformanceService $performance,
|
||||
private readonly Logger $logger,
|
||||
private readonly Clock $clock,
|
||||
private readonly AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -59,12 +57,10 @@ final class WafTestController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'waf-test',
|
||||
metaData: new MetaData('WAF Test Suite', 'Web Application Firewall Testing Interface'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Infrastructure;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -22,7 +21,6 @@ final readonly class CacheMetricsController
|
||||
public function __construct(
|
||||
private CacheMetricsInterface $cacheMetrics,
|
||||
private Clock $clock,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -52,12 +50,10 @@ final readonly class CacheMetricsController
|
||||
$data['driver_stats'] = $driverStats;
|
||||
}
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'cache-metrics',
|
||||
metaData: new MetaData('Cache Metrics', 'Cache Performance Monitoring'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Infrastructure;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -22,7 +21,6 @@ final readonly class DockerController
|
||||
{
|
||||
public function __construct(
|
||||
private DockerService $dockerService,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private Clock $clock,
|
||||
) {
|
||||
}
|
||||
@@ -71,12 +69,10 @@ final readonly class DockerController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'docker-dashboard',
|
||||
metaData: new MetaData('Docker Dashboard', 'Docker container management and monitoring'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Infrastructure;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -28,7 +27,6 @@ final readonly class LogViewerController
|
||||
public function __construct(
|
||||
private LogViewer $logViewer,
|
||||
private Timer $timer,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private Clock $clock,
|
||||
) {
|
||||
}
|
||||
@@ -48,9 +46,7 @@ final readonly class LogViewerController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult('log-viewer', $metaData, $finalData);
|
||||
return new ViewResult('log-viewer', $metaData, $data);
|
||||
}
|
||||
|
||||
#[Route('/admin/infrastructure/logs/api/list', Method::GET)]
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Infrastructure;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -20,7 +19,6 @@ final readonly class RedisController
|
||||
public function __construct(
|
||||
private RedisMonitoringService $redisMonitoring,
|
||||
private Clock $clock,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -86,12 +84,10 @@ final readonly class RedisController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'redis',
|
||||
metaData: new MetaData('Redis Dashboard', 'Redis monitoring and cache analysis'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\Infrastructure;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -20,7 +19,6 @@ final readonly class ServicesController
|
||||
public function __construct(
|
||||
private DefaultContainer $container,
|
||||
private Clock $clock,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -66,12 +64,10 @@ final readonly class ServicesController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'services',
|
||||
metaData: new MetaData('Registrierte Dienste', 'Übersicht aller registrierten Services'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\MachineLearning;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Attributes\Route;
|
||||
use App\Framework\Core\ValueObjects\Duration;
|
||||
use App\Framework\Http\HttpRequest;
|
||||
@@ -23,7 +22,6 @@ final readonly class MLDashboardAdminController
|
||||
public function __construct(
|
||||
private ModelRegistry $registry,
|
||||
private ModelPerformanceMonitor $performanceMonitor,
|
||||
private AdminLayoutProcessor $layoutProcessor
|
||||
) {}
|
||||
|
||||
#[AdminPage(title: 'ML Dashboard', icon: 'brain', section: 'Machine Learning', order: 10)]
|
||||
@@ -167,12 +165,10 @@ final readonly class MLDashboardAdminController
|
||||
'api_health_url' => '/api/ml/dashboard/health',
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'ml-dashboard',
|
||||
metaData: new MetaData('ML Dashboard', 'Machine Learning Model Monitoring and Performance'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -24,7 +23,6 @@ final readonly class MigrationStatus
|
||||
public function __construct(
|
||||
private MigrationLoader $migrationLoader,
|
||||
private MigrationRunner $migrationRunner,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -96,12 +94,10 @@ final readonly class MigrationStatus
|
||||
'has_pending' => $pendingCount > 0,
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'migrations',
|
||||
metaData: new MetaData('Database Migrations', 'Database migration status and management'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Application\LiveComponents\ImageGallery\ImageGalleryComponent;
|
||||
use App\Domain\Media\ImageRepository;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
@@ -21,7 +20,6 @@ use App\Framework\Router\Result\ViewResult;
|
||||
final readonly class ShowImageManager
|
||||
{
|
||||
public function __construct(
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private ImageRepository $imageRepository,
|
||||
private DataProviderResolver $dataProviderResolver
|
||||
) {
|
||||
@@ -56,13 +54,11 @@ final readonly class ShowImageManager
|
||||
'slots' => [], // TODO: Load actual slots for legacy support
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($viewData);
|
||||
|
||||
$metaData = MetaData::create(
|
||||
title: 'Image Management',
|
||||
description: 'Upload, manage and organize your images'
|
||||
);
|
||||
|
||||
return new ViewResult('image-manager', $metaData, $finalData);
|
||||
return new ViewResult('image-manager', $metaData, $viewData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Domain\Media\Image;
|
||||
use App\Domain\Media\ImageRepository;
|
||||
use App\Domain\Media\ImageResizer;
|
||||
@@ -28,7 +27,6 @@ final readonly class ShowImageUpload
|
||||
private PathProvider $pathProvider,
|
||||
private StringConverter $stringConverter,
|
||||
private FormIdGenerator $formIdGenerator,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -49,14 +47,12 @@ final readonly class ShowImageUpload
|
||||
'formHtml' => RawHtml::from($formHtml),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
$metaData = MetaData::create(
|
||||
title: 'Bild-Upload | Admin Panel',
|
||||
description: 'Upload new images to the system'
|
||||
);
|
||||
|
||||
return new ViewResult('upload-form', $metaData, $finalData);
|
||||
return new ViewResult('upload-form', $metaData, $data);
|
||||
}
|
||||
|
||||
#[Route('/upload', Method::POST)]
|
||||
@@ -143,12 +139,10 @@ final readonly class ShowImageUpload
|
||||
'formHtml' => $this->buildUploadForm(),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
'upload-form',
|
||||
MetaData::create('Upload Fehler | Admin Panel', $message),
|
||||
$finalData
|
||||
$data
|
||||
);
|
||||
}
|
||||
|
||||
@@ -161,12 +155,10 @@ final readonly class ShowImageUpload
|
||||
'formHtml' => $this->buildUploadForm(),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
'upload-form',
|
||||
MetaData::create($title . ' | Admin Panel', $message),
|
||||
$finalData
|
||||
$data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -14,9 +13,8 @@ use App\Framework\Router\Result\ViewResult;
|
||||
#[AdminSection(name: 'Development', icon: 'code', order: 5, description: 'Development tools and utilities')]
|
||||
final readonly class ShowUploadTest
|
||||
{
|
||||
public function __construct(
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
#[AdminPage(title: 'Upload Test', icon: 'file-upload', section: 'Development', order: 60, hidden: true)]
|
||||
@@ -28,13 +26,11 @@ final readonly class ShowUploadTest
|
||||
'description' => 'Test page for JavaScript file upload functionality with CSRF protection.',
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
$metaData = MetaData::create(
|
||||
title: 'JavaScript Upload Test | Admin Panel',
|
||||
description: 'Test JavaScript upload functionality'
|
||||
);
|
||||
|
||||
return new ViewResult('upload-test', $metaData, $finalData);
|
||||
return new ViewResult('upload-test', $metaData, $data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\System;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -21,7 +20,6 @@ final readonly class EnvironmentController
|
||||
public function __construct(
|
||||
private DefaultContainer $container,
|
||||
private Clock $clock,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -60,12 +58,10 @@ final readonly class EnvironmentController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'environment',
|
||||
metaData: new MetaData('Umgebungsvariablen', 'Umgebungsvariablen'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\System;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -22,7 +21,6 @@ final readonly class HealthController
|
||||
{
|
||||
public function __construct(
|
||||
private HealthCheckManager $healthManager,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private Clock $clock,
|
||||
private HealthCheckTableGenerator $tableGenerator,
|
||||
) {
|
||||
@@ -81,14 +79,10 @@ final readonly class HealthController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
error_log("HealthController: Final data keys: " . implode(', ', array_keys($finalData)));
|
||||
|
||||
return new ViewResult(
|
||||
template: 'health-dashboard',
|
||||
metaData: new MetaData('System Health', 'System Health Dashboard'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\System;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
use App\Framework\Attributes\Route;
|
||||
@@ -24,7 +23,6 @@ final readonly class PerformanceController
|
||||
public function __construct(
|
||||
private MemoryMonitor $memoryMonitor,
|
||||
private Clock $clock,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -73,12 +71,10 @@ final readonly class PerformanceController
|
||||
'timestamp' => $this->clock->now()->format('Y-m-d H:i:s'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'performance',
|
||||
metaData: new MetaData('Performance-Daten', 'Performance-Daten'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Admin\System;
|
||||
|
||||
use App\Application\Admin\Service\AdminLayoutProcessor;
|
||||
use App\Application\Admin\System\Service\PhpInfoService;
|
||||
use App\Framework\Admin\Attributes\AdminPage;
|
||||
use App\Framework\Admin\Attributes\AdminSection;
|
||||
@@ -19,7 +18,6 @@ final readonly class PhpInfoController
|
||||
{
|
||||
public function __construct(
|
||||
private PhpInfoService $phpInfoService,
|
||||
private AdminLayoutProcessor $layoutProcessor,
|
||||
private Clock $clock,
|
||||
) {
|
||||
}
|
||||
@@ -56,12 +54,10 @@ final readonly class PhpInfoController
|
||||
'current_year' => $this->clock->now()->format('Y'),
|
||||
];
|
||||
|
||||
$finalData = $this->layoutProcessor->processLayoutFromArray($data);
|
||||
|
||||
return new ViewResult(
|
||||
template: 'phpinfo',
|
||||
metaData: new MetaData('PHP Information', 'PHP Information and Configuration'),
|
||||
data: $finalData
|
||||
data: $data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user