Compare commits

...

3 Commits

Author SHA1 Message Date
33d7069708 param => params fix 2024-12-27 12:28:49 +03:00
8063ec0735 filter fix 2024-12-23 16:30:18 +03:00
d7e9e06925 fix filter submit button 2024-12-23 15:24:15 +03:00

View File

@ -9,6 +9,7 @@ use Itguild\Tables\ActionColumn\ViewActionColumn;
use Itguild\Tables\Filter\InputTextFilter; use Itguild\Tables\Filter\InputTextFilter;
use Itguild\Tables\traits\CreateParams; use Itguild\Tables\traits\CreateParams;
use JetBrains\PhpStorm\NoReturn; use JetBrains\PhpStorm\NoReturn;
use kernel\helpers\Debug;
class ListJsonTable extends JasonTable class ListJsonTable extends JasonTable
{ {
@ -18,6 +19,7 @@ class ListJsonTable extends JasonTable
private int $count = 0; private int $count = 0;
private string $baseUrl; private string $baseUrl;
private string $searchPrefix;
private array $data; private array $data;
private bool $pagination = true; private bool $pagination = true;
@ -35,6 +37,7 @@ class ListJsonTable extends JasonTable
$this->json = $json; $this->json = $json;
$this->data = json_decode($this->json, true); $this->data = json_decode($this->json, true);
$this->baseUrl = $this->data['meta']['baseUrl'] ?? ''; $this->baseUrl = $this->data['meta']['baseUrl'] ?? '';
$this->searchPrefix = $this->data['meta']['searchPrefix'] ?? '/search';
$this->pagination = $this->data['meta']['pagination'] ?? true; $this->pagination = $this->data['meta']['pagination'] ?? true;
$this->showActionColumn = $this->data['meta']['showActionColumn'] ?? true; $this->showActionColumn = $this->data['meta']['showActionColumn'] ?? true;
$this->showFiltersRow = $this->data['meta']['showFiltersRow'] ?? true; $this->showFiltersRow = $this->data['meta']['showFiltersRow'] ?? true;
@ -73,8 +76,8 @@ class ListJsonTable extends JasonTable
} }
if ($this->showFiltersRow) { if ($this->showFiltersRow) {
$this->getFilters($columnKeys); $this->getFilters($columnKeys);
$this->html .= "</thead>";
} }
$this->html .= "</thead>";
} }
public function createTbody(): void public function createTbody(): void
@ -270,12 +273,14 @@ class ListJsonTable extends JasonTable
private function getFilters(array $columnKeys): void private function getFilters(array $columnKeys): void
{ {
$this->html .= "<tr><form action='$this->baseUrl/search'>"; $this->html .= "<tr><form action='$this->baseUrl$this->searchPrefix'>";
$flag = false;
foreach ($columnKeys as $key) { foreach ($columnKeys as $key) {
if ($this->issetFilter($key)) { if ($this->issetFilter($key)) {
$flag = true;
$filter = $this->getCurrentFilter($key); $filter = $this->getCurrentFilter($key);
$params = [ $params = [
'param' => $filter['param'] ?? '', 'params' => $filter['params'] ?? '',
'name' => $key, 'name' => $key,
'value' => $filter['value'] ?? '', 'value' => $filter['value'] ?? '',
]; ];
@ -290,7 +295,8 @@ class ListJsonTable extends JasonTable
$this->html .= "<td></td>"; $this->html .= "<td></td>";
} }
} }
if ($this->showActionColumn) { if ($flag) {
$this->showActionColumn = true;
$this->html .= "<td><input class='btn btn-primary' type='submit' style='width: 150px' value='Применить'></td>"; $this->html .= "<td><input class='btn btn-primary' type='submit' style='width: 150px' value='Применить'></td>";
} }
$this->html .= "</form></tr>"; $this->html .= "</form></tr>";