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