{{-- Aba Objetivos: mesma disposição da aba Projetos (total/per página | ações; busca acima da tabela) --}}
@php
    $ppModuleRoute = $ppModuleRoute ?? 'admin.projetosProgramas.index';
    $tk = $ppTabQueryKey ?? 'tab';
    $permissionDetailsObjetivos = auth()->user()?->getPermissaoDetalhes('GERENCIADOR_DE_PROJETOS_E_PROGRAMAS');
    $canAddObjetivos = (bool) ($permissionDetailsObjetivos['adicionar'] ?? false);
    $canEditObjetivo = (bool) ($permissionDetailsObjetivos['editar'] ?? false);
    $ppObjetivoCancelQuery = array_merge(request()->except(['pp_objetivo']), [$tk => 'objetivos']);
@endphp

@if(!empty($ppObjetivoForm) && empty($painelDashboard))
    <div class="card shadow-sm mb-3" id="pp-objetivo-form-card">
        <div class="card-header d-flex flex-wrap justify-content-between align-items-center gap-2">
            <h5 class="mb-0">
                {{ $ppObjetivoForm['mode'] === 'create' ? __('Novo Objetivo') : __('Editar Objetivo') }}
            </h5>
            <a href="{{ route($ppModuleRoute, $ppObjetivoCancelQuery) }}" class="btn btn-outline-secondary btn-sm">
                {{ __('Cancelar') }}
            </a>
        </div>
        <div class="card-body text-start">
            @include('errors.messageFlash')
            <form method="post"
                action="{{ $ppObjetivoForm['mode'] === 'create' ? route('admin.projetosProgramas.objetivos.store') : route('admin.projetosProgramas.objetivos.update', $ppObjetivoForm['objetivo']->id) }}"
                class="text-start">
                @csrf
                @if($ppObjetivoForm['mode'] === 'edit')
                    @method('PUT')
                @endif
                @include('admin.projetosProgramas.objetivos._form', [
                    'objetivo' => $ppObjetivoForm['objetivo'],
                    'ppFormFieldId' => 'pp_objetivo_nome',
                ])
            </form>
        </div>
    </div>
@endif

{{-- Form oculto: enviado pela busca com debounce (parâmetros GET preservados) --}}
<form method="get" action="{{ route($ppModuleRoute) }}" id="ppObjetivosQueryForm" class="d-none" aria-hidden="true">
    <input type="hidden" name="{{ $tk }}" value="objetivos">
    @foreach(request()->except([$tk, 'search_objetivos', 'page_objetivos', 'pp_objetivo']) as $key => $value)
        @if(is_array($value))
            @foreach($value as $v)
                <input type="hidden" name="{{ $key }}[]" value="{{ $v }}">
            @endforeach
        @else
            <input type="hidden" name="{{ $key }}" value="{{ $value }}">
        @endif
    @endforeach
    <input type="hidden" name="search_objetivos" id="searchHiddenObjetivos" value="{{ request('search_objetivos') }}">
</form>

<div class="d-flex flex-wrap justify-content-between align-items-center gap-2 mb-2">
    <div class="d-flex flex-wrap align-items-center gap-3">
        <div class="small text-muted mb-0">
            <strong>{{ __('Total') }}:</strong> {{ $objetivos->total() }} {{ __('registro(s)') }}
            @if($objetivos->total())
                <span class="ms-2">| {{ __('Exibindo') }} {{ $objetivos->firstItem() }}-{{ $objetivos->lastItem() }}</span>
            @endif
        </div>
        <form method="get" action="{{ route($ppModuleRoute) }}" class="d-flex align-items-center gap-1 flex-wrap mb-0" id="pp-per-page-objetivos-form">
            <input type="hidden" name="{{ $tk }}" value="objetivos">
            @foreach(request()->except([$tk, 'per_page_objetivos', 'page_objetivos', 'pp_objetivo']) as $key => $value)
                @if(is_array($value))
                    @foreach($value as $v)
                        <input type="hidden" name="{{ $key }}[]" value="{{ $v }}">
                    @endforeach
                @else
                    <input type="hidden" name="{{ $key }}" value="{{ $value }}">
                @endif
            @endforeach
            <label class="form-label small mb-0 text-muted" for="pp_per_page_objetivos_inline">{{ __('Por página') }}:</label>
            <select name="per_page_objetivos" id="pp_per_page_objetivos_inline" class="form-select form-select-sm w-auto"
                onchange="this.form.submit()" aria-label="{{ __('Registros por página') }}">
                @foreach($perPageOptions as $option)
                    <option value="{{ $option }}" {{ $currentPerPageObjetivos == $option ? 'selected' : '' }}>{{ $option }}</option>
                @endforeach
            </select>
        </form>
    </div>
    <div class="d-flex flex-wrap justify-content-end align-items-center gap-2" role="toolbar"
        aria-label="{{ __('Ações da listagem de objetivos') }}">
        @if($canAddObjetivos && empty($painelDashboard))
            <a href="{{ route($ppModuleRoute, array_merge(request()->query(), [$tk => 'objetivos', 'pp_objetivo' => 'novo'])) }}"
                class="btn btn-primary btn-sm">
                <i class="fa fa-plus me-1" aria-hidden="true"></i> {{ __('Novo Objetivo') }}
            </a>
        @endif
        <a href="{{ route($ppModuleRoute, array_merge(request()->except(['search_objetivos', 'page_objetivos', 'pp_objetivo']), [$tk => 'objetivos'])) }}"
            class="btn btn-outline-secondary btn-sm">
            <i class="fa fa-eraser me-1" aria-hidden="true"></i> {{ __('Limpar') }}
        </a>
    </div>
