coolify/resources/views/livewire/project/application/configuration.blade.php

171 lines
8.4 KiB
PHP
Raw Permalink Normal View History

<div>
2024-06-07 09:01:10 +00:00
<x-slot:title>
{{ data_get_str($application, 'name')->limit(10) }} > Configuration | MapleDeploy
2024-06-07 09:01:10 +00:00
</x-slot>
2023-06-02 10:34:45 +00:00
<h1>Configuration</h1>
<livewire:project.shared.configuration-checker :resource="$application" />
2023-08-11 18:19:42 +00:00
<livewire:project.application.heading :application="$application" />
2024-12-16 13:11:45 +00:00
@php
$applicationRouteParameters = [
'project_uuid' => $project->uuid,
'environment_uuid' => $environment->uuid,
'application_uuid' => $application->uuid,
];
$configurationMenuItems = [
[
'label' => 'General',
'route' => 'project.application.configuration',
'active' => $currentRoute === 'project.application.configuration',
],
[
'label' => 'Advanced',
'route' => 'project.application.advanced',
'active' => $currentRoute === 'project.application.advanced',
],
[
'label' => 'Swarm',
'route' => 'project.application.swarm',
'active' => $currentRoute === 'project.application.swarm',
'visible' => $application->destination->server->isSwarm(),
],
[
'label' => 'Environment Variables',
'route' => 'project.application.environment-variables',
'active' => $currentRoute === 'project.application.environment-variables',
],
[
'label' => 'Persistent Storage',
'route' => 'project.application.persistent-storage',
'active' => $currentRoute === 'project.application.persistent-storage',
],
[
'label' => 'Git Source',
'route' => 'project.application.source',
'active' => $currentRoute === 'project.application.source',
'visible' => $application->git_based(),
],
[
'label' => 'Servers',
'route' => 'project.application.servers',
'active' => $currentRoute === 'project.application.servers',
'badge' => true,
],
[
'label' => 'Scheduled Tasks',
'route' => 'project.application.scheduled-tasks.show',
'active' => str($currentRoute)->startsWith('project.application.scheduled-tasks'),
],
[
'label' => 'Webhooks',
'route' => 'project.application.webhooks',
'active' => $currentRoute === 'project.application.webhooks',
],
[
'label' => 'Preview Deployments',
'route' => 'project.application.preview-deployments',
'active' => $currentRoute === 'project.application.preview-deployments',
'visible' => $application->git_based() || $application->build_pack === 'dockerimage',
],
[
'label' => 'Healthcheck',
'route' => 'project.application.healthcheck',
'active' => $currentRoute === 'project.application.healthcheck',
'visible' => $application->build_pack !== 'dockercompose',
],
[
'label' => 'Rollback',
'route' => 'project.application.rollback',
'active' => $currentRoute === 'project.application.rollback',
],
[
'label' => 'Resource Limits',
'route' => 'project.application.resource-limits',
'active' => $currentRoute === 'project.application.resource-limits',
],
[
'label' => 'Resource Operations',
'route' => 'project.application.resource-operations',
'active' => $currentRoute === 'project.application.resource-operations',
],
[
'label' => 'Metrics',
'route' => 'project.application.metrics',
'active' => $currentRoute === 'project.application.metrics',
],
[
'label' => 'Tags',
'route' => 'project.application.tags',
'active' => $currentRoute === 'project.application.tags',
],
[
'label' => 'Danger Zone',
'route' => 'project.application.danger',
'active' => $currentRoute === 'project.application.danger',
],
];
$configurationMenuItems = array_values(array_filter(
$configurationMenuItems,
fn (array $item): bool => $item['visible'] ?? true,
));
@endphp
<div class="flex flex-col h-full gap-2 md:gap-8 md:flex-row">
<div class="sub-menu-wrapper hidden md:flex">
@foreach ($configurationMenuItems as $menuItem)
<a @class([
'sub-menu-item',
'flex items-center gap-2' => $menuItem['badge'] ?? false,
'menu-item-active' => $menuItem['active'],
]) {{ wireNavigate() }} href="{{ route($menuItem['route'], $applicationRouteParameters) }}">
<span class="menu-item-label">{{ $menuItem['label'] }}</span>
@if ($menuItem['badge'] ?? false)
<livewire:project.application.server-status-badge :application="$application" />
@endif
</a>
@endforeach
2023-04-19 10:42:15 +00:00
</div>
<div class="w-full md:flex-grow">
@if ($currentRoute === 'project.application.configuration')
<livewire:project.application.general :application="$application" />
@elseif ($currentRoute === 'project.application.swarm' && $application->destination->server->isSwarm())
<livewire:project.application.swarm :application="$application" />
@elseif ($currentRoute === 'project.application.advanced')
<livewire:project.application.advanced :application="$application" />
@elseif ($currentRoute === 'project.application.environment-variables')
<livewire:project.shared.environment-variable.all :resource="$application" />
@elseif ($currentRoute === 'project.application.persistent-storage')
2024-12-16 13:11:45 +00:00
<livewire:project.service.storage :resource="$application" />
@elseif ($currentRoute === 'project.application.source' && $application->git_based())
2024-12-16 13:11:45 +00:00
<livewire:project.application.source :application="$application" />
@elseif ($currentRoute === 'project.application.servers')
2024-12-17 11:10:55 +00:00
<livewire:project.shared.destination :resource="$application" />
@elseif ($currentRoute === 'project.application.scheduled-tasks.show')
2024-12-16 13:11:45 +00:00
<livewire:project.shared.scheduled-task.all :resource="$application" />
@elseif ($currentRoute === 'project.application.scheduled-tasks')
<livewire:project.shared.scheduled-task.show />
@elseif ($currentRoute === 'project.application.webhooks')
2024-12-16 13:11:45 +00:00
<livewire:project.shared.webhooks :resource="$application" />
@elseif ($currentRoute === 'project.application.preview-deployments')
<livewire:project.application.previews :application="$application" />
@elseif ($currentRoute === 'project.application.healthcheck' && $application->build_pack !== 'dockercompose')
<livewire:project.shared.health-checks :resource="$application" />
@elseif ($currentRoute === 'project.application.rollback')
<livewire:project.application.rollback :application="$application" />
@elseif ($currentRoute === 'project.application.resource-limits')
<livewire:project.shared.resource-limits :resource="$application" />
@elseif ($currentRoute === 'project.application.resource-operations')
<livewire:project.shared.resource-operations :resource="$application" />
@elseif ($currentRoute === 'project.application.metrics')
<livewire:project.shared.metrics :resource="$application" />
@elseif ($currentRoute === 'project.application.tags')
2024-12-16 13:11:45 +00:00
<livewire:project.shared.tags :resource="$application" />
@elseif ($currentRoute === 'project.application.danger')
<livewire:project.shared.danger :resource="$application" />
2024-12-16 13:11:45 +00:00
@endif
2023-04-19 10:42:15 +00:00
</div>
</div>
</div>