@extends('layouts.app') @section('content')
@php $page_name = 'User & Permission > Roles'; $page_number = 0; @endphp @include('layouts.table_top')
{{-- Roles list (left) --}} {{-- Content (right) --}}
@foreach ($items as $key => $role) @php $rolePermNames = $role->permissions->pluck('name')->toArray(); @endphp
{{-- Top bar: Select-all + search (server) + quick filter (client) --}}
@if (!empty($search)) Clear @endif
@csrf {{-- Determine available actions from DB per your fixed $actions order --}} @php /** @var \Illuminate\Support\Collection $grouped [module => Collection] */ /** @var array $actions */ // Only show action headers that exist in at least one module $existingActions = collect($actions) ->filter(function ($act) use ($grouped) { foreach ($grouped as $module => $perms) { if ($perms->firstWhere('name', $module . '-' . $act)) { return true; } } return false; }) ->values(); @endphp
@foreach ($existingActions as $action) @endforeach @forelse ($grouped as $module => $permsInModule) @php // Build map: action => full "module-action" $map = $permsInModule->mapWithKeys(function ( $p, ) use ($module) { $action = \Illuminate\Support\Str::after( $p->name, $module . '-', ); return [$action => $p->name]; }); @endphp @foreach ($existingActions as $action) @endforeach @empty @endforelse
Module {{ $action }}
{{ $module }} @if ($map->has($action)) @php $permName = $map[$action]; @endphp @endif
No permissions found{{ !empty($search) ? ' for "' . $search . '"' : '' }}.
@endforeach
@endsection @push('script') @endpush