filter beta
This commit is contained in:
parent
320e1070ba
commit
b7fe32b91d
@ -11,6 +11,7 @@
|
||||
"perPage": "5",
|
||||
"currentPage": "1",
|
||||
"showActionColumn": true,
|
||||
"filter": true,
|
||||
"total": 10,
|
||||
"paginationPrefix": "/page",
|
||||
"params": {"class": "table table-bordered", "border": "1"}
|
||||
|
47
src/Filter.php
Normal file
47
src/Filter.php
Normal file
@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Itguild\Tables;
|
||||
|
||||
class Filter
|
||||
{
|
||||
private array $columnsForFilter;
|
||||
private string $html = "";
|
||||
private string $baseUrl;
|
||||
|
||||
public function __construct(array $columns, string $baseUrl)
|
||||
{
|
||||
$this->columnsForFilter = $columns;
|
||||
$this->baseUrl = $baseUrl;
|
||||
}
|
||||
|
||||
public function create(): void
|
||||
{
|
||||
$this->html = str_replace('{action_link}', $this->baseUrl, $this->getTemplate());
|
||||
$this->html = str_replace('{column}', 'id', $this->html);
|
||||
}
|
||||
|
||||
public function render(): void
|
||||
{
|
||||
echo $this->html;
|
||||
}
|
||||
|
||||
public function fetch(): string
|
||||
{
|
||||
return $this->html;
|
||||
}
|
||||
|
||||
public function getColumnsForFilter(): array
|
||||
{
|
||||
return $this->columnsForFilter;
|
||||
}
|
||||
|
||||
public function getTemplate(): string
|
||||
{
|
||||
return '<nav aria-label="Filters example">
|
||||
<form action="{action_link}">
|
||||
<input type="text" name="{column}">
|
||||
|
||||
|
||||
</nav>';
|
||||
}
|
||||
}
|
@ -26,6 +26,7 @@ class ListJsonTable
|
||||
|
||||
private bool $pagination = true;
|
||||
private bool $showActionColumn = true;
|
||||
private bool $filter = true;
|
||||
|
||||
private array $actionsArray = [];
|
||||
private array $customActionsArray = [];
|
||||
@ -39,6 +40,7 @@ class ListJsonTable
|
||||
$this->baseUrl = $this->data['meta']['baseUrl'] ?? '';
|
||||
$this->pagination = $this->data['meta']['pagination'] ?? true;
|
||||
$this->showActionColumn = $this->data['meta']['showActionColumn'] ?? true;
|
||||
$this->filter = $this->data['meta']['filter'] ?? true;
|
||||
$this->beforePrintHook = function () {
|
||||
};
|
||||
$this->afterPrintHook = function () {
|
||||
@ -86,6 +88,10 @@ class ListJsonTable
|
||||
{
|
||||
if ($this->data['data']) {
|
||||
|
||||
// if($this->filter)
|
||||
// {
|
||||
//
|
||||
// }
|
||||
$this->count = $this->data["meta"]["perPage"] * ($this->data['meta']["currentPage"] - 1);
|
||||
foreach ($this->data['data'] as $row) {
|
||||
$this->html .= "<tr>";
|
||||
|
@ -17,8 +17,6 @@ class Pagination
|
||||
|
||||
private string $baseUrl;
|
||||
|
||||
// public function __construct($countItem, $perPage, $currentPage, $baseUrl)
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
@ -59,11 +57,6 @@ class Pagination
|
||||
return $this->html;
|
||||
}
|
||||
|
||||
public function hookBefore(): void
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private function getTemplate(): string
|
||||
{
|
||||
return '<nav aria-label="Page navigation example">
|
||||
|
Loading…
Reference in New Issue
Block a user