</div>

<div class="row g-2 mb-2">
    <div class="col-md-12">
        <label class="form-label small" for="searchInputObjetivos">{{ __('Buscar') }}</label>
        <div class="input-group input-group-sm">
            <input type="text" id="searchInputObjetivos" class="form-control" autocomplete="off"
                placeholder="{{ __('Buscar por nome do objetivo') }}"
                value="{{ request('search_objetivos') }}"
                aria-describedby="searchInputObjetivosHelp">
            <button class="btn btn-outline-secondary" type="button" id="clearSearchObjetivos" title="{{ __('Limpar busca') }}">
                <i class="fa fa-times" aria-hidden="true"></i>
            </button>
        </div>
        <span id="searchInputObjetivosHelp" class="visually-hidden">{{ __('Busca por nome; a lista atualiza após digitar.') }}</span>
    </div>
</div>

<div class="table-responsive">
    <table class="table table-sm table-striped table-hover table-bordered mb-2 align-middle">
        <thead class="table-light">
            <tr>
                <th style="width:5%" class="text-center align-middle">#</th>
                <th class="text-center align-middle">{{ __('Nome') }}</th>
                @if(empty($painelDashboard))
                    <th style="width:12%" class="text-center align-middle">{{ __('Criado em') }}</th>
                    <th style="width:12%" class="text-center align-middle">{{ __('Atualizado em') }}</th>
                    <th style="width:18%" class="text-center align-middle">{{ __('Ações') }}</th>
                @endif
            </tr>
        </thead>
        <tbody>
            @php $indexObj = $objetivos->firstItem(); @endphp
            @forelse($objetivos as $objetivo)
                <tr>
                    <td class="small text-center align-middle">{{ $indexObj }}</td>
                    <td class="small text-center align-middle">{{ $objetivo->nome }}</td>
                    @if(empty($painelDashboard))
                        <td class="small text-center align-middle">{{ optional($objetivo->created_at)->format('d/m/Y H:i') }}</td>
                        <td class="small text-center align-middle">{{ optional($objetivo->updated_at)->format('d/m/Y H:i') }}</td>
                        <td class="text-center align-middle">
                            <div class="d-flex justify-content-center gap-2">
                                @if($canEditObjetivo)
                                    <a href="{{ route($ppModuleRoute, array_merge(request()->query(), [$tk => 'objetivos', 'pp_objetivo' => $objetivo->id])) }}"
                                        class="btn btn-sm btn-warning" title="{{ __('Editar') }}">
                                        <i class="fa-solid fa-pen-to-square" aria-hidden="true"></i>
                                    </a>
                                @endif
                                @include('components.buttons._deleteButton', [
                                    'message' => __('* Este objetivo será excluído e esta ação não poderá ser desfeita, deseja continuar?'),
                                    'route' => 'admin.projetosProgramas.objetivos.destroy',
                                    'id' => $objetivo->id,
                                    'title' => __('Excluir'),
                                    'fontawesome' => null,
                                    'permission' => 'GERENCIADOR_DE_PROJETOS_E_PROGRAMAS',
                                ])
                            </div>
                        </td>
                    @endif
                </tr>
                @php $indexObj++; @endphp
            @empty
                <tr>
                    <td colspan="{{ empty($painelDashboard) ? 5 : 2 }}" class="text-center text-muted py-3">
                        {{ __('Nenhum objetivo cadastrado.') }}
                    </td>
                </tr>
            @endforelse
        </tbody>
    </table>
</div>
<div class="d-flex justify-content-center">
    {{ $objetivos->links('pagination::bootstrap-4') }}
</div>
