format files lol
This commit is contained in:
parent
054bebb081
commit
c762195c8a
@ -10,9 +10,9 @@
|
|||||||
<li>
|
<li>
|
||||||
<div class="rounded-none hover:bg-coollabs hover:text-white"
|
<div class="rounded-none hover:bg-coollabs hover:text-white"
|
||||||
wire:click='force_deploy_without_cache'>
|
wire:click='force_deploy_without_cache'>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24"
|
||||||
class="w-6 h-6" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"
|
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
|
||||||
fill="none" stroke-linecap="round" stroke-linejoin="round">
|
stroke-linejoin="round">
|
||||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||||
<path
|
<path
|
||||||
d="M12.983 8.978c3.955 -.182 7.017 -1.446 7.017 -2.978c0 -1.657 -3.582 -3 -8 -3c-1.661 0 -3.204 .19 -4.483 .515m-2.783 1.228c-.471 .382 -.734 .808 -.734 1.257c0 1.22 1.944 2.271 4.734 2.74" />
|
d="M12.983 8.978c3.955 -.182 7.017 -1.446 7.017 -2.978c0 -1.657 -3.582 -3 -8 -3c-1.661 0 -3.204 .19 -4.483 .515m-2.783 1.228c-.471 .382 -.734 .808 -.734 1.257c0 1.22 1.944 2.271 4.734 2.74" />
|
||||||
@ -28,8 +28,7 @@
|
|||||||
@else
|
@else
|
||||||
<li>
|
<li>
|
||||||
<div class="rounded-none hover:bg-coollabs hover:text-white" wire:click='deploy(true)'>
|
<div class="rounded-none hover:bg-coollabs hover:text-white" wire:click='deploy(true)'>
|
||||||
<svg
|
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24"
|
||||||
xmlns="http://www.w3.org/2000/svg" class="w-6 h-6" viewBox="0 0 24 24"
|
|
||||||
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
|
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
|
||||||
stroke-linejoin="round">
|
stroke-linejoin="round">
|
||||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||||
|
@ -12,8 +12,7 @@
|
|||||||
@if ($attributes->get('type') === 'submit')
|
@if ($attributes->get('type') === 'submit')
|
||||||
<span wire:target="submit" wire:loading.delay class="loading loading-xs text-warning loading-spinner"></span>
|
<span wire:target="submit" wire:loading.delay class="loading loading-xs text-warning loading-spinner"></span>
|
||||||
@else
|
@else
|
||||||
<span wire:target="{{ explode('(', $attributes->whereStartsWith('wire:click')->first())[0] }}"
|
<span wire:target="{{ explode('(', $attributes->whereStartsWith('wire:click')->first())[0] }}" wire:loading.delay
|
||||||
wire:loading.delay
|
|
||||||
class="loading loading-xs loading-spinner"></span>
|
class="loading loading-xs loading-spinner"></span>
|
||||||
@endif
|
@endif
|
||||||
</button>
|
</button>
|
||||||
|
@ -25,17 +25,14 @@
|
|||||||
<input {{ $attributes->merge(['class' => $defaultClass . ' pl-10']) }} @required($required)
|
<input {{ $attributes->merge(['class' => $defaultClass . ' pl-10']) }} @required($required)
|
||||||
wire:model.defer={{ $id }} wire:dirty.class.remove='text-white'
|
wire:model.defer={{ $id }} wire:dirty.class.remove='text-white'
|
||||||
wire:dirty.class="input-warning" wire:loading.attr="disabled" type="{{ $type }}"
|
wire:dirty.class="input-warning" wire:loading.attr="disabled" type="{{ $type }}"
|
||||||
@readonly($readonly)
|
@readonly($readonly) @disabled($disabled) id="{{ $id }}" name="{{ $name }}">
|
||||||
@disabled($disabled) id="{{ $id }}"
|
|
||||||
name="{{ $name }}">
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
<input
|
<input {{ $attributes->merge(['class' => $defaultClass]) }} @required($required) @readonly($readonly)
|
||||||
{{ $attributes->merge(['class' => $defaultClass]) }} @required($required) @readonly($readonly)
|
wire:model.defer={{ $id }} wire:dirty.class.remove='text-white' wire:dirty.class="input-warning"
|
||||||
wire:model.defer={{ $id }} wire:dirty.class.remove='text-white'
|
wire:loading.attr="disabled" type="{{ $type }}" @disabled($disabled)
|
||||||
wire:dirty.class="input-warning" wire:loading.attr="disabled" type="{{ $type }}"
|
id="{{ $id }}" name="{{ $name }}">
|
||||||
@disabled($disabled) id="{{ $id }}" name="{{ $name }}">
|
|
||||||
@endif
|
@endif
|
||||||
@if (!$label && $helper)
|
@if (!$label && $helper)
|
||||||
<x-helper :helper="$helper" />
|
<x-helper :helper="$helper" />
|
||||||
|
@ -9,8 +9,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</label>
|
</label>
|
||||||
@endif
|
@endif
|
||||||
<select
|
<select {{ $attributes->merge(['class' => $defaultClass]) }} @required($required) wire:dirty.class.remove='text-white'
|
||||||
{{ $attributes->merge(['class' => $defaultClass]) }} @required($required) wire:dirty.class.remove='text-white'
|
|
||||||
wire:dirty.class="text-black bg-warning" wire:loading.attr="disabled" name={{ $id }}
|
wire:dirty.class="text-black bg-warning" wire:loading.attr="disabled" name={{ $id }}
|
||||||
@if ($attributes->whereStartsWith('wire:model')->first()) {{ $attributes->whereStartsWith('wire:model')->first() }} @else wire:model.defer={{ $id }} @endif>
|
@if ($attributes->whereStartsWith('wire:model')->first()) {{ $attributes->whereStartsWith('wire:model')->first() }} @else wire:model.defer={{ $id }} @endif>
|
||||||
{{ $slot }}
|
{{ $slot }}
|
||||||
|
@ -29,10 +29,10 @@
|
|||||||
</span>
|
</span>
|
||||||
</label>
|
</label>
|
||||||
@endif
|
@endif
|
||||||
<textarea placeholder="{{$placeholder}}"
|
<textarea placeholder="{{ $placeholder }}" {{ $attributes->merge(['class' => $defaultClass]) }}
|
||||||
{{ $attributes->merge(['class' => $defaultClass]) }} wire:model.defer={{ $id }}
|
wire:model.defer={{ $id }} @disabled($disabled) @readonly($readonly) @required($required)
|
||||||
@disabled($disabled) @readonly($readonly) @required($required) id="{{ $id }}" name="{{ $name }}" name={{ $id }}
|
id="{{ $id }}" name="{{ $name }}" name={{ $id }} wire:model.defer={{ $value ?? $id }}
|
||||||
wire:model.defer={{ $value ?? $id }} wire:dirty.class="input-warning"></textarea>
|
wire:dirty.class="input-warning"></textarea>
|
||||||
@error($id)
|
@error($id)
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="text-red-500 label-text-alt">{{ $message }}</span>
|
<span class="text-red-500 label-text-alt">{{ $message }}</span>
|
||||||
|
@ -5,8 +5,7 @@
|
|||||||
<form action="/logout" method="POST" class=" hover:bg-transparent">
|
<form action="/logout" method="POST" class=" hover:bg-transparent">
|
||||||
@csrf
|
@csrf
|
||||||
<button class="flex items-center gap-2 rounded-none hover:text-white hover:bg-transparent">
|
<button class="flex items-center gap-2 rounded-none hover:text-white hover:bg-transparent">
|
||||||
<svg
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24" stroke-width="1.5"
|
||||||
xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24" stroke-width="1.5"
|
|
||||||
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||||
<path d="M13 12v.01" />
|
<path d="M13 12v.01" />
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
<ul class="flex flex-col h-full gap-4 menu flex-nowrap">
|
<ul class="flex flex-col h-full gap-4 menu flex-nowrap">
|
||||||
<li title="Dashboard">
|
<li title="Dashboard">
|
||||||
<a class="hover:bg-transparent" @if (!request()->is('/')) href="/" @endif>
|
<a class="hover:bg-transparent" @if (!request()->is('/')) href="/" @endif>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg" class="{{ request()->is('/') ? 'text-warning icon' : 'icon' }}"
|
||||||
class="{{ request()->is('/') ? 'text-warning icon' : 'icon' }}"
|
|
||||||
fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||||
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
||||||
@ -43,11 +42,9 @@
|
|||||||
|
|
||||||
@if (auth()->user()->isInstanceAdmin())
|
@if (auth()->user()->isInstanceAdmin())
|
||||||
<li title="Command Center">
|
<li title="Command Center">
|
||||||
<a class="hover:bg-transparent"
|
<a class="hover:bg-transparent" @if (!request()->is('command-center')) href="/command-center" @endif>
|
||||||
@if (!request()->is('command-center')) href="/command-center" @endif>
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
class="{{ request()->is('command-center') ? 'text-warning icon' : 'icon' }}"
|
class="{{ request()->is('command-center') ? 'text-warning icon' : 'icon' }}" viewBox="0 0 24 24"
|
||||||
viewBox="0 0 24 24"
|
|
||||||
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
|
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
|
||||||
stroke-linejoin="round">
|
stroke-linejoin="round">
|
||||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||||
@ -103,8 +100,7 @@
|
|||||||
<form action="/logout" method="POST" class=" hover:bg-transparent">
|
<form action="/logout" method="POST" class=" hover:bg-transparent">
|
||||||
@csrf
|
@csrf
|
||||||
<button type="submit" class="rounded-none hover:text-white hover:bg-transparent">
|
<button type="submit" class="rounded-none hover:text-white hover:bg-transparent">
|
||||||
<svg
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24" stroke-width="1.5"
|
||||||
xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24" stroke-width="1.5"
|
|
||||||
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||||
<path d="M13 12v.01" />
|
<path d="M13 12v.01" />
|
||||||
|
@ -7,8 +7,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<svg aria-hidden="true" class="w-4 h-4 mx-1 font-bold text-warning" fill="currentColor"
|
<svg aria-hidden="true" class="w-4 h-4 mx-1 font-bold text-warning" fill="currentColor" viewBox="0 0 20 20"
|
||||||
viewBox="0 0 20 20"
|
|
||||||
xmlns="http://www.w3.org/2000/svg">
|
xmlns="http://www.w3.org/2000/svg">
|
||||||
<path fill-rule="evenodd"
|
<path fill-rule="evenodd"
|
||||||
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
|
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
@if (isset($link))
|
@if (isset($link))
|
||||||
Use the magic
|
Use the magic
|
||||||
bar (press <span class="kbd-custom">/</span>) to create a new one or
|
bar (press <span class="kbd-custom">/</span>) to create a new one or
|
||||||
<a href="{{ $link }}"
|
<a href="{{ $link }}" class="underline text-warning">
|
||||||
class="underline text-warning">
|
|
||||||
click here
|
click here
|
||||||
</a>.
|
</a>.
|
||||||
@else
|
@else
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<x-layout>
|
<x-layout>
|
||||||
<h1>Destinations</h1>
|
<h1>Destinations</h1>
|
||||||
<div class="pt-2 pb-10 ">All Destinations</div>
|
<div class="pt-2 pb-10 ">All Destinations</div>
|
||||||
<div class="grid lg:grid-cols-2 gap-2">
|
<div class="grid gap-2 lg:grid-cols-2">
|
||||||
@forelse ($destinations as $destination)
|
@forelse ($destinations as $destination)
|
||||||
@if ($destination->getMorphClass() === 'App\Models\StandaloneDocker')
|
@if ($destination->getMorphClass() === 'App\Models\StandaloneDocker')
|
||||||
<a class="flex gap-4 text-center hover:no-underline box group"
|
<a class="flex gap-4 text-center hover:no-underline box group"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
@ -35,7 +36,9 @@
|
|||||||
line-height: 1.5
|
line-height: 1.5
|
||||||
}
|
}
|
||||||
|
|
||||||
*, :after, :before {
|
*,
|
||||||
|
:after,
|
||||||
|
:before {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border: 0 solid #e2e8f0
|
border: 0 solid #e2e8f0
|
||||||
}
|
}
|
||||||
@ -49,7 +52,8 @@
|
|||||||
font-family: Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace
|
font-family: Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace
|
||||||
}
|
}
|
||||||
|
|
||||||
svg, video {
|
svg,
|
||||||
|
video {
|
||||||
display: block;
|
display: block;
|
||||||
vertical-align: middle
|
vertical-align: middle
|
||||||
}
|
}
|
||||||
@ -322,6 +326,7 @@
|
|||||||
0% {
|
0% {
|
||||||
transform: rotate(0deg)
|
transform: rotate(0deg)
|
||||||
}
|
}
|
||||||
|
|
||||||
to {
|
to {
|
||||||
transform: rotate(1turn)
|
transform: rotate(1turn)
|
||||||
}
|
}
|
||||||
@ -331,6 +336,7 @@
|
|||||||
0% {
|
0% {
|
||||||
transform: rotate(0deg)
|
transform: rotate(0deg)
|
||||||
}
|
}
|
||||||
|
|
||||||
to {
|
to {
|
||||||
transform: rotate(1turn)
|
transform: rotate(1turn)
|
||||||
}
|
}
|
||||||
@ -341,7 +347,9 @@
|
|||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
opacity: 1
|
opacity: 1
|
||||||
}
|
}
|
||||||
75%, to {
|
|
||||||
|
75%,
|
||||||
|
to {
|
||||||
transform: scale(2);
|
transform: scale(2);
|
||||||
opacity: 0
|
opacity: 0
|
||||||
}
|
}
|
||||||
@ -352,36 +360,47 @@
|
|||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
opacity: 1
|
opacity: 1
|
||||||
}
|
}
|
||||||
75%, to {
|
|
||||||
|
75%,
|
||||||
|
to {
|
||||||
transform: scale(2);
|
transform: scale(2);
|
||||||
opacity: 0
|
opacity: 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes pulse {
|
@-webkit-keyframes pulse {
|
||||||
0%, to {
|
|
||||||
|
0%,
|
||||||
|
to {
|
||||||
opacity: 1
|
opacity: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
opacity: .5
|
opacity: .5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes pulse {
|
@keyframes pulse {
|
||||||
0%, to {
|
|
||||||
|
0%,
|
||||||
|
to {
|
||||||
opacity: 1
|
opacity: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
opacity: .5
|
opacity: .5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes bounce {
|
@-webkit-keyframes bounce {
|
||||||
0%, to {
|
|
||||||
|
0%,
|
||||||
|
to {
|
||||||
transform: translateY(-25%);
|
transform: translateY(-25%);
|
||||||
-webkit-animation-timing-function: cubic-bezier(.8, 0, 1, 1);
|
-webkit-animation-timing-function: cubic-bezier(.8, 0, 1, 1);
|
||||||
animation-timing-function: cubic-bezier(.8, 0, 1, 1)
|
animation-timing-function: cubic-bezier(.8, 0, 1, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
-webkit-animation-timing-function: cubic-bezier(0, 0, .2, 1);
|
-webkit-animation-timing-function: cubic-bezier(0, 0, .2, 1);
|
||||||
@ -390,11 +409,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@keyframes bounce {
|
@keyframes bounce {
|
||||||
0%, to {
|
|
||||||
|
0%,
|
||||||
|
to {
|
||||||
transform: translateY(-25%);
|
transform: translateY(-25%);
|
||||||
-webkit-animation-timing-function: cubic-bezier(.8, 0, 1, 1);
|
-webkit-animation-timing-function: cubic-bezier(.8, 0, 1, 1);
|
||||||
animation-timing-function: cubic-bezier(.8, 0, 1, 1)
|
animation-timing-function: cubic-bezier(.8, 0, 1, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
-webkit-animation-timing-function: cubic-bezier(0, 0, .2, 1);
|
-webkit-animation-timing-function: cubic-bezier(0, 0, .2, 1);
|
||||||
@ -509,19 +531,22 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="antialiased">
|
<body class="antialiased">
|
||||||
<div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0">
|
<div
|
||||||
|
class="relative flex justify-center min-h-screen bg-gray-100 items-top dark:bg-gray-900 sm:items-center sm:pt-0">
|
||||||
<div class="max-w-xl mx-auto sm:px-6 lg:px-8">
|
<div class="max-w-xl mx-auto sm:px-6 lg:px-8">
|
||||||
<div class="flex items-center pt-8 sm:justify-start sm:pt-0">
|
<div class="flex items-center pt-8 sm:justify-start sm:pt-0">
|
||||||
<div class="px-4 text-lg text-gray-500 border-r border-gray-400 tracking-wider">
|
<div class="px-4 text-lg tracking-wider text-gray-500 border-r border-gray-400">
|
||||||
@yield('code')
|
@yield('code')
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ml-4 text-lg text-gray-500 uppercase tracking-wider">
|
<div class="ml-4 text-lg tracking-wider text-gray-500 uppercase">
|
||||||
@yield('message')
|
@yield('message')
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -12,8 +12,7 @@
|
|||||||
<div
|
<div
|
||||||
class="scrollbar flex flex-col-reverse w-full overflow-y-auto border border-solid rounded border-coolgray-300 max-h-[32rem] p-4 text-xs text-white">
|
class="scrollbar flex flex-col-reverse w-full overflow-y-auto border border-solid rounded border-coolgray-300 max-h-[32rem] p-4 text-xs text-white">
|
||||||
|
|
||||||
<pre class="font-mono whitespace-pre-wrap"
|
<pre class="font-mono whitespace-pre-wrap" @if ($isPollingActive) wire:poll.2000ms="polling" @endif>{{ RunRemoteProcess::decodeOutput($this->activity) }}</pre>
|
||||||
@if ($isPollingActive) wire:poll.2000ms="polling" @endif>{{ RunRemoteProcess::decodeOutput($this->activity) }}</pre>
|
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
@ -7,8 +7,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="flex gap-2">
|
<div class="flex gap-2">
|
||||||
<x-forms.input type="password" id="settings.resale_license"
|
<x-forms.input type="password" id="settings.resale_license" placeholder="eg: BE558E91-0CC5-4AA2-B1C0-B6403C2988DD"
|
||||||
placeholder="eg: BE558E91-0CC5-4AA2-B1C0-B6403C2988DD"
|
|
||||||
label="License Key" />
|
label="License Key" />
|
||||||
<x-forms.input type="password" id="instance_id" label="Instance Id (do not change this)" disabled />
|
<x-forms.input type="password" id="instance_id" label="Instance Id (do not change this)" disabled />
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,8 +16,7 @@
|
|||||||
<x-forms.checkbox instantSave id="model.discord_enabled" label="Notification Enabled" />
|
<x-forms.checkbox instantSave id="model.discord_enabled" label="Notification Enabled" />
|
||||||
</div>
|
</div>
|
||||||
<x-forms.input type="password"
|
<x-forms.input type="password"
|
||||||
helper="Generate a webhook in Discord.<br>Example: https://discord.com/api/webhooks/...."
|
helper="Generate a webhook in Discord.<br>Example: https://discord.com/api/webhooks/...." required
|
||||||
required
|
|
||||||
id="model.discord_webhook_url" label="Webhook" />
|
id="model.discord_webhook_url" label="Webhook" />
|
||||||
</form>
|
</form>
|
||||||
@if (data_get($model, 'discord_enabled'))
|
@if (data_get($model, 'discord_enabled'))
|
||||||
|
@ -35,8 +35,7 @@
|
|||||||
<div class="flex flex-col gap-2 xl:flex-row">
|
<div class="flex flex-col gap-2 xl:flex-row">
|
||||||
<x-forms.input id="model.smtp_recipients"
|
<x-forms.input id="model.smtp_recipients"
|
||||||
placeholder="If empty, all users will be notified in the team."
|
placeholder="If empty, all users will be notified in the team."
|
||||||
helper="Email list to send the all notifications to, separated by comma."
|
helper="Email list to send the all notifications to, separated by comma." label="Recipients" />
|
||||||
label="Recipients"/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col gap-2 xl:flex-row">
|
<div class="flex flex-col gap-2 xl:flex-row">
|
||||||
<x-forms.input required id="model.smtp_host" helper="SMTP Hostname" placeholder="smtp.mailgun.org"
|
<x-forms.input required id="model.smtp_host" helper="SMTP Hostname" placeholder="smtp.mailgun.org"
|
||||||
@ -67,8 +66,7 @@
|
|||||||
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications_status_changes"
|
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications_status_changes"
|
||||||
label="Container Status Changes" />
|
label="Container Status Changes" />
|
||||||
<h4 class="mt-4">Applications</h4>
|
<h4 class="mt-4">Applications</h4>
|
||||||
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications_deployments"
|
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications_deployments" label="Deployments" />
|
||||||
label="Deployments"/>
|
|
||||||
<h4 class="mt-4">Databases</h4>
|
<h4 class="mt-4">Databases</h4>
|
||||||
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications_database_backups"
|
<x-forms.checkbox instantSave="saveModel" id="model.smtp_notifications_database_backups"
|
||||||
label="Backup Statuses" />
|
label="Backup Statuses" />
|
||||||
|
@ -24,7 +24,9 @@
|
|||||||
'text-warning' => $line['hidden'],
|
'text-warning' => $line['hidden'],
|
||||||
])>[{{ $line['timestamp'] }}] @if ($line['hidden'])
|
])>[{{ $line['timestamp'] }}] @if ($line['hidden'])
|
||||||
<br>Command: {{ $line['command'] }} <br>Output:
|
<br>Command: {{ $line['command'] }} <br>Output:
|
||||||
@endif{{ $line['output'] }}@if ($line['hidden']) @endif</div>
|
@endif{{ $line['output'] }}@if ($line['hidden'])
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@else
|
@else
|
||||||
<span class="font-mono text-neutral-400">No logs yet.</span>
|
<span class="font-mono text-neutral-400">No logs yet.</span>
|
||||||
|
@ -42,8 +42,7 @@
|
|||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
<div class="flex flex-col"
|
<div class="flex flex-col" x-data="elapsedTime('{{ $deployment->deployment_uuid }}', '{{ $deployment->status }}', '{{ $deployment->created_at }}', '{{ $deployment->updated_at }}')">
|
||||||
x-data="elapsedTime('{{ $deployment->deployment_uuid }}', '{{ $deployment->status }}', '{{ $deployment->created_at }}', '{{ $deployment->updated_at }}')">
|
|
||||||
<div>
|
<div>
|
||||||
@if ($deployment->status !== 'in_progress')
|
@if ($deployment->status !== 'in_progress')
|
||||||
Finished <span x-text="measure_since_started()">0s</span> in
|
Finished <span x-text="measure_since_started()">0s</span> in
|
||||||
|
@ -51,8 +51,7 @@
|
|||||||
<h4 class="py-4" wire:poll.10000ms='previewRefresh'>Deployed Previews</h4>
|
<h4 class="py-4" wire:poll.10000ms='previewRefresh'>Deployed Previews</h4>
|
||||||
<div class="flex gap-6 ">
|
<div class="flex gap-6 ">
|
||||||
@foreach ($application->previews as $preview)
|
@foreach ($application->previews as $preview)
|
||||||
<div class="flex flex-col p-4 bg-coolgray-200 "
|
<div class="flex flex-col p-4 bg-coolgray-200 " x-init="$wire.loadStatus('{{ data_get($preview, 'pull_request_id') }}')">
|
||||||
x-init="$wire.loadStatus('{{ data_get($preview, 'pull_request_id') }}')">
|
|
||||||
<div class="flex gap-2">PR #{{ data_get($preview, 'pull_request_id') }} |
|
<div class="flex gap-2">PR #{{ data_get($preview, 'pull_request_id') }} |
|
||||||
@if (data_get($preview, 'status') === 'running')
|
@if (data_get($preview, 'status') === 'running')
|
||||||
<x-status.running />
|
<x-status.running />
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<div class="flex flex-col gap-2 flex-col-reverse">
|
<div class="flex flex-col flex-col-reverse gap-2">
|
||||||
@forelse($executions as $execution)
|
@forelse($executions as $execution)
|
||||||
<form class="border-1 bg-coolgray-300 p-2 border-dotted flex flex-col"
|
<form class="flex flex-col p-2 border-dotted border-1 bg-coolgray-300" @class([
|
||||||
@class([
|
|
||||||
'border-green-500' => data_get($execution, 'status') === 'success',
|
'border-green-500' => data_get($execution, 'status') === 'success',
|
||||||
'border-red-500' => data_get($execution, 'status') === 'failed',
|
'border-red-500' => data_get($execution, 'status') === 'failed',
|
||||||
])>
|
])>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<div>
|
<div>
|
||||||
<form wire:submit.prevent="submit">
|
<form wire:submit.prevent="submit">
|
||||||
<div class="flex gap-2 items-end">
|
<div class="flex items-end gap-2">
|
||||||
<x-forms.input id="filename" label="Filename" />
|
<x-forms.input id="filename" label="Filename" />
|
||||||
<x-forms.button type="submit">Save</x-forms.button>
|
<x-forms.button type="submit">Save</x-forms.button>
|
||||||
<x-forms.button isError wire:click.prevent="delete">Delete</x-forms.button>
|
<x-forms.button isError wire:click.prevent="delete">Delete</x-forms.button>
|
||||||
|
@ -33,8 +33,7 @@
|
|||||||
<x-forms.input label="Password" id="database.postgres_password" type="password" required readonly
|
<x-forms.input label="Password" id="database.postgres_password" type="password" required readonly
|
||||||
helper="You can only modify it before the initial start." />
|
helper="You can only modify it before the initial start." />
|
||||||
<x-forms.input label="Database" id="database.postgres_db"
|
<x-forms.input label="Database" id="database.postgres_db"
|
||||||
placeholder="If empty, it will be the same as Username."
|
placeholder="If empty, it will be the same as Username." readonly
|
||||||
readonly
|
|
||||||
helper="You can only modify it before the initial start." />
|
helper="You can only modify it before the initial start." />
|
||||||
@else
|
@else
|
||||||
<x-forms.input label="Username" id="database.postgres_user" placeholder="If empty: postgres"
|
<x-forms.input label="Username" id="database.postgres_user" placeholder="If empty: postgres"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<div class="flex flex-wrap gap-2">
|
<div class="flex flex-wrap gap-2">
|
||||||
@forelse($database->scheduledBackups as $backup)
|
@forelse($database->scheduledBackups as $backup)
|
||||||
<a class="box flex flex-col"
|
<a class="flex flex-col box"
|
||||||
href="{{ route('project.database.backups.executions', [...$parameters, 'backup_uuid' => $backup->uuid]) }}">
|
href="{{ route('project.database.backups.executions', [...$parameters, 'backup_uuid' => $backup->uuid]) }}">
|
||||||
<div>Frequency: {{ $backup->frequency }}</div>
|
<div>Frequency: {{ $backup->frequency }}</div>
|
||||||
<div>Last backup: {{ data_get($backup->latest_log, 'status', 'No backup yet') }}</div>
|
<div>Last backup: {{ data_get($backup->latest_log, 'status', 'No backup yet') }}</div>
|
||||||
|
@ -46,8 +46,7 @@
|
|||||||
<h2>Proxy</h2>
|
<h2>Proxy</h2>
|
||||||
<div class="pt-2 pb-10 ">Select a proxy you would like to use on this server.</div>
|
<div class="pt-2 pb-10 ">Select a proxy you would like to use on this server.</div>
|
||||||
<div class="flex gap-2">
|
<div class="flex gap-2">
|
||||||
<x-forms.button class="w-32 box"
|
<x-forms.button class="w-32 box" wire:click="select_proxy('{{ ProxyTypes::TRAEFIK_V2 }}')">
|
||||||
wire:click="select_proxy('{{ ProxyTypes::TRAEFIK_V2 }}')">
|
|
||||||
Traefik
|
Traefik
|
||||||
v2
|
v2
|
||||||
</x-forms.button>
|
</x-forms.button>
|
||||||
|
@ -28,8 +28,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<x-forms.button isModal noStyle modalId="stopProxy"
|
<x-forms.button isModal noStyle modalId="stopProxy"
|
||||||
class="flex items-center gap-2 cursor-pointer hover:text-white text-neutral-400">
|
class="flex items-center gap-2 cursor-pointer hover:text-white text-neutral-400">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 text-error" viewBox="0 0 24 24"
|
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 text-error" viewBox="0 0 24 24" stroke-width="2"
|
||||||
stroke-width="2"
|
|
||||||
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||||
<path d="M6 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"></path>
|
<path d="M6 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"></path>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<li @if($isUpgradeAvailable) title="New version available" @else title="No upgrade available"
|
<li @if ($isUpgradeAvailable) title="New version available" @else title="No upgrade available" @endif
|
||||||
@endif x-init="$wire.checkUpdate" x-data>
|
x-init="$wire.checkUpdate" x-data>
|
||||||
@if ($isUpgradeAvailable)
|
@if ($isUpgradeAvailable)
|
||||||
<button wire:key="upgrade" wire:click='upgrade' class="hover:bg-transparent focus:bg-transparent"
|
<button wire:key="upgrade" wire:click='upgrade' class="hover:bg-transparent focus:bg-transparent"
|
||||||
x-on:click="upgrade">
|
x-on:click="upgrade">
|
||||||
@ -26,9 +26,8 @@
|
|||||||
</button>
|
</button>
|
||||||
@else
|
@else
|
||||||
<button class="hover:bg-transparent">
|
<button class="hover:bg-transparent">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 transition-colors text-neutral-700"
|
||||||
class="w-6 h-6 transition-colors text-neutral-700" viewBox="0 0 24 24"
|
viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
|
||||||
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
|
|
||||||
stroke-linejoin="round">
|
stroke-linejoin="round">
|
||||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||||
<path
|
<path
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
<x-layout>
|
<x-layout>
|
||||||
<h1>Configuration</h1>
|
<h1>Configuration</h1>
|
||||||
<livewire:project.application.heading :application="$application" />
|
<livewire:project.application.heading :application="$application" />
|
||||||
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }"
|
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-6">
|
||||||
class="flex h-full pt-6">
|
|
||||||
<div class="flex flex-col gap-4 min-w-fit">
|
<div class="flex flex-col gap-4 min-w-fit">
|
||||||
<a :class="activeTab === 'general' && 'text-white'"
|
<a :class="activeTab === 'general' && 'text-white'"
|
||||||
@click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a>
|
@click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<x-layout>
|
<x-layout>
|
||||||
<h1>Deployments</h1>
|
<h1>Deployments</h1>
|
||||||
<livewire:project.application.heading :application="$application" />
|
<livewire:project.application.heading :application="$application" />
|
||||||
<livewire:project.application.deployments :application="$application" :deployments="$deployments"
|
<livewire:project.application.deployments :application="$application" :deployments="$deployments" :deployments_count="$deployments_count" />
|
||||||
:deployments_count="$deployments_count"/>
|
|
||||||
</x-layout>
|
</x-layout>
|
||||||
|
@ -11,8 +11,7 @@
|
|||||||
</x-forms.button>
|
</x-forms.button>
|
||||||
</x-slot:modalSubmit>
|
</x-slot:modalSubmit>
|
||||||
</x-modal>
|
</x-modal>
|
||||||
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }"
|
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-6">
|
||||||
class="flex h-full pt-6">
|
|
||||||
<div class="flex flex-col gap-4 min-w-fit">
|
<div class="flex flex-col gap-4 min-w-fit">
|
||||||
<a :class="activeTab === 'general' && 'text-white'"
|
<a :class="activeTab === 'general' && 'text-white'"
|
||||||
@click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a>
|
@click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a>
|
||||||
|
@ -27,8 +27,7 @@
|
|||||||
<div class="flex-1"></div>
|
<div class="flex-1"></div>
|
||||||
<a class="mx-4 rounded hover:text-white"
|
<a class="mx-4 rounded hover:text-white"
|
||||||
href="{{ route('project.edit', ['project_uuid' => data_get($project, 'uuid')]) }}">
|
href="{{ route('project.edit', ['project_uuid' => data_get($project, 'uuid')]) }}">
|
||||||
<svg
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24" stroke-width="1.5"
|
||||||
xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 24 24" stroke-width="1.5"
|
|
||||||
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||||
<path
|
<path
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<x-layout>
|
<x-layout>
|
||||||
<x-settings.navbar />
|
<x-settings.navbar />
|
||||||
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }"
|
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-1">
|
||||||
class="flex h-full pt-1">
|
|
||||||
<div class="flex flex-col gap-4 min-w-fit">
|
<div class="flex flex-col gap-4 min-w-fit">
|
||||||
<a :class="activeTab === 'general' && 'text-white'"
|
<a :class="activeTab === 'general' && 'text-white'"
|
||||||
@click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a>
|
@click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a>
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
@props([
|
@props(['url', 'color' => 'primary', 'align' => 'center'])
|
||||||
'url',
|
|
||||||
'color' => 'primary',
|
|
||||||
'align' => 'center',
|
|
||||||
])
|
|
||||||
<table class="action" align="{{ $align }}" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
<table class="action" align="{{ $align }}" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||||
<tr>
|
<tr>
|
||||||
<td align="{{ $align }}">
|
<td align="{{ $align }}">
|
||||||
@ -12,7 +8,8 @@
|
|||||||
<table border="0" cellpadding="0" cellspacing="0" role="presentation">
|
<table border="0" cellpadding="0" cellspacing="0" role="presentation">
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<a href="{{ $url }}" class="button button-{{ $color }}" target="_blank" rel="noopener">{{ $slot }}</a>
|
<a href="{{ $url }}" class="button button-{{ $color }}"
|
||||||
|
target="_blank" rel="noopener">{{ $slot }}</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
<!DOCTYPE html
|
||||||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>{{ config('app.name') }}</title>
|
<title>{{ config('app.name') }}</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
@ -24,6 +26,7 @@ width: 100% !important;
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<table class="wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
<table class="wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||||
@ -34,8 +37,10 @@ width: 100% !important;
|
|||||||
|
|
||||||
<!-- Email Body -->
|
<!-- Email Body -->
|
||||||
<tr>
|
<tr>
|
||||||
<td class="body" width="100%" cellpadding="0" cellspacing="0" style="border: hidden !important;">
|
<td class="body" width="100%" cellpadding="0" cellspacing="0"
|
||||||
<table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
|
style="border: hidden !important;">
|
||||||
|
<table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0"
|
||||||
|
role="presentation">
|
||||||
<!-- Body content -->
|
<!-- Body content -->
|
||||||
<tr>
|
<tr>
|
||||||
<td class="content-cell">
|
<td class="content-cell">
|
||||||
@ -54,4 +59,5 @@ width: 100% !important;
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -11,4 +11,3 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
{!! strip_tags($slot) !!}
|
{!! strip_tags($slot) !!}
|
||||||
@isset($subcopy)
|
@isset($subcopy)
|
||||||
|
|
||||||
{!! strip_tags($subcopy) !!}
|
{!! strip_tags($subcopy) !!}
|
||||||
@endisset
|
@endisset
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user