1
0
Fork 0
internet-everythings-agricu.../app/Admin/Controllers/AdminRoleController.php

80 lines
3.1 KiB
PHP

<?php
namespace App\Admin\Controllers;
use Slowlyo\OwlAdmin\Renderers\Page;
use Slowlyo\OwlAdmin\Renderers\Form;
use Slowlyo\OwlAdmin\Renderers\Operation;
use Slowlyo\OwlAdmin\Renderers\TableColumn;
use Slowlyo\OwlAdmin\Renderers\TextControl;
use Slowlyo\OwlAdmin\Services\AdminRoleService;
use Slowlyo\OwlAdmin\Renderers\TreeSelectControl;
use Slowlyo\OwlAdmin\Renderers\CheckboxesControl;
use Slowlyo\OwlAdmin\Services\AdminPermissionService;
use Slowlyo\OwlAdmin\Controllers\AdminRoleController as BaseRoleController;
class AdminRoleController extends BaseRoleController
{
public function list(): Page
{
$crud = $this->baseCRUD()
->headerToolbar([
$this->createButton(true, 'lg'),
'bulkActions',
amis('reload')->align('right'),
amis('filter-toggler')->align('right'),
])
->filterTogglable(false)
->columns([
TableColumn::make()->label('ID')->name('id')->sortable(true),
TableColumn::make()->label(__('admin.admin_role.name'))->name('name'),
TableColumn::make()->label(__('admin.admin_role.slug'))->name('slug')->type('tag'),
TableColumn::make()->label(__('admin.created_at'))->name('created_at')->type('datetime')->sortable(true),
TableColumn::make()->label(__('admin.updated_at'))->name('updated_at')->type('datetime')->sortable(true),
Operation::make()->label(__('admin.actions'))->buttons([
$this->rowEditButton(true, 'lg'),
$this->rowDeleteButton()->visibleOn('${slug != "administrator"}'),
]),
]);
return $this->baseList($crud);
}
public function form(): Form
{
return $this->baseForm()->body([
TextControl::make()->label(__('admin.admin_role.name'))->name('name')->required(true)->size('lg'),
TextControl::make()
->label(__('admin.admin_role.slug'))
->name('slug')
->description(__('admin.admin_role.slug_description'))
->required(true)->size('lg'),
CheckboxesControl::make()
->name('permissions')
->label(__('admin.admin_role.permissions'))
->options(AdminPermissionService::make()->getTree())
// ->checkAll(true)
->labelField('name')
->valueField('id')
->joinValues(false)
->extractValue(true)
// TreeSelectControl::make()
// ->name('permissions')
// ->label(__('admin.admin_role.permissions'))
// ->multiple(true)
// ->options(AdminPermissionService::make()->getTree())
// ->searchable(true)
// ->labelField('name')
// ->valueField('id')
// ->autoCheckChildren(false)
// ->joinValues(false)
// ->extractValue(true),
]);
}
public function detail(): Form
{
return $this->baseDetail()->body([]);
}
}