ui: redesign
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<span x-data x-init="$wire.emit('error', '{{ session('error') }}')" />
|
||||
@endif
|
||||
<h1>Dashboard</h1>
|
||||
<div class="subtitle">Your self-hosted environment</div>
|
||||
{{-- <div class="subtitle">Your self-hosted environment</div> --}}
|
||||
@if (request()->query->get('success'))
|
||||
<div class="mb-10 text-white rounded alert alert-success">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 stroke-current shrink-0" fill="none"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<h2>Advanced</h2>
|
||||
</div>
|
||||
<div>Advanced configuration for your application.</div>
|
||||
<div class="flex flex-col pt-4 w-96">
|
||||
<div class="flex flex-col gap-2 pt-4 w-96">
|
||||
<h3>General</h3>
|
||||
@if ($application->git_based())
|
||||
<x-forms.checkbox helper="Automatically deploy new commits based on Git webhooks." instantSave
|
||||
@@ -42,7 +42,9 @@
|
||||
<x-forms.checkbox disabled instantSave id="is_custom_ssl" label="Is Custom SSL?" />
|
||||
<x-forms.checkbox disabled instantSave id="is_http2" label="Is Http2?" /> --}}
|
||||
</div>
|
||||
<h3>GPU</h3>
|
||||
@if ($application->build_pack !== 'dockercompose')
|
||||
<h3>GPU</h3>
|
||||
@endif
|
||||
<form wire:submit="submit">
|
||||
@if ($application->build_pack !== 'dockercompose')
|
||||
<div class="w-96">
|
||||
|
||||
@@ -3,31 +3,31 @@
|
||||
<livewire:project.application.heading :application="$application" />
|
||||
<div x-data="{ activeTab: window.location.hash ? window.location.hash.substring(1) : 'general' }" class="flex h-full pt-6">
|
||||
<div class="flex flex-col gap-4 xl:w-48">
|
||||
<a :class="activeTab === 'general' && 'text-white'"
|
||||
<a :class="activeTab === 'general' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'general'; window.location.hash = 'general'" href="#">General</a>
|
||||
@if ($application->destination->server->isSwarm())
|
||||
<a :class="activeTab === 'swarm' && 'text-white'"
|
||||
<a :class="activeTab === 'swarm' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'swarm'; window.location.hash = 'swarm'" href="#">Swarm
|
||||
Configuration</a>
|
||||
@endif
|
||||
<a :class="activeTab === 'advanced' && 'text-white'"
|
||||
<a :class="activeTab === 'advanced' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'advanced'; window.location.hash = 'advanced'" href="#">Advanced</a>
|
||||
@if ($application->build_pack !== 'static')
|
||||
<a :class="activeTab === 'environment-variables' && 'text-white'"
|
||||
<a :class="activeTab === 'environment-variables' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'environment-variables'; window.location.hash = 'environment-variables'"
|
||||
href="#">Environment
|
||||
Variables</a>
|
||||
@endif
|
||||
@if ($application->build_pack !== 'static' && $application->build_pack !== 'dockercompose')
|
||||
<a :class="activeTab === 'storages' && 'text-white'"
|
||||
<a :class="activeTab === 'storages' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'storages'; window.location.hash = 'storages'" href="#">Storages
|
||||
</a>
|
||||
@endif
|
||||
@if ($application->git_based())
|
||||
<a :class="activeTab === 'source' && 'text-white'"
|
||||
<a :class="activeTab === 'source' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'source'; window.location.hash = 'source'" href="#">Source</a>
|
||||
@endif
|
||||
<a :class="activeTab === 'servers' && 'text-white'" class="flex items-center gap-2"
|
||||
<a :class="activeTab === 'servers' && 'dark:text-white text-black'" class="flex items-center gap-2"
|
||||
@click.prevent="activeTab = 'servers'; window.location.hash = 'servers'" href="#">Servers
|
||||
@if (str($application->status)->contains('degraded'))
|
||||
<span title="Some servers are unavailable">
|
||||
@@ -38,42 +38,42 @@
|
||||
</span>
|
||||
@endif
|
||||
</a>
|
||||
<a :class="activeTab === 'scheduled-tasks' && 'text-white'"
|
||||
<a :class="activeTab === 'scheduled-tasks' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'scheduled-tasks'; window.location.hash = 'scheduled-tasks'"
|
||||
href="#">Scheduled Tasks
|
||||
</a>
|
||||
|
||||
<a :class="activeTab === 'webhooks' && 'text-white'"
|
||||
<a :class="activeTab === 'webhooks' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'webhooks'; window.location.hash = 'webhooks'" href="#">Webhooks
|
||||
</a>
|
||||
@if ($application->git_based())
|
||||
<a :class="activeTab === 'previews' && 'text-white'"
|
||||
<a :class="activeTab === 'previews' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'previews'; window.location.hash = 'previews'" href="#">Preview
|
||||
Deployments
|
||||
</a>
|
||||
@endif
|
||||
@if ($application->build_pack !== 'static' && $application->build_pack !== 'dockercompose')
|
||||
<a :class="activeTab === 'health' && 'text-white'"
|
||||
<a :class="activeTab === 'health' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'health'; window.location.hash = 'health'" href="#">Healthchecks
|
||||
</a>
|
||||
@endif
|
||||
<a :class="activeTab === 'rollback' && 'text-white'"
|
||||
<a :class="activeTab === 'rollback' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'rollback'; window.location.hash = 'rollback'" href="#">Rollback
|
||||
</a>
|
||||
@if ($application->build_pack !== 'dockercompose')
|
||||
<a :class="activeTab === 'resource-limits' && 'text-white'"
|
||||
<a :class="activeTab === 'resource-limits' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'resource-limits'; window.location.hash = 'resource-limits'"
|
||||
href="#">Resource Limits
|
||||
</a>
|
||||
@endif
|
||||
<a :class="activeTab === 'resource-operations' && 'text-white'"
|
||||
<a :class="activeTab === 'resource-operations' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'resource-operations'; window.location.hash = 'resource-operations'"
|
||||
href="#">Resource Operations
|
||||
</a>
|
||||
<a :class="activeTab === 'tags' && 'text-white'"
|
||||
<a :class="activeTab === 'tags' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'tags'; window.location.hash = 'tags'" href="#">Tags
|
||||
</a>
|
||||
<a :class="activeTab === 'danger' && 'text-white'"
|
||||
<a :class="activeTab === 'danger' && 'dark:text-white text-black'"
|
||||
@click.prevent="activeTab = 'danger'; window.location.hash = 'danger'" href="#">Danger Zone
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
helper="WARNING: Advanced use cases only. Your docker compose file will be deployed as-is. Nothing is modified by Coolify. You need to configure the proxy parts. More info in the <a href='https://coolify.io/docs/docker/compose#raw-docker-compose-deployment'>documentation.</a>" />
|
||||
</div>
|
||||
@if (count($parsedServices) > 0 && !$application->settings->is_raw_compose_deployment_enabled)
|
||||
<h3>Domains</h3>
|
||||
@foreach (data_get($parsedServices, 'services') as $serviceName => $service)
|
||||
@if (!isDatabaseImage(data_get($service, 'image')))
|
||||
<div class="flex items-end gap-2">
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<livewire:project.shared.environment-variable.add />
|
||||
</x-slot:content>
|
||||
<button @click="slideOverOpen=true"
|
||||
class="font-normal text-white normal-case border-none rounded btn btn-primary btn-sm no-animation">+
|
||||
class="button">+
|
||||
Add</button>
|
||||
</x-slide-over>
|
||||
</div>
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
<livewire:project.shared.environment-variable.add />
|
||||
</x-slot:content>
|
||||
<button @click="slideOverOpen=true"
|
||||
class="font-normal text-white normal-case border-none rounded btn btn-primary btn-sm no-animation">+
|
||||
class="button">+
|
||||
Add</button>
|
||||
</x-slide-over>
|
||||
</div>
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
<div>
|
||||
<div class="flex gap-2">
|
||||
<h1>Projects</span></h1>
|
||||
<h1>Projects</h1>
|
||||
@if ($servers > 0)
|
||||
<x-forms.button class="btn" onclick="newEmptyProject.showModal()">+ Add</x-forms.button>
|
||||
<x-forms.button onclick="newEmptyProject.showModal()">+ Add</x-forms.button>
|
||||
<livewire:project.add-empty />
|
||||
@endif
|
||||
</div>
|
||||
<div class="subtitle ">All Projects</div>
|
||||
<div class="grid gap-2 lg:grid-cols-2">
|
||||
@if ($servers === 0)
|
||||
<div>
|
||||
@@ -17,14 +16,14 @@
|
||||
@forelse ($projects as $project)
|
||||
<div class="gap-2 border border-transparent cursor-pointer box group" x-data
|
||||
x-on:click="goto('{{ $project->uuid }}')">
|
||||
<a class="flex flex-col flex-1 mx-6 hover:no-underline"
|
||||
<a class="flex flex-col flex-1 mx-6 hover:no-underline"
|
||||
href="{{ route('project.show', ['project_uuid' => data_get($project, 'uuid')]) }}">
|
||||
<div class="font-bold text-white">{{ $project->name }}</div>
|
||||
<div class="description ">
|
||||
{{ $project->description }}</div>
|
||||
</a>
|
||||
<div class="flex items-center">
|
||||
<a class="mx-4 rounded group-hover:text-white"
|
||||
<a class="mx-4 rounded group-hover:text-white"
|
||||
href="{{ route('project.edit', ['project_uuid' => data_get($project, 'uuid')]) }}">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon hover:text-warning" viewBox="0 0 24 24"
|
||||
stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
|
||||
|
||||
@@ -54,16 +54,16 @@
|
||||
<div class="flex gap-2">
|
||||
<div class="pb-2 font-bold text-white" x-text="item.name"></div>
|
||||
<template x-if="item.status.startsWith('running')">
|
||||
<div title="running" class="mt-1 bg-success badge badge-xs"></div>
|
||||
<div title="running" class="mt-1 bg-success badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('exited')">
|
||||
<div title="exited" class="mt-1 bg-error badge badge-xs"></div>
|
||||
<div title="exited" class="mt-1 bg-error badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('restarting')">
|
||||
<div title="restarting" class="mt-1 bg-warningbadge badge-xs"></div>
|
||||
<div title="restarting" class="mt-1 bg-warningbadge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('degraded')">
|
||||
<div title="degraded" class="mt-1 bg-warning badge badge-xs"></div>
|
||||
<div title="degraded" class="mt-1 bg-warning badge "></div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="max-w-full truncate description" x-text="item.description"></div>
|
||||
@@ -87,16 +87,16 @@
|
||||
<div class="flex gap-2">
|
||||
<div class="pb-2 font-bold text-white" x-text="item.name"></div>
|
||||
<template x-if="item.status.startsWith('running')">
|
||||
<div title="running" class="mt-1 bg-success badge badge-xs"></div>
|
||||
<div title="running" class="mt-1 bg-success badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('exited')">
|
||||
<div title="exited" class="mt-1 bg-error badge badge-xs"></div>
|
||||
<div title="exited" class="mt-1 bg-error badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('restarting')">
|
||||
<div title="restarting" class="mt-1 bg-warningbadge badge-xs"></div>
|
||||
<div title="restarting" class="mt-1 bg-warningbadge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('degraded')">
|
||||
<div title="degraded" class="mt-1 bg-warning badge badge-xs"></div>
|
||||
<div title="degraded" class="mt-1 bg-warning badge "></div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="max-w-full truncate description" x-text="item.description"></div>
|
||||
@@ -119,16 +119,16 @@
|
||||
<div class="flex gap-2">
|
||||
<div class="pb-2 font-bold text-white" x-text="item.name"></div>
|
||||
<template x-if="item.status.startsWith('running')">
|
||||
<div title="running" class="mt-1 bg-success badge badge-xs"></div>
|
||||
<div title="running" class="mt-1 bg-success badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('exited')">
|
||||
<div title="exited" class="mt-1 bg-error badge badge-xs"></div>
|
||||
<div title="exited" class="mt-1 bg-error badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('restarting')">
|
||||
<div title="restarting" class="mt-1 bg-warningbadge badge-xs"></div>
|
||||
<div title="restarting" class="mt-1 bg-warningbadge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('degraded')">
|
||||
<div title="degraded" class="mt-1 bg-warning badge badge-xs"></div>
|
||||
<div title="degraded" class="mt-1 bg-warning badge "></div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="max-w-full truncate description" x-text="item.description"></div>
|
||||
@@ -151,16 +151,16 @@
|
||||
<div class="flex gap-2">
|
||||
<div class="pb-2 font-bold text-white" x-text="item.name"></div>
|
||||
<template x-if="item.status.startsWith('running')">
|
||||
<div title="running" class="mt-1 bg-success badge badge-xs"></div>
|
||||
<div title="running" class="mt-1 bg-success badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('exited')">
|
||||
<div title="exited" class="mt-1 bg-error badge badge-xs"></div>
|
||||
<div title="exited" class="mt-1 bg-error badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('restarting')">
|
||||
<div title="restarting" class="mt-1 bg-warningbadge badge-xs"></div>
|
||||
<div title="restarting" class="mt-1 bg-warningbadge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('degraded')">
|
||||
<div title="degraded" class="mt-1 bg-warning badge badge-xs"></div>
|
||||
<div title="degraded" class="mt-1 bg-warning badge "></div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="max-w-full truncate description" x-text="item.description"></div>
|
||||
@@ -183,16 +183,16 @@
|
||||
<div class="flex gap-2">
|
||||
<div class="pb-2 font-bold text-white" x-text="item.name"></div>
|
||||
<template x-if="item.status.startsWith('running')">
|
||||
<div title="running" class="mt-1 bg-success badge badge-xs"></div>
|
||||
<div title="running" class="mt-1 bg-success badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('exited')">
|
||||
<div title="exited" class="mt-1 bg-error badge badge-xs"></div>
|
||||
<div title="exited" class="mt-1 bg-error badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('restarting')">
|
||||
<div title="restarting" class="mt-1 bg-warningbadge badge-xs"></div>
|
||||
<div title="restarting" class="mt-1 bg-warningbadge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('degraded')">
|
||||
<div title="degraded" class="mt-1 bg-warning badge badge-xs"></div>
|
||||
<div title="degraded" class="mt-1 bg-warning badge "></div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="max-w-full truncate description" x-text="item.description"></div>
|
||||
@@ -215,16 +215,16 @@
|
||||
<div class="flex gap-2">
|
||||
<div class="pb-2 font-bold text-white" x-text="item.name"></div>
|
||||
<template x-if="item.status.startsWith('running')">
|
||||
<div title="running" class="mt-1 bg-success badge badge-xs"></div>
|
||||
<div title="running" class="mt-1 bg-success badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('exited')">
|
||||
<div title="exited" class="mt-1 bg-error badge badge-xs"></div>
|
||||
<div title="exited" class="mt-1 bg-error badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('restarting')">
|
||||
<div title="restarting" class="mt-1 bg-warningbadge badge-xs"></div>
|
||||
<div title="restarting" class="mt-1 bg-warningbadge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('degraded')">
|
||||
<div title="degraded" class="mt-1 bg-warning badge badge-xs"></div>
|
||||
<div title="degraded" class="mt-1 bg-warning badge "></div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="max-w-full truncate description" x-text="item.description"></div>
|
||||
@@ -247,16 +247,16 @@
|
||||
<div class="flex gap-2">
|
||||
<div class="pb-2 font-bold text-white" x-text="item.name"></div>
|
||||
<template x-if="item.status.startsWith('running')">
|
||||
<div title="running" class="mt-1 bg-success badge badge-xs"></div>
|
||||
<div title="running" class="mt-1 bg-success badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('exited')">
|
||||
<div title="exited" class="mt-1 bg-error badge badge-xs"></div>
|
||||
<div title="exited" class="mt-1 bg-error badge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('restarting')">
|
||||
<div title="restarting" class="mt-1 bg-warningbadge badge-xs"></div>
|
||||
<div title="restarting" class="mt-1 bg-warningbadge "></div>
|
||||
</template>
|
||||
<template x-if="item.status.startsWith('degraded')">
|
||||
<div title="degraded" class="mt-1 bg-warning badge badge-xs"></div>
|
||||
<div title="degraded" class="mt-1 bg-warning badge "></div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="max-w-full truncate description" x-text="item.description"></div>
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
<div class="relative flex flex-col text-white cursor-default box-without-bg bg-coolgray-100 w-96">
|
||||
<div class="text-xl font-bold">Primary Server</div>
|
||||
@if (str($resource->realStatus())->startsWith('running'))
|
||||
<div title="{{ $resource->realStatus() }}" class="absolute bg-success -top-1 -left-1 badge badge-xs">
|
||||
<div title="{{ $resource->realStatus() }}" class="absolute bg-success -top-1 -left-1 badge ">
|
||||
</div>
|
||||
@elseif (str($resource->realStatus())->startsWith('exited'))
|
||||
<div title="{{ $resource->realStatus() }}" class="absolute bg-error -top-1 -left-1 badge badge-xs">
|
||||
<div title="{{ $resource->realStatus() }}" class="absolute bg-error -top-1 -left-1 badge ">
|
||||
</div>
|
||||
@endif
|
||||
<div>
|
||||
@@ -34,10 +34,10 @@
|
||||
<div class="relative flex flex-col box w-96">
|
||||
@if (str(data_get($destination, 'pivot.status'))->startsWith('running'))
|
||||
<div title="{{ data_get($destination, 'pivot.status') }}"
|
||||
class="absolute bg-success -top-1 -left-1 badge badge-xs"></div>
|
||||
class="absolute bg-success -top-1 -left-1 badge "></div>
|
||||
@elseif (str(data_get($destination, 'pivot.status'))->startsWith('exited'))
|
||||
<div title="{{ data_get($destination, 'pivot.status') }}"
|
||||
class="absolute bg-error -top-1 -left-1 badge badge-xs"></div>
|
||||
class="absolute bg-error -top-1 -left-1 badge "></div>
|
||||
@endif
|
||||
<div>
|
||||
Server: {{ data_get($destination, 'server.name') }}
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
<x-slot:content>
|
||||
<livewire:project.shared.environment-variable.add />
|
||||
</x-slot:content>
|
||||
<button @click="slideOverOpen=true"
|
||||
class="font-normal text-white normal-case border-none rounded btn btn-primary btn-sm no-animation">+ Add</button>
|
||||
<button @click="slideOverOpen=true" class="button">+ Add</button>
|
||||
</x-slide-over>
|
||||
@endif
|
||||
<x-forms.button
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<dialog id="newTask" class="modal">
|
||||
<form method="dialog" class="flex flex-col gap-2 rounded modal-box" wire:submit='submit'>
|
||||
<h3 class="text-lg font-bold">Add Scheduled Task</h3>
|
||||
<x-forms.input placeholder="Run cron" id="name" label="Name" required />
|
||||
<x-forms.input placeholder="php artisan schedule:run" id="command" label="Command" required />
|
||||
<x-forms.input placeholder="0 0 * * * or daily" id="frequency" label="Frequency" required />
|
||||
<x-forms.input placeholder="php" id="container" helper="You can leave it empty if your resource only have one container." label="Container name" />
|
||||
<x-forms.button onclick="newTask.close()" type="submit">
|
||||
Save
|
||||
</x-forms.button>
|
||||
</form>
|
||||
<form method="dialog" class="modal-backdrop">
|
||||
<button>close</button>
|
||||
</form>
|
||||
</dialog>
|
||||
<form class="flex flex-col gap-2 rounded" wire:submit='submit'>
|
||||
<x-forms.input placeholder="Run cron" id="name" label="Name" />
|
||||
<x-forms.input placeholder="php artisan schedule:run" id="command" label="Command" />
|
||||
<x-forms.input placeholder="0 0 * * * or daily" id="frequency" label="Frequency" />
|
||||
<x-forms.input placeholder="php" id="container"
|
||||
helper="You can leave it empty if your resource only have one container." label="Container name" />
|
||||
<x-forms.button @click="slideOverOpen=false" type="submit">
|
||||
Save
|
||||
</x-forms.button>
|
||||
</form>
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
<div>
|
||||
<div class="flex gap-2">
|
||||
<h2 class="pb-4">Scheduled Tasks</h2>
|
||||
<x-forms.button class="btn" onclick="newTask.showModal()">+ Add</x-forms.button>
|
||||
<livewire:project.shared.scheduled-task.add />
|
||||
<h2>Scheduled Tasks</h2>
|
||||
<x-slide-over>
|
||||
<x-slot:title>New Scheduled Task</x-slot:title>
|
||||
<x-slot:content>
|
||||
<livewire:project.shared.scheduled-task.add />
|
||||
</x-slot:content>
|
||||
<button @click="slideOverOpen=true" class="button">+ Add</button>
|
||||
</x-slide-over>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-wrap gap-2">
|
||||
<div class="flex flex-wrap gap-2 pt-4">
|
||||
@forelse($resource->scheduled_tasks as $task)
|
||||
<a class="flex flex-col box"
|
||||
@if ($resource->type() == 'application')
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<x-forms.button class="btn">+ Add</x-forms.button>
|
||||
</a>
|
||||
</div>
|
||||
<div class="subtitle ">All Servers</div>
|
||||
<div class="grid gap-2 lg:grid-cols-2">
|
||||
@forelse ($servers as $server)
|
||||
<a href="{{ route('server.show', ['server_uuid' => data_get($server, 'uuid')]) }}"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
:newFile="$newFile" wire:key="{{ $fileName }}" />
|
||||
</x-slot:content>
|
||||
<button @click="slideOverOpen=true"
|
||||
class="font-normal text-white normal-case border-none rounded btn btn-primary btn-sm no-animation">Edit</button>
|
||||
class="button">Edit</button>
|
||||
</x-slide-over>
|
||||
</div>
|
||||
<x-forms.button isError wire:click="delete('{{ $fileName }}')">Delete</x-forms.button>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<livewire:server.proxy.new-dynamic-configuration />
|
||||
</x-slot:content>
|
||||
<button @click="slideOverOpen=true"
|
||||
class="font-normal text-white normal-case border-none rounded btn btn-primary btn-sm no-animation">+
|
||||
class="button">+
|
||||
Add</button>
|
||||
</x-slide-over>
|
||||
</div>
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
<x-slot:content>
|
||||
<livewire:project.shared.environment-variable.add />
|
||||
</x-slot:content>
|
||||
<button @click="slideOverOpen=true"
|
||||
class="font-normal text-white normal-case border-none rounded btn btn-primary btn-sm no-animation">+
|
||||
<button @click="slideOverOpen=true" class="button">+
|
||||
Add</button>
|
||||
</x-slide-over>
|
||||
</div>
|
||||
<div class="flex items-center gap-2 pb-4">You can use these variables anywhere with <span class="text-warning">@{{team.VARIABLENAME}}</span> <x-helper
|
||||
<div class="flex items-center gap-2 pb-4">You can use these variables anywhere with <span
|
||||
class="text-warning">@{{ team.VARIABLENAME }}</span> <x-helper
|
||||
helper="More info <a class='text-white underline' href='https://coolify.io/docs/environment-variables#shared-variables' target='_blank'>here</a>."></x-helper>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<li @if ($isUpgradeAvailable) title="New version available" @else title="No upgrade available" @endif
|
||||
<div @if ($isUpgradeAvailable) title="New version available" @else title="No upgrade available" @endif
|
||||
x-init="$wire.checkUpdate" x-data>
|
||||
@if ($isUpgradeAvailable)
|
||||
<button wire:key="upgrade" wire:click='upgrade' class="hover:bg-transparent focus:bg-transparent"
|
||||
x-on:click="upgrade">
|
||||
<button wire:key="upgrade" wire:click='upgrade' class="menu-item" x-on:click="upgrade">
|
||||
@if ($showProgress)
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
class="w-6 h-6 text-pink-500 transition-colors hover:text-pink-300 lds-heart" viewBox="0 0 24 24"
|
||||
@@ -11,6 +10,7 @@
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||||
<path d="M19.5 13.572l-7.5 7.428l-7.5 -7.428m0 0a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572" />
|
||||
</svg>
|
||||
Inprogress
|
||||
@else
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
class="w-6 h-6 text-pink-500 transition-colors hover:text-pink-300" viewBox="0 0 24 24"
|
||||
@@ -22,10 +22,11 @@
|
||||
<path d="M9 21h6" />
|
||||
<path d="M9 18h6" />
|
||||
</svg>
|
||||
Upgrade
|
||||
@endif
|
||||
</button>
|
||||
@else
|
||||
<button class="hover:bg-transparent">
|
||||
<button class="menu-item">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 transition-colors text-neutral-700"
|
||||
viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
@@ -35,6 +36,7 @@
|
||||
<path d="M9 21h6" />
|
||||
<path d="M9 18h6" />
|
||||
</svg>
|
||||
<div class="w-20"></div>
|
||||
</button>
|
||||
@endif
|
||||
</li>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user