mirror of
https://github.com/sp-tarkov/forge.git
synced 2025-02-13 04:30:41 -05:00
Mostly finished with the profile and navigation work. Buttons elsewhere on the site still need to be restyled. Search needs to be redone with the recent navigation bar changes.
170 lines
6.9 KiB
PHP
170 lines
6.9 KiB
PHP
<div>
|
|
<!-- Generate API Token -->
|
|
<x-form-section submit="createApiToken">
|
|
<x-slot name="title">
|
|
{{ __('Create API Token') }}
|
|
</x-slot>
|
|
|
|
<x-slot name="description">
|
|
{{ __('API tokens allow third-party services to authenticate with our application on your behalf.') }}
|
|
</x-slot>
|
|
|
|
<x-slot name="form">
|
|
<!-- Token Name -->
|
|
<div class="col-span-6 sm:col-span-4">
|
|
<x-label for="name" value="{{ __('Token Name') }}" />
|
|
<x-input id="name" type="text" class="mt-1 block w-full" wire:model="createApiTokenForm.name" autofocus />
|
|
<x-input-error for="name" class="mt-2" />
|
|
</div>
|
|
|
|
<!-- Token Permissions -->
|
|
@if (Laravel\Jetstream\Jetstream::hasPermissions())
|
|
<div class="col-span-6">
|
|
<x-label for="permissions" value="{{ __('Permissions') }}" />
|
|
|
|
<div class="mt-2 grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
@foreach (Laravel\Jetstream\Jetstream::$permissions as $permission)
|
|
<label class="flex items-center">
|
|
<x-checkbox wire:model="createApiTokenForm.permissions" :value="$permission"/>
|
|
<span class="ms-2 text-sm text-gray-600 dark:text-gray-400">{{ $permission }}</span>
|
|
</label>
|
|
@endforeach
|
|
</div>
|
|
</div>
|
|
@endif
|
|
</x-slot>
|
|
|
|
<x-slot name="actions">
|
|
<x-action-message class="me-3" on="created">
|
|
{{ __('Created.') }}
|
|
</x-action-message>
|
|
|
|
<x-button>
|
|
{{ __('Create') }}
|
|
</x-button>
|
|
</x-slot>
|
|
</x-form-section>
|
|
|
|
@if ($this->user->tokens->isNotEmpty())
|
|
<x-section-border />
|
|
|
|
<!-- Manage API Tokens -->
|
|
<div class="mt-10 sm:mt-0">
|
|
<x-action-section>
|
|
<x-slot name="title">
|
|
{{ __('Manage API Tokens') }}
|
|
</x-slot>
|
|
|
|
<x-slot name="description">
|
|
{{ __('You may delete any of your existing tokens if they are no longer needed.') }}
|
|
</x-slot>
|
|
|
|
<!-- API Token List -->
|
|
<x-slot name="content">
|
|
<div class="space-y-6">
|
|
@foreach ($this->user->tokens->sortBy('name') as $token)
|
|
<div class="flex items-center justify-between">
|
|
<div class="break-all text-gray-900 dark:text-gray-100">
|
|
{{ $token->name }}
|
|
</div>
|
|
|
|
<div class="flex items-center ms-2">
|
|
@if ($token->last_used_at)
|
|
<div class="text-sm text-gray-700 dark:text-gray-300">
|
|
{{ __('Last used') }} {{ $token->last_used_at->diffForHumans() }}
|
|
</div>
|
|
@endif
|
|
|
|
@if (Laravel\Jetstream\Jetstream::hasPermissions())
|
|
<button class="cursor-pointer ms-6 text-sm text-gray-700 dark:text-gray-300 underline" wire:click="manageApiTokenPermissions({{ $token->id }})">
|
|
{{ __('Permissions') }}
|
|
</button>
|
|
@endif
|
|
|
|
<button class="cursor-pointer ms-6 text-sm text-red-500" wire:click="confirmApiTokenDeletion({{ $token->id }})">
|
|
{{ __('Delete') }}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
</div>
|
|
</x-slot>
|
|
</x-action-section>
|
|
</div>
|
|
@endif
|
|
|
|
<!-- Token Value Modal -->
|
|
<x-dialog-modal wire:model.live="displayingToken">
|
|
<x-slot name="title">
|
|
{{ __('API Token') }}
|
|
</x-slot>
|
|
|
|
<x-slot name="content">
|
|
<div>
|
|
{{ __('Please copy your new API token. For your security, it won\'t be shown again.') }}
|
|
</div>
|
|
|
|
<x-input x-ref="plaintextToken" type="text" readonly :value="$plainTextToken"
|
|
class="mt-4 px-4 py-2 rounded font-mono text-sm w-full break-all"
|
|
autofocus autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
|
|
@showing-token-modal.window="setTimeout(() => $refs.plaintextToken.select(), 250)"
|
|
/>
|
|
</x-slot>
|
|
|
|
<x-slot name="footer">
|
|
<x-secondary-button wire:click="$set('displayingToken', false)" wire:loading.attr="disabled">
|
|
{{ __('Close') }}
|
|
</x-secondary-button>
|
|
</x-slot>
|
|
</x-dialog-modal>
|
|
|
|
<!-- API Token Permissions Modal -->
|
|
<x-dialog-modal wire:model.live="managingApiTokenPermissions">
|
|
<x-slot name="title">
|
|
{{ __('API Token Permissions') }}
|
|
</x-slot>
|
|
|
|
<x-slot name="content">
|
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
@foreach (Laravel\Jetstream\Jetstream::$permissions as $permission)
|
|
<label class="flex items-center">
|
|
<x-checkbox wire:model="updateApiTokenForm.permissions" :value="$permission"/>
|
|
<span class="ms-2 text-sm text-gray-600 dark:text-gray-400">{{ $permission }}</span>
|
|
</label>
|
|
@endforeach
|
|
</div>
|
|
</x-slot>
|
|
|
|
<x-slot name="footer">
|
|
<x-secondary-button wire:click="$set('managingApiTokenPermissions', false)" wire:loading.attr="disabled">
|
|
{{ __('Cancel') }}
|
|
</x-secondary-button>
|
|
|
|
<x-button class="ms-3" wire:click="updateApiToken" wire:loading.attr="disabled">
|
|
{{ __('Save') }}
|
|
</x-button>
|
|
</x-slot>
|
|
</x-dialog-modal>
|
|
|
|
<!-- Delete Token Confirmation Modal -->
|
|
<x-confirmation-modal wire:model.live="confirmingApiTokenDeletion">
|
|
<x-slot name="title">
|
|
{{ __('Delete API Token') }}
|
|
</x-slot>
|
|
|
|
<x-slot name="content">
|
|
{{ __('Are you sure you would like to delete this API token?') }}
|
|
</x-slot>
|
|
|
|
<x-slot name="footer">
|
|
<x-secondary-button wire:click="$toggle('confirmingApiTokenDeletion')" wire:loading.attr="disabled">
|
|
{{ __('Cancel') }}
|
|
</x-secondary-button>
|
|
|
|
<x-danger-button class="ms-3" wire:click="deleteApiToken" wire:loading.attr="disabled">
|
|
{{ __('Delete') }}
|
|
</x-danger-button>
|
|
</x-slot>
|
|
</x-confirmation-modal>
|
|
</div>
|