7 Commits
0.1 ... 0.1.5

Author SHA1 Message Date
85c4a850b1 set action 2024-07-16 13:26:29 +03:00
02ded1a613 some fix 2024-07-16 13:20:48 +03:00
c648bd37b6 edit class column 2024-07-16 13:12:40 +03:00
cf347f1dc2 custom ation column 2024-07-15 17:19:30 +03:00
4bdd883d67 fix to psr4 2024-07-15 16:25:03 +03:00
f9fc6b9f17 tag 2024-07-15 15:54:11 +03:00
338555d62c fix link 2024-07-15 15:49:12 +03:00
9 changed files with 23 additions and 12 deletions

View File

@ -8,8 +8,11 @@ abstract class ActionColumn
protected string $prefix; protected string $prefix;
protected int $id; protected int $id;
public function __construct(string $baseUrl, int $id) public function __construct(string $baseUrl, int $id, string $prefix = '')
{ {
if (!empty($prefix)){
$this->prefix = $prefix;
}
$this->baseUrl = $baseUrl; $this->baseUrl = $baseUrl;
$this->id = $id; $this->id = $id;
} }

View File

@ -4,7 +4,7 @@ namespace Itguild\Tables\ActionColumn;
class DeleteActionColumn extends ActionColumn class DeleteActionColumn extends ActionColumn
{ {
protected string $prefix = "/form-delete/"; protected string $prefix = "/delete/";
public function fetch(): string public function fetch(): string
{ {

View File

@ -5,7 +5,7 @@ namespace Itguild\Tables\ActionColumn;
class EditActionColumn extends ActionColumn class EditActionColumn extends ActionColumn
{ {
protected string $prefix = "/form-edit/"; protected string $prefix = "/edit/";
public function fetch(): string public function fetch(): string
{ {

View File

@ -4,7 +4,7 @@ namespace Itguild\Tables\ActionColumn;
class ViewActionColumn extends ActionColumn class ViewActionColumn extends ActionColumn
{ {
protected string $prefix = "/form-item/"; protected string $prefix = "/view/";
public function fetch(): string public function fetch(): string
{ {

View File

@ -2,6 +2,7 @@
namespace Itguild\Tables; namespace Itguild\Tables;
use Itguild\Tables\ActionColumn\ActionColumn;
use Itguild\Tables\ActionColumn\DeleteActionColumn; use Itguild\Tables\ActionColumn\DeleteActionColumn;
use Itguild\Tables\ActionColumn\EditActionColumn; use Itguild\Tables\ActionColumn\EditActionColumn;
use Itguild\Tables\ActionColumn\ViewActionColumn; use Itguild\Tables\ActionColumn\ViewActionColumn;
@ -21,15 +22,16 @@ class ListJsonTable
private array $data; private array $data;
private array $actionsArray = []; private array $actionsArray = [];
private array $customActionsArray = [];
public function __construct(string $json) public function __construct(string $json)
{ {
$this->beforePrintCell = false; $this->beforePrintCell = false;
$this->beforePrint = function (){}; $this->beforePrint = function () {
};
$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->setActions();
} }
public function beginTable(): void public function beginTable(): void
@ -69,7 +71,7 @@ class ListJsonTable
foreach ($this->data['data'] as $col) { foreach ($this->data['data'] as $col) {
$this->html .= "<tr>"; $this->html .= "<tr>";
$this->count += 1; $this->count += 1;
$this->html .= '<td><a href=' . $this->baseUrl . "/form-item/" . $col["id"] . '>' . $this->count . '</a></td>'; $this->html .= '<td><a href=' . $this->baseUrl . "/" . $col["id"] . '>' . $this->count . '</a></td>';
foreach ($col as $key => $row) { foreach ($col as $key => $row) {
if ($this->issetColumn($key) and $this->is_fillable($key)) { if ($this->issetColumn($key) and $this->is_fillable($key)) {
if ($this->beforePrintCell) { if ($this->beforePrintCell) {
@ -88,6 +90,11 @@ class ListJsonTable
} }
} }
public function addAction(string $actionColumn): void
{
$this->customActionsArray[] = $actionColumn;
}
private function setActions(): void private function setActions(): void
{ {
if (isset($this->data['meta']['actions'])) { if (isset($this->data['meta']['actions'])) {
@ -105,9 +112,10 @@ class ListJsonTable
} }
} }
} }
$this->actionsArray = array_merge($this->actionsArray, $this->customActionsArray);
} }
private function issetColumn($column) private function issetColumn($column): bool
{ {
if (isset($this->data['meta']['columns'])) { if (isset($this->data['meta']['columns'])) {
foreach ($this->data['meta']['columns'] as $key => $currentColumn) { foreach ($this->data['meta']['columns'] as $key => $currentColumn) {
@ -122,12 +130,11 @@ class ListJsonTable
private function is_fillable($column): bool private function is_fillable($column): bool
{ {
if (isset($this->data['meta']['fillable'])){ if (isset($this->data['meta']['fillable'])) {
if (in_array($column, $this->data['meta']['fillable'])) { if (in_array($column, $this->data['meta']['fillable'])) {
return true; return true;
} }
} } else {
else{
return true; return true;
} }
@ -145,8 +152,9 @@ class ListJsonTable
return $actions; return $actions;
} }
public function create() public function create(): void
{ {
$this->setActions();
$this->beginTable(); $this->beginTable();
$this->createThead(); $this->createThead();
$this->createTbody(); $this->createTbody();