2026-02-20 15:36:48 +01:00
|
|
|
<x-filament-panels::page>
|
|
|
|
|
<div
|
2026-04-06 12:41:36 +02:00
|
|
|
class="grid grid-cols-1 sm:grid-cols-2"
|
|
|
|
|
style="gap: 1.5rem"
|
2026-02-20 15:36:48 +01:00
|
|
|
@if($this->hasRunningCommands()) wire:poll.5s @endif
|
|
|
|
|
>
|
|
|
|
|
@php
|
2026-04-06 12:41:36 +02:00
|
|
|
$dolibarr = $this->getCommandStatus('dolibarr');
|
|
|
|
|
$expired = $this->getCommandStatus('cleanup_expired');
|
|
|
|
|
$ispMail = $this->getCommandStatus('ispconfig_mail');
|
|
|
|
|
$ispWeb = $this->getCommandStatus('ispconfig_web');
|
|
|
|
|
$nextcloud = $this->getCommandStatus('nextcloud');
|
2026-04-07 16:52:18 +02:00
|
|
|
$listmonk = $this->getCommandStatus('listmonk');
|
2026-04-06 12:41:36 +02:00
|
|
|
$services = $this->getCommandStatus('services');
|
2026-02-20 15:36:48 +01:00
|
|
|
@endphp
|
|
|
|
|
|
|
|
|
|
<x-filament::section>
|
|
|
|
|
<x-slot name="heading">
|
2026-04-06 12:41:36 +02:00
|
|
|
@include('filament.pages.partials.sync-heading', [
|
|
|
|
|
'label' => __('synchronisations.sections.dolibarr.heading'),
|
|
|
|
|
'status' => $dolibarr,
|
|
|
|
|
])
|
2026-02-20 15:36:48 +01:00
|
|
|
</x-slot>
|
|
|
|
|
<div class="space-y-3">
|
|
|
|
|
<p class="text-sm text-gray-500 dark:text-gray-400">
|
2026-04-06 12:41:36 +02:00
|
|
|
{{ __('synchronisations.sections.dolibarr.description') }}
|
2026-02-20 15:36:48 +01:00
|
|
|
</p>
|
|
|
|
|
@include('filament.pages.partials.sync-status', ['status' => $dolibarr])
|
2026-04-06 12:41:36 +02:00
|
|
|
<x-filament::button
|
|
|
|
|
wire:click="mountAction('syncDolibarr')"
|
|
|
|
|
:disabled="in_array($dolibarr['status'], ['pending', 'running'])"
|
|
|
|
|
>
|
|
|
|
|
{{ __('synchronisations.action.submit') }}
|
|
|
|
|
</x-filament::button>
|
2026-02-20 15:36:48 +01:00
|
|
|
</div>
|
|
|
|
|
</x-filament::section>
|
|
|
|
|
|
|
|
|
|
<x-filament::section>
|
|
|
|
|
<x-slot name="heading">
|
2026-04-06 12:41:36 +02:00
|
|
|
@include('filament.pages.partials.sync-heading', [
|
|
|
|
|
'label' => __('synchronisations.sections.expired.heading'),
|
|
|
|
|
'status' => $expired,
|
|
|
|
|
])
|
2026-02-20 15:36:48 +01:00
|
|
|
</x-slot>
|
|
|
|
|
<div class="space-y-3">
|
|
|
|
|
<p class="text-sm text-gray-500 dark:text-gray-400">
|
2026-04-06 12:41:36 +02:00
|
|
|
{{ __('synchronisations.sections.expired.description') }}
|
2026-02-20 15:36:48 +01:00
|
|
|
</p>
|
|
|
|
|
@include('filament.pages.partials.sync-status', ['status' => $expired])
|
2026-04-06 12:41:36 +02:00
|
|
|
<x-filament::button
|
|
|
|
|
wire:click="mountAction('cleanupExpired')"
|
|
|
|
|
:disabled="in_array($expired['status'], ['pending', 'running'])"
|
|
|
|
|
>
|
|
|
|
|
{{ __('synchronisations.action.submit') }}
|
|
|
|
|
</x-filament::button>
|
2026-02-20 15:36:48 +01:00
|
|
|
</div>
|
|
|
|
|
</x-filament::section>
|
|
|
|
|
|
|
|
|
|
<x-filament::section>
|
|
|
|
|
<x-slot name="heading">
|
2026-04-06 12:41:36 +02:00
|
|
|
@include('filament.pages.partials.sync-heading', [
|
|
|
|
|
'label' => __('synchronisations.sections.ispconfig_mail.heading'),
|
|
|
|
|
'status' => $ispMail,
|
|
|
|
|
])
|
2026-02-20 15:36:48 +01:00
|
|
|
</x-slot>
|
|
|
|
|
<div class="space-y-3">
|
|
|
|
|
<p class="text-sm text-gray-500 dark:text-gray-400">
|
2026-04-06 12:41:36 +02:00
|
|
|
{{ __('synchronisations.sections.ispconfig_mail.description') }}
|
2026-02-20 15:36:48 +01:00
|
|
|
</p>
|
|
|
|
|
@include('filament.pages.partials.sync-status', ['status' => $ispMail])
|
2026-04-06 12:41:36 +02:00
|
|
|
<x-filament::button
|
|
|
|
|
wire:click="mountAction('syncISPConfigMail')"
|
|
|
|
|
:disabled="in_array($ispMail['status'], ['pending', 'running'])"
|
|
|
|
|
>
|
|
|
|
|
{{ __('synchronisations.action.submit') }}
|
|
|
|
|
</x-filament::button>
|
2026-02-20 15:36:48 +01:00
|
|
|
</div>
|
|
|
|
|
</x-filament::section>
|
|
|
|
|
|
|
|
|
|
<x-filament::section>
|
|
|
|
|
<x-slot name="heading">
|
2026-04-06 12:41:36 +02:00
|
|
|
@include('filament.pages.partials.sync-heading', [
|
|
|
|
|
'label' => __('synchronisations.sections.ispconfig_web.heading'),
|
|
|
|
|
'status' => $ispWeb,
|
|
|
|
|
])
|
2026-02-20 15:36:48 +01:00
|
|
|
</x-slot>
|
|
|
|
|
<div class="space-y-3">
|
|
|
|
|
<p class="text-sm text-gray-500 dark:text-gray-400">
|
2026-04-06 12:41:36 +02:00
|
|
|
{{ __('synchronisations.sections.ispconfig_web.description') }}
|
2026-02-20 15:36:48 +01:00
|
|
|
</p>
|
|
|
|
|
@include('filament.pages.partials.sync-status', ['status' => $ispWeb])
|
2026-04-06 12:41:36 +02:00
|
|
|
<x-filament::button
|
|
|
|
|
wire:click="mountAction('syncISPConfigWeb')"
|
|
|
|
|
:disabled="in_array($ispWeb['status'], ['pending', 'running'])"
|
|
|
|
|
>
|
|
|
|
|
{{ __('synchronisations.action.submit') }}
|
|
|
|
|
</x-filament::button>
|
2026-02-20 15:36:48 +01:00
|
|
|
</div>
|
|
|
|
|
</x-filament::section>
|
|
|
|
|
|
|
|
|
|
<x-filament::section>
|
|
|
|
|
<x-slot name="heading">
|
2026-04-06 12:41:36 +02:00
|
|
|
@include('filament.pages.partials.sync-heading', [
|
|
|
|
|
'label' => __('synchronisations.sections.nextcloud.heading'),
|
|
|
|
|
'status' => $nextcloud,
|
|
|
|
|
])
|
2026-02-20 15:36:48 +01:00
|
|
|
</x-slot>
|
|
|
|
|
<div class="space-y-3">
|
|
|
|
|
<p class="text-sm text-gray-500 dark:text-gray-400">
|
2026-04-06 12:41:36 +02:00
|
|
|
{{ __('synchronisations.sections.nextcloud.description') }}
|
2026-02-20 15:36:48 +01:00
|
|
|
</p>
|
|
|
|
|
@include('filament.pages.partials.sync-status', ['status' => $nextcloud])
|
2026-04-06 12:41:36 +02:00
|
|
|
<x-filament::button
|
|
|
|
|
wire:click="mountAction('syncNextcloud')"
|
|
|
|
|
:disabled="in_array($nextcloud['status'], ['pending', 'running'])"
|
|
|
|
|
>
|
|
|
|
|
{{ __('synchronisations.action.submit') }}
|
|
|
|
|
</x-filament::button>
|
2026-02-20 15:36:48 +01:00
|
|
|
</div>
|
2026-04-07 16:52:18 +02:00
|
|
|
</x-filament::section>
|
|
|
|
|
|
|
|
|
|
<x-filament::section>
|
|
|
|
|
<x-slot name="heading">
|
|
|
|
|
@include('filament.pages.partials.sync-heading', [
|
|
|
|
|
'label' => __('synchronisations.sections.listmonk.heading'),
|
|
|
|
|
'status' => $listmonk,
|
|
|
|
|
])
|
|
|
|
|
</x-slot>
|
|
|
|
|
<div class="space-y-3">
|
|
|
|
|
<p class="text-sm text-gray-500 dark:text-gray-400">
|
|
|
|
|
{{ __('synchronisations.sections.listmonk.description') }}
|
|
|
|
|
</p>
|
|
|
|
|
@include('filament.pages.partials.sync-status', ['status' => $listmonk])
|
|
|
|
|
<x-filament::button
|
|
|
|
|
wire:click="mountAction('syncListmonk')"
|
|
|
|
|
:disabled="in_array($listmonk['status'], ['pending', 'running'])"
|
|
|
|
|
>
|
|
|
|
|
{{ __('synchronisations.action.submit') }}
|
|
|
|
|
</x-filament::button>
|
|
|
|
|
</div>
|
2026-02-20 15:36:48 +01:00
|
|
|
</x-filament::section>
|
|
|
|
|
|
|
|
|
|
<x-filament::section>
|
|
|
|
|
<x-slot name="heading">
|
2026-04-06 12:41:36 +02:00
|
|
|
@include('filament.pages.partials.sync-heading', [
|
|
|
|
|
'label' => __('synchronisations.sections.services.heading'),
|
|
|
|
|
'status' => $services,
|
|
|
|
|
])
|
2026-02-20 15:36:48 +01:00
|
|
|
</x-slot>
|
|
|
|
|
<div class="space-y-3">
|
|
|
|
|
<p class="text-sm text-gray-500 dark:text-gray-400">
|
2026-04-06 12:41:36 +02:00
|
|
|
{{ __('synchronisations.sections.services.description') }}
|
2026-02-20 15:36:48 +01:00
|
|
|
</p>
|
|
|
|
|
@include('filament.pages.partials.sync-status', ['status' => $services])
|
2026-04-06 12:41:36 +02:00
|
|
|
<x-filament::button
|
|
|
|
|
wire:click="mountAction('syncServices')"
|
|
|
|
|
:disabled="in_array($services['status'], ['pending', 'running'])"
|
|
|
|
|
>
|
|
|
|
|
{{ __('synchronisations.action.submit') }}
|
|
|
|
|
</x-filament::button>
|
2026-02-20 15:36:48 +01:00
|
|
|
</div>
|
|
|
|
|
</x-filament::section>
|
|
|
|
|
</div>
|
|
|
|
|
</x-filament-panels::page>
|