mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-02 14:36:17 +00:00
refactoring
This commit is contained in:
@ -25,7 +25,6 @@
|
||||
<x-td>
|
||||
@if($deployment->status != \App\Enums\DeploymentStatus::DEPLOYING)
|
||||
<x-icon-button wire:click="showLog({{ $deployment->id }})" wire:loading.attr="disabled">
|
||||
<x-heroicon-o-eye class="w-6 h-6" />
|
||||
</x-icon-button>
|
||||
@endif
|
||||
</x-td>
|
||||
|
1
resources/views/livewire/broadcast.blade.php
Normal file
1
resources/views/livewire/broadcast.blade.php
Normal file
@ -0,0 +1 @@
|
||||
<div wire:poll.7s></div>
|
@ -22,7 +22,7 @@
|
||||
@include('livewire.cronjobs.partials.status', ['status' => $cronjob->status])
|
||||
<div class="inline">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $cronjob->id }}'; $dispatch('open-modal', 'delete-cronjob')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -33,7 +33,7 @@
|
||||
</x-td>
|
||||
<x-td class="flex w-full justify-end">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $database->id }}'; $dispatch('open-modal', 'delete-database')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</x-td>
|
||||
</tr>
|
||||
|
@ -35,13 +35,13 @@
|
||||
</x-td>
|
||||
<x-td class="flex w-full justify-end">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $databaseUser->id }}'; $dispatch('open-modal', 'delete-database-user')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
<x-icon-button wire:click="viewPassword({{ $databaseUser->id }})">
|
||||
<x-heroicon-o-eye class="w-4 h-4" />
|
||||
View
|
||||
</x-icon-button>
|
||||
<x-icon-button wire:click="showLink({{ $databaseUser->id }})">
|
||||
<x-heroicon-o-link class="w-4 h-4" />
|
||||
Link
|
||||
</x-icon-button>
|
||||
</x-td>
|
||||
</tr>
|
||||
|
@ -22,7 +22,7 @@
|
||||
@include('livewire.firewall.partials.status', ['status' => $rule->status])
|
||||
<div class="inline">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $rule->id }}'; $dispatch('open-modal', 'delete-rule')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -22,7 +22,7 @@
|
||||
<div class="flex items-center">
|
||||
<div class="inline">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $channel->id }}'; $dispatch('open-modal', 'delete-channel')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -16,7 +16,6 @@
|
||||
<x-slot name="trigger">
|
||||
<x-secondary-button>
|
||||
{{ __("Change") }}
|
||||
<x-heroicon-m-chevron-down class="w-4 ml-1" />
|
||||
</x-secondary-button>
|
||||
</x-slot>
|
||||
<x-slot name="content">
|
||||
|
@ -22,10 +22,8 @@
|
||||
<x-slot name="trigger">
|
||||
<x-secondary-button>
|
||||
{{ __("Actions") }}
|
||||
<x-heroicon-m-chevron-down class="w-4 ml-1" />
|
||||
</x-secondary-button>
|
||||
</x-slot>
|
||||
|
||||
<x-slot name="content">
|
||||
{{--<x-dropdown-link class="cursor-pointer">--}}
|
||||
{{-- {{ __("Install Extension") }}--}}
|
||||
|
@ -2,7 +2,6 @@
|
||||
<x-slot name="trigger">
|
||||
<x-primary-button>
|
||||
{{ __("Install") }}
|
||||
<x-heroicon-m-chevron-down class="w-4 ml-1" />
|
||||
</x-primary-button>
|
||||
</x-slot>
|
||||
|
||||
|
@ -22,16 +22,16 @@
|
||||
@include('livewire.queues.partials.status', ['status' => $queue->status])
|
||||
<div class="inline-flex">
|
||||
<x-icon-button wire:click="start({{ $queue }})" wire:loading.attr="disabled">
|
||||
<x-heroicon-o-play class="w-4 h-4" />
|
||||
Resume
|
||||
</x-icon-button>
|
||||
<x-icon-button wire:click="stop({{ $queue }})" wire:loading.attr="disabled">
|
||||
<x-heroicon-o-stop class="w-4 h-4" />
|
||||
Stop
|
||||
</x-icon-button>
|
||||
<x-icon-button wire:click="restart({{ $queue }})" wire:loading.attr="disabled">
|
||||
<x-heroicon-o-arrow-path class="w-4 h-4" />
|
||||
Restart
|
||||
</x-icon-button>
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $queue->id }}'; $dispatch('open-modal', 'delete-queue')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -16,7 +16,7 @@
|
||||
</x-td>
|
||||
<x-td>
|
||||
<x-icon-button wire:click="showLog({{ $log->id }})" wire:loading.attr="disabled">
|
||||
<x-heroicon-o-eye class="w-6 h-6" />
|
||||
View
|
||||
</x-icon-button>
|
||||
</x-td>
|
||||
</tr>
|
||||
|
@ -22,7 +22,7 @@
|
||||
<div class="flex items-center">
|
||||
<div class="inline">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $provider->id }}'; $dispatch('open-modal', 'delete-provider')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -36,7 +36,7 @@
|
||||
<div class="flex items-center justify-between">
|
||||
<div>{{ __("Status") }}</div>
|
||||
<div class="flex items-center">
|
||||
@include('livewire.servers.partials.status', ['status' => $server->status])
|
||||
<livewire:servers.server-status :server="$server" />
|
||||
<div class="inline-flex ml-2">
|
||||
<livewire:server-settings.check-connection :server="$server" />
|
||||
</div>
|
||||
|
@ -27,7 +27,7 @@
|
||||
@include('livewire.server-ssh-keys.partials.status', ['status' => $key->pivot->status])
|
||||
<div class="inline">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $key->id }}'; $dispatch('open-modal', 'delete-key')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -8,7 +8,6 @@
|
||||
<span class="font-bold">{{ $server->progress_step }} ({{ $server->progress }}%)</span>
|
||||
</div>
|
||||
<div class="mt-5 flex items-center justify-center">
|
||||
<x-secondary-button :href="route('servers.logs', ['server' => $server])" class="mr-2">{{ __("View Logs") }}</x-secondary-button>
|
||||
<livewire:servers.delete-server :server="$server" />
|
||||
</div>
|
||||
</x-card>
|
||||
|
@ -1,3 +1,6 @@
|
||||
@php
|
||||
$key = str(file_get_contents(storage_path(config('core.ssh_public_key_name'))))->replace("\n", "");
|
||||
@endphp
|
||||
<div>
|
||||
<div>
|
||||
<div class="rounded-sm border-l-4 border-yellow-500 bg-yellow-100 py-3 px-4 text-yellow-700 dark:bg-yellow-500 dark:bg-opacity-10 dark:text-yellow-500">
|
||||
@ -12,13 +15,12 @@
|
||||
<x-input-label for="pk">
|
||||
{{ __("Run this command on your server as root user") }}
|
||||
</x-input-label>
|
||||
<x-input-label class="cursor-pointer" x-data="{ copied: false }" x-clipboard.raw="{{ config('core.ssh_public_key') }}">
|
||||
<x-input-label class="cursor-pointer" x-data="{ copied: false }" x-clipboard.raw="mkdir -p /root/.ssh && touch /root/.ssh/authorized_keys && echo '{{ $key }}' >> /root/.ssh/authorized_keys">
|
||||
<div x-show="copied" class="flex items-center">
|
||||
{{ __("Copied") }}
|
||||
<x-heroicon-m-check class="ml-1 w-4 text-green-700" />
|
||||
</div>
|
||||
<div x-show="!copied" x-on:click="copied = true; setTimeout(() => {copied = false}, 2000)">{{ __("Copy") }}</div>
|
||||
</x-input-label>
|
||||
</div>
|
||||
<x-textarea id="pk" name="pk" class="mt-1" disabled>{{ config('core.ssh_public_key') }}</x-textarea>
|
||||
<x-textarea id="pk" name="pk" class="mt-1" rows="5" disabled>mkdir -p /root/.ssh && touch /root/.ssh/authorized_keys && echo '{{ $key }}' >> /root/.ssh/authorized_keys</x-textarea>
|
||||
</div>
|
||||
|
@ -4,15 +4,14 @@
|
||||
{{ __("Server Overview") }}
|
||||
</x-slot>
|
||||
<x-slot name="description">{{ __("You can see an overview about your server here") }}</x-slot>
|
||||
<x-slot name="aside">
|
||||
@include('livewire.servers.partials.status', ['status' => $server->status])
|
||||
</x-slot>
|
||||
</x-card-header>
|
||||
<div class="mx-auto grid @if($server->webserver() && $server->database()) grid-cols-3 @else grid-cols-2 @endif rounded-md bg-white border border-gray-200 dark:border-gray-700 dark:bg-gray-800">
|
||||
@if($server->webserver())
|
||||
<div class="p-5 border-r border-gray-200 p-5 dark:border-gray-900">
|
||||
<div class="p-5 border-r border-gray-200 dark:border-gray-900">
|
||||
<div class="flex items-center justify-center md:justify-start">
|
||||
<x-heroicon-o-globe-alt class="w-8 h-8 text-primary-500" />
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-8 h-8 text-primary-500">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418" />
|
||||
</svg>
|
||||
<div class="ml-2 hidden md:block">{{ __("Sites") }}</div>
|
||||
</div>
|
||||
<div class="mt-3 text-center text-3xl font-bold text-gray-600 dark:text-gray-400 md:text-left">{{ $server->sites()->count() }}</div>
|
||||
@ -21,7 +20,9 @@
|
||||
@if($server->database())
|
||||
<div class="border-r border-gray-200 p-5 dark:border-gray-900">
|
||||
<div class="flex items-center justify-center md:justify-start">
|
||||
<x-heroicon-o-circle-stack class="w-8 h-8 text-primary-500" />
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-8 h-8 text-primary-500">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125" />
|
||||
</svg>
|
||||
<div class="ml-2 hidden md:block">{{ __("Databases") }}</div>
|
||||
</div>
|
||||
<div class="mt-3 text-center text-3xl font-bold text-gray-600 dark:text-gray-400 md:text-left">{{ $server->databases()->count() }}</div>
|
||||
@ -29,7 +30,9 @@
|
||||
@endif
|
||||
<div class="p-5">
|
||||
<div class="flex items-center justify-center md:justify-start">
|
||||
<x-heroicon-o-briefcase class="w-8 h-8 text-primary-500" />
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-8 h-8 text-primary-500">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z" />
|
||||
</svg>
|
||||
<div class="ml-2 hidden md:block">{{ __("Cron Jobs") }}</div>
|
||||
</div>
|
||||
<div class="mt-3 text-center text-3xl font-bold text-gray-600 dark:text-gray-400 md:text-left">{{ $server->cronJobs()->count() }}</div>
|
||||
|
14
resources/views/livewire/servers/server-status.blade.php
Normal file
14
resources/views/livewire/servers/server-status.blade.php
Normal file
@ -0,0 +1,14 @@
|
||||
<div>
|
||||
@if($server->status == \App\Enums\ServerStatus::READY)
|
||||
<x-status status="success">{{ $server->status }}</x-status>
|
||||
@endif
|
||||
@if($server->status == \App\Enums\ServerStatus::INSTALLING)
|
||||
<x-status status="warning">{{ $server->status }}</x-status>
|
||||
@endif
|
||||
@if($server->status == \App\Enums\ServerStatus::DISCONNECTED)
|
||||
<x-status status="disabled">{{ $server->status }}</x-status>
|
||||
@endif
|
||||
@if($server->status == \App\Enums\ServerStatus::INSTALLATION_FAILED)
|
||||
<x-status status="danger">{{ $server->status }}</x-status>
|
||||
@endif
|
||||
</div>
|
@ -25,7 +25,7 @@
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div class="inline">
|
||||
@include('livewire.servers.partials.status', ['status' => $server->status])
|
||||
<livewire:servers.server-status :server="$server" />
|
||||
</div>
|
||||
</div>
|
||||
</x-item-card>
|
||||
|
@ -21,7 +21,6 @@
|
||||
<x-slot name="trigger">
|
||||
<x-secondary-button>
|
||||
{{ __("Actions") }}
|
||||
<x-heroicon-m-chevron-down class="w-4 ml-1" />
|
||||
</x-secondary-button>
|
||||
</x-slot>
|
||||
|
||||
|
@ -5,16 +5,14 @@
|
||||
<form id="create-site" wire:submit.prevent="create" class="space-y-6">
|
||||
<div>
|
||||
<x-input-label>{{ __("Select site type") }}</x-input-label>
|
||||
<div class="grid grid-cols-6 gap-2 mt-1">
|
||||
<x-select-input wire:model="type" id="type" name="type" class="mt-1 w-full">
|
||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||
@foreach(config('core.site_types') as $t)
|
||||
<x-site-type-item x-on:click="$wire.type = '{{ $t }}'" :active="$type === $t">
|
||||
<div class="flex w-full flex-col items-center justify-center text-center">
|
||||
<img src="{{ asset('static/images/' . $t . '.svg') }}" class="h-7" alt="Server">
|
||||
<span class="md:text-normal mt-2 hidden text-sm md:block">{{ $t }}</span>
|
||||
</div>
|
||||
</x-site-type-item>
|
||||
<option value="{{ $t }}" @if($t === $type) selected @endif>
|
||||
{{ $t }}
|
||||
</option>
|
||||
@endforeach
|
||||
</div>
|
||||
</x-select-input>
|
||||
@error('type')
|
||||
<x-input-error class="mt-2" :messages="$message" />
|
||||
@enderror
|
||||
@ -61,14 +59,17 @@
|
||||
|
||||
<div>
|
||||
<x-input-label for="source_control" :value="__('Source Control')" />
|
||||
<x-select-input wire:model="source_control" id="source_control" name="source_control" class="mt-1 w-full">
|
||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||
@foreach($sourceControls as $sourceControl)
|
||||
<option value="{{ $sourceControl->provider }}" @if($sourceControl->provider === $source_control) selected @endif>
|
||||
{{ ucfirst($sourceControl->provider) }}
|
||||
</option>
|
||||
@endforeach
|
||||
</x-select-input>
|
||||
<div class="flex items-center mt-1">
|
||||
<x-select-input wire:model="source_control" id="source_control" name="source_control" class="mt-1 w-full">
|
||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||
@foreach($sourceControls as $sourceControl)
|
||||
<option value="{{ $sourceControl->id }}" @if($sourceControl->id === $source_control) selected @endif>
|
||||
{{ $sourceControl->profile }} ({{ $sourceControl->provider }})
|
||||
</option>
|
||||
@endforeach
|
||||
</x-select-input>
|
||||
<x-secondary-button :href="route('source-controls', ['redirect' => request()->url()])" class="flex-none ml-2">{{ __('Connect') }}</x-secondary-button>
|
||||
</div>
|
||||
@error('source_control')
|
||||
<x-input-error class="mt-2" :messages="$message" />
|
||||
@enderror
|
||||
|
@ -3,17 +3,10 @@
|
||||
<x-slot name="title">
|
||||
{{ __("Site Overview") }}
|
||||
</x-slot>
|
||||
<x-slot name="description">
|
||||
<a href="{{ $site->activeSsl ? 'https://' : 'http://' . $site->domain }}" target="_blank">{{ $site->domain }}</a>
|
||||
</x-slot>
|
||||
<x-slot name="aside">
|
||||
@include('livewire.sites.partials.status', ['status' => $site->status])
|
||||
</x-slot>
|
||||
</x-card-header>
|
||||
<div class="mx-auto grid grid-cols-3 rounded-md bg-white border border-gray-200 dark:border-gray-700 dark:bg-gray-800">
|
||||
<div class="p-5">
|
||||
<div class="flex items-center justify-center md:justify-start">
|
||||
<x-heroicon-o-lock-closed class="w-8 h-8 text-primary-500" />
|
||||
<div class="ml-2 hidden md:block">{{ __("SSL") }}</div>
|
||||
</div>
|
||||
<div class="mt-3 text-center text-3xl font-bold text-gray-600 dark:text-gray-400 md:text-left">
|
||||
@ -22,14 +15,12 @@
|
||||
</div>
|
||||
<div class="border-l border-r border-gray-200 p-5 dark:border-gray-900">
|
||||
<div class="flex items-center justify-center md:justify-start">
|
||||
<x-heroicon-o-rectangle-stack class="w-8 h-8 text-primary-500" />
|
||||
<div class="ml-2 hidden md:block">{{ __("Queues") }}</div>
|
||||
</div>
|
||||
<div class="mt-3 text-center text-3xl font-bold text-gray-600 dark:text-gray-400 md:text-left">{{ $site->queues()->count() }}</div>
|
||||
</div>
|
||||
<div class="p-5">
|
||||
<div class="flex items-center justify-center md:justify-start">
|
||||
<x-heroicon-o-code-bracket class="w-8 h-8 text-primary-500" />
|
||||
<div class="ml-2 hidden md:block">{{ __("PHP") }}</div>
|
||||
</div>
|
||||
<div class="mt-3 text-center text-3xl font-bold text-gray-600 dark:text-gray-400 md:text-left">{{ $site->php_version }}</div>
|
||||
|
@ -6,8 +6,6 @@
|
||||
@include('livewire.sites.partials.installation-failed', ['site' => $site])
|
||||
@endif
|
||||
@if($site->status === \App\Enums\SiteStatus::READY)
|
||||
<div class="space-y-10">
|
||||
@include('livewire.sites.partials.site-overview', ['site' => $site])
|
||||
</div>
|
||||
@include('livewire.sites.partials.site-overview', ['site' => $site])
|
||||
@endif
|
||||
</div>
|
||||
|
14
resources/views/livewire/sites/site-status.blade.php
Normal file
14
resources/views/livewire/sites/site-status.blade.php
Normal file
@ -0,0 +1,14 @@
|
||||
<div>
|
||||
@if($site->status == \App\Enums\SiteStatus::READY)
|
||||
<x-status status="success">{{ $site->status }}</x-status>
|
||||
@endif
|
||||
@if($site->status == \App\Enums\SiteStatus::INSTALLING)
|
||||
<x-status status="warning">{{ $site->status }}</x-status>
|
||||
@endif
|
||||
@if($site->status == \App\Enums\SiteStatus::DELETING)
|
||||
<x-status status="danger">{{ $site->status }}</x-status>
|
||||
@endif
|
||||
@if($site->status == \App\Enums\SiteStatus::INSTALLATION_FAILED)
|
||||
<x-status status="danger">{{ $site->status }}</x-status>
|
||||
@endif
|
||||
</div>
|
54
resources/views/livewire/source-controls/connect.blade.php
Normal file
54
resources/views/livewire/source-controls/connect.blade.php
Normal file
@ -0,0 +1,54 @@
|
||||
<div>
|
||||
<x-primary-button x-data="" x-on:click.prevent="$dispatch('open-modal', 'connect-source-control')">
|
||||
{{ __('Connect') }}
|
||||
</x-primary-button>
|
||||
|
||||
<x-modal name="connect-source-control" :show="$open">
|
||||
<form wire:submit.prevent="connect" class="p-6">
|
||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||
{{ __('Connect to a Source Control') }}
|
||||
</h2>
|
||||
|
||||
<div class="mt-6">
|
||||
<x-input-label for="provider" value="Provider" />
|
||||
<x-select-input wire:model="provider" id="provider" name="provider" class="mt-1 w-full">
|
||||
<option value="" selected disabled>{{ __("Select") }}</option>
|
||||
@foreach(config('core.source_control_providers') as $p)
|
||||
@if($p !== 'custom')
|
||||
<option value="{{ $p }}" @if($provider === $p) selected @endif>{{ $p }}</option>
|
||||
@endif
|
||||
@endforeach
|
||||
</x-select-input>
|
||||
@error('provider')
|
||||
<x-input-error class="mt-2" :messages="$message" />
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="mt-6">
|
||||
<x-input-label for="name" value="Name" />
|
||||
<x-text-input wire:model.defer="name" id="name" name="name" type="text" class="mt-1 w-full" />
|
||||
@error('name')
|
||||
<x-input-error class="mt-2" :messages="$message" />
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="mt-6">
|
||||
<x-input-label for="token" value="API Key" />
|
||||
<x-text-input wire:model.defer="token" id="token" name="token" type="text" class="mt-1 w-full" />
|
||||
@error('token')
|
||||
<x-input-error class="mt-2" :messages="$message" />
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="mt-6 flex justify-end">
|
||||
<x-secondary-button type="button" x-on:click="$dispatch('close')">
|
||||
{{ __('Cancel') }}
|
||||
</x-secondary-button>
|
||||
|
||||
<x-primary-button class="ml-3" @connected.window="$dispatch('close')">
|
||||
{{ __('Connect') }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-modal>
|
||||
</div>
|
@ -0,0 +1,45 @@
|
||||
<div>
|
||||
<x-card-header>
|
||||
<x-slot name="title">Source Controls</x-slot>
|
||||
<x-slot name="description">You can connect your source controls via API Tokens</x-slot>
|
||||
<x-slot name="aside">
|
||||
<livewire:source-controls.connect />
|
||||
</x-slot>
|
||||
</x-card-header>
|
||||
<div x-data="" class="space-y-3">
|
||||
@if(count($sourceControls) > 0)
|
||||
@foreach($sourceControls as $sourceControl)
|
||||
<x-item-card>
|
||||
<div class="flex-none">
|
||||
<img src="{{ asset('static/images/' . $sourceControl->provider . '.svg') }}" class="h-10 w-10" alt="">
|
||||
</div>
|
||||
<div class="ml-3 flex flex-grow flex-col items-start justify-center">
|
||||
<span class="mb-1">{{ $sourceControl->profile }}</span>
|
||||
<span class="text-sm text-gray-400">
|
||||
<x-datetime :value="$sourceControl->created_at"/>
|
||||
</span>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<div class="inline">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $sourceControl->id }}'; $dispatch('open-modal', 'delete-source-control')">
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</div>
|
||||
</div>
|
||||
</x-item-card>
|
||||
@endforeach
|
||||
<x-confirm-modal
|
||||
name="delete-source-control"
|
||||
:title="__('Confirm')"
|
||||
:description="__('Are you sure that you want to delete this source control?')"
|
||||
method="delete"
|
||||
/>
|
||||
@else
|
||||
<x-simple-card>
|
||||
<div class="text-center">
|
||||
{{ __("You haven't connected to any server source controls yet!") }}
|
||||
</div>
|
||||
</x-simple-card>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
@ -19,7 +19,7 @@
|
||||
<div class="flex items-center">
|
||||
<div class="inline">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $key->id }}'; $dispatch('open-modal', 'delete-key')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -29,7 +29,7 @@
|
||||
@include('livewire.ssl.partials.status', ['status' => $ssl->status])
|
||||
<div class="inline">
|
||||
<x-icon-button x-on:click="$wire.deleteId = '{{ $ssl->id }}'; $dispatch('open-modal', 'delete-ssl')">
|
||||
<x-heroicon-o-trash class="w-4 h-4" />
|
||||
Delete
|
||||
</x-icon-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -13,7 +13,6 @@
|
||||
</x-slot>
|
||||
<x-slot name="content">
|
||||
<x-dropdown-link :href="route('profile')">
|
||||
<x-heroicon-o-user class="w-6 h-6 mr-1" />
|
||||
{{ __('Profile') }}
|
||||
</x-dropdown-link>
|
||||
<!-- Authentication -->
|
||||
|
Reference in New Issue
Block a user