* SimBrief integration #405 * Add briefing as API response; add acars_xml field #405
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<div class="card">
|
||||
<div class="card-block" style="min-height: 0px; display: flex; justify-content: center; align-items: center;">
|
||||
<div class="form-group text-right btn-primary my-bids">
|
||||
<a href="{{ route('frontend.flights.bids') }}">{{ trans_choice('flights.mybid', 2) }}</a>
|
||||
<div class="form-group text-right">
|
||||
<a href="{{ route('frontend.flights.bids') }}" class="btn btn-outline-primary">{{ trans_choice('flights.mybid', 2) }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
</div>
|
||||
|
||||
<div class="clear mt-1" style="margin-top: 10px;">
|
||||
{{ Form::submit(__('common.find'), ['class' => 'btn btn-primary']) }}
|
||||
{{ Form::submit(__('common.find'), ['class' => 'btn btn-outline-primary']) }}
|
||||
<a href="{{ route('frontend.flights.index') }}">@lang('common.reset')</a>
|
||||
</div>
|
||||
{{ Form::close() }}
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
@extends('app')
|
||||
@section('title', 'Briefing')
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-sm-9">
|
||||
<h2>{{ $simbrief->xml->general->icao_airline }}{{ $simbrief->xml->general->flight_number }}
|
||||
: {{ $simbrief->xml->origin->icao_code }} to {{ $simbrief->xml->destination->icao_code }}</h2>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
@if (empty($simbrief->pirep_id))
|
||||
<a class="btn btn-outline-info pull-right btn-lg"
|
||||
style="margin-top: -10px;margin-bottom: 5px"
|
||||
href="{{ url(route('frontend.simbrief.prefile', [$simbrief->id])) }}">Prefile PIREP</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-container">
|
||||
<h6><i class="fas fa-info-circle"></i>
|
||||
Dispatch Information
|
||||
</h6>
|
||||
<div class="form-container-body">
|
||||
<div class="row">
|
||||
<div class="col-4 text-center">
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">Flight</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{{ $simbrief->xml->general->icao_airline }}{{ $simbrief->xml->general->flight_number }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4 text-center">
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">Departure</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{{ $simbrief->xml->origin->icao_code }}@if(!empty($simbrief->xml->origin->plan_rwy))
|
||||
/{{ $simbrief->xml->origin->plan_rwy }}
|
||||
@endif
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4 text-center">
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">Arrival</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{{ $simbrief->xml->destination->icao_code }}@if(!empty($simbrief->xml->destination->plan_rwy))
|
||||
/{{ $simbrief->xml->destination->plan_rwy }}
|
||||
@endif
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-4 text-center">
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">Aircraft</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{{ $simbrief->xml->aircraft->name }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4 text-center">
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">Enroute Time</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
@minutestotime($simbrief->xml->times->sched_time_enroute / 60)</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4 text-center">
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">Cruise Altitude</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{{ $simbrief->xml->general->initial_altitude }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
@if (!empty($simbrief->xml->general->dx_rmk))
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">Dispatcher Remarks</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{{ $simbrief->xml->general->dx_rmk }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (!empty($simbrief->xml->general->sys_rmk))
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">System Remarks</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{{ $simbrief->xml->general->sys_rmk }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-container">
|
||||
<h6><i class="fas fa-info-circle"></i>
|
||||
Flight Plan
|
||||
</h6>
|
||||
<div class="form-container-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{!! str_replace("\n", "<br>", $simbrief->xml->atc->flightplan_text) !!}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-container">
|
||||
<h6><i class="fas fa-info-circle"></i>
|
||||
Weather
|
||||
</h6>
|
||||
<div class="form-container-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">Departure METAR</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{{ $simbrief->xml->weather->orig_metar }}</p>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div><p class="small text-uppercase pb-sm-0 mb-sm-1">Arrival METAR</p>
|
||||
<p class="border border-dark rounded p-1 small text-monospace">
|
||||
{{ $simbrief->xml->weather->dest_metar }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-6">
|
||||
<div class="form-container">
|
||||
<h6><i class="fas fa-info-circle"></i>
|
||||
Download Flight Plan
|
||||
</h6>
|
||||
<div class="form-container-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<select id="download_fms_select" class="select2 custom-select">
|
||||
@foreach($simbrief->files as $fms)
|
||||
<option value="{{ $fms['url'] }}">{{ $fms['name'] }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<br/>
|
||||
<input id="download_fms"
|
||||
type="submit"
|
||||
class="btn btn-outline-primary pull-right"
|
||||
value="Download"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-container">
|
||||
<h6><i class="fas fa-info-circle"></i>
|
||||
OFP
|
||||
</h6>
|
||||
<div class="form-container-body border border-dark">
|
||||
<div class="overflow-auto" style="height: 600px;">
|
||||
{!! $simbrief->xml->text->plan_html !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="form-container">
|
||||
<h6><i class="fas fa-info-circle"></i>
|
||||
Flight Maps
|
||||
</h6>
|
||||
<div class="form-container-body">
|
||||
@foreach($simbrief->images->chunk(2) as $images)
|
||||
<div class="row">
|
||||
@foreach($images as $image)
|
||||
<div class="col-6 text-center">
|
||||
<p>
|
||||
<img src="{{ $image['url'] }}" alt="{{ $image['name'] }}"/>
|
||||
<small class="text-muted">{{ $image['name'] }}</small>
|
||||
</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
@if (empty($simbrief->pirep_id))
|
||||
<a class="btn btn-outline-info pull-right"
|
||||
style="margin-top: -10px;margin-bottom: 5px"
|
||||
href="{{ url(route('frontend.simbrief.prefile', [$simbrief->id])) }}">Prefile PIREP</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$("#download_fms").click(e => {
|
||||
e.preventDefault();
|
||||
const select = document.getElementById("download_fms_select");
|
||||
const link = select.options[select.selectedIndex].value;
|
||||
console.log('Downloading FMS: ', link);
|
||||
window.open(link, '_blank');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,162 @@
|
||||
@extends('app')
|
||||
@section('title', 'Generate OFP')
|
||||
|
||||
@section('content')
|
||||
<form id="sbapiform">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2>Create Flight Briefing</h2>
|
||||
<div class="row">
|
||||
<div class="col-8">
|
||||
<div class="form-container">
|
||||
<h6><i class="fas fa-info-circle"></i>
|
||||
@lang('pireps.flightinformations')
|
||||
</h6>
|
||||
<div class="form-container-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<label for="orig">Departure Airport</label>
|
||||
<input id="orig"
|
||||
name="orig"
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder="ZZZZ"
|
||||
maxlength="4"
|
||||
value="{{ $flight->dpt_airport_id }}"/>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4">
|
||||
<label for="dest">Arrival Airport</label>
|
||||
<input id="dest"
|
||||
name="dest"
|
||||
type="text"
|
||||
class="form-control"
|
||||
placeholder=""
|
||||
maxlength="4"
|
||||
value="{{ $flight->arr_airport_id }}"/>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4">
|
||||
<label for="type">Aircraft</label>
|
||||
<select id="type" name="type" class="custom-select select2">
|
||||
<option value="a320">A320</option>
|
||||
<option value="b738">B738</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-container">
|
||||
<h6><i class="fas fa-info-circle"></i>
|
||||
Briefing Options
|
||||
</h6>
|
||||
<table class="table table-hover table-striped">
|
||||
<tr>
|
||||
<td>Units:</td>
|
||||
<td><select name="units">
|
||||
<option value="KGS">KGS</option>
|
||||
<option value="LBS" selected>LBS</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Cont Fuel:</td>
|
||||
<td><select name="contpct">
|
||||
<option value="auto" selected>AUTO</option>
|
||||
<option value="0">0 PCT</option>
|
||||
<option value="0.02">2 PCT</option>
|
||||
<option value="0.03">3 PCT</option>
|
||||
<option value="0.05">5 PCT</option>
|
||||
<option value="0.1">10 PCT</option>
|
||||
<option value="0.15">15 PCT</option>
|
||||
<option value="0.2">20 PCT</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Reserve Fuel:</td>
|
||||
<td><select name="resvrule">
|
||||
<option value="auto">AUTO</option>
|
||||
<option value="0">0 MIN</option>
|
||||
<option value="15">15 MIN</option>
|
||||
<option value="30">30 MIN</option>
|
||||
<option value="45" selected>45 MIN</option>
|
||||
<option value="60">60 MIN</option>
|
||||
<option value="75">75 MIN</option>
|
||||
<option value="90">90 MIN</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Detailed Navlog:</td>
|
||||
<td><input type="hidden" name="navlog" value="0"><input type="checkbox" name="navlog" value="1"
|
||||
checked>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ETOPS Planning:</td>
|
||||
<td><input type="hidden" name="etops" value="0"><input type="checkbox" name="etops" value="1"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Plan Stepclimbs:</td>
|
||||
<td><input type="hidden" name="stepclimbs" value="0"><input type="checkbox" name="stepclimbs"
|
||||
value="1"
|
||||
checked>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Runway Analysis:</td>
|
||||
<td><input type="hidden" name="tlr" value="0"><input type="checkbox" name="tlr" value="1" checked>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Include NOTAMS:</td>
|
||||
<td><input type="hidden" name="notams" value="0"><input type="checkbox" name="notams" value="1"
|
||||
checked>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FIR NOTAMS:</td>
|
||||
<td><input type="hidden" name="firnot" value="0"><input type="checkbox" name="firnot" value="1"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Flight Maps:</td>
|
||||
<td><select name="maps">
|
||||
<option value="detail">Detailed</option>
|
||||
<option value="simple">Simple</option>
|
||||
<option value="none">None</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="airline" value="{{ $flight->airline->icao }}">
|
||||
<input type="hidden" name="fltnum" value="{{ $flight->flight_number }}">
|
||||
<input type="hidden" name="date" value="01JAN14">
|
||||
<input type="hidden" name="deph" value="12">
|
||||
<input type="hidden" name="depm" value="30">
|
||||
<input type="hidden" name="steh" value="2">
|
||||
<input type="hidden" name="stem" value="15">
|
||||
{{--<input type="hidden" name="reg" value="N123SB">
|
||||
<input type="hidden" name="selcal" value="GR-FS">--}}
|
||||
<input type="hidden" name="planformat" value="lido">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="float-right">
|
||||
<div class="form-group">
|
||||
<input type="button"
|
||||
onclick="simbriefsubmit('{{ $flight->id }}', '{{ url(route('frontend.simbrief.briefing', [''])) }}');"
|
||||
class="btn btn-outline-primary"
|
||||
value="Generate">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@endsection
|
||||
@section('scripts')
|
||||
<script src="{{public_asset('/assets/global/js/simbrief.apiv1.js')}}"></script>
|
||||
@endsection
|
||||
@@ -70,8 +70,15 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 text-right">
|
||||
@if ($simbrief !== false)
|
||||
<a href="{{ route('frontend.simbrief.generate') }}?flight_id={{ $flight->id }}"
|
||||
class="btn btn-sm btn-outline-primary">
|
||||
Create SimBrief Flight Plan
|
||||
</a>
|
||||
@endif
|
||||
|
||||
<a href="{{ route('frontend.pireps.create') }}?flight_id={{ $flight->id }}"
|
||||
class="btn btn-sm btn-info">
|
||||
class="btn btn-sm btn-outline-info">
|
||||
{{ __('pireps.newpirep') }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user