mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-02 14:36:17 +00:00
Migrate to HTMX (#114)
Dropped Livewire Added HTMX Added Blade code lint Drop Mysql and Redis Migrate to SQLite
This commit is contained in:
37
resources/views/application/auto-deployment.blade.php
Normal file
37
resources/views/application/auto-deployment.blade.php
Normal file
@ -0,0 +1,37 @@
|
||||
<div>
|
||||
@if ($site->deploymentScript?->content)
|
||||
<x-dropdown>
|
||||
<x-slot name="trigger">
|
||||
<x-secondary-button>
|
||||
{{ __("Auto Deployment") }}
|
||||
</x-secondary-button>
|
||||
</x-slot>
|
||||
<x-slot name="content">
|
||||
<div id="auto-deployment">
|
||||
<x-dropdown-link
|
||||
class="cursor-pointer"
|
||||
hx-post="{{ route('servers.sites.application.auto-deployment', ['server' => $server, 'site' => $site]) }}"
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#auto-deployment"
|
||||
>
|
||||
{{ __("Enable") }}
|
||||
@if ($site->auto_deployment)
|
||||
<x-heroicon-o-check class="ml-1 h-5 w-5 text-green-600" />
|
||||
@endif
|
||||
</x-dropdown-link>
|
||||
<x-dropdown-link
|
||||
class="cursor-pointer"
|
||||
hx-delete="{{ route('servers.sites.application.auto-deployment', ['server' => $server, 'site' => $site]) }}"
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#auto-deployment"
|
||||
>
|
||||
{{ __("Disable") }}
|
||||
@if (! $site->auto_deployment)
|
||||
<x-heroicon-o-check class="ml-1 h-5 w-5 text-green-600" />
|
||||
@endif
|
||||
</x-dropdown-link>
|
||||
</div>
|
||||
</x-slot>
|
||||
</x-dropdown>
|
||||
@endif
|
||||
</div>
|
39
resources/views/application/change-branch.blade.php
Normal file
39
resources/views/application/change-branch.blade.php
Normal file
@ -0,0 +1,39 @@
|
||||
<div x-data="">
|
||||
<x-modal name="change-branch">
|
||||
<form
|
||||
id="change-branch-form"
|
||||
hx-post="{{ route("servers.sites.application.branch", ["server" => $server, "site" => $site]) }}"
|
||||
hx-select="#change-branch-form"
|
||||
hx-swap="outerHTML"
|
||||
class="p-6"
|
||||
>
|
||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||
{{ __("Change Branch") }}
|
||||
</h2>
|
||||
|
||||
<div class="mt-6">
|
||||
<x-input-label for="branch" :value="__('Branch')" />
|
||||
<x-text-input
|
||||
value="{{ old('branch', $site->branch) }}"
|
||||
id="branch"
|
||||
name="branch"
|
||||
type="text"
|
||||
class="mt-1 w-full"
|
||||
/>
|
||||
@error("branch")
|
||||
<x-input-error class="mt-2" :messages="$message" />
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="mt-6 flex items-center justify-end">
|
||||
<x-secondary-button type="button" x-on:click="$dispatch('close')">
|
||||
{{ __("Cancel") }}
|
||||
</x-secondary-button>
|
||||
|
||||
<x-primary-button class="ml-3" hx-disable>
|
||||
{{ __("Save") }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-modal>
|
||||
</div>
|
14
resources/views/application/deploy.blade.php
Normal file
14
resources/views/application/deploy.blade.php
Normal file
@ -0,0 +1,14 @@
|
||||
<div>
|
||||
@if ($site->deploymentScript?->content)
|
||||
<form
|
||||
id="deploy"
|
||||
hx-post="{{ route("servers.sites.application.deploy", ["server" => $server, "site" => $site]) }}"
|
||||
hx-swap="outerHTML"
|
||||
hx-select="#deploy"
|
||||
>
|
||||
<x-primary-button hx-disable>
|
||||
{{ __("Deploy") }}
|
||||
</x-primary-button>
|
||||
</form>
|
||||
@endif
|
||||
</div>
|
35
resources/views/application/deployment-script.blade.php
Normal file
35
resources/views/application/deployment-script.blade.php
Normal file
@ -0,0 +1,35 @@
|
||||
<div x-data="">
|
||||
<x-modal name="deployment-script">
|
||||
<form
|
||||
id="deployment-script-form"
|
||||
hx-post="{{ route("servers.sites.application.deployment-script", ["server" => $server, "site" => $site]) }}"
|
||||
hx-select="#deployment-script-form"
|
||||
hx-swap="outerHTML"
|
||||
class="p-6"
|
||||
>
|
||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||
{{ __("Deployment Script") }}
|
||||
</h2>
|
||||
|
||||
<div class="mt-6">
|
||||
<x-input-label for="script" :value="__('Script')" />
|
||||
<x-textarea rows="10" id="script" name="script" class="mt-1 w-full">
|
||||
{{ old("script", $site->deployment_script_text) }}
|
||||
</x-textarea>
|
||||
@error("script")
|
||||
<x-input-error class="mt-2" :messages="$message" />
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="mt-6 flex items-center justify-end">
|
||||
<x-secondary-button type="button" x-on:click="$dispatch('close')">
|
||||
{{ __("Cancel") }}
|
||||
</x-secondary-button>
|
||||
|
||||
<x-primary-button class="ml-3" hx-disable>
|
||||
{{ __("Save") }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-modal>
|
||||
</div>
|
69
resources/views/application/deployments-list.blade.php
Normal file
69
resources/views/application/deployments-list.blade.php
Normal file
@ -0,0 +1,69 @@
|
||||
@php
|
||||
$deployments = $site
|
||||
->deployments()
|
||||
->latest()
|
||||
->paginate(10);
|
||||
@endphp
|
||||
|
||||
<div x-data="">
|
||||
<x-card-header>
|
||||
<x-slot name="title">{{ __("Deployments") }}</x-slot>
|
||||
</x-card-header>
|
||||
<x-live id="live-deployments">
|
||||
<x-table>
|
||||
<tr>
|
||||
<x-th>{{ __("Commit") }}</x-th>
|
||||
<x-th>{{ __("Date") }}</x-th>
|
||||
<x-th>{{ __("Status") }}</x-th>
|
||||
<x-th></x-th>
|
||||
</tr>
|
||||
@foreach ($deployments as $deployment)
|
||||
<tr>
|
||||
<x-td>
|
||||
<a
|
||||
href="{{ $deployment->commit_data["url"] }}"
|
||||
target="_blank"
|
||||
class="font-semibold text-primary-600"
|
||||
>
|
||||
{{ $deployment->commit_data["message"] }}
|
||||
</a>
|
||||
</x-td>
|
||||
<x-td>
|
||||
<x-datetime :value="$deployment->created_at" />
|
||||
</x-td>
|
||||
<x-td>
|
||||
<div class="inline-flex">
|
||||
@include("application.partials.deployment-status", ["status" => $deployment->status])
|
||||
</div>
|
||||
</x-td>
|
||||
<x-td>
|
||||
<x-icon-button
|
||||
hx-get="{{ route('servers.sites.application.deployment.log', ['server' => $server, 'site' => $site, 'deployment' => $deployment]) }}"
|
||||
hx-target="#show-log-content"
|
||||
hx-swap="outerHTML"
|
||||
hx-disable
|
||||
>
|
||||
<x-heroicon-o-eye class="h-5 w-5" />
|
||||
</x-icon-button>
|
||||
</x-td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</x-table>
|
||||
</x-live>
|
||||
<div class="mt-5">
|
||||
{{ $deployments->withQueryString()->links() }}
|
||||
</div>
|
||||
<x-modal name="show-log" max-width="4xl">
|
||||
<div class="p-6" id="show-log-content">
|
||||
<h2 class="mb-5 text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||
{{ __("View Log") }}
|
||||
</h2>
|
||||
<x-console-view>{{ session()->get("content") }}</x-console-view>
|
||||
<div class="mt-6 flex justify-end">
|
||||
<x-secondary-button type="button" x-on:click="$dispatch('close')">
|
||||
{{ __("Close") }}
|
||||
</x-secondary-button>
|
||||
</div>
|
||||
</div>
|
||||
</x-modal>
|
||||
</div>
|
43
resources/views/application/env.blade.php
Normal file
43
resources/views/application/env.blade.php
Normal file
@ -0,0 +1,43 @@
|
||||
<div x-data="">
|
||||
<x-modal name="update-env">
|
||||
<form
|
||||
id="update-env-form"
|
||||
hx-post="{{ route("servers.sites.application.env", [$server, $site]) }}"
|
||||
hx-swap="outerHTML"
|
||||
hx-select="#update-env-form"
|
||||
class="p-6"
|
||||
>
|
||||
<h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
|
||||
{{ __("Update .env File") }}
|
||||
</h2>
|
||||
|
||||
<div
|
||||
class="mt-6"
|
||||
id="env-content"
|
||||
hx-get="{{ route("servers.sites.application.env", [$server, $site]) }}"
|
||||
hx-trigger="load"
|
||||
hx-target="#env"
|
||||
hx-select="#env"
|
||||
hx-swap="outerHTML"
|
||||
>
|
||||
<x-input-label for="env" :value="__('.env')" />
|
||||
<x-textarea id="env" name="env" rows="10" class="mt-1 block w-full">
|
||||
{{ old("env", session()->get("env") ?? "Loading...") }}
|
||||
</x-textarea>
|
||||
@error("env")
|
||||
<x-input-error class="mt-2" :messages="$message" />
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="mt-6 flex items-center justify-end">
|
||||
<x-secondary-button type="button" x-on:click="$dispatch('close')">
|
||||
{{ __("Cancel") }}
|
||||
</x-secondary-button>
|
||||
|
||||
<x-primary-button class="ml-3" hx-disable>
|
||||
{{ __("Save") }}
|
||||
</x-primary-button>
|
||||
</div>
|
||||
</form>
|
||||
</x-modal>
|
||||
</div>
|
1
resources/views/application/laravel-app.blade.php
Normal file
1
resources/views/application/laravel-app.blade.php
Normal file
@ -0,0 +1 @@
|
||||
@include("application.php-app")
|
@ -0,0 +1,11 @@
|
||||
@if ($status == \App\Enums\DeploymentStatus::DEPLOYING)
|
||||
<x-status status="warning">{{ $status }}</x-status>
|
||||
@endif
|
||||
|
||||
@if ($status == \App\Enums\DeploymentStatus::FINISHED)
|
||||
<x-status status="success">{{ $status }}</x-status>
|
||||
@endif
|
||||
|
||||
@if ($status == \App\Enums\DeploymentStatus::FAILED)
|
||||
<x-status status="danger">{{ $status }}</x-status>
|
||||
@endif
|
56
resources/views/application/php-app.blade.php
Normal file
56
resources/views/application/php-app.blade.php
Normal file
@ -0,0 +1,56 @@
|
||||
<div>
|
||||
<x-card-header>
|
||||
<x-slot name="title">{{ __("Application") }}</x-slot>
|
||||
<x-slot name="description">
|
||||
{{ __("Here you can manage your application") }}
|
||||
</x-slot>
|
||||
<x-slot name="aside">
|
||||
<div class="flex items-center">
|
||||
<div class="mr-2">
|
||||
@include("application.deploy")
|
||||
</div>
|
||||
@if ($site->source_control_id)
|
||||
<div class="mr-2">
|
||||
@include("application.auto-deployment")
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<x-dropdown>
|
||||
<x-slot name="trigger">
|
||||
<x-secondary-button>
|
||||
{{ __("Manage") }}
|
||||
</x-secondary-button>
|
||||
</x-slot>
|
||||
<x-slot name="content">
|
||||
@if ($site->source_control_id)
|
||||
<x-dropdown-link
|
||||
class="cursor-pointer"
|
||||
x-on:click="$dispatch('open-modal', 'change-branch')"
|
||||
>
|
||||
{{ __("Branch") }}
|
||||
</x-dropdown-link>
|
||||
@endif
|
||||
|
||||
<x-dropdown-link
|
||||
class="cursor-pointer"
|
||||
x-on:click="$dispatch('open-modal', 'deployment-script')"
|
||||
>
|
||||
{{ __("Deployment Script") }}
|
||||
</x-dropdown-link>
|
||||
<x-dropdown-link class="cursor-pointer" x-on:click="$dispatch('open-modal', 'update-env')">
|
||||
{{ __(".env") }}
|
||||
</x-dropdown-link>
|
||||
</x-slot>
|
||||
</x-dropdown>
|
||||
@if ($site->source_control_id)
|
||||
@include("application.change-branch")
|
||||
@endif
|
||||
|
||||
@include("application.deployment-script")
|
||||
@include("application.env")
|
||||
</div>
|
||||
</x-slot>
|
||||
</x-card-header>
|
||||
|
||||
@include("application.deployments-list")
|
||||
</div>
|
1
resources/views/application/php-blank-app.blade.php
Normal file
1
resources/views/application/php-blank-app.blade.php
Normal file
@ -0,0 +1 @@
|
||||
@include("application.php-app")
|
10
resources/views/application/wordpress-app.blade.php
Normal file
10
resources/views/application/wordpress-app.blade.php
Normal file
@ -0,0 +1,10 @@
|
||||
<div>
|
||||
<x-simple-card class="flex items-center justify-between">
|
||||
<span>
|
||||
{{ __("Your Wordpress site is installed and ready to use! ") }}
|
||||
</span>
|
||||
<x-secondary-button :href="$site->url" target="_blank">
|
||||
{{ __("Open Website") }}
|
||||
</x-secondary-button>
|
||||
</x-simple-card>
|
||||
</div>
|
Reference in New Issue
Block a user