Refactor table components to use GenericTableSettings and remove deprecated classes

This commit is contained in:
David
2025-04-25 01:19:30 -04:00
parent 7466083798
commit 9f12bc28d0
17 changed files with 177 additions and 203 deletions

View File

@@ -3,29 +3,29 @@
namespace App\Tables;
use App\Models\Product;
use App\Tables\Traits\WithColumnFormatter;
use Illuminate\Database\Eloquent\Model;
use Mmt\GenericTable\Components\Column;
use Mmt\GenericTable\Components\ColumnCollection;
use Mmt\GenericTable\Enums\ColumnSettingFlags;
use Mmt\GenericTable\Interfaces\IColumnFilter;
use Mmt\GenericTable\Interfaces\IDragDropReordering;
use Mmt\GenericTable\Interfaces\IGenericTable;
use Mmt\GenericTable\Interfaces\ISingleSelectionFilter;
use Mmt\GenericTable\Support\SelectionFilterSettings;
use Mmt\GenericTable\Support\FilterCollection;
use Mmt\GenericTable\Support\GenericTableSettings;
use Mmt\GenericTable\Support\SingleFilter;
class TableWithDragDropOrdering implements IGenericTable, IDragDropReordering, ISingleSelectionFilter
class TableWithDragDropOrdering implements IGenericTable, IDragDropReordering, IColumnFilter
{
public Model|string $model = Product::class;
public ColumnCollection $columns;
public GenericTableSettings $tableSettings;
public string $orderingColumn = 'order';
public SelectionFilterSettings $singleSelectionFilterSettings;
public FilterCollection $filters;
public bool $useBuilder;
public function __construct()
{
$this->columns = ColumnCollection::make(
$columns = ColumnCollection::make(
new Column('Id'),
new Column('Name'),
new Column('Description'),
@@ -34,7 +34,13 @@ class TableWithDragDropOrdering implements IGenericTable, IDragDropReordering, I
new Column('Order')->withSettings(ColumnSettingFlags::DEFAULT_SORT_DESC)
);
$this->singleSelectionFilterSettings = new SelectionFilterSettings('name');
$this->singleSelectionFilterSettings->add('Make pop', 'ml');
$this->tableSettings = new GenericTableSettings(Product::class, $columns);
$this->filters = new FilterCollection(
SingleFilter::make('name', [
'Yes' => 'yes',
'No' => 'No',
])
);
}
}