mod optimalized UI spaces
This commit is contained in:
parent
a4a3f33082
commit
87722fdb87
@ -19,20 +19,10 @@ protected function getHeaderActions(): array
|
||||
];
|
||||
}
|
||||
|
||||
public function getHeading(): string
|
||||
{
|
||||
return "Árlista fájl: " . $this->record->filename;
|
||||
}
|
||||
|
||||
protected function getHeaderWidgets(): array
|
||||
{
|
||||
return [
|
||||
// Később ide jöhetnek widgetek, pl. statisztika a feldolgozásról
|
||||
];
|
||||
}
|
||||
|
||||
public function getSubheading(): ?string
|
||||
{
|
||||
return "Beszállító: " . $this->record->supplier?->name;
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,149 +28,173 @@ public static function configure(Schema $schema): Schema
|
||||
->columnSpanFull()
|
||||
->maxWidth(Width::Full)
|
||||
->schema([
|
||||
Section::make('Fájl információk')
|
||||
// BAL OSZLOP
|
||||
Grid::make(1)
|
||||
->columnSpan(1)
|
||||
->schema([
|
||||
Grid::make(3)
|
||||
Section::make('Fájl információk')
|
||||
->schema([
|
||||
TextEntry::make('filename')
|
||||
->label('Fájlnév')
|
||||
->icon('heroicon-o-document-text')
|
||||
->color('primary'),
|
||||
TextEntry::make('supplier.name')
|
||||
->label('Beszállító')
|
||||
->icon('heroicon-o-user'),
|
||||
TextEntry::make('status')
|
||||
->label('Státusz')
|
||||
->badge()
|
||||
->formatStateUsing(fn (PricelistFileStatusEnum $state): string => $state->label())
|
||||
->color(fn (PricelistFileStatusEnum $state): string => match ($state) {
|
||||
PricelistFileStatusEnum::todo => 'gray',
|
||||
PricelistFileStatusEnum::inprogress => 'info',
|
||||
PricelistFileStatusEnum::done => 'success',
|
||||
PricelistFileStatusEnum::fail => 'danger',
|
||||
PricelistFileStatusEnum::waiting_for_approval => 'primary',
|
||||
PricelistFileStatusEnum::closed => 'warning',
|
||||
}),
|
||||
]),
|
||||
Grid::make(3)
|
||||
->schema([
|
||||
TextEntry::make('available_date')
|
||||
->label('Életbelépés dátuma')
|
||||
->date('Y.m.d'),
|
||||
TextEntry::make('created_at')
|
||||
->label('Feltöltés időpontja')
|
||||
->dateTime('Y.m.d H:i'),
|
||||
Grid::make(3)
|
||||
->schema([
|
||||
TextEntry::make('filename')
|
||||
->label('Fájlnév')
|
||||
->icon('heroicon-o-document-text')
|
||||
->color('primary'),
|
||||
TextEntry::make('supplier.name')
|
||||
->label('Beszállító')
|
||||
->icon('heroicon-o-user'),
|
||||
TextEntry::make('status')
|
||||
->label('Státusz')
|
||||
->badge()
|
||||
->formatStateUsing(fn (PricelistFileStatusEnum $state): string => $state->label())
|
||||
->color(fn (PricelistFileStatusEnum $state): string => match ($state) {
|
||||
PricelistFileStatusEnum::todo => 'gray',
|
||||
PricelistFileStatusEnum::inprogress => 'info',
|
||||
PricelistFileStatusEnum::done => 'success',
|
||||
PricelistFileStatusEnum::fail => 'danger',
|
||||
PricelistFileStatusEnum::waiting_for_approval => 'primary',
|
||||
PricelistFileStatusEnum::closed => 'warning',
|
||||
}),
|
||||
]),
|
||||
Grid::make(3)
|
||||
->schema([
|
||||
TextEntry::make('available_date')
|
||||
->label('Életbelépés')
|
||||
->date('Y.m.d'),
|
||||
TextEntry::make('created_at')
|
||||
->label('Feltöltés')
|
||||
->dateTime('Y.m.d H:i'),
|
||||
]),
|
||||
// SÁRGA NÉGYZET JAVÍTÁSA: Teljes szélességben alul, csak hiba esetén
|
||||
TextEntry::make('processing_current_step')
|
||||
->label('Aktuális folyamat')
|
||||
->label('Validációs hiba')
|
||||
->weight('bold')
|
||||
->color(fn ($record) => $record->status === PricelistFileStatusEnum::fail ? 'danger' : 'info')
|
||||
->color('danger')
|
||||
->columnSpanFull()
|
||||
->visible(fn ($record) => $record->status === PricelistFileStatusEnum::fail)
|
||||
->formatStateUsing(fn ($state, $record) => str_contains((string)$state, 'hibás') ? $state : "Hiba történt a folyamat során: $state"),
|
||||
|
||||
// Folyamatban lévő állapot kijelzése (nem hiba, de hasznos)
|
||||
TextEntry::make('processing_current_step_inprogress')
|
||||
->label('Aktuális folyamat')
|
||||
->getStateUsing(fn ($record) => $record->processing_current_step)
|
||||
->weight('bold')
|
||||
->color('info')
|
||||
->columnSpanFull()
|
||||
->visible(fn ($record) => $record->status === PricelistFileStatusEnum::inprogress)
|
||||
->formatStateUsing(fn ($state, $record) => "$state ({$record->processing_current_step_percentage}%)"),
|
||||
|
||||
TextEntry::make('note')
|
||||
->label('Megjegyzés')
|
||||
->placeholder('Nincs megjegyzés')
|
||||
->columnSpanFull(),
|
||||
]),
|
||||
TextEntry::make('note')
|
||||
->label('Megjegyzés')
|
||||
->placeholder('Nincs megjegyzés')
|
||||
->columnSpanFull(),
|
||||
]),
|
||||
|
||||
Section::make('Validáció statisztika')
|
||||
// JOBB OSZLOP
|
||||
Grid::make(1)
|
||||
->columnSpan(1)
|
||||
->schema([
|
||||
Grid::make(5)->schema([
|
||||
TextEntry::make('lines_count')
|
||||
->label('Összes sor')
|
||||
->icon('heroicon-o-list-bullet')
|
||||
->getStateUsing(fn ($record) => $record->lines()->count()),
|
||||
TextEntry::make('error_lines_count')
|
||||
->label('Hibás sorok')
|
||||
->icon('heroicon-o-x-circle')
|
||||
->color('danger')
|
||||
->getStateUsing(fn ($record) => $record->lines()->where('status', 'error')->count()),
|
||||
TextEntry::make('warning_lines_count')
|
||||
->label('Figyelmeztetések')
|
||||
->icon('heroicon-o-exclamation-triangle')
|
||||
->color('warning')
|
||||
->getStateUsing(fn ($record) => $record->lines()->where('status', 'warning')->count()),
|
||||
TextEntry::make('new_lines_count')
|
||||
->label('Új termékek')
|
||||
->icon('heroicon-o-sparkles')
|
||||
->color('info')
|
||||
->getStateUsing(fn ($record) => $record->lines()->where('status', 'new_product')->count()),
|
||||
TextEntry::make('updated_lines_count')
|
||||
->label('Módosult termékek')
|
||||
->icon('heroicon-o-pencil-square')
|
||||
->color('primary')
|
||||
->getStateUsing(fn ($record) => $record->lines()->where('status', 'updated')->count()),
|
||||
]),
|
||||
])
|
||||
->visible(fn ($record) => $record->lines()->exists()),
|
||||
Section::make('Fájl statisztika') // KÉK NÉGYZETEK JAVÍTÁSA: Összevont szekció
|
||||
->schema([
|
||||
Grid::make(5)->schema([
|
||||
TextEntry::make('lines_count')
|
||||
->label('Sorok')
|
||||
->icon('heroicon-o-list-bullet')
|
||||
->getStateUsing(fn ($record) => $record->lines()->count()),
|
||||
TextEntry::make('error_lines_count')
|
||||
->label('Hibás')
|
||||
->icon('heroicon-o-x-circle')
|
||||
->color('danger')
|
||||
->getStateUsing(fn ($record) => $record->lines()->where('status', 'error')->count()),
|
||||
TextEntry::make('warning_lines_count')
|
||||
->label('Figyelm.')
|
||||
->icon('heroicon-o-exclamation-triangle')
|
||||
->color('warning')
|
||||
->getStateUsing(fn ($record) => $record->lines()->where('status', 'warning')->count()),
|
||||
TextEntry::make('new_lines_count')
|
||||
->label('Új')
|
||||
->icon('heroicon-o-sparkles')
|
||||
->color('info')
|
||||
->getStateUsing(fn ($record) => $record->lines()->where('status', 'new_product')->count()),
|
||||
TextEntry::make('updated_lines_count')
|
||||
->label('Módosult')
|
||||
->icon('heroicon-o-pencil-square')
|
||||
->color('primary')
|
||||
->getStateUsing(fn ($record) => $record->lines()->where('status', 'updated')->count()),
|
||||
]),
|
||||
Grid::make(4)->schema([
|
||||
TextEntry::make('file_meta.preprocess.statistics.data_rows')
|
||||
->label('Adatsorok')
|
||||
->icon('heroicon-o-table-cells'),
|
||||
TextEntry::make('file_meta.preprocess.statistics.column_count')
|
||||
->label('Oszlopok'),
|
||||
TextEntry::make('file_meta.preprocess.file_info.file_size_human')
|
||||
->label('Fájlméret'),
|
||||
TextEntry::make('file_meta.preprocess.duration_seconds')
|
||||
->label('Idő')
|
||||
->suffix(' mp'),
|
||||
])
|
||||
->extraAttributes(['class' => 'mt-4 border-t pt-4']),
|
||||
])
|
||||
->visible(fn ($record) => $record->lines()->exists() || !empty($record->file_meta['preprocess'] ?? [])),
|
||||
|
||||
Section::make('Feldolgozási folyamat (Workflow)')
|
||||
->collapsible()
|
||||
->collapsed(fn ($record) => $record->status !== PricelistFileStatusEnum::inprogress)
|
||||
->schema([
|
||||
RepeatableEntry::make('workflow_steps')
|
||||
->label(false)
|
||||
->schema([
|
||||
TextEntry::make('label')
|
||||
->label('Lépés')
|
||||
->weight('bold')
|
||||
->inlineLabel(),
|
||||
TextEntry::make('status')
|
||||
->label('Állapot')
|
||||
->badge()
|
||||
->inlineLabel()
|
||||
->formatStateUsing(fn (string $state): string => match ($state) {
|
||||
'pending' => 'várakozik',
|
||||
'inprogress' => 'folyamatban',
|
||||
'completed' => 'kész',
|
||||
'failed' => 'hiba',
|
||||
default => $state,
|
||||
})
|
||||
->color(fn (string $state): string => match ($state) {
|
||||
'pending' => 'gray',
|
||||
'inprogress' => 'info',
|
||||
'completed' => 'success',
|
||||
'failed' => 'danger',
|
||||
default => 'gray',
|
||||
})
|
||||
->icon(fn (string $state): string => match ($state) {
|
||||
'pending' => 'heroicon-o-clock',
|
||||
'inprogress' => 'heroicon-o-arrow-path',
|
||||
'completed' => 'heroicon-o-check-circle',
|
||||
'failed' => 'heroicon-o-x-circle',
|
||||
default => 'heroicon-o-question-mark-circle',
|
||||
}),
|
||||
])
|
||||
->columns(2)
|
||||
->columnSpanFull(),
|
||||
]),
|
||||
|
||||
Section::make('Előfeldolgozás eredménye')
|
||||
->schema([
|
||||
Grid::make(4)->schema([
|
||||
TextEntry::make('file_meta.preprocess.statistics.data_rows')
|
||||
->label('Adatsorok')
|
||||
->icon('heroicon-o-table-cells'),
|
||||
TextEntry::make('file_meta.preprocess.statistics.column_count')
|
||||
->label('Oszlopok száma'),
|
||||
TextEntry::make('file_meta.preprocess.file_info.file_size_human')
|
||||
->label('Fájlméret'),
|
||||
TextEntry::make('file_meta.preprocess.duration_seconds')
|
||||
->label('Feldolgozási idő')
|
||||
->suffix(' mp'),
|
||||
]),
|
||||
RepeatableEntry::make('file_meta.preprocess.warnings')
|
||||
->label('Figyelmeztetések')
|
||||
->label('Előfeldolgozási figyelmeztetések')
|
||||
->schema([
|
||||
TextEntry::make('message')->label('Leírás')->color('warning'),
|
||||
TextEntry::make('severity')->label('Súlyosság')->badge()->color('warning'),
|
||||
])
|
||||
->visible(fn ($record) => !empty($record->file_meta['preprocess']['warnings'] ?? [])),
|
||||
|
||||
RepeatableEntry::make('file_meta.preprocess.errors')
|
||||
->label('Hibák')
|
||||
->label('Előfeldolgozási hibák')
|
||||
->schema([
|
||||
TextEntry::make('message')->label('Leírás')->color('danger'),
|
||||
TextEntry::make('severity')->label('Súlyosság')->badge()->color('danger'),
|
||||
])
|
||||
->visible(fn ($record) => !empty($record->file_meta['preprocess']['errors'] ?? [])),
|
||||
])
|
||||
->visible(fn ($record) => !empty($record->file_meta['preprocess'] ?? [])),
|
||||
|
||||
Section::make('Feldolgozási folyamat (Workflow)')
|
||||
->schema([
|
||||
RepeatableEntry::make('workflow_steps')
|
||||
->label(false)
|
||||
->schema([
|
||||
TextEntry::make('label')
|
||||
->label('Lépés')
|
||||
->weight('bold')
|
||||
->inlineLabel(),
|
||||
TextEntry::make('status')
|
||||
->label('Állapot')
|
||||
->badge()
|
||||
->inlineLabel()
|
||||
->formatStateUsing(fn (string $state): string => match ($state) {
|
||||
'pending' => 'várakozik',
|
||||
'inprogress' => 'folyamatban',
|
||||
'completed' => 'kész',
|
||||
'failed' => 'hiba',
|
||||
default => $state,
|
||||
})
|
||||
->color(fn (string $state): string => match ($state) {
|
||||
'pending' => 'gray',
|
||||
'inprogress' => 'info',
|
||||
'completed' => 'success',
|
||||
'failed' => 'danger',
|
||||
default => 'gray',
|
||||
})
|
||||
->icon(fn (string $state): string => match ($state) {
|
||||
'pending' => 'heroicon-o-clock',
|
||||
'inprogress' => 'heroicon-o-arrow-path',
|
||||
'completed' => 'heroicon-o-check-circle',
|
||||
'failed' => 'heroicon-o-x-circle',
|
||||
default => 'heroicon-o-question-mark-circle',
|
||||
}),
|
||||
])
|
||||
->columns(2)
|
||||
->columnSpanFull(),
|
||||
]),
|
||||
]),
|
||||
]),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user