@component('v2-cms::components.box', ['title' => 'Gestão de Módulos (Feature Flags)'])

Ative ou desative módulos do sistema. Módulos desativados têm seus menus ocultados no CMS e suas rotas bloqueadas. As configurações não são perdidas ao desativar.

@php // ─── Ícones por grupo (estrutural — grupos vêm dos diretórios físicos) ─── $groupIcons = [ 'PUBLICACOES' => 'bi-newspaper', 'INSTITUCIONAL' => 'bi-buildings', 'INFRAESTRUTURA' => 'bi-shield-lock-fill', 'CONTEUDO' => 'bi-file-earmark-text', 'SISTEMA' => 'bi-gear-wide-connected', 'LAYOUTS' => 'bi-grid-1x2-fill', 'API' => 'bi-code-square', 'RELACIONAMENTOS'=> 'bi-people', 'UTILITARIOS' => 'bi-tools', 'ATOSOFICIAIS' => 'bi-file-text', 'SUPPORT' => 'bi-wrench', ]; // ─── Filtra e agrupa ─── $groups = []; foreach ($modules as $mod) { // Nunca exibe módulos do grupo SUPPORT if (strtoupper($mod['group']) === 'SUPPORT') { continue; } // Pula módulos sem grupo definido if ($mod['group'] === 'OUTROS' || empty($mod['group'])) { continue; } $groups[$mod['group']][] = $mod; } ksort($groups); @endphp {{-- ═══════════════════════════════════════════════════════════════ Grupos de Módulos ═══════════════════════════════════════════════════════════════ --}} @foreach($groups as $group => $groupModules) @php $groupSlug = str_slug($group); $groupIcon = $groupIcons[$group] ?? 'bi-box-seam'; $activeCount = count(array_filter($groupModules, function ($m) { return $m['active']; })); @endphp
{{-- Cabeçalho do grupo --}}
{{ $group }}
{{ $activeCount }}/{{ count($groupModules) }} ativos
{{-- Cards de módulos --}}
@foreach($groupModules as $mod) @php $isActive = $mod['active']; $modIcon = $mod['icon'] ?? $groupIcon; $desc = $mod['description'] ?? 'Módulo do sistema.'; @endphp
{{-- Ícone --}}
{{-- Informações --}}
{{ $mod['title'] }} {{ $mod['name'] }}

{{ $desc }}

{{-- Switch --}}
@endforeach
@endforeach {{-- ═══════════════════════════════════════════════════════════════ Informações ═══════════════════════════════════════════════════════════════ --}} @endcomponent {{-- ═══════════════════════════════════════════════════════════════ Modal de Confirmação — renderizado no nível via @push('modals') ═══════════════════════════════════════════════════════════════ --}} @push('modals') @endpush {{-- ═══════════════════════════════════════════════════════════════ JavaScript — Modal de Confirmação + AJAX ═══════════════════════════════════════════════════════════════ --}} @push('js') @endpush @push('styles') @endpush