123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- <div>
- <!-- Generate API Token -->
- <x-jet-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-jet-label for="name" value="{{ __('Token Name') }}" />
- <x-jet-input id="name" type="text" class="mt-1 block w-full" wire:model.defer="createApiTokenForm.name" autofocus />
- <x-jet-input-error for="name" class="mt-2" />
- </div>
- <!-- Token Permissions -->
- @if (Laravel\Jetstream\Jetstream::hasPermissions())
- <div class="col-span-6">
- <x-jet-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-jet-checkbox wire:model.defer="createApiTokenForm.permissions" :value="$permission"/>
- <span class="ml-2 text-sm text-gray-600">{{ $permission }}</span>
- </label>
- @endforeach
- </div>
- </div>
- @endif
- </x-slot>
- <x-slot name="actions">
- <x-jet-action-message class="mr-3" on="created">
- {{ __('Created.') }}
- </x-jet-action-message>
- <x-jet-button>
- {{ __('Create') }}
- </x-jet-button>
- </x-slot>
- </x-jet-form-section>
- @if ($this->user->tokens->isNotEmpty())
- <x-jet-section-border />
- <!-- Manage API Tokens -->
- <div class="mt-10 sm:mt-0">
- <x-jet-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>
- {{ $token->name }}
- </div>
- <div class="flex items-center">
- @if ($token->last_used_at)
- <div class="text-sm text-gray-400">
- {{ __('Last used') }} {{ $token->last_used_at->diffForHumans() }}
- </div>
- @endif
- @if (Laravel\Jetstream\Jetstream::hasPermissions())
- <button class="cursor-pointer ml-6 text-sm text-gray-400 underline" wire:click="manageApiTokenPermissions({{ $token->id }})">
- {{ __('Permissions') }}
- </button>
- @endif
- <button class="cursor-pointer ml-6 text-sm text-red-500" wire:click="confirmApiTokenDeletion({{ $token->id }})">
- {{ __('Delete') }}
- </button>
- </div>
- </div>
- @endforeach
- </div>
- </x-slot>
- </x-jet-action-section>
- </div>
- @endif
- <!-- Token Value Modal -->
- <x-jet-dialog-modal wire:model="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-jet-input x-ref="plaintextToken" type="text" readonly :value="$plainTextToken"
- class="mt-4 bg-gray-100 px-4 py-2 rounded font-mono text-sm text-gray-500 w-full"
- 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-jet-secondary-button wire:click="$set('displayingToken', false)" wire:loading.attr="disabled">
- {{ __('Close') }}
- </x-jet-secondary-button>
- </x-slot>
- </x-jet-dialog-modal>
- <!-- API Token Permissions Modal -->
- <x-jet-dialog-modal wire:model="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-jet-checkbox wire:model.defer="updateApiTokenForm.permissions" :value="$permission"/>
- <span class="ml-2 text-sm text-gray-600">{{ $permission }}</span>
- </label>
- @endforeach
- </div>
- </x-slot>
- <x-slot name="footer">
- <x-jet-secondary-button wire:click="$set('managingApiTokenPermissions', false)" wire:loading.attr="disabled">
- {{ __('Cancel') }}
- </x-jet-secondary-button>
- <x-jet-button class="ml-2" wire:click="updateApiToken" wire:loading.attr="disabled">
- {{ __('Save') }}
- </x-jet-button>
- </x-slot>
- </x-jet-dialog-modal>
- <!-- Delete Token Confirmation Modal -->
- <x-jet-confirmation-modal wire:model="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-jet-secondary-button wire:click="$toggle('confirmingApiTokenDeletion')" wire:loading.attr="disabled">
- {{ __('Cancel') }}
- </x-jet-secondary-button>
- <x-jet-danger-button class="ml-2" wire:click="deleteApiToken" wire:loading.attr="disabled">
- {{ __('Delete') }}
- </x-jet-danger-button>
- </x-slot>
- </x-jet-confirmation-modal>
- </div>
|