Cleanup Simbrief Briefing pages

This commit is contained in:
Nabeel Shahzad
2021-01-17 21:52:22 -05:00
parent c4dee07b7f
commit bd8e13e78f
6 changed files with 466 additions and 429 deletions

View File

@@ -57,16 +57,13 @@ class SimBriefController
return redirect(route('frontend.flights.index')); return redirect(route('frontend.flights.index'));
} }
if (!$aircraft_id) {
flash()->error('Aircraft not selected ! Please select an Aircraft to Proceed ...');
}
$apiKey = setting('simbrief.api_key'); $apiKey = setting('simbrief.api_key');
if (empty($apiKey)) { if (empty($apiKey)) {
flash()->error('Invalid SimBrief API key!'); flash()->error('Invalid SimBrief API key!');
return redirect(route('frontend.flights.index')); return redirect(route('frontend.flights.index'));
} }
// Check if a Simbrief profile already exists
$simbrief = SimBrief::select('id')->where([ $simbrief = SimBrief::select('id')->where([
'flight_id' => $flight_id, 'flight_id' => $flight_id,
'user_id' => $user->id, 'user_id' => $user->id,
@@ -76,6 +73,7 @@ class SimBriefController
return redirect(route('frontend.simbrief.briefing', [$simbrief->id])); return redirect(route('frontend.simbrief.briefing', [$simbrief->id]));
} }
// Simbrief Profile doesn't exist; prompt the user to create a new one
$aircraft = Aircraft::select('registration', 'name', 'icao', 'iata', 'subfleet_id') $aircraft = Aircraft::select('registration', 'name', 'icao', 'iata', 'subfleet_id')
->where('id', $aircraft_id) ->where('id', $aircraft_id)
->get(); ->get();
@@ -92,11 +90,22 @@ class SimBriefController
$pax_weight = 208; $pax_weight = 208;
} }
// No aircraft selected, show that form
if (!$aircraft_id) {
return view('flights.simbrief_aircraft', [
'flight' => $flight,
'aircraft' => $aircraft,
'subfleets' => $subfleets,
'pax_weight' => $pax_weight,
]);
}
// Show the main simbrief form
return view('flights.simbrief_form', [ return view('flights.simbrief_form', [
'flight' => $flight, 'flight' => $flight,
'aircraft' => $aircraft, 'aircraft' => $aircraft,
'subfleets' => $subfleets, 'subfleets' => $subfleets,
'pax_weight' => $pax_weight, // TODO: Replace with a setting 'pax_weight' => $pax_weight,
]); ]);
} }
@@ -136,21 +145,30 @@ class SimBriefController
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* *
* @throws \Exception
*
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/ */
public function remove(Request $request) public function generate_new(Request $request)
{ {
$sb_pack = SimBrief::find($request->id); $simbrief = SimBrief::find($request->id);
if ($sb_pack) {
if (!$sb_pack->pirep_id) { // Invalid Simbrief ID/profile, go back to the main flight index
$sb_pack->delete(); if (!$simbrief) {
} else { return redirect(route('frontend.flights.index'));
$sb_pack->flight_id = null;
$sb_pack->save();
}
} }
return redirect(route('frontend.flights.index')); // Cleanup the current Simbrief entry and redirect to the new generation form
// If there isn't a PIREP ID, then delete the entry, otherwise, remove the flight
$flight_id = $simbrief->flight_id;
if (!$simbrief->pirep_id) {
$simbrief->delete();
} else {
$simbrief->flight_id = null;
$simbrief->save();
}
return redirect(route('frontend.simbrief.generate').'?flight_id='.$flight_id);
} }
/** /**

View File

@@ -147,7 +147,7 @@ class RouteServiceProvider extends ServiceProvider
Route::get('simbrief/{id}', 'SimBriefController@briefing')->name('simbrief.briefing'); Route::get('simbrief/{id}', 'SimBriefController@briefing')->name('simbrief.briefing');
Route::get('simbrief/{id}/prefile', 'SimBriefController@prefile')->name('simbrief.prefile'); Route::get('simbrief/{id}/prefile', 'SimBriefController@prefile')->name('simbrief.prefile');
Route::get('simbrief/{id}/cancel', 'SimBriefController@cancel')->name('simbrief.cancel'); Route::get('simbrief/{id}/cancel', 'SimBriefController@cancel')->name('simbrief.cancel');
Route::get('simbrief/{id}/remove', 'SimBriefController@remove')->name('simbrief.remove'); Route::get('simbrief/{id}/generate_new', 'SimBriefController@generate_new')->name('simbrief.generate_new');
}); });
Route::group([ Route::group([

View File

@@ -10,7 +10,7 @@
<div class="mt-1"> <div class="mt-1">
<div class="form-group"> <div class="form-group">
<p>@lang('common.airline')</p> <p>@lang('common.airline')</p>
{{ Form::select('airline_id', $airlines, null , ['class' => 'form-control form-control-sm select2']) }} {{ Form::select('airline_id', $airlines, null , ['class' => 'form-control select2']) }}
</div> </div>
</div> </div>

View File

@@ -0,0 +1,47 @@
@extends('app')
@section('title', 'SimBrief Flight Planning')
@section('content')
<div class="row">
<div class="col-md-12">
<h2>Select Aircraft for Flight</h2>
</div>
</div>
<div class="row">
<div class="col-md-12">
<select id="aircraftselection" class="form-control select2" onchange="checkacselection()">
<option value="ZZZZZ">Please Select An Aircraft</option>
@foreach($subfleets as $subfleet)
@foreach($subfleet->aircraft as $ac)
<option value="{{ $ac->id }}">[ {{ $ac->icao }} ] {{ $ac->registration }}</option>
@endforeach
@endforeach
</select>
</div>
<div class="col-md-12 text-right">
<a id="generate_link" style="visibility: hidden"
href="{{ route('frontend.simbrief.generate') }}?flight_id={{ $flight->id }}"
class="btn btn-primary">Proceed To Flight Planning</a>
</div>
</div>
@endsection
@section('scripts')
<script type="text/javascript">
// Simple Aircraft Selection With Dropdown Change
// Also keep Generate button hidden until a valid AC selection
const $oldlink = document.getElementById("generate_link").href;
function checkacselection() {
if (document.getElementById("aircraftselection").value === "ZZZZZ") {
document.getElementById('generate_link').style.visibility = 'hidden';
} else {
document.getElementById('generate_link').style.visibility = 'visible';
}
const selectedac = document.getElementById("aircraftselection").value;
const newlink = "&aircraft_id=".concat(selectedac);
document.getElementById("generate_link").href = $oldlink.concat(newlink);
}
</script>
@endsection

View File

@@ -17,7 +17,7 @@
<div class="col-sm-3"> <div class="col-sm-3">
<a class="btn btn-primary pull-right btn-lg" <a class="btn btn-primary pull-right btn-lg"
style="margin-top: -10px; margin-bottom: 5px" style="margin-top: -10px; margin-bottom: 5px"
href="{{ url(route('frontend.simbrief.remove', [$simbrief->id])) }}">Generate New OFP</a> href="{{ url(route('frontend.simbrief.generate_new', [$simbrief->id])) }}">Generate New OFP</a>
</div> </div>
</div> </div>

View File

@@ -2,33 +2,6 @@
@section('title', 'SimBrief Flight Planning') @section('title', 'SimBrief Flight Planning')
@section('content') @section('content')
@if(empty(request()->get('aircraft_id')))
<div class="row">
<div class="col-md-12">
<h2>Aircraft Selection</h2>
</div>
</div>
<div class="row">
<div class="col-md-6">
<select id="aircraftselection" class="form-control select2" onchange="checkacselection()">
<option value="ZZZZZ">Please Select An Aircraft</option>
@foreach($subfleets as $subfleet)
@foreach($subfleet->aircraft as $ac)
<option value="{{ $ac->id }}">[ {{ $ac->icao }} ] {{ $ac->registration }}</option>
@endforeach
@endforeach
</select>
</div>
<div class="col-md-6">
<a id="mylink" style="visibility: hidden"
href="{{ route('frontend.simbrief.generate') }}?flight_id={{ $flight->id }}" class="btn btn-primary">Proceed
To Flight Planning</a>
</div>
</div>
@else
@php @php
$loadmin = $flight->load_factor - $flight->load_factor_variance; $loadmin = $flight->load_factor - $flight->load_factor_variance;
$loadmax = $flight->load_factor + $flight->load_factor_variance; $loadmax = $flight->load_factor + $flight->load_factor_variance;
@@ -50,9 +23,9 @@
<form id="sbapiform"> <form id="sbapiform">
<div class="row"> <div class="row">
<h2>Create Simbrief Briefing</h2>
<div class="card"> <div class="card">
<div class="col-md-12"> <div class="col-md-12">
<h2>Create Flight Briefing Package</h2>
<div class="row"> <div class="row">
<div class="col-8"> <div class="col-8">
<div class="form-container"> <div class="form-container">
@@ -370,7 +343,6 @@
</div> </div>
</div> </div>
</form> </form>
@endif
@endsection @endsection
@section('scripts') @section('scripts')
<script src="{{public_asset('/assets/global/js/simbrief.apiv1.js')}}"></script> <script src="{{public_asset('/assets/global/js/simbrief.apiv1.js')}}"></script>