<?php

/**
 * @var \Illuminate\Database\Eloquent\Collection $users
 * @var int $page_id
 */

use app\models\User;
use app\tables\columns\UserDeleteActionColumn;
use app\tables\columns\UserEditActionColumn;
use app\tables\columns\UserViewActionColumn;
use Itguild\Tables\ListJsonTable;
use kernel\IGTabel\btn\PrimaryBtn;
use kernel\IGTabel\ListJsonTableEloquentCollection;

$perPage = 3;
$chunks = $users->forPage($page_id, $perPage);
$dataProvider = new ListJsonTableEloquentCollection($chunks, [
    'model' => User::class,
    'perPage' => 5,
    'params' => ["class" => "table table-bordered", "border" => "2"],
    'baseUrl' => "/admin/user",
]);
$table = new ListJsonTable($dataProvider->getJson());
$table->beforePrint(function () {
    return PrimaryBtn::create("Создать", "/admin/user/create")->fetch();
    //return (new PrimaryBtn("Создать", "/admin/user/create"))->fetch();
});
$table->afterPrint(function () use ($page_id, $users, $perPage) {
    $pagination = new \Itguild\Tables\Pagination($users->count(), $perPage, $page_id, "/admin/user/page");
    $pagination->create();
    return $pagination->fetch();
});
$table->addAction(UserViewActionColumn::class);
$table->addAction(UserEditActionColumn::class);
$table->addAction(UserDeleteActionColumn::class);
$table->create();
$table->render();