diff --git a/app/Http/Controllers/Frontend/SimBriefController.php b/app/Http/Controllers/Frontend/SimBriefController.php index bd51c000..33bdd8e4 100644 --- a/app/Http/Controllers/Frontend/SimBriefController.php +++ b/app/Http/Controllers/Frontend/SimBriefController.php @@ -57,16 +57,13 @@ class SimBriefController 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'); if (empty($apiKey)) { flash()->error('Invalid SimBrief API key!'); return redirect(route('frontend.flights.index')); } + // Check if a Simbrief profile already exists $simbrief = SimBrief::select('id')->where([ 'flight_id' => $flight_id, 'user_id' => $user->id, @@ -76,6 +73,7 @@ class SimBriefController 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') ->where('id', $aircraft_id) ->get(); @@ -92,11 +90,22 @@ class SimBriefController $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', [ 'flight' => $flight, 'aircraft' => $aircraft, '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 * + * @throws \Exception + * * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ - public function remove(Request $request) + public function generate_new(Request $request) { - $sb_pack = SimBrief::find($request->id); - if ($sb_pack) { - if (!$sb_pack->pirep_id) { - $sb_pack->delete(); - } else { - $sb_pack->flight_id = null; - $sb_pack->save(); - } + $simbrief = SimBrief::find($request->id); + + // Invalid Simbrief ID/profile, go back to the main flight index + if (!$simbrief) { + return redirect(route('frontend.flights.index')); } - 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); } /** diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 2cdd142c..aff100a3 100755 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -147,7 +147,7 @@ class RouteServiceProvider extends ServiceProvider Route::get('simbrief/{id}', 'SimBriefController@briefing')->name('simbrief.briefing'); Route::get('simbrief/{id}/prefile', 'SimBriefController@prefile')->name('simbrief.prefile'); 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([ diff --git a/resources/views/layouts/default/flights/search.blade.php b/resources/views/layouts/default/flights/search.blade.php index fe842e08..7f505777 100644 --- a/resources/views/layouts/default/flights/search.blade.php +++ b/resources/views/layouts/default/flights/search.blade.php @@ -10,7 +10,7 @@
@lang('common.airline')
- {{ Form::select('airline_id', $airlines, null , ['class' => 'form-control form-control-sm select2']) }} + {{ Form::select('airline_id', $airlines, null , ['class' => 'form-control select2']) }}