@php use App\Helpers\ActionHelper; use Carbon\Carbon; use Illuminate\Support\Str; $hiddenReportDates = \App\Models\Report::where('client_id', $client->id) ->where('is_hidden', true) ->pluck('date') ->map(fn($d) => $d instanceof \Carbon\Carbon ? $d->format('Y-m-d') : (string) $d) ->toArray(); $isAdministrator = auth()->user()->isSuperAdmin(); @endphp @extends('layouts.app') @section('title', __('clients.show_title')) @section('breadcrumbs') @include('components.breadcrumbs', ['items' => [ ['title' => $client->name, 'active' => true] ]]) @endsection @section('content')

{{ $client->name }}

@if(!auth()->user()->isViewer()) {{ __('clients.configure_client') }} @endif
@if(count($availableDates ?? []) > 0)
@endif
@if($client->scan_start_date && $client->scan_interval_days > 0 && $nextScanDate)
{{ __('clients.next_auto_scan') }} {{ $nextScanDate->format('d/m/Y H:i') }}
@endif @if(!auth()->user()->isViewer())
{{ __('clients.url_limit') }} {{ $uniqueUrlsCount }} / {{ $urlLimit }} {{ __('clients.url_used') }}
@if(!$canAddNewUrl)
{{ __('clients.limit_reached') }} {{ __('clients.cannot_add_urls') }}
@endif
@endif
{{ __('clients.loading_report') }}
@if(!auth()->user()->isViewer()) @if($canAddNewUrl) @else @endif @endif {{-- !isViewer() --}} @php $viewerCanScan = true; $viewerBlockReason = null; if (auth()->user()->isViewer()) { if ($viewerLastScanWithin24h) { $viewerCanScan = false; $viewerBlockReason = 'last24h'; } elseif ($viewerScanDaysThisMonth >= 4) { $viewerCanScan = false; $viewerBlockReason = 'monthLimit'; } } @endphp @if(!auth()->user()->isViewer() || $viewerCanScan)
user()->isViewer()) style="width: 100%;" @endif>
{{ __('clients.waiting') }}
@if(auth()->user()->isViewer())
Scansioni questo mese: {{ $viewerScanDaysThisMonth }}/4
@endif
@else
@if($viewerBlockReason === 'last24h') Scansione non disponibile: è già stata avviata una scansione nelle ultime 24 ore. @if($viewerLastScanAt) Ultima scansione: {{ $viewerLastScanAt->diffForHumans() }}. @endif @elseif($viewerBlockReason === 'monthLimit') Limite mensile raggiunto: hai già effettuato {{ $viewerScanDaysThisMonth }} scansioni questo mese (max 4). Il limite si azzera il mese prossimo. @endif
@endif
{{ __('clients.add_new_url') }}
@csrf
@php // === ESTRAZIONE AZIONI CON NUOVA FUNZIONE UNIFICATA === $allDomainActions = \App\Helpers\ActionHelper::extractActionsFromDomain($client->action_domain); // === FILTRAGGIO AZIONI === // Rimuove azioni predefinite che creano scan automatici e categorie vuote $filteredBeforeScanActions = []; foreach ($allDomainActions['before_scan_action'] as $category => $actions) { $filteredActions = []; foreach ($actions as $actionName => $actionData) { // Includiamo l'azione solo se NON è (predefinita E crea auto scan) if (!($actionData['is_predefined'] && $actionData['creates_auto_scan'])) { $filteredActions[$actionName] = $actionData; } } // Aggiungiamo la categoria solo se ha azioni if (!empty($filteredActions)) { $filteredBeforeScanActions[$category] = $filteredActions; } } $filteredActions = []; foreach ($allDomainActions['action'] as $category => $actions) { $filteredCategoryActions = []; foreach ($actions as $actionName => $actionData) { // Includiamo l'azione solo se NON è (predefinita E crea auto scan) if (!($actionData['is_predefined'] && $actionData['creates_auto_scan'])) { $filteredCategoryActions[$actionName] = $actionData; } } // Aggiungiamo la categoria solo se ha azioni if (!empty($filteredCategoryActions)) { $filteredActions[$category] = $filteredCategoryActions; } } $hasBeforeScanActions = !empty($filteredBeforeScanActions); @endphp @if($hasBeforeScanActions)
@endif @php // === RACCOLTA DATI PER AZIONI NORMALI === $hasActions = !empty($filteredActions); @endphp @if($hasActions)
@endif
@include('partials.scan-cards')
@php $cpSavedFilters = $client->xlsx_filters_setting ?? []; $cpDefaults = ['alta', 'media', 'bassa', 'trascurabile']; $cpSavedKeys = $cpSavedFilters['exclude_keys'] ?? ''; $cpSavedSev = $cpSavedFilters['severities'] ?? $cpDefaults; $cpSelected = old('severities', $cpSavedSev); $cpExcludeKeys = old('exclude_keys', $cpSavedKeys); @endphp @endsection