refactor: streamline Excel export actions for Issue Management and Media Monitoring, and enhance table configurations for better clarity.
This commit is contained in:
parent
e4e9d1d920
commit
734b5fad87
@ -84,18 +84,13 @@ public function registerEvents(): array
|
||||
$sheet = $event->sheet->getDelegate();
|
||||
$lastColumn = 'K'; // Based on column count (A-K)
|
||||
|
||||
// Merge Title Row
|
||||
// Merge Title Row
|
||||
$sheet->mergeCells("A1:{$lastColumn}1");
|
||||
|
||||
// Alignment and Wrap Text
|
||||
$sheet->getStyle("A2:{$lastColumn}".$sheet->getHighestRow())
|
||||
->getAlignment()
|
||||
->setVertical(Alignment::VERTICAL_TOP)
|
||||
->setWrapText(true);
|
||||
|
||||
// Ensure data rows auto-expand to fit wrapped text ("jadi 2 row")
|
||||
// We start from row 3 (after Title and Header)
|
||||
for ($i = 3; $i <= $sheet->getHighestRow(); $i++) {
|
||||
$sheet->getRowDimension($i)->setRowHeight(-1);
|
||||
}
|
||||
|
||||
@ -2,9 +2,11 @@
|
||||
|
||||
namespace App\Filament\Resources\Monitoring\IssueManagements\Pages;
|
||||
|
||||
use App\Filament\Exports\IssueManagementExcelExport;
|
||||
use App\Filament\Resources\Monitoring\IssueManagements\IssueManagementResource;
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
use pxlrbt\FilamentExcel\Actions\ExportAction;
|
||||
|
||||
class ListIssueManagements extends ListRecords
|
||||
{
|
||||
@ -17,6 +19,14 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah'),
|
||||
|
||||
ExportAction::make()
|
||||
->exports([
|
||||
IssueManagementExcelExport::make()
|
||||
->fromTable(),
|
||||
])
|
||||
->color('success')
|
||||
->icon(null),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,7 +10,6 @@
|
||||
use App\Filament\Actions\Cheerful\RestoreAction;
|
||||
use App\Filament\Actions\DefaultBulkActions;
|
||||
use App\Filament\Columns\TimestampColumns;
|
||||
use App\Filament\Exports\IssueManagementExcelExport;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Forms\Components\DatePicker;
|
||||
use Filament\Forms\Components\Select;
|
||||
@ -23,7 +22,6 @@
|
||||
use Filament\Tables\Filters\TrashedFilter;
|
||||
use Filament\Tables\Table;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use pxlrbt\FilamentExcel\Actions\Tables\ExportAction;
|
||||
|
||||
class IssueManagementTable
|
||||
{
|
||||
@ -179,23 +177,22 @@ public static function configure(Table $table): Table
|
||||
->query(function (Builder $query, array $data): Builder {
|
||||
$type = $data['date_type'] ?? null;
|
||||
|
||||
// Filtering based on mediaMonitoring.release_date relationship
|
||||
$query->whereHas('mediaMonitoring', function (Builder $query) use ($type, $data) {
|
||||
$column = 'release_date';
|
||||
return $query->when($type, function (Builder $query) use ($type, $data) {
|
||||
return $query->whereHas('mediaMonitoring', function (Builder $query) use ($type, $data) {
|
||||
$column = 'release_date';
|
||||
|
||||
if ($type === 'date' && ! empty($data['specific_date'])) {
|
||||
$query->whereDate($column, $data['specific_date']);
|
||||
} elseif ($type === 'month' && ! empty($data['month']) && ! empty($data['year'])) {
|
||||
$query->whereMonth($column, $data['month'])
|
||||
->whereYear($column, $data['year']);
|
||||
} elseif ($type === 'year' && ! empty($data['year'])) {
|
||||
$query->whereYear($column, $data['year']);
|
||||
} elseif ($type === 'range' && ! empty($data['start_date']) && ! empty($data['end_date'])) {
|
||||
$query->whereBetween($column, [$data['start_date'], $data['end_date']]);
|
||||
}
|
||||
if ($type === 'date' && ! empty($data['specific_date'])) {
|
||||
$query->whereDate($column, $data['specific_date']);
|
||||
} elseif ($type === 'month' && ! empty($data['month']) && ! empty($data['year'])) {
|
||||
$query->whereMonth($column, $data['month'])
|
||||
->whereYear($column, $data['year']);
|
||||
} elseif ($type === 'year' && ! empty($data['year'])) {
|
||||
$query->whereYear($column, $data['year']);
|
||||
} elseif ($type === 'range' && ! empty($data['start_date']) && ! empty($data['end_date'])) {
|
||||
$query->whereBetween($column, [$data['start_date'], $data['end_date']]);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return $query;
|
||||
}),
|
||||
], FiltersLayout::AboveContentCollapsible)
|
||||
->filtersFormColumns(3)
|
||||
@ -208,13 +205,6 @@ public static function configure(Table $table): Table
|
||||
|
||||
ForceDeleteAction::make(),
|
||||
])
|
||||
->headerActions([
|
||||
ExportAction::make()
|
||||
->exports([
|
||||
IssueManagementExcelExport::make(),
|
||||
])
|
||||
->color('success'),
|
||||
])
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
...DefaultBulkActions::make('Manajemen Isu'),
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Support\Enums\Width;
|
||||
use Filament\Support\Icons\Heroicon;
|
||||
|
||||
class CrawlNewsAction extends Action
|
||||
{
|
||||
@ -18,7 +17,6 @@ protected function setUp(): void
|
||||
parent::setUp();
|
||||
|
||||
$this->label('Crawl Berita')
|
||||
->icon(Heroicon::MagnifyingGlass)
|
||||
->color('slate')
|
||||
->schema([
|
||||
TextInput::make('keyword')
|
||||
|
||||
@ -2,9 +2,12 @@
|
||||
|
||||
namespace App\Filament\Resources\Monitoring\MediaMonitorings\Pages;
|
||||
|
||||
use App\Filament\Exports\MediaMonitoringExcelExport;
|
||||
use App\Filament\Resources\Monitoring\MediaMonitorings\Actions\CrawlNewsAction;
|
||||
use App\Filament\Resources\Monitoring\MediaMonitorings\MediaMonitoringResource;
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
use pxlrbt\FilamentExcel\Actions\ExportAction;
|
||||
|
||||
class ListMediaMonitorings extends ListRecords
|
||||
{
|
||||
@ -17,6 +20,16 @@ protected function getHeaderActions(): array
|
||||
return [
|
||||
CreateAction::make()
|
||||
->label('Tambah'),
|
||||
|
||||
CrawlNewsAction::make('crawlNews'),
|
||||
|
||||
ExportAction::make()
|
||||
->exports([
|
||||
MediaMonitoringExcelExport::make()
|
||||
->fromTable(),
|
||||
])
|
||||
->color('success')
|
||||
->icon(null),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,8 +10,6 @@
|
||||
use App\Filament\Actions\Cheerful\RestoreAction;
|
||||
use App\Filament\Actions\DefaultBulkActions;
|
||||
use App\Filament\Columns\TimestampColumns;
|
||||
use App\Filament\Exports\MediaMonitoringExcelExport;
|
||||
use App\Filament\Resources\Monitoring\MediaMonitorings\Actions\CrawlNewsAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Forms\Components\DatePicker;
|
||||
use Filament\Forms\Components\Select;
|
||||
@ -25,7 +23,6 @@
|
||||
use Filament\Tables\Filters\TrashedFilter;
|
||||
use Filament\Tables\Table;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use pxlrbt\FilamentExcel\Actions\Tables\ExportAction;
|
||||
|
||||
class MediaMonitoringsTable
|
||||
{
|
||||
@ -219,15 +216,6 @@ public static function configure(Table $table): Table
|
||||
|
||||
RestoreAction::make(),
|
||||
])
|
||||
->headerActions([
|
||||
CrawlNewsAction::make('crawlNews'),
|
||||
|
||||
ExportAction::make()
|
||||
->exports([
|
||||
MediaMonitoringExcelExport::make(),
|
||||
])
|
||||
->color('success'),
|
||||
])
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
...DefaultBulkActions::make('Monitoring Media'),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user