NetGescon - Modifiche e Aggiornamenti
Versione corrente: {{ $this->currentVersion }} fonte {{ $this->versionSource }}
Legenda rapida
U utenti finali P assistenza/sviluppo E non bloccante E! bloccante
@if($this->activeTab === 'errori')
Aggiornamento da server distribution
Lancia aggiornamento Lancia aggiornamento (riserva) Check connettivita update Aggiorna dati pagina Pulisci cache remoto Ricompila view remoto Aggiorna avanzamento
@if($this->updateInProgress)
@else
@endif
Avanzamento aggiornamento {{ (int) $this->updateProgressPercent }}%
{{ $this->updateProgressMessage }}
Job: {{ $this->updateJobId ?? '-' }} · Stato: {{ $this->updateProgressStatus }} @if($this->updateInProgress) · in esecuzione @endif
@if(! $this->canRunUpdate())
Permesso update non disponibile per il tuo ruolo.
@endif
Esito ultimo update
Ultima esecuzione: {{ $this->lastUpdateAt ?? '-' }}
Exit code: @if($this->lastUpdateExitCode === null) - @elseif($this->lastUpdateExitCode === 0) 0 OK @else {{ $this->lastUpdateExitCode }} ERRORE @endif
@if(filled($this->lastPlannedUpdateSummary))
Piano usato: {{ $this->lastPlannedUpdateSummary }}
@endif
Ultimo backup pronto per update
@if($this->latestBackupSummary)
Snapshot: {{ $this->latestBackupSummary['snapshot_id'] }}
Creato: {{ $this->latestBackupSummary['created_at'] }}
Copia locale: {{ $this->latestBackupSummary['zip_exists'] ? 'OK' : 'mancante' }}
ZIP: {{ $this->latestBackupSummary['zip_path'] ?: '-' }}
Dimensione: {{ $this->latestBackupSummary['zip_size_mb'] !== null ? number_format((float) $this->latestBackupSummary['zip_size_mb'], 2, ',', '.') . ' MB' : '-' }}
File copiati: {{ (int) $this->latestBackupSummary['copied_files'] }} · Tabelle indicizzate: {{ (int) $this->latestBackupSummary['tables_count'] }}
Copia Google Drive: @if(is_array($this->latestBackupSummary['drive'] ?? null)) OK @if(!empty($this->latestBackupSummary['drive']['webViewLink'])) Apri su Drive @endif @else non disponibile @endif
@else
Nessun backup pre-update registrato.
@endif
Anteprima pacchetto in arrivo
@if($this->lastManifestPreview)
Versione remota: {{ $this->lastManifestPreview['version'] }}
Migration richieste: {{ $this->lastManifestPreview['migrate_required'] ? 'si' : 'no' }}
Pacchetto: {{ $this->lastManifestPreview['package_url'] }}
SHA256: {{ $this->lastManifestPreview['sha256'] }}
@if(filled($this->lastManifestPreview['release_notes'] ?? null))
{{ $this->lastManifestPreview['release_notes'] }}
@endif @if(!empty($this->lastManifestPreview['security']))
Aggiornamenti sicurezza: {{ is_array($this->lastManifestPreview['security']) ? json_encode($this->lastManifestPreview['security'], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) : $this->lastManifestPreview['security'] }}
@endif
@else
Esegui “Check connettivita update” per leggere manifest e contenuto dell aggiornamento prima del lancio.
@endif
Aggiornamenti pianificati (prima del lancio)
    @foreach($this->updatePlannedSteps as $step)
  • {{ $step }}
  • @endforeach
Ripristino differenziale disponibile
Ripristino singola scrittura:
php artisan netgescon:restore-record <tabella> <pk> --apply
Preview senza scrivere:
php artisan netgescon:restore-record <tabella> <pk>
@if(filled($this->lastUpdateOutput))
Output tecnico
{{ $this->lastUpdateOutput }}
@endif @if(filled($this->lastUpdateIssue))
Diagnostica automatica ultimo errore
{{ $this->lastUpdateIssue }}
@endif @if(filled($this->lastConnectivityCheckOutput))
Output check connettivita endpoint update
{{ $this->lastConnectivityCheckOutput }}
@endif
Errori runtime, supporto e pregressi (laravel.log)
Raccolta unificata da: runtime-errors.ndjson, support-events.ndjson, laravel.log, docs/support/online-runtime-errors.ndjson (feed Git da online).
Aperti: {{ (int) $this->openBugCount }} Risolti: {{ (int) $this->resolvedBugCount }} Filtro:
Aggiungi BUG manuale
Crea BUG manuale
Nota risoluzione BUG
BUG selezionato: {{ $this->selectedBugFingerprint ? 'selezionato' : 'nessuno' }}
Salva nota risoluzione
@forelse($this->runtimeErrors as $row) @empty @endforelse
BUG # Stato Timestamp Origine Tipo Occorrenze Messaggio Contesto Nota risoluzione Azioni
{{ $row['bug_code'] }} @if(($row['bug_status'] ?? 'open') === 'resolved') risolto @else aperto @endif {{ $row['timestamp'] }} {{ $row['source'] ?? '-' }} {{ $row['type'] }} {{ (int) ($row['occurrences'] ?? 1) }} {{ $row['message'] }}
{{ $row['context'] !== '' ? \Illuminate\Support\Str::limit($row['context'], 220) : '-' }}
{{ $row['resolution_note'] !== '' ? \Illuminate\Support\Str::limit($row['resolution_note'], 160) : '-' }}
@if(($row['bug_status'] ?? 'open') === 'resolved' && filled($row['resolved_at']))
risolto: {{ $row['resolved_at'] }}
@endif
Nota @if(($row['bug_status'] ?? 'open') === 'resolved') Riapri @else Segna risolto @endif
Nessun errore registrato negli ultimi eventi.
@endif @if($this->activeTab === 'commit')
Ultimi commit (descrizioni)
Aggiungi nota operativa a un commit
Salva nota commit
@forelse($this->latestCommits as $commit) @empty @endforelse
Data Commit Autore Descrizione Nota aggiuntiva
{{ $commit['date'] }} {{ $commit['short_hash'] }} {{ $commit['author'] }} {{ $commit['message'] }} @php $note = $this->getCommitNote($commit['hash']); @endphp
{{ $note !== '' ? $note : '-' }}
Nessun commit disponibile.
@endif @php $path = base_path('docs/NETGESCON-MODIFICHE.md'); $raw = file_exists($path) ? file_get_contents($path) : "# Modifiche\n\nFile non trovato: {$path}\n"; $gitPath = base_path('docs/NETGESCON-GIT-AUTOCHANGELOG.md'); $gitRaw = file_exists($gitPath) ? file_get_contents($gitPath) : "# Git Auto Changelog\n\nFile non trovato: {$gitPath}\nEsegui: `bash scripts/ops/netgescon-sync-git-changelog.sh`\n"; // Mini-render: sostituisce tag tipo [U], [P], [E], [E!] con un quadratino colorato. $replacements = [ '[E!]' => 'E!', '[U]' => 'U', '[P]' => 'P', '[E]' => 'E', ]; $rawHtml = \Illuminate\Support\Str::markdown($raw); $rawHtml = str_replace(array_keys($replacements), array_values($replacements), $rawHtml); $gitRawHtml = \Illuminate\Support\Str::markdown($gitRaw); $gitRawHtml = str_replace(array_keys($replacements), array_values($replacements), $gitRawHtml); @endphp @if($this->activeTab === 'migliorie')
Pagine nuove o rese piu funzionali (ultimi commit)
@forelse($this->recentFilamentPages as $row) @empty @endforelse
Pagina Percorso Commit Descrizione
{{ $row['page'] }} {{ $row['path'] }} {{ $row['commit'] }} {{ $row['message'] }}
Nessuna pagina recente rilevata dai commit.
Migliorie e funzionalita aggiunte (estratte dal registro)
    @forelse($this->functionalHighlights as $item)
  • {{ $item }}
  • @empty
  • Nessuna miglioria rilevata automaticamente nel file modifiche.
  • @endforelse
Registro funzionale (manuale)
{!! $rawHtml !!}
Changelog automatico da script
{!! $gitRawHtml !!}
@endif