add separate flight_fields table and move over to flight_field_values
This commit is contained in:
@@ -14,7 +14,7 @@ class CreateFlightTables extends Migration
|
|||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Schema::create('flights', function (Blueprint $table) {
|
Schema::create('flights', function (Blueprint $table) {
|
||||||
$table->string('id', \App\Models\Flight::ID_MAX_LENGTH);
|
$table->string('id', \App\Interfaces\Model::ID_MAX_LENGTH);
|
||||||
$table->unsignedInteger('airline_id');
|
$table->unsignedInteger('airline_id');
|
||||||
$table->string('flight_number', 10);
|
$table->string('flight_number', 10);
|
||||||
$table->string('route_code', 5)->nullable();
|
$table->string('route_code', 5)->nullable();
|
||||||
@@ -42,7 +42,7 @@ class CreateFlightTables extends Migration
|
|||||||
});
|
});
|
||||||
|
|
||||||
Schema::create('flight_fare', function (Blueprint $table) {
|
Schema::create('flight_fare', function (Blueprint $table) {
|
||||||
$table->string('flight_id', \App\Models\Flight::ID_MAX_LENGTH);
|
$table->string('flight_id', \App\Interfaces\Model::ID_MAX_LENGTH);
|
||||||
$table->unsignedInteger('fare_id');
|
$table->unsignedInteger('fare_id');
|
||||||
$table->string('price', 10)->nullable();
|
$table->string('price', 10)->nullable();
|
||||||
$table->string('cost', 10)->nullable();
|
$table->string('cost', 10)->nullable();
|
||||||
@@ -52,9 +52,21 @@ class CreateFlightTables extends Migration
|
|||||||
$table->primary(['flight_id', 'fare_id']);
|
$table->primary(['flight_id', 'fare_id']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hold a master list of fields
|
||||||
|
*/
|
||||||
Schema::create('flight_fields', function (Blueprint $table) {
|
Schema::create('flight_fields', function (Blueprint $table) {
|
||||||
$table->increments('id');
|
$table->increments('id');
|
||||||
$table->string('flight_id', \App\Models\Flight::ID_MAX_LENGTH);
|
$table->string('name', 50);
|
||||||
|
$table->string('slug', 50)->nullable();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The values for the actual fields
|
||||||
|
*/
|
||||||
|
Schema::create('flight_field_values', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('flight_id', \App\Interfaces\Model::ID_MAX_LENGTH);
|
||||||
$table->string('name', 50);
|
$table->string('name', 50);
|
||||||
$table->text('value');
|
$table->text('value');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ class CreatePirepTables extends Migration
|
|||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Schema::create('pireps', function (Blueprint $table) {
|
Schema::create('pireps', function (Blueprint $table) {
|
||||||
$table->string('id', \App\Models\Pirep::ID_MAX_LENGTH);
|
$table->string('id', \App\Interfaces\Model::ID_MAX_LENGTH);
|
||||||
$table->unsignedInteger('user_id');
|
$table->unsignedInteger('user_id');
|
||||||
$table->unsignedInteger('airline_id');
|
$table->unsignedInteger('airline_id');
|
||||||
$table->unsignedInteger('aircraft_id')->nullable();
|
$table->unsignedInteger('aircraft_id')->nullable();
|
||||||
@@ -52,7 +52,7 @@ class CreatePirepTables extends Migration
|
|||||||
|
|
||||||
Schema::create('pirep_comments', function (Blueprint $table) {
|
Schema::create('pirep_comments', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->string('pirep_id', \App\Models\Pirep::ID_MAX_LENGTH);
|
$table->string('pirep_id', \App\Interfaces\Model::ID_MAX_LENGTH);
|
||||||
$table->unsignedInteger('user_id');
|
$table->unsignedInteger('user_id');
|
||||||
$table->text('comment');
|
$table->text('comment');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
@@ -60,7 +60,7 @@ class CreatePirepTables extends Migration
|
|||||||
|
|
||||||
Schema::create('pirep_fares', function (Blueprint $table) {
|
Schema::create('pirep_fares', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->string('pirep_id', \App\Models\Pirep::ID_MAX_LENGTH);
|
$table->string('pirep_id', \App\Interfaces\Model::ID_MAX_LENGTH);
|
||||||
$table->unsignedInteger('fare_id');
|
$table->unsignedInteger('fare_id');
|
||||||
$table->unsignedInteger('count')->nullable()->default(0);
|
$table->unsignedInteger('count')->nullable()->default(0);
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ class CreatePirepTables extends Migration
|
|||||||
});
|
});
|
||||||
|
|
||||||
Schema::create('pirep_fields', function (Blueprint $table) {
|
Schema::create('pirep_fields', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->increments('id');
|
||||||
$table->string('name', 50);
|
$table->string('name', 50);
|
||||||
$table->string('slug', 50)->nullable();
|
$table->string('slug', 50)->nullable();
|
||||||
$table->boolean('required')->nullable()->default(false);
|
$table->boolean('required')->nullable()->default(false);
|
||||||
@@ -76,7 +76,7 @@ class CreatePirepTables extends Migration
|
|||||||
|
|
||||||
Schema::create('pirep_field_values', function (Blueprint $table) {
|
Schema::create('pirep_field_values', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->string('pirep_id', \App\Models\Pirep::ID_MAX_LENGTH);
|
$table->string('pirep_id', \App\Interfaces\Model::ID_MAX_LENGTH);
|
||||||
$table->string('name', 50);
|
$table->string('name', 50);
|
||||||
$table->string('slug', 50)->nullable();
|
$table->string('slug', 50)->nullable();
|
||||||
$table->string('value')->nullable();
|
$table->string('value')->nullable();
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ class CreateBidsTable extends Migration
|
|||||||
Schema::create('bids', function (Blueprint $table) {
|
Schema::create('bids', function (Blueprint $table) {
|
||||||
$table->increments('id');
|
$table->increments('id');
|
||||||
$table->unsignedInteger('user_id');
|
$table->unsignedInteger('user_id');
|
||||||
$table->string('flight_id', \App\Models\Flight::ID_MAX_LENGTH);
|
$table->string('flight_id', \App\Interfaces\Model::ID_MAX_LENGTH);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
$table->index('user_id');
|
$table->index('user_id');
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class CreateAcarsTables extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('acars', function (Blueprint $table) {
|
Schema::create('acars', function (Blueprint $table) {
|
||||||
$table->string('id', 12);
|
$table->string('id', 12);
|
||||||
$table->string('pirep_id', \App\Models\Pirep::ID_MAX_LENGTH);
|
$table->string('pirep_id', \App\Interfaces\Model::ID_MAX_LENGTH);
|
||||||
$table->unsignedTinyInteger('type');
|
$table->unsignedTinyInteger('type');
|
||||||
$table->unsignedInteger('nav_type')->nullable();
|
$table->unsignedInteger('nav_type')->nullable();
|
||||||
$table->unsignedInteger('order')->default(0);
|
$table->unsignedInteger('order')->default(0);
|
||||||
|
|||||||
@@ -346,6 +346,12 @@ flights:
|
|||||||
updated_at: NOW
|
updated_at: NOW
|
||||||
|
|
||||||
flight_fields:
|
flight_fields:
|
||||||
|
- name: Departure Gate
|
||||||
|
slug: departure_gate
|
||||||
|
- name: Arrival Gate
|
||||||
|
slug: arrival_gate
|
||||||
|
|
||||||
|
flight_field_values:
|
||||||
- id: 1
|
- id: 1
|
||||||
flight_id: flightid_1
|
flight_id: flightid_1
|
||||||
name: cost index
|
name: cost index
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ use App\Http\Requests\UpdateFlightRequest;
|
|||||||
use App\Interfaces\Controller;
|
use App\Interfaces\Controller;
|
||||||
use App\Models\Enums\FlightType;
|
use App\Models\Enums\FlightType;
|
||||||
use App\Models\Flight;
|
use App\Models\Flight;
|
||||||
use App\Models\FlightFields;
|
use App\Models\FlightField;
|
||||||
|
use App\Models\FlightFieldValue;
|
||||||
use App\Repositories\AirlineRepository;
|
use App\Repositories\AirlineRepository;
|
||||||
use App\Repositories\AirportRepository;
|
use App\Repositories\AirportRepository;
|
||||||
use App\Repositories\FareRepository;
|
use App\Repositories\FareRepository;
|
||||||
@@ -18,6 +19,7 @@ use App\Services\FlightService;
|
|||||||
use App\Support\Units\Time;
|
use App\Support\Units\Time;
|
||||||
use Flash;
|
use Flash;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Log;
|
||||||
use Response;
|
use Response;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,6 +64,30 @@ class FlightController extends Controller
|
|||||||
$this->subfleetRepo = $subfleetRepo;
|
$this->subfleetRepo = $subfleetRepo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save any custom fields found
|
||||||
|
* @param Flight $flight
|
||||||
|
* @param Request $request
|
||||||
|
*/
|
||||||
|
protected function saveCustomFields(Flight $flight, Request $request): void
|
||||||
|
{
|
||||||
|
$custom_fields = [];
|
||||||
|
$flight_fields = FlightField::all();
|
||||||
|
foreach ($flight_fields as $field) {
|
||||||
|
if (!$request->filled($field->slug)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$custom_fields[] = [
|
||||||
|
'name' => $field->name,
|
||||||
|
'value' => $request->input($field->slug)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::info('PIREP Custom Fields', $custom_fields);
|
||||||
|
$this->flightSvc->updateCustomFields($flight->id, $custom_fields);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $flight
|
* @param $flight
|
||||||
* @return array
|
* @return array
|
||||||
@@ -295,7 +321,7 @@ class FlightController extends Controller
|
|||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function fields(Request $request)
|
public function field_values(Request $request)
|
||||||
{
|
{
|
||||||
$id = $request->id;
|
$id = $request->id;
|
||||||
|
|
||||||
@@ -308,19 +334,19 @@ class FlightController extends Controller
|
|||||||
|
|
||||||
// add custom field to flight
|
// add custom field to flight
|
||||||
if ($request->isMethod('post')) {
|
if ($request->isMethod('post')) {
|
||||||
$field = new FlightFields;
|
$field = new FlightFieldValue;
|
||||||
$field->flight_id = $id;
|
$field->flight_id = $id;
|
||||||
$field->name = $request->name;
|
$field->name = $request->name;
|
||||||
$field->value = $request->value;
|
$field->value = $request->value;
|
||||||
$field->save();
|
$field->save();
|
||||||
} elseif ($request->isMethod('put')) {
|
} elseif ($request->isMethod('put')) {
|
||||||
$field = FlightFields::where('id', $request->field_id)->first();
|
$field = FlightFieldValue::where('id', $request->field_id)->first();
|
||||||
$field->value = $request->value;
|
$field->value = $request->value;
|
||||||
$field->save();
|
$field->save();
|
||||||
// update the field value
|
// update the field value
|
||||||
} // remove custom field from flight
|
} // remove custom field from flight
|
||||||
elseif ($request->isMethod('delete')) {
|
elseif ($request->isMethod('delete')) {
|
||||||
FlightFields::destroy($request->field_id);
|
FlightFieldValue::destroy($request->field_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->return_fields_view($flight);
|
return $this->return_fields_view($flight);
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ class PirepController extends Controller
|
|||||||
* @param Pirep $pirep
|
* @param Pirep $pirep
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
*/
|
*/
|
||||||
protected function saveCustomFields(Pirep $pirep, Request $request)
|
protected function saveCustomFields(Pirep $pirep, Request $request): void
|
||||||
{
|
{
|
||||||
$custom_fields = [];
|
$custom_fields = [];
|
||||||
$pirep_fields = $this->pirepFieldRepo->all();
|
$pirep_fields = $this->pirepFieldRepo->all();
|
||||||
@@ -265,7 +265,6 @@ class PirepController extends Controller
|
|||||||
|
|
||||||
if (empty($pirep)) {
|
if (empty($pirep)) {
|
||||||
Flash::error('Pirep not found');
|
Flash::error('Pirep not found');
|
||||||
|
|
||||||
return redirect(route('admin.pireps.index'));
|
return redirect(route('admin.pireps.index'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -358,7 +357,6 @@ class PirepController extends Controller
|
|||||||
$this->saveFares($pirep, $request);
|
$this->saveFares($pirep, $request);
|
||||||
|
|
||||||
Flash::success('Pirep updated successfully.');
|
Flash::success('Pirep updated successfully.');
|
||||||
|
|
||||||
return redirect(route('admin.pireps.index'));
|
return redirect(route('admin.pireps.index'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -373,14 +371,12 @@ class PirepController extends Controller
|
|||||||
|
|
||||||
if (empty($pirep)) {
|
if (empty($pirep)) {
|
||||||
Flash::error('Pirep not found');
|
Flash::error('Pirep not found');
|
||||||
|
|
||||||
return redirect(route('admin.pireps.index'));
|
return redirect(route('admin.pireps.index'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->pirepRepo->delete($id);
|
$this->pirepRepo->delete($id);
|
||||||
|
|
||||||
Flash::success('Pirep deleted successfully.');
|
Flash::success('Pirep deleted successfully.');
|
||||||
|
|
||||||
return redirect(route('admin.pireps.index'));
|
return redirect(route('admin.pireps.index'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ namespace App\Interfaces;
|
|||||||
*/
|
*/
|
||||||
abstract class Model extends \Illuminate\Database\Eloquent\Model
|
abstract class Model extends \Illuminate\Database\Eloquent\Model
|
||||||
{
|
{
|
||||||
|
public const ID_MAX_LENGTH = 12;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,17 +10,17 @@ use PhpUnitsOfMeasure\Exception\NonNumericValue;
|
|||||||
use PhpUnitsOfMeasure\Exception\NonStringUnitName;
|
use PhpUnitsOfMeasure\Exception\NonStringUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property Airline airline
|
* @property string id
|
||||||
* @property mixed flight_number
|
* @property Airline airline
|
||||||
* @property mixed route_code
|
* @property mixed flight_number
|
||||||
* @property mixed route_leg
|
* @property mixed route_code
|
||||||
* @property Collection fields
|
* @property mixed route_leg
|
||||||
|
* @property Collection field_values
|
||||||
*/
|
*/
|
||||||
class Flight extends Model
|
class Flight extends Model
|
||||||
{
|
{
|
||||||
use HashIdTrait;
|
use HashIdTrait;
|
||||||
|
|
||||||
public const ID_MAX_LENGTH = 12;
|
|
||||||
public $table = 'flights';
|
public $table = 'flights';
|
||||||
public $incrementing = false;
|
public $incrementing = false;
|
||||||
|
|
||||||
@@ -130,7 +130,7 @@ class Flight extends Model
|
|||||||
*/
|
*/
|
||||||
public function field($field_name): string
|
public function field($field_name): string
|
||||||
{
|
{
|
||||||
$field = $this->fields->where('name', $field_name)->first();
|
$field = $this->field_values->where('name', $field_name)->first();
|
||||||
if($field) {
|
if($field) {
|
||||||
return $field['value'];
|
return $field['value'];
|
||||||
}
|
}
|
||||||
@@ -168,9 +168,9 @@ class Flight extends Model
|
|||||||
->withPivot('price', 'cost', 'capacity');
|
->withPivot('price', 'cost', 'capacity');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fields()
|
public function field_values()
|
||||||
{
|
{
|
||||||
return $this->hasMany(FlightFields::class, 'flight_id');
|
return $this->hasMany(FlightFieldValue::class, 'flight_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function subfleets()
|
public function subfleets()
|
||||||
|
|||||||
41
app/Models/FlightField.php
Normal file
41
app/Models/FlightField.php
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Interfaces\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class FlightField
|
||||||
|
* @property string name
|
||||||
|
* @property string slug
|
||||||
|
* @package App\Models
|
||||||
|
*/
|
||||||
|
class FlightField extends Model
|
||||||
|
{
|
||||||
|
public $table = 'flight_fields';
|
||||||
|
public $timestamps = false;
|
||||||
|
|
||||||
|
public $fillable = [
|
||||||
|
'name',
|
||||||
|
'slug',
|
||||||
|
'required',
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $casts = [
|
||||||
|
'required' => 'boolean',
|
||||||
|
];
|
||||||
|
|
||||||
|
public static $rules = [
|
||||||
|
'name' => 'required',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When setting the name attribute, also set the slug
|
||||||
|
* @param $name
|
||||||
|
*/
|
||||||
|
public function setNameAttribute($name): void
|
||||||
|
{
|
||||||
|
$this->attributes['name'] = $name;
|
||||||
|
$this->attributes['slug'] = str_slug($name);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,12 +5,12 @@ namespace App\Models;
|
|||||||
use App\Interfaces\Model;
|
use App\Interfaces\Model;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class FlightFields
|
* Class FlightFieldValue
|
||||||
* @package App\Models
|
* @package App\Models
|
||||||
*/
|
*/
|
||||||
class FlightFields extends Model
|
class FlightFieldValue extends Model
|
||||||
{
|
{
|
||||||
public $table = 'flight_fields';
|
public $table = 'flight_field_values';
|
||||||
|
|
||||||
public $fillable = [
|
public $fillable = [
|
||||||
'flight_id',
|
'flight_id',
|
||||||
@@ -34,8 +34,6 @@ class Pirep extends Model
|
|||||||
{
|
{
|
||||||
use HashIdTrait;
|
use HashIdTrait;
|
||||||
|
|
||||||
public const ID_MAX_LENGTH = 12;
|
|
||||||
|
|
||||||
public $table = 'pireps';
|
public $table = 'pireps';
|
||||||
public $incrementing = false;
|
public $incrementing = false;
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Models\Traits;
|
namespace App\Models\Traits;
|
||||||
|
|
||||||
|
use App\Interfaces\Model;
|
||||||
use Hashids\Hashids;
|
use Hashids\Hashids;
|
||||||
|
|
||||||
trait HashIdTrait
|
trait HashIdTrait
|
||||||
@@ -10,11 +11,10 @@ trait HashIdTrait
|
|||||||
* @return string
|
* @return string
|
||||||
* @throws \Hashids\HashidsException
|
* @throws \Hashids\HashidsException
|
||||||
*/
|
*/
|
||||||
protected static function createNewHashId(): string
|
final protected static function createNewHashId(): string
|
||||||
{
|
{
|
||||||
$hashids = new Hashids('', 12);
|
$hashids = new Hashids('', Model::ID_MAX_LENGTH);
|
||||||
$mt = str_replace('.', '', microtime(true));
|
$mt = str_replace('.', '', microtime(true));
|
||||||
|
|
||||||
return $hashids->encode($mt);
|
return $hashids->encode($mt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ trait HashIdTrait
|
|||||||
* Register callbacks
|
* Register callbacks
|
||||||
* @throws \Hashids\HashidsException
|
* @throws \Hashids\HashidsException
|
||||||
*/
|
*/
|
||||||
protected static function bootHashIdTrait()
|
final protected static function bootHashIdTrait(): void
|
||||||
{
|
{
|
||||||
static::creating(function ($model) {
|
static::creating(function ($model) {
|
||||||
if (empty($model->id)) {
|
if (empty($model->id)) {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ Route::group([
|
|||||||
# flights and aircraft associations
|
# flights and aircraft associations
|
||||||
Route::resource('flights', 'FlightController');
|
Route::resource('flights', 'FlightController');
|
||||||
Route::match(['get', 'post', 'put', 'delete'], 'flights/{id}/fares', 'FlightController@fares');
|
Route::match(['get', 'post', 'put', 'delete'], 'flights/{id}/fares', 'FlightController@fares');
|
||||||
Route::match(['get', 'post', 'put', 'delete'], 'flights/{id}/fields', 'FlightController@fields');
|
Route::match(['get', 'post', 'put', 'delete'], 'flights/{id}/fields', 'FlightController@field_values');
|
||||||
Route::match(['get', 'post', 'put', 'delete'], 'flights/{id}/subfleets', 'FlightController@subfleets');
|
Route::match(['get', 'post', 'put', 'delete'], 'flights/{id}/subfleets', 'FlightController@subfleets');
|
||||||
|
|
||||||
# pirep related routes
|
# pirep related routes
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ use App\Exceptions\BidExists;
|
|||||||
use App\Interfaces\Service;
|
use App\Interfaces\Service;
|
||||||
use App\Models\Bid;
|
use App\Models\Bid;
|
||||||
use App\Models\Flight;
|
use App\Models\Flight;
|
||||||
|
use App\Models\FlightFieldValue;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Repositories\FlightRepository;
|
use App\Repositories\FlightRepository;
|
||||||
use App\Repositories\NavdataRepository;
|
use App\Repositories\NavdataRepository;
|
||||||
@@ -104,13 +105,33 @@ class FlightService extends Service
|
|||||||
* @param Flight $flight
|
* @param Flight $flight
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function deleteFlight(Flight $flight)
|
public function deleteFlight(Flight $flight): void
|
||||||
{
|
{
|
||||||
$where = ['flight_id' => $flight->id];
|
$where = ['flight_id' => $flight->id];
|
||||||
Bid::where($where)->delete();
|
Bid::where($where)->delete();
|
||||||
$flight->delete();
|
$flight->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update any custom PIREP fields
|
||||||
|
* @param Flight $flight_id
|
||||||
|
* @param array $field_values
|
||||||
|
*/
|
||||||
|
public function updateCustomFields(Flight $flight_id, array $field_values): void
|
||||||
|
{
|
||||||
|
foreach ($field_values as $fv) {
|
||||||
|
FlightFieldValue::updateOrCreate(
|
||||||
|
[
|
||||||
|
'flight_id' => $flight_id,
|
||||||
|
'name' => $fv['name'],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'value' => $fv['value']
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return all of the navaid points as a collection
|
* Return all of the navaid points as a collection
|
||||||
* @param Flight $flight
|
* @param Flight $flight
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<div id="flight_fields_wrapper">
|
<div id="flight_fields_wrapper">
|
||||||
<h3>custom fields</h3><br />
|
<h3>custom fields</h3><br />
|
||||||
<table class="table table-responsive" id="flight-fields-table">
|
<table class="table table-responsive" id="flight-fields-table">
|
||||||
@if(count($flight->fields))
|
@if(count($flight->field_values))
|
||||||
<thead>
|
<thead>
|
||||||
<th>Name</th>
|
<th>Name</th>
|
||||||
<th style="text-align: center;">Value</th>
|
<th>Value</th>
|
||||||
<th style="text-align: center;">Actions</th>
|
<th></th>
|
||||||
</thead>
|
</thead>
|
||||||
@endif
|
@endif
|
||||||
<tbody>
|
<tbody>
|
||||||
@foreach($flight->fields as $field)
|
@foreach($flight->field_values as $field)
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ $field->name }}</td>
|
<td>{{ $field->name }}</td>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@@ -62,11 +62,13 @@ $(document).ready(function () {
|
|||||||
$(document).on('submit', 'form.pjax_flight_fields', function (event) {
|
$(document).on('submit', 'form.pjax_flight_fields', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
$.pjax.submit(event, '#flight_fields_wrapper', {push: false});
|
$.pjax.submit(event, '#flight_fields_wrapper', {push: false});
|
||||||
|
setEditable();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('submit', 'form.pjax_subfleet_form', function (event) {
|
$(document).on('submit', 'form.pjax_subfleet_form', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
$.pjax.submit(event, '#subfleet_flight_wrapper', {push: false});
|
$.pjax.submit(event, '#subfleet_flight_wrapper', {push: false});
|
||||||
|
setEditable();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('submit', 'form.pjax_fares_form', function (event) {
|
$(document).on('submit', 'form.pjax_fares_form', function (event) {
|
||||||
|
|||||||
Reference in New Issue
Block a user