@extends('admin.layouts.app') @section('title', $title) @section('content') @php $checkedAtDisplay = $lastCheckedAt ? $lastCheckedAt->copy()->timezone(config('app.timezone'))->toDayDateTimeString() : 'Never'; $statusState = $status['status'] ?? 'ok'; $supportExpiresAt = $status['support_expires_at'] ?? null; $supportDate = null; if ($supportExpiresAt) { try { $supportDate = \Carbon\Carbon::parse($supportExpiresAt)->toFormattedDateString(); } catch (\Exception $exception) { $supportDate = null; } } $releaseDate = null; if (!empty($status['released_at'])) { try { $releaseDate = \Carbon\Carbon::parse($status['released_at'])->toFormattedDateString(); } catch (\Exception $exception) { $releaseDate = null; } } $latestReleaseDate = null; if (!empty($status['latest_released_at'])) { try { $latestReleaseDate = \Carbon\Carbon::parse($status['latest_released_at'])->toFormattedDateString(); } catch (\Exception $exception) { $latestReleaseDate = null; } } $accessibleReleaseDate = null; if (!empty($status['available_released_at'])) { try { $accessibleReleaseDate = \Carbon\Carbon::parse($status['available_released_at'])->toFormattedDateString(); } catch (\Exception $exception) { $accessibleReleaseDate = null; } } @endphp

Update Status

Current version: {{ $status['current_version'] ?? config('app.version') }}

Last checked: {{ $checkedAtDisplay }} @if ($lastCheckedAt) {{ $wasSuccessful ? 'Successful' : 'Failed' }} @endif
@csrf

@if (!($status['license_key_present'] ?? false))
Add your license key in Settings → Update to enable automatic update checks.
@elseif ($statusState === 'error')
Unable to contact the update service.
{{ $status['message'] ?? 'Please try again later.' }}
@elseif ($statusState === 'missing-license')
Add your license key in Settings → Update to enable automatic update checks.
@elseif ($status['update_available'] ?? false)
Update available: Version {{ $status['version'] }} ({{ ucfirst($status['type'] ?? 'major') }} update) {{ $releaseDate ? 'was released on ' . $releaseDate : 'is now available' }}.
Release version
{{ $status['version'] }}
Update type
{{ ucfirst($status['type'] ?? 'major') }}
Released at
{{ $releaseDate ?? '—' }}
Support status
@if ($status['support_active'] ?? false) Active{{ $supportDate ? ' until ' . $supportDate : '' }} @else Expired{{ $supportDate ? ' on ' . $supportDate : '' }} @endif
@if (!empty($status['checksum']))
Checksum ({{ strtoupper($status['checksum_algorithm'] ?? 'sha256') }}):
{{ $status['checksum'] }}
@endif @if (!empty($status['message']))
{{ $status['message'] }}
@endif @if (($status['support_active'] ?? false) && !empty($status['download_url']))
@csrf
Backup required: Create a complete backup of your ChargePanda files and database before running the automatic updater.
Applying update. Do not close or navigate away from this page until the process completes.
@elseif ($status['support_active'] ?? false)
The update is available, but the download package is not yet accessible. Please try again shortly.
@endif @if (!empty($status['changelog']))

Changelog

{!! nl2br(e($status['changelog'])) !!}
@endif @if (!($status['support_active'] ?? false))
Latest release

Latest overall: {{ $status['latest_version'] ?? '—' }} @if ($latestReleaseDate)(released {{ $latestReleaseDate }})@endif

Accessible with current support: {{ $status['available_version'] ?? '—' }}@if ($accessibleReleaseDate) (released {{ $accessibleReleaseDate }})@endif

@endif @else
You are running the latest available version of ChargePanda.
@endif

Backup Reminder

Before starting the update process:

  • Download a copy of your ChargePanda files.
  • Export a backup of your database.

The updater will replace application files and run database migrations automatically once you confirm the backup above.

@endsection @push('scripts') @endpush