Modules

{{-- Header --}}

Modules

Manage your application modules

@can('modules.modules.upload') @endcan
{{-- Upload Panel (Hidden by default) --}} @can('modules.modules.upload') @endcan {{-- Stats Cards --}} @php $total = count($modules); $installed = collect($modules)->where('is_installed', true)->count(); $active = collect($modules)->where('is_active', true)->count(); // Create lookup for installed modules $installedModules = collect($modules)->where('is_active', true)->pluck('alias')->map(fn($a) => strtolower($a))->toArray(); @endphp

Total Modules

{{ $total }}

Active

{{ $active }}

Installed

{{ $installed }}

{{-- Modules Grid --}} @if($total > 0)
@foreach($modules as $module)
{{-- Card Header --}}
{{ strtoupper(substr($module['name'], 0, 1)) }}

{{ $module['name'] }}

{{ $module['alias'] }}

v{{ $module['version'] }}
{{-- Card Body --}}

{{ Str::limit($module['description'] ?? 'No description available', 80) }}

{{-- Show Dependencies with Checkmarks --}} @if(!empty($module['requires']))

Depends on: @foreach($module['requires'] as $req) @php $isInstalled = in_array(strtolower($req), $installedModules); @endphp @if($isInstalled) @else @endif {{ $req }}{{ !$loop->last ? ', ' : '' }} @endforeach

@endif
{{-- Status Badge --}} @if(!$module['is_installed']) Not Installed @elseif($module['is_core']) Core @elseif($module['is_active']) Active @else Inactive @endif {{-- Action Buttons --}}
{{-- NOT INSTALLED: Show Install + Delete --}} @if(!$module['is_installed']) @can('modules.modules.install')
@csrf
@endcan @can('modules.modules.delete')
@csrf @method('DELETE')
@endcan {{-- INSTALLED & ACTIVE --}} @elseif($module['is_active']) {{-- Migrate Button --}}
@csrf
@if(!$module['is_core']) @can('modules.modules.deactivate')
@csrf
@endcan @can('modules.modules.uninstall')
@csrf @method('DELETE')
@endcan @endif {{-- INSTALLED & INACTIVE --}} @else {{-- Migrate Button --}} @can('modules.modules.migrate')
@csrf
@endcan @can('modules.modules.activate')
@csrf
@endcan @if(!$module['is_core']) @can('modules.modules.uninstall')
@csrf @method('DELETE')
@endcan @endif @endif
@endforeach
@else {{-- Empty State --}}

No modules found

Create your first module using the command below

php artisan module:make ModuleName
@endif