Files
Blockland-Pelican-Plugin/resources/views/pages/admins-page.blade.php
T
2026-03-20 14:20:43 -07:00

122 lines
6.2 KiB
PHP

<x-filament-panels::page wire:init="loadAdmins">
@if(!$adminsLoaded)
<x-filament::section>
<div class="flex items-center justify-center gap-2 py-12">
<x-filament::loading-indicator class="h-5 w-5 text-gray-400 dark:text-gray-500" />
<span class="text-sm text-gray-500 dark:text-gray-400">{{ trans('blockland-config::blockland-config.loading_admins') }}</span>
</div>
</x-filament::section>
@else
<div class="flex flex-col gap-6">
{{-- Confirmation modal popup --}}
@if($this->confirmingDemote || $this->confirmingRemove)
<div
class="fixed inset-0 z-50 flex items-center justify-center p-4"
role="dialog"
aria-modal="true"
@keydown.escape.window="$wire.cancelConfirm()"
>
<div
class="absolute inset-0 bg-black/50"
wire:click="cancelConfirm"
></div>
<div class="relative z-10 w-full max-w-md rounded-xl bg-white dark:bg-gray-900 shadow-xl dark:ring-1 dark:ring-white/10 p-6 text-center">
@if($this->confirmingDemote)
<p class="text-sm text-gray-700 dark:text-gray-300 mb-8">
{{ trans('blockland-config::blockland-config.admins.confirm_demote', ['bl_id' => $demoteBlId]) }}
</p>
@else
<p class="text-sm text-gray-700 dark:text-gray-300 mb-8">
{{ trans('blockland-config::blockland-config.admins.confirm_remove', ['bl_id' => $this->confirmingRemove['blId'], 'role' => $this->confirmingRemove['list'] === 'super' ? trans('blockland-config::blockland-config.admins.super_admins') : trans('blockland-config::blockland-config.admins.admins')]) }}
</p>
@endif
<div class="flex justify-center gap-3">
<x-filament::button color="gray" outlined icon="tabler-x" wire:click="cancelConfirm">
{{ trans('blockland-config::blockland-config.admins.cancel') }}
</x-filament::button>
@if($this->confirmingDemote)
<x-filament::button color="danger" icon="tabler-user-minus" wire:click="demoteByBlId" wire:loading.attr="disabled">
{{ trans('blockland-config::blockland-config.admins.demote') }}
</x-filament::button>
@else
<x-filament::button color="danger" icon="tabler-user-minus" wire:click="confirmRemoveFromList" wire:loading.attr="disabled">
{{ trans('blockland-config::blockland-config.admins.remove') }}
</x-filament::button>
@endif
</div>
</div>
</div>
@endif
{{-- Add by BL_ID --}}
<x-filament::section :heading="trans('blockland-config::blockland-config.admins.add_by_blid')">
<div class="space-y-6">
<div>
{{ $this->addForm }}
</div>
<div class="mt-8 pt-6">
<x-filament::button icon="tabler-plus" wire:click="addByBlId" wire:loading.attr="disabled">
{{ trans('blockland-config::blockland-config.admins.add') }}
</x-filament::button>
</div>
</div>
</x-filament::section>
{{-- Demote by BL_ID --}}
<x-filament::section
:heading="trans('blockland-config::blockland-config.admins.demote_by_blid')"
:description="trans('blockland-config::blockland-config.admins.demote_by_blid_hint')"
>
<div class="space-y-6">
<div>
{{ $this->demoteForm }}
</div>
<div class="mt-8 pt-6">
<x-filament::button color="danger" icon="tabler-user-minus" wire:click="askConfirmDemote" wire:loading.attr="disabled">
{{ trans('blockland-config::blockland-config.admins.demote') }}
</x-filament::button>
</div>
</div>
</x-filament::section>
{{-- Super Admins --}}
<x-filament::section :heading="trans('blockland-config::blockland-config.admins.super_admins')" collapsible collapsed>
@if(count($this->superAdmins) > 0)
<div class="divide-y divide-transparent dark:divide-white/10">
@foreach($this->superAdmins as $blId)
<div class="flex items-center justify-between py-4 gap-4">
<span class="text-sm text-gray-950 dark:text-white">BL_ID {{ $blId }}</span>
<x-filament::button color="danger" size="sm" icon="tabler-user-minus" wire:click="askRemoveFromList('{{ $blId }}', 'super')" wire:loading.attr="disabled">
{{ trans('blockland-config::blockland-config.admins.remove') }}
</x-filament::button>
</div>
@endforeach
</div>
@else
<p class="text-sm text-gray-500 dark:text-gray-400">{{ trans('blockland-config::blockland-config.admins.no_super_admins') }}</p>
@endif
</x-filament::section>
{{-- Admins --}}
<x-filament::section :heading="trans('blockland-config::blockland-config.admins.admins')" collapsible collapsed>
@if(count($this->admins) > 0)
<div class="divide-y divide-transparent dark:divide-white/10">
@foreach($this->admins as $blId)
<div class="flex items-center justify-between py-4 gap-4">
<span class="text-sm text-gray-950 dark:text-white">BL_ID: {{ $blId }}</span>
<x-filament::button color="danger" size="sm" icon="tabler-user-minus" wire:click="askRemoveFromList('{{ $blId }}', 'admin')" wire:loading.attr="disabled">
{{ trans('blockland-config::blockland-config.admins.remove') }}
</x-filament::button>
</div>
@endforeach
</div>
@else
<p class="text-sm text-gray-500 dark:text-gray-400">{{ trans('blockland-config::blockland-config.admins.no_admins') }}</p>
@endif
</x-filament::section>
</div>
@endif
</x-filament-panels::page>