netgescon-day0/resources/views/filament/pages/gescon/importazione-archivi.blade.php

99 lines
5.1 KiB
PHP

<x-filament-panels::page>
@php
$sourceMode = data_get($data ?? [], 'source_mode', 'linux_server');
$preview = $this->getCommandPreviewData();
$selectedLabel = data_get($stabiliOptions ?? [], data_get($preview, 'stabile_code', ''), data_get($preview, 'stabile_code', ''));
@endphp
<div class="space-y-6" x-data="{ tab: @js($sourceMode === 'windows_upload' ? 'windows' : 'linux') }">
<section class="rounded-2xl border border-slate-200 bg-white p-4 shadow-sm">
<div class="flex flex-wrap items-center justify-between gap-3">
<div>
<h2 class="text-sm font-semibold text-slate-900">Configurazione sorgente e import</h2>
<p class="mt-1 text-xs text-slate-600">Seleziona la sorgente, imposta stabile e anni, poi usa la tab operativa per import, aggiornamenti e re-sync.</p>
</div>
<div class="flex flex-wrap items-center gap-2">
<x-filament::button
size="sm"
:color="$sourceMode === 'linux_server' ? 'primary' : 'gray'"
x-on:click="tab = 'linux'"
wire:click="$set('data.source_mode','linux_server')"
>Linux / Server</x-filament::button>
<x-filament::button
size="sm"
:color="$sourceMode === 'windows_upload' ? 'primary' : 'gray'"
x-on:click="tab = 'windows'"
wire:click="$set('data.source_mode','windows_upload')"
>Windows / Upload</x-filament::button>
<x-filament::button
size="sm"
color="gray"
x-on:click="tab = 'operativa'"
>Tab operativa</x-filament::button>
</div>
</div>
<div class="mt-4 rounded-xl border border-slate-200 bg-slate-50 p-3">
<div class="grid gap-3 md:grid-cols-3">
<div>
<div class="text-[11px] font-semibold uppercase tracking-wide text-slate-500">Stabile selezionato</div>
<div class="mt-1 text-sm text-slate-800">{{ $selectedLabel !== '' ? $selectedLabel : 'Nessuno selezionato' }}</div>
</div>
<div>
<div class="text-[11px] font-semibold uppercase tracking-wide text-slate-500">Amministratore</div>
<div class="mt-1 text-sm text-slate-800">{{ data_get($preview, 'amministratore_id') ?: '-' }}</div>
</div>
<div>
<div class="text-[11px] font-semibold uppercase tracking-wide text-slate-500">Anno legacy diretto</div>
<div class="mt-1 text-sm text-slate-800">{{ data_get($preview, 'anno_dir') ?: '-' }}</div>
</div>
</div>
</div>
<div class="mt-4">
{{ $this->getSchema('form') }}
</div>
</section>
<section class="rounded-2xl border border-slate-200 bg-white shadow-sm">
<div class="border-b border-slate-200 px-4 py-3">
<div class="flex flex-wrap items-center gap-2">
<button type="button" class="rounded-lg px-3 py-1.5 text-sm font-medium transition"
:class="tab === 'linux' ? 'bg-sky-600 text-white' : 'bg-slate-100 text-slate-700'"
x-on:click="tab = 'linux'">
Connessione Linux
</button>
<button type="button" class="rounded-lg px-3 py-1.5 text-sm font-medium transition"
:class="tab === 'windows' ? 'bg-sky-600 text-white' : 'bg-slate-100 text-slate-700'"
x-on:click="tab = 'windows'">
Caricamento Windows
</button>
<button type="button" class="rounded-lg px-3 py-1.5 text-sm font-medium transition"
:class="tab === 'operativa' ? 'bg-sky-600 text-white' : 'bg-slate-100 text-slate-700'"
x-on:click="tab = 'operativa'">
Operativa / Re-sync
</button>
</div>
</div>
<div class="p-4">
<div x-show="tab === 'linux'">
@include('filament.pages.gescon.partials.importazione-archivi-linux', ['preview' => $preview])
</div>
<div x-show="tab === 'windows'">
@include('filament.pages.gescon.partials.importazione-archivi-windows', ['preview' => $preview])
</div>
<div x-show="tab === 'operativa'">
@include('filament.pages.gescon.partials.importazione-archivi-operativa', [
'preview' => $preview,
'data' => $data ?? [],
'stabiliOptions' => $stabiliOptions ?? [],
])
</div>
</div>
</section>
</div>
</x-filament-panels::page>