@extends('layouts.admin.app') @php use App\Services\Admin\UserBulkImportService; @endphp @section('title', __('pages/admin/users.title')) @section('content')
{{-- ── Page Header Bar ──────────────────────────────────────────── --}}
{{ __('buttons.attribute.add', ['attribute' => __('pages/admin/users.heading.singular')]) }} {{ __('pages/admin/users.bulk_upload.button') }}
{{-- ── Stats Cards ──────────────────────────────────────────── --}}

{{ __('pages/common.statistics.total', ['resource' => __('pages/admin/users.heading.plural')]) }}

{{ __('pages/common.loading', ['resource' => __('pages/common.statistics.total', ['resource' => __('pages/admin/users.heading.plural')])]) }}

{{ __('pages/common.statistics.active', ['resource' => __('pages/admin/users.heading.plural')]) }}

{{ __('pages/common.loading', ['resource' => __('pages/common.statistics.active', ['resource' => __('pages/admin/users.heading.plural')])]) }}

{{ __('pages/common.statistics.inactive', ['resource' => __('pages/admin/users.heading.plural')]) }}

{{ __('pages/common.loading', ['resource' => __('pages/common.statistics.inactive', ['resource' => __('pages/admin/users.heading.plural')])]) }}

{{ __('pages/common.statistics.new_this_month') }}

{{ __('pages/common.loading', ['resource' => __('pages/common.statistics.new_this_month')]) }}

{{-- ── Search & Filters (shown only when records exist) ──────── --}}
{{-- Search --}}
{{-- Filter Dropdown --}} {{-- Status --}}
{{ __('pages/common.status.label') }}
{{-- Joined Date Range --}}
{{ __('Joined') }}
{{-- Last Login --}}
{{ __('pages/common.last_login.label') }} @foreach($lastLoginFilter as $key => $value) @endforeach
{{-- Reset Filters (shown by initAjaxPartialTable when filters are active) --}}
{{-- Bulk actions (aligned right, shown when rows are selected) --}}
{{ __('buttons.delete') }}
{{-- Skeleton template for initAjaxPartialTable --}} {{-- Empty-state template for initAjaxPartialTable (no data at all) --}} {{-- Table container — always rendered so initAjaxPartialTable initialises tableApi even on zero-data pages; the empty template handles the no-data display. --}}
{{-- ═══════════════════════════════════════════════════════════════ --}} {{-- MODALS --}} {{-- ═══════════════════════════════════════════════════════════════ --}} @include('pages.admin.users.partials.create-modal') @include('pages.admin.users.partials.view-modal') @include('pages.admin.users.partials.edit-modal') @include('pages.admin.users.partials.change-password-modal') @include('pages.admin.users.partials.bulk-upload-modal')
@endsection @push('before-app-js') {!! JsValidator::formRequest('App\Http\Requests\Admin\User\UserManagementRequest', '#create-user-form') !!} {!! JsValidator::formRequest('App\Http\Requests\Admin\User\AdminChangePasswordRequest', '#change-password-form') !!} @vite(['resources/js/admin/user-management.js']) @endpush