From 992321ce7531910d5b554e9f47db4a0ebcff9278 Mon Sep 17 00:00:00 2001 From: Shivendra Date: Fri, 19 Jul 2024 09:55:14 +0530 Subject: [PATCH] Update Role datagrid --- .../src/DataGrids/Setting/RoleDataGrid.php | 76 +++++++++++-------- .../Controllers/Setting/RoleController.php | 7 +- .../Admin/src/Resources/lang/en/app.php | 22 +++++- .../views/settings/roles/index.blade.php | 65 ++++++++++------ 4 files changed, 108 insertions(+), 62 deletions(-) diff --git a/packages/Webkul/Admin/src/DataGrids/Setting/RoleDataGrid.php b/packages/Webkul/Admin/src/DataGrids/Setting/RoleDataGrid.php index 997e10f04..a2352d468 100644 --- a/packages/Webkul/Admin/src/DataGrids/Setting/RoleDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/Setting/RoleDataGrid.php @@ -3,19 +3,15 @@ namespace Webkul\Admin\DataGrids\Setting; use Illuminate\Support\Facades\DB; -use Webkul\Admin\Traits\ProvideDropdownOptions; -use Webkul\UI\DataGrid\DataGrid; +use Webkul\DataGrid\DataGrid; +use Illuminate\Database\Query\Builder; class RoleDataGrid extends DataGrid { - use ProvideDropdownOptions; - /** * Prepare query builder. - * - * @return void */ - public function prepareQueryBuilder() + public function prepareQueryBuilder(): Builder { $queryBuilder = DB::table('roles') ->addSelect( @@ -26,67 +22,81 @@ public function prepareQueryBuilder() ); $this->addFilter('id', 'roles.id'); + $this->addFilter('name', 'roles.name'); - $this->setQueryBuilder($queryBuilder); + return $queryBuilder; } /** * Add columns. - * - * @return void */ - public function addColumns() + public function prepareColumns(): void { $this->addColumn([ 'index' => 'id', - 'label' => trans('admin::app.datagrid.id'), + 'label' => trans('admin::app.settings.roles.index.datagrid.id'), 'type' => 'string', - 'sortable' => true, + 'filterable' => true, + 'sortable' => true, ]); $this->addColumn([ 'index' => 'name', - 'label' => trans('admin::app.datagrid.name'), + 'label' => trans('admin::app.settings.roles.index.datagrid.name'), 'type' => 'string', - 'sortable' => true, + 'filterable' => true, + 'sortable' => true, ]); $this->addColumn([ 'index' => 'description', - 'label' => trans('admin::app.datagrid.description'), + 'label' => trans('admin::app.settings.roles.index.datagrid.description'), 'type' => 'string', 'sortable' => false, ]); $this->addColumn([ - 'index' => 'permission_type', - 'label' => trans('admin::app.datagrid.permission_type'), - 'type' => 'dropdown', - 'dropdown_options' => $this->getRoleDropdownOptions(), - 'sortable' => false, + 'index' => 'permission_type', + 'label' => trans('admin::app.settings.roles.index.datagrid.permission-type'), + 'type' => 'string', + 'searchable' => true, + 'filterable' => true, + 'filterable_type' => 'dropdown', + 'filterable_options' => [ + [ + 'label' => trans('admin::app.settings.roles.index.datagrid.custom'), + 'value' => 'custom', + ], + [ + 'label' => trans('admin::app.settings.roles.index.datagrid.all'), + 'value' => 'all', + ], + ], + 'sortable' => true, ]); } - + /** * Prepare actions. - * - * @return void */ - public function prepareActions() + public function prepareActions(): void { $this->addAction([ - 'title' => trans('ui::app.datagrid.edit'), + 'icon' => 'icon-edit', + 'title' => trans('admin::app.settings.roles.index.datagrid.edit'), 'method' => 'GET', - 'route' => 'admin.settings.roles.edit', - 'icon' => 'pencil-icon', + 'url' => function ($row) { + return route('admin.settings.roles.edit', $row->id); + }, ]); $this->addAction([ - 'title' => trans('ui::app.datagrid.delete'), - 'method' => 'DELETE', - 'route' => 'admin.settings.roles.delete', - 'confirm_text' => trans('ui::app.datagrid.mass-action.delete', ['resource' => 'user']), - 'icon' => 'trash-icon', + 'icon' => 'icon-delete', + 'title' => trans('admin::app.settings.roles.index.datagrid.delete'), + 'method' => 'DELETE', + 'url' => function ($row) { + return route('admin.settings.roles.delete', $row->id); + }, ]); } } diff --git a/packages/Webkul/Admin/src/Http/Controllers/Setting/RoleController.php b/packages/Webkul/Admin/src/Http/Controllers/Setting/RoleController.php index fa9e92520..acbf19569 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/Setting/RoleController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Setting/RoleController.php @@ -3,8 +3,11 @@ namespace Webkul\Admin\Http\Controllers\Setting; use Illuminate\Support\Facades\Event; +use Illuminate\Http\JsonResponse; +use Illuminate\View\View; use Webkul\Admin\Http\Controllers\Controller; use Webkul\User\Repositories\RoleRepository; +use Webkul\Admin\DataGrids\Setting\RoleDataGrid; class RoleController extends Controller { @@ -22,10 +25,10 @@ public function __construct(protected RoleRepository $roleRepository) * * @return \Illuminate\View\View */ - public function index() + public function index(): View|JsonResponse { if (request()->ajax()) { - return app(\Webkul\Admin\DataGrids\Setting\RoleDataGrid::class)->toJson(); + return datagrid(RoleDataGrid::class)->process(); } return view('admin::settings.roles.index'); diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index c6699199d..672ffbe5c 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -145,8 +145,26 @@ 'id' => 'ID', 'name' => 'Name', ], - ] - ] + ], + ], + + 'roles' => [ + 'index' => [ + 'create-btn' => 'Create Roles', + 'title' => 'Roles', + 'settings' => 'Settings', + 'datagrid' => [ + 'all' => 'All', + 'custom' => 'Custom', + 'delete' => 'Delete', + 'description' => 'Description', + 'edit' => 'Edit', + 'id' => 'ID', + 'name' => 'Name', + 'permission-type' => 'Permission Type', + ], + ], + ], ], // ----------------------------------------------------------------Old version locale ---------------------------------- diff --git a/packages/Webkul/Admin/src/Resources/views/settings/roles/index.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/roles/index.blade.php index 0133b3216..a70058595 100644 --- a/packages/Webkul/Admin/src/Resources/views/settings/roles/index.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/settings/roles/index.blade.php @@ -1,31 +1,46 @@ -@extends('admin::layouts.master') + + + @lang('admin::app.settings.roles.index.title') + -@section('page_title') - {{ __('admin::app.settings.roles.title') }} -@stop +
+
+
+ -@section('content-wrapper') -
- - + {!! view_render_event('krayin.admin.settings.roles.index.datagrid.before') !!} - @if (bouncer()->hasPermission('settings.user.roles.create')) - - @endif - -
-@stop + + + {!! view_render_event('krayin.admin.settings.roles.index.datagrid.after') !!} +