67 lines
2.9 KiB
PHP
67 lines
2.9 KiB
PHP
@extends('layouts.app')
|
|
|
|
@section('title', __('maintenance::lang.system_health'))
|
|
|
|
@section('content')
|
|
@include('maintenance::layouts.nav')
|
|
|
|
<section class="content no-print mt-page">
|
|
<div class="mt-page-header">
|
|
<h1><i class="fas fa-heartbeat" style="color:#14b8a6;margin-left:8px;"></i> @lang('maintenance::lang.system_health')</h1>
|
|
@can('maintenance.access')
|
|
<form method="POST" action="{{ action([\Modules\Maintenance\Http\Controllers\HealthController::class, 'repair']) }}" style="display:inline;">
|
|
@csrf
|
|
<button type="submit" class="btn btn-primary" onclick="return confirm('@lang('maintenance::lang.health_repair_confirm')')">
|
|
<i class="fas fa-wrench"></i> @lang('maintenance::lang.health_repair_btn')
|
|
</button>
|
|
</form>
|
|
@endcan
|
|
</div>
|
|
|
|
<div class="mt-kpi-grid">
|
|
<div class="mt-kpi-card">
|
|
<div class="kpi-label">@lang('maintenance::lang.health_score')</div>
|
|
<div class="kpi-value">{{ $health['score'] ?? 0 }}%</div>
|
|
</div>
|
|
<div class="mt-kpi-card">
|
|
<div class="kpi-label">@lang('maintenance::lang.health_tables_ok')</div>
|
|
<div class="kpi-value">{{ $health['present_count'] ?? 0 }}/{{ $health['required_count'] ?? 0 }}</div>
|
|
</div>
|
|
<div class="mt-kpi-card">
|
|
<div class="kpi-label">@lang('maintenance::lang.health_status')</div>
|
|
<div class="kpi-value">{{ ($health['healthy'] ?? false) ? __('maintenance::lang.health_ok') : __('maintenance::lang.health_degraded') }}</div>
|
|
</div>
|
|
</div>
|
|
|
|
@if(!empty($health['missing_tables']))
|
|
<div class="mt-card">
|
|
<div class="mt-card-header"><h3 class="mt-card-title">@lang('maintenance::lang.health_missing_tables')</h3></div>
|
|
<div class="mt-card-body">
|
|
<ul>
|
|
@foreach($health['missing_tables'] as $table)
|
|
<li><code>{{ $table }}</code></li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<div class="mt-card">
|
|
<div class="mt-card-header"><h3 class="mt-card-title">@lang('maintenance::lang.health_integrations')</h3></div>
|
|
<div class="mt-card-body">
|
|
<table class="table table-striped">
|
|
<thead><tr><th>@lang('maintenance::lang.integration')</th><th>@lang('maintenance::lang.status')</th></tr></thead>
|
|
<tbody>
|
|
@foreach($health['integrations'] ?? [] as $name => $active)
|
|
<tr>
|
|
<td>{{ $name }}</td>
|
|
<td>{!! $active ? '<span class="label label-success">'.__('maintenance::lang.health_active').'</span>' : '<span class="label label-default">'.__('maintenance::lang.health_inactive').'</span>' !!}</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
@endsection
|