diff --git a/app/Http/Controllers/Admin/FlightController.php b/app/Http/Controllers/Admin/FlightController.php index 135763d2..af41ca7e 100644 --- a/app/Http/Controllers/Admin/FlightController.php +++ b/app/Http/Controllers/Admin/FlightController.php @@ -18,6 +18,11 @@ use Response; class FlightController extends BaseController { + private $airlineRepo, + $airportRepo, + $flightRepo, + $subfleetRepo; + public function __construct( AirlineRepository $airlineRepo, AirportRepository $airportRepo, @@ -46,10 +51,9 @@ class FlightController extends BaseController } /** - * Display a listing of the Flight. - * * @param Request $request - * @return Response + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function index(Request $request) { @@ -67,15 +71,17 @@ class FlightController extends BaseController */ public function create() { - return view('admin.flights.create'); + return view('admin.flights.create', [ + 'flight' => null, + 'airlines' => $this->airlineRepo->selectBoxList(), + 'airports' => $this->airportRepo->selectBoxList(), + ]); } /** - * Store a newly created Flight in storage. - * * @param CreateFlightRequest $request - * - * @return Response + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function store(CreateFlightRequest $request) { @@ -84,15 +90,12 @@ class FlightController extends BaseController $flight = $this->flightRepo->create($input); Flash::success('Flight saved successfully.'); - return redirect(route('admin.flights.index')); + return redirect(route('admin.flights.edit', $flight->id)); } /** - * Display the specified Flight. - * - * @param int $id - * - * @return Response + * @param $id + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View */ public function show($id) { @@ -111,11 +114,8 @@ class FlightController extends BaseController } /** - * Show the form for editing the specified Flight. - * - * @param int $id - * - * @return Response + * @param $id + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View */ public function edit($id) { @@ -129,19 +129,17 @@ class FlightController extends BaseController $avail_subfleets = $this->getAvailSubfleets($flight); return view('admin.flights.edit', [ 'flight' => $flight, - 'airlines' => $this->airlineRepo->all()->pluck('name', 'id'), - 'airports' => $this->airportRepo->all()->pluck('icao', 'icao'), + 'airlines' => $this->airlineRepo->selectBoxList(), + 'airports' => $this->airportRepo->selectBoxList(), 'avail_subfleets' => $avail_subfleets, ]); } /** - * Update the specified Flight in storage. - * - * @param int $id + * @param $id * @param UpdateFlightRequest $request - * - * @return Response + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function update($id, UpdateFlightRequest $request) { @@ -159,11 +157,8 @@ class FlightController extends BaseController } /** - * Remove the specified Flight from storage. - * - * @param int $id - * - * @return Response + * @param $id + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function destroy($id) { @@ -180,6 +175,10 @@ class FlightController extends BaseController return redirect(route('admin.flights.index')); } + /** + * @param $flight + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ protected function return_fields_view($flight) { $flight->refresh(); @@ -188,6 +187,10 @@ class FlightController extends BaseController ]); } + /** + * @param Request $request + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ public function fields(Request $request) { $id = $request->id; @@ -222,6 +225,10 @@ class FlightController extends BaseController return $this->return_fields_view($flight); } + /** + * @param $flight + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ protected function return_subfleet_view($flight) { $avail_subfleets = $this->getAvailSubfleets($flight); @@ -231,6 +238,10 @@ class FlightController extends BaseController ]); } + /** + * @param Request $request + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ public function subfleets(Request $request) { $id = $request->id; diff --git a/app/Http/Controllers/Frontend/PirepController.php b/app/Http/Controllers/Frontend/PirepController.php index f97d518f..f276af4c 100644 --- a/app/Http/Controllers/Frontend/PirepController.php +++ b/app/Http/Controllers/Frontend/PirepController.php @@ -18,6 +18,12 @@ use App\Repositories\PirepFieldRepository; class PirepController extends Controller { + private $airlineRepo, + $aircraftRepo, + $pirepRepo, + $airportRepo, + $pirepFieldRepo; + public function __construct( AirlineRepository $airlineRepo, PirepRepository $pirepRepo, @@ -33,30 +39,6 @@ class PirepController extends Controller $this->pirepFieldRepo = $pirepFieldRepo; } - public function airportList() - { - # TODO: Cache - $retval = []; - $airports = $this->airportRepo->all(); - foreach($airports as $airport) { - $retval[$airport->icao] = $airport->icao.' - '.$airport->name; - } - - return $retval; - } - - public function aircraftList() - { - $retval = []; - $aircraft = $this->aircraftRepo->all(); - - foreach ($aircraft as $ac) { - $retval[$ac->id] = $ac->subfleet->name.' - '.$ac->name.' ('.$ac->registration.')'; - } - - return $retval; - } - public function index(Request $request) { $user = Auth::user(); @@ -74,12 +56,11 @@ class PirepController extends Controller public function create() { $aircraft = $this->aircraftList(); - $airports = $this->airportList(); return $this->view('pireps.create', [ - 'airports' => $airports, + 'airports' => $this->airportRepo->selectBoxList(), 'airlines' => $this->airlineRepo->all()->pluck('name', 'id'), - 'aircraft' => $aircraft, + 'aircraft' => $this->aircraftRepo->selectBoxList(), 'pirepfields' => $this->pirepFieldRepo->all(), 'fieldvalues' => [], ]); diff --git a/app/Repositories/AircraftRepository.php b/app/Repositories/AircraftRepository.php index 4ef3cc87..e6932cec 100644 --- a/app/Repositories/AircraftRepository.php +++ b/app/Repositories/AircraftRepository.php @@ -20,4 +20,20 @@ class AircraftRepository extends BaseRepository implements CacheableInterface { return Aircraft::class; } + + /** + * Return the list of aircraft formatted for a select box + * @return array + */ + public function selectBoxList() + { + $retval = []; + $items = $this->all(); + + foreach ($items as $i) { + $retval[$i->id] = $i->subfleet->name . ' - ' . $i->name . ' (' . $i->registration . ')'; + } + + return $retval; + } } diff --git a/app/Repositories/AirlineRepository.php b/app/Repositories/AirlineRepository.php index 8a526ba1..964fc8b5 100644 --- a/app/Repositories/AirlineRepository.php +++ b/app/Repositories/AirlineRepository.php @@ -20,4 +20,20 @@ class AirlineRepository extends BaseRepository implements CacheableInterface { return Airline::class; } + + /** + * Return the list of airline formatted for a select box + * @return array + */ + public function selectBoxList() + { + $retval = []; + $items = $this->all(); + + foreach ($items as $i) { + $retval[$i->id] = $i->name; + } + + return $retval; + } } diff --git a/app/Repositories/AirportRepository.php b/app/Repositories/AirportRepository.php index fa14ba4d..d03b35f5 100644 --- a/app/Repositories/AirportRepository.php +++ b/app/Repositories/AirportRepository.php @@ -20,4 +20,19 @@ class AirportRepository extends BaseRepository implements CacheableInterface { return Airport::class; } + + /** + * Return the list of airports formatted for a select box + * @return array + */ + public function selectBoxList() + { + $retval = []; + $items = $this->all(); + foreach ($items as $i) { + $retval[$i->icao] = $i->icao . ' - ' . $i->name; + } + + return $retval; + } } diff --git a/resources/views/admin/flights/create.blade.php b/resources/views/admin/flights/create.blade.php index e12592d6..8d1b7286 100644 --- a/resources/views/admin/flights/create.blade.php +++ b/resources/views/admin/flights/create.blade.php @@ -1,22 +1,12 @@ @extends('admin.app') - +@section('title', 'Edit Flight') @section('content') -
-

Create Flight

-
-
+
@include('adminlte-templates::common.errors') -
- -
-
- {!! Form::open(['route' => 'admin.flights.store']) !!} - - @include('admin.flights.fields') - - {!! Form::close() !!} -
-
+
+ {!! Form::model($flight, ['route' => ['admin.flights.store']]) !!} + @include('admin.flights.fields') + {!! Form::close() !!}
@endsection diff --git a/resources/views/admin/flights/fields.blade.php b/resources/views/admin/flights/fields.blade.php index 6648322c..03e54796 100644 --- a/resources/views/admin/flights/fields.blade.php +++ b/resources/views/admin/flights/fields.blade.php @@ -14,7 +14,11 @@
{!! Form::label('active', 'Active:') !!} - {!! Form::checkbox('active', $flight->active, ['class' => 'form-control icheck']) !!} + @if($flight!==null) + {!! Form::checkbox('active', $flight->active, ['class' => 'form-control icheck']) !!} + @else + {!! Form::checkbox('active', null, ['class' => 'form-control icheck']) !!} + @endif