Update available
Installed: {{ is_string($installedVersion) && trim($installedVersion) !== '' ? $installedVersion : '—' }} | Latest: {{ is_string($updateStatusLatest) && trim($updateStatusLatest) !== '' ? $updateStatusLatest : (is_string($latestVersion) ? $latestVersion : '—') }}
@if(is_string($updateStatusCheckedAt) && trim($updateStatusCheckedAt) !== '')
Last checked: {{ $updateStatusCheckedAt }}
@endif
Installed Version
{{ is_string($installedVersion) && trim($installedVersion) !== '' ? $installedVersion : '—' }}
Latest Version
{{ is_string($latestVersion) && trim((string) $latestVersion) !== '' ? $latestVersion : '—' }}
@if(is_array($updateProduct ?? null) && !($updateProduct['success'] ?? false))
{{ $updateProduct['message'] ?? 'Unable to fetch update info.' }}
@endif
Install Update
Install the latest version in the background. The site will go into maintenance mode during installation.
@admincan('admin.settings.edit')
Install Update
@endadmincan
@if(is_string($installTargetVersion ?? null) && trim((string) $installTargetVersion) !== '')
@endif
@php
$installState = is_array($updateInstallState ?? null) ? $updateInstallState : null;
$installInProgress = is_array($installState) ? (bool) ($installState['in_progress'] ?? false) : false;
$installStatus = is_array($installState) && is_string($installState['status'] ?? null) ? $installState['status'] : null;
$installMessage = is_array($installState) && is_string($installState['message'] ?? null) ? $installState['message'] : null;
$installVersion = is_array($installState) && is_string($installState['version'] ?? null) ? $installState['version'] : null;
@endphp
@if($installInProgress || (is_string($installStatus) && trim((string) $installStatus) !== '') || (is_string($installMessage) && trim((string) $installMessage) !== ''))
Installer status
{{ is_string($installStatus) ? ucfirst($installStatus) : '—' }}
@if(is_string($installVersion) && trim($installVersion) !== '')
({{ $installVersion }})
@endif
@if(is_string($installMessage) && trim($installMessage) !== '')
{{ $installMessage }}
@endif
@endif
@if(is_string($updateLastFailureReason ?? null) && trim((string) $updateLastFailureReason) !== '')
Last update failed
@if(is_string($updateLastFailureVersion ?? null) && trim((string) $updateLastFailureVersion) !== '')
Version: {{ $updateLastFailureVersion }}
@else
Version: —
@endif
@if(is_string($updateLastFailureAt ?? null) && trim((string) $updateLastFailureAt) !== '')
| Date: {{ $updateLastFailureAt }}
@endif
{{ $updateLastFailureReason }}
@endif
@if(is_string($updateDownloadUrl ?? null) && trim((string) $updateDownloadUrl) !== '')
@endif
Configuration
@php
$licenseCheckPayload = is_array($updateLicenseCheck ?? null) ? ($updateLicenseCheck['data'] ?? null) : null;
$licenseCheckTopStatus = is_array($licenseCheckPayload) && is_string($licenseCheckPayload['status'] ?? null) ? $licenseCheckPayload['status'] : null;
$licenseCheckTopMessage = is_array($licenseCheckPayload) && is_string($licenseCheckPayload['message'] ?? null) ? $licenseCheckPayload['message'] : null;
$licenseCheckRequestError = null;
if (is_array($updateLicenseCheck ?? null) && !($updateLicenseCheck['success'] ?? false)) {
$licenseCheckRequestError = is_string($updateLicenseCheck['message'] ?? null) ? $updateLicenseCheck['message'] : null;
}
$licenseObject = null;
if (is_array($licenseCheckPayload) && is_array($licenseCheckPayload['data'] ?? null) && is_array($licenseCheckPayload['data']['license'] ?? null)) {
$licenseObject = $licenseCheckPayload['data']['license'];
}
$savedLicense = null;
try {
$savedLicense = \App\Models\Setting::get('update_license_key');
} catch (\Throwable $e) {
$savedLicense = null;
}
$maskedLicense = null;
if (is_string($savedLicense) && trim($savedLicense) !== '') {
$clean = trim((string) $savedLicense);
if (preg_match('/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i', $clean)) {
$maskedLicense = substr($clean, 0, 8) . '-XXXX-XXXX-XXXX-' . substr($clean, -12);
} else {
$maskedLicense = substr($clean, 0, 8) . '…' . substr($clean, -6);
}
}
@endphp
License
Status and support information from the license server.
@admincan('admin.settings.edit')
Deactivate
@endadmincan
@if(is_string($licenseCheckRequestError) && trim($licenseCheckRequestError) !== '')
{{ $licenseCheckRequestError }}
@endif
Status
{{ is_string($licenseObject['status'] ?? null) ? $licenseObject['status'] : ($licenseCheckTopStatus ?: '—') }}
@if(is_string($licenseCheckTopMessage) && trim($licenseCheckTopMessage) !== '')
{{ $licenseCheckTopMessage }}
@endif
License
{{ $maskedLicense ?: '—' }}
Support Expiry
{{ is_string($licenseObject['supported_until'] ?? null) ? $licenseObject['supported_until'] : '—' }}
License Type
{{ is_string($licenseObject['license_type'] ?? null) ? $licenseObject['license_type'] : '—' }}
Purchase Date
{{ is_string($licenseObject['purchase_date'] ?? null) ? $licenseObject['purchase_date'] : '—' }}
Envato Username
{{ is_string($licenseObject['envato_username'] ?? null) ? $licenseObject['envato_username'] : '—' }}
Domains
{{ is_numeric($licenseObject['active_domains'] ?? null) ? (int) $licenseObject['active_domains'] : '—' }}
/
{{ is_numeric($licenseObject['max_domains'] ?? null) ? (int) $licenseObject['max_domains'] : '—' }}
Normalized Domain
{{ is_string($licenseObject['normalized_domain'] ?? null) ? $licenseObject['normalized_domain'] : '—' }}
@if(is_array($licenseObject) && is_array($licenseObject['domains'] ?? null) && !empty($licenseObject['domains']))
Registered Domains
| Domain |
Status |
@foreach($licenseObject['domains'] as $d => $st)
| {{ is_string($d) ? $d : '' }} |
{{ is_string($st) ? $st : '' }} |
@endforeach
@endif
Enter your purchase code / license key and click Activate.
@error('update_license_key')
{{ $message }}
@enderror