@extends('layouts.app') @section('title', __('ui.admin_qa_title').' — Coaster World') @section('content')
@include('admin._nav') {{ __('ui.admin_qa_kicker') }}

{{ __('ui.admin_qa_title') }}

{{ __('ui.admin_qa_intro') }}

{{ __('ui.admin_qa_overall') }}

{{ __('ui.admin_qa_state_'.$report['overall']) }}

{{ __('ui.admin_qa_checked_at', ['date' => $report['checked_at']->format('d/m/Y H:i:s')]) }}

{{ $report['counts']['pass'] }}{{ __('ui.admin_qa_state_pass') }}
{{ $report['counts']['warn'] }}{{ __('ui.admin_qa_state_warn') }}
{{ $report['counts']['fail'] }}{{ __('ui.admin_qa_state_fail') }}
{{ __('ui.admin_qa_automated_kicker') }}

{{ __('ui.admin_qa_automated_title') }}

{{ __('ui.admin_qa_automated_help') }}

@foreach($report['checks'] as $check)
{{ __('ui.admin_qa_category_'.$check['category']) }}

{{ __('ui.admin_qa_check_'.$check['key']) }}

{{ __('ui.admin_qa_state_'.$check['state']) }}

{{ __('ui.admin_qa_help_'.$check['key']) }}

@if(!empty($check['details']))
@foreach($check['details'] as $key => $value) @if(is_scalar($value) || $value === null)
{{ str_replace('_', ' ', $key) }}
{{ $value === null || $value === '' ? '—' : (is_bool($value) ? ($value ? __('ui.yes') : __('ui.no')) : $value) }}
@elseif(is_array($value) && $value !== [])
{{ str_replace('_', ' ', $key) }}
{{ implode(', ', array_map('strval', $value)) }}
@endif @endforeach
@endif
@endforeach
{{ __('ui.admin_qa_production_kicker') }}

{{ __('ui.admin_qa_production_title') }}

{{ __('ui.admin_qa_production_help') }}

{{ __('ui.admin_qa_production_mode') }}

{{ __('ui.admin_qa_state_'.$production['overall']) }}

{{ $production['strict'] ? __('ui.admin_qa_production_strict') : __('ui.admin_qa_production_candidate') }}

{{ $production['counts']['pass'] }}{{ __('ui.admin_qa_state_pass') }}
{{ $production['counts']['warn'] }}{{ __('ui.admin_qa_state_warn') }}
{{ $production['counts']['fail'] }}{{ __('ui.admin_qa_state_fail') }}
@foreach($production['checks'] as $check)
{{ __('ui.admin_qa_category_production') }}

{{ __('ui.admin_qa_check_'.$check['key']) }}

{{ __('ui.admin_qa_state_'.$check['state']) }}

{{ __('ui.admin_qa_help_'.$check['key']) }}

@if(!empty($check['details']))
@foreach($check['details'] as $key => $value) @if(is_scalar($value) || $value === null)
{{ str_replace('_', ' ', $key) }}
{{ $value === null || $value === '' ? '—' : (is_bool($value) ? ($value ? __('ui.yes') : __('ui.no')) : $value) }}
@elseif(is_array($value) && $value !== [])
{{ str_replace('_', ' ', $key) }}
{{ implode(', ', array_map('strval', $value)) }}
@endif @endforeach
@endif
@endforeach
{{ __('ui.admin_qa_final_gate_kicker') }}

{{ __('ui.admin_qa_final_gate_title') }}

{{ __('ui.admin_qa_final_gate_help') }}

tools\final_release_check_windows.bat php artisan cw:backup:database php artisan cw:backup:verify tools\restore_backup_test_windows.bat php artisan cw:release:final-check php artisan cw:release:final-check --production
{{ __('ui.admin_qa_manual_kicker') }}

{{ __('ui.admin_qa_manual_title') }}

{{ __('ui.admin_qa_manual_help') }}

0{{ __('ui.admin_qa_manual_passed') }}
{{ count($report['scenarios']) }}{{ __('ui.admin_qa_manual_todo') }}
0{{ __('ui.admin_qa_manual_failed') }}
@foreach($report['scenarios'] as $scenario)
{{ __('ui.admin_qa_manual_scenario') }}

{{ __('ui.'.$scenario['title_key']) }}

{{ __('ui.'.$scenario['description_key']) }}

    @foreach($scenario['steps'] as $step)
  1. {{ __('ui.'.$step) }}
  2. @endforeach
@endforeach
{{ __('ui.admin_qa_cli_kicker') }}

{{ __('ui.admin_qa_cli_title') }}

{{ __('ui.admin_qa_cli_help') }}

tools\release_candidate_check_windows.bat tools\qa_preflight_windows.bat php artisan cw:qa:preflight php artisan cw:qa:preflight --json php artisan cw:release:legacy-files php artisan cw:release:legacy-files --quarantine tools\quarantine_legacy_files_windows.bat php artisan test
@endsection