@extends('user::layouts.backend-master') @section('breadcrumb_title', __('updater::translate.System Status')) @section('content')

{{ __('updater::translate.System Status') }}

{{ __('updater::translate.Current Version') }}: v{{ $currentVersion }}

{{ __('updater::translate.Back to Updates') }}
@if($hasPendingUpdates)

{{ __('updater::translate.Warning') }}: {{ __('updater::translate.Pending updates detected') }}

@endif

{{ __('updater::translate.System Information') }}

{{ __('updater::translate.Current Version') }}
v{{ $currentVersion }}
{{ __('updater::translate.PHP Version') }}
{{ PHP_VERSION }}
{{ __('updater::translate.Laravel Version') }}
{{ app()->version() }}
{{ __('updater::translate.Database Type') }}
{{ ucfirst(config('database.default')) }}
{{ __('updater::translate.Environment') }}
{{ ucfirst(app()->environment()) }}
{{ __('updater::translate.Debug Mode') }}
{{ config('app.debug') ? __('updater::translate.Enabled') : __('updater::translate.Disabled') }}
{{ __('updater::translate.Memory Usage') }}
{{ formatBytes(memory_get_usage(true)) }}
{{ __('updater::translate.Disk Space') }} (storage)
@php $total = disk_total_space(storage_path()); $free = disk_free_space(storage_path()); $used = $total - $free; $percentage = round(($used / $total) * 100, 1); @endphp {{ formatBytes($free) }} / {{ formatBytes($total) }} ({{ $percentage }}% used)

{{ __('updater::translate.Server Information') }}

{{ __('updater::translate.Server Software') }}
{{ $_SERVER['SERVER_SOFTWARE'] ?? 'Unknown' }}
{{ __('updater::translate.Operating System') }}
{{ PHP_OS }}
{{ __('updater::translate.Max Execution Time') }}
{{ ini_get('max_execution_time') }} {{ __('updater::translate.seconds') }}
{{ __('updater::translate.Max Upload Size') }}
{{ ini_get('upload_max_filesize') }}
{{ __('updater::translate.Memory Limit') }}
{{ ini_get('memory_limit') }}
{{ __('updater::translate.Post Max Size') }}
{{ ini_get('post_max_size') }}
{{ __('updater::translate.ZipArchive Extension') }}
@if(class_exists('ZipArchive')) {{ __('updater::translate.Available') }} @else {{ __('updater::translate.Not Available') }} @endif
{{ __('updater::translate.File Permissions') }}
@php $storageWritable = is_writable(storage_path()); $bootstrapWritable = is_writable(base_path('bootstrap/cache')); @endphp @if($storageWritable && $bootstrapWritable) {{ __('updater::translate.OK') }} @else {{ __('updater::translate.Issues Detected') }} @endif
@if($recentUpdates->count() > 0)

{{ __('updater::translate.Recent Updates') }}

@foreach($recentUpdates as $update) @endforeach
{{ __('updater::translate.Version') }} {{ __('updater::translate.Title') }} {{ __('updater::translate.Installed By') }} {{ __('updater::translate.Install Date') }}
v{{ $update->version }}
{{ Str::limit($update->title, 50) }}
{{ $update->uploader ? $update->uploader->name : 'Unknown' }} {{ $update->completed_at->format('M d, Y H:i') }}
@endif

{{ __('updater::translate.Required PHP Extensions') }}

@php $extensions = ['zip', 'json', 'pdo', 'mbstring', 'openssl', 'tokenizer', 'xml']; @endphp @foreach($extensions as $extension)
{{ $extension }} @if(extension_loaded($extension)) @else @endif
@endforeach

{{ __('updater::translate.Directory Permissions') }}

@php $directories = [ 'storage/' => storage_path(), 'bootstrap/cache/' => base_path('bootstrap/cache'), 'config/' => config_path(), ]; @endphp @foreach($directories as $name => $path)
{{ $name }} @if(is_writable($path)) @else @endif
@endforeach
@endsection @php function formatBytes($bytes, $precision = 2) { $units = array('B', 'KB', 'MB', 'GB', 'TB'); for ($i = 0; $bytes > 1024; $i++) { $bytes /= 1024; } return round($bytes, $precision) . ' ' . $units[$i]; } @endphp