diff --git a/app/Cron/Nightly/PilotLeave.php b/app/Cron/Nightly/PilotLeave.php index 7417b4b1..8128c69c 100644 --- a/app/Cron/Nightly/PilotLeave.php +++ b/app/Cron/Nightly/PilotLeave.php @@ -42,6 +42,7 @@ class PilotLeave extends Listener ->whereDate('updated_at', '<', $date); foreach($users as $user) { + Log::info('Setting user '.$user->ident.' to ON LEAVE status'); $this->userSvc->setStatusOnLeave($user); } } diff --git a/app/Cron/Nightly/SetActiveFlights.php b/app/Cron/Nightly/SetActiveFlights.php index e63906d9..daadd9b6 100644 --- a/app/Cron/Nightly/SetActiveFlights.php +++ b/app/Cron/Nightly/SetActiveFlights.php @@ -7,6 +7,7 @@ use App\Interfaces\Listener; use App\Models\Enums\Days; use App\Models\Flight; use Carbon\Carbon; +use Illuminate\Support\Facades\Log; /** * Figure out what flights need to be active for today @@ -38,12 +39,22 @@ class SetActiveFlights extends Listener * @var Flight $flight */ foreach($flights as $flight) { + if (!$flight->active) { + continue; + } // dates aren't set, so just save if there were any changes above // and move onto the next one if ($flight->start_date === null || $flight->end_date === null) { if ($flight->days > 0) { - $flight->active = Days::isToday($flight->days); + $visible = Days::isToday($flight->days); + if($flight->visible !== $visible) { + Log::info('Marking flight '.$flight->ident.' to '.($visible ? 'visible' : 'invisible')); + $flight->visible = $visible; + } + } else { + Log::info('Toggling flight '.$flight->ident.' to visible'); + $flight->visible = true; } $flight->save(); @@ -56,12 +67,19 @@ class SetActiveFlights extends Listener // and then make sure if days of the week are specified, check that too if ($today->gte($flight->start_date) && $today->lte($flight->end_date)) { if ($flight->days > 0) { - $flight->active = Days::isToday($flight->days); + $visible = Days::isToday($flight->days); + if($flight->visible !== $visible) { + Log::info('Toggling flight '.$flight->ident.' to '.($visible?'visible':'invisible')); + $flight->visible = true; + } } else { - $flight->active = true; + if ($flight->visible !== true) { + Log::info('Toggling flight '.$flight->ident.' to visible'); + $flight->visible = true; + } } } else { - $flight->active = false; + $flight->visible = false; } $flight->save(); diff --git a/app/Database/factories/FlightFactory.php b/app/Database/factories/FlightFactory.php index 661ef89b..63b5e3bf 100644 --- a/app/Database/factories/FlightFactory.php +++ b/app/Database/factories/FlightFactory.php @@ -31,6 +31,7 @@ $factory->define(App\Models\Flight::class, function (Faker $faker) { 'flight_time' => $faker->numberBetween(60, 360), 'has_bid' => false, 'active' => true, + 'visible' => true, 'days' => 0, 'start_date' => null, 'end_date' => null, diff --git a/app/Database/migrations/2017_06_11_135707_create_airports_table.php b/app/Database/migrations/2017_06_11_135707_create_airports_table.php index 6670f4ac..cfa96a2d 100644 --- a/app/Database/migrations/2017_06_11_135707_create_airports_table.php +++ b/app/Database/migrations/2017_06_11_135707_create_airports_table.php @@ -16,12 +16,12 @@ class CreateAirportsTable extends Migration $table->string('country', 64)->nullable(); $table->string('timezone', 64)->nullable(); $table->boolean('hub')->default(false); + $table->float('lat', 7, 4)->nullable()->default(0.0); + $table->float('lon', 7, 4)->nullable()->default(0.0); $table->unsignedDecimal('ground_handling_cost')->nullable()->default(0); $table->unsignedDecimal('fuel_100ll_cost')->nullable()->default(0); $table->unsignedDecimal('fuel_jeta_cost')->nullable()->default(0); $table->unsignedDecimal('fuel_mogas_cost')->nullable()->default(0); - $table->float('lat', 7, 4)->nullable()->default(0.0); - $table->float('lon', 7, 4)->nullable()->default(0.0); $table->index('icao'); $table->index('iata'); diff --git a/app/Database/migrations/2017_06_17_214650_create_flight_tables.php b/app/Database/migrations/2017_06_17_214650_create_flight_tables.php index 1b5f3564..a3f8b7b1 100644 --- a/app/Database/migrations/2017_06_17_214650_create_flight_tables.php +++ b/app/Database/migrations/2017_06_17_214650_create_flight_tables.php @@ -36,7 +36,7 @@ class CreateFlightTables extends Migration $table->date('end_date')->nullable(); $table->boolean('has_bid')->default(false); $table->boolean('active')->default(true); - $table->boolean('flight_active')->default(true); // used by the cron + $table->boolean('visible')->default(true); // used by the cron $table->timestamps(); $table->primary('id'); diff --git a/app/Database/migrations/2017_06_28_195426_create_pirep_tables.php b/app/Database/migrations/2017_06_28_195426_create_pirep_tables.php index 66ad7b02..f32cba12 100644 --- a/app/Database/migrations/2017_06_28_195426_create_pirep_tables.php +++ b/app/Database/migrations/2017_06_28_195426_create_pirep_tables.php @@ -84,7 +84,7 @@ class CreatePirepTables extends Migration $table->string('name', 50); $table->string('slug', 50)->nullable(); $table->string('value')->nullable(); - $table->string('source')->nullable(); + $table->unsignedTinyInteger('source'); $table->timestamps(); $table->index('pirep_id'); diff --git a/app/Database/seeds/sample.yml b/app/Database/seeds/sample.yml index f07fe30e..ac4fe439 100644 --- a/app/Database/seeds/sample.yml +++ b/app/Database/seeds/sample.yml @@ -393,10 +393,10 @@ flights: updated_at: NOW flight_fields: - - name: Departure Gate - slug: departure-gate - - name: Arrival Gate - slug: arrival-gate + - name: Departure Terminal + slug: departure-terminal + - name: Arrival Terminal + slug: arrival-terminal flight_field_values: - id: 1 @@ -540,27 +540,33 @@ pirep_fares: pirep_fields: - id: 1 - name: departure gate - slug: departure-gate + name: departure terminal + slug: departure-terminal required: 1 - id: 2 - name: arrival gate - slug: arrival-gate + name: arrival terminal + slug: arrival-terminal required: 0 pirep_field_values: - id: 1 pirep_id: pirepid_1 - name: arrival gate - slug: arrival-gate + name: arrival terminal + slug: arrival-terminal value: 10 - source: manual + source: 0 - id: 2 pirep_id: pirepid_1 - name: departure gate - slug: departure-gate - value: B32 - source: manual + name: departure terminal + slug: departure-terminal + value: 4 + source: 0 + - id: 3 + pirep_id: pirepid_1 + name: Landing Rate + slug: landing-rate + value: -225.3 + source: 1 pirep_comments: - id: 1 diff --git a/app/Http/Controllers/Admin/AircraftController.php b/app/Http/Controllers/Admin/AircraftController.php index da461527..556fc30a 100644 --- a/app/Http/Controllers/Admin/AircraftController.php +++ b/app/Http/Controllers/Admin/AircraftController.php @@ -118,7 +118,6 @@ class AircraftController extends Controller if (empty($aircraft)) { Flash::error('Aircraft not found'); - return redirect(route('admin.aircraft.index')); } diff --git a/app/Http/Controllers/Admin/PirepController.php b/app/Http/Controllers/Admin/PirepController.php index 7601d682..3f5188db 100644 --- a/app/Http/Controllers/Admin/PirepController.php +++ b/app/Http/Controllers/Admin/PirepController.php @@ -298,7 +298,8 @@ class PirepController extends Controller # set the custom fields foreach ($pirep->fields as $field) { - $pirep->{$field->slug} = $field->value; + $field_name = 'field_'.$field->slug; + $pirep->{$field_name} = $field->value; } # set the fares diff --git a/app/Http/Controllers/Api/FlightController.php b/app/Http/Controllers/Api/FlightController.php index cfb8b119..4d156200 100644 --- a/app/Http/Controllers/Api/FlightController.php +++ b/app/Http/Controllers/Api/FlightController.php @@ -44,7 +44,11 @@ class FlightController extends Controller { $user = Auth::user(); - $where = ['active' => true]; + $where = [ + 'active' => true, + 'visible' => true, + ]; + if(setting('pilots.restrict_to_company')) { $where['airline_id'] = Auth::user()->airline_id; } @@ -84,7 +88,11 @@ class FlightController extends Controller $user = Auth::user(); try { - $where = ['active' => true]; + $where = [ + 'active' => true, + 'visible' => true, + ]; + if(setting('pilots.restrict_to_company')) { $where['airline_id'] = Auth::user()->airline_id; } diff --git a/app/Http/Controllers/Api/PirepController.php b/app/Http/Controllers/Api/PirepController.php index 95777f60..8a46dc30 100644 --- a/app/Http/Controllers/Api/PirepController.php +++ b/app/Http/Controllers/Api/PirepController.php @@ -20,6 +20,7 @@ use App\Http\Resources\PirepFieldCollection; use App\Interfaces\Controller; use App\Models\Acars; use App\Models\Enums\AcarsType; +use App\Models\Enums\PirepFieldSource; use App\Models\Enums\PirepSource; use App\Models\Enums\PirepState; use App\Models\Enums\PirepStatus; @@ -122,7 +123,7 @@ class PirepController extends Controller $pirep_fields[] = [ 'name' => $field_name, 'value' => $field_value, - 'source' => $pirep->source, + 'source' => PirepFieldSource::ACARS, ]; } @@ -497,6 +498,12 @@ class PirepController extends Controller Log::info('Posting ROUTE, PIREP: '.$id, $request->post()); + // Delete the route before posting a new one + Acars::where([ + 'pirep_id' => $id, + 'type' => AcarsType::ROUTE + ])->delete(); + $count = 0; $route = $request->post('route', []); foreach ($route as $position) { diff --git a/app/Http/Controllers/Frontend/FlightController.php b/app/Http/Controllers/Frontend/FlightController.php index a974f3d7..04625446 100644 --- a/app/Http/Controllers/Frontend/FlightController.php +++ b/app/Http/Controllers/Frontend/FlightController.php @@ -52,8 +52,10 @@ class FlightController extends Controller public function index(Request $request) { $where = [ - 'active' => true, + 'active' => true, + 'visible' => true, ]; + if(setting('pilots.restrict_to_company')) { $where['airline_id'] = Auth::user()->airline_id; } diff --git a/app/Http/Controllers/Frontend/PirepController.php b/app/Http/Controllers/Frontend/PirepController.php index c58b7729..e900ccb1 100644 --- a/app/Http/Controllers/Frontend/PirepController.php +++ b/app/Http/Controllers/Frontend/PirepController.php @@ -332,6 +332,9 @@ class PirepController extends Controller return redirect(route('frontend.pireps.index')); } + # Eager load the subfleet and fares under it + $pirep->aircraft->load('subfleet.fares'); + $time = new Time($pirep->flight_time); $pirep->hours = $time->hours; $pirep->minutes = $time->minutes; @@ -342,7 +345,8 @@ class PirepController extends Controller $field->slug = str_slug($field->name); } - $pirep->{$field->slug} = $field->value; + $field_name = 'field_'.$field->slug; + $pirep->{$field_name} = $field->value; } # set the fares diff --git a/app/Models/Enums/PirepFieldSource.php b/app/Models/Enums/PirepFieldSource.php new file mode 100644 index 00000000..cc7784f8 --- /dev/null +++ b/app/Models/Enums/PirepFieldSource.php @@ -0,0 +1,15 @@ + 'date', 'end_date' => 'date', 'has_bid' => 'boolean', + 'route_leg' => 'integer', 'active' => 'boolean', - 'route_leg' => 'integer' + 'visible' => 'boolean', ]; public static $rules = [ diff --git a/app/Models/Pirep.php b/app/Models/Pirep.php index b9c51aef..83663e7c 100644 --- a/app/Models/Pirep.php +++ b/app/Models/Pirep.php @@ -4,6 +4,7 @@ namespace App\Models; use App\Interfaces\Model; use App\Models\Enums\AcarsType; +use App\Models\Enums\PirepFieldSource; use App\Models\Enums\PirepState; use App\Models\Traits\HashIdTrait; use App\Support\Units\Distance; @@ -128,7 +129,7 @@ class Pirep extends Model * If a PIREP is in these states, then it can't be changed. */ public static $read_only_states = [ - PirepState::PENDING, + //PirepState::PENDING, PirepState::ACCEPTED, PirepState::REJECTED, PirepState::CANCELLED, @@ -301,6 +302,32 @@ class Pirep extends Model return round(($this->distance['nmi'] / $upper_bound) * 100, 0); } + /** + * Get the pirep_fields and then the pirep_field_values and + * merge them together. If a field value doesn't exist then add in a fake one + */ + public function getFieldsAttribute() + { + $custom_fields = PirepField::all(); + $field_values = PirepFieldValue::where('pirep_id', $this->id)->get(); + + # Merge the field values into $fields + foreach($custom_fields as $field) { + $has_value = $field_values->firstWhere('slug', $field->slug); + if(!$has_value) { + $field_values->push(new PirepFieldValue([ + 'pirep_id' => $this->id, + 'name' => $field->name, + 'slug' => $field->slug, + 'value' => '', + 'source' => PirepFieldSource::MANUAL + ])); + } + } + + return $field_values->sortBy('source'); + } + /** * Look up the flight, based on the PIREP flight info * @return Flight|null @@ -454,9 +481,9 @@ class Pirep extends Model return $this->hasMany(PirepFare::class, 'pirep_id'); } - public function fields() + public function field_values() { - return $this->hasMany(PirepFieldValues::class, 'pirep_id'); + return $this->hasMany(PirepFieldValue::class, 'pirep_id'); } public function pilot() diff --git a/app/Models/PirepFieldValues.php b/app/Models/PirepFieldValue.php similarity index 63% rename from app/Models/PirepFieldValues.php rename to app/Models/PirepFieldValue.php index 584944d8..02552058 100644 --- a/app/Models/PirepFieldValues.php +++ b/app/Models/PirepFieldValue.php @@ -3,12 +3,13 @@ namespace App\Models; use App\Interfaces\Model; +use App\Models\Enums\PirepFieldSource; /** - * Class PirepFieldValues + * Class PirepFieldValue * @package App\Models */ -class PirepFieldValues extends Model +class PirepFieldValue extends Model { public $table = 'pirep_field_values'; @@ -24,6 +25,19 @@ class PirepFieldValues extends Model 'name' => 'required', ]; + protected $casts = [ + 'source' => 'integer', + ]; + + /** + * If it was filled in from ACARS, then it's read only + * @return bool + */ + public function getReadOnlyAttribute() + { + return $this->source === PirepFieldSource::ACARS; + } + /** * @param $name */ diff --git a/app/Models/Subfleet.php b/app/Models/Subfleet.php index a371a41a..3f0b280f 100644 --- a/app/Models/Subfleet.php +++ b/app/Models/Subfleet.php @@ -67,9 +67,6 @@ class Subfleet extends Model * Relationships */ - /** - * @return $this - */ public function aircraft() { return $this->hasMany(Aircraft::class, 'subfleet_id') diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index ce371553..7bbe4a22 100755 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -16,7 +16,7 @@ use App\Models\Observers\Sluggable; use App\Models\Observers\SettingObserver; use App\Models\Observers\SubfleetObserver; use App\Models\PirepField; -use App\Models\PirepFieldValues; +use App\Models\PirepFieldValue; use App\Models\Setting; use App\Models\Subfleet; use App\Repositories\SettingRepository; @@ -49,7 +49,7 @@ class AppServiceProvider extends ServiceProvider FlightFieldValue::observe(Sluggable::class); PirepField::observe(Sluggable::class); - PirepFieldValues::observe(Sluggable::class); + PirepFieldValue::observe(Sluggable::class); Setting::observe(SettingObserver::class); Subfleet::observe(SubfleetObserver::class); diff --git a/app/Repositories/FlightRepository.php b/app/Repositories/FlightRepository.php index 350772c5..c9762514 100644 --- a/app/Repositories/FlightRepository.php +++ b/app/Repositories/FlightRepository.php @@ -71,7 +71,8 @@ class FlightRepository extends Repository implements CacheableInterface $where = []; if ($only_active === true) { - $where['active'] = $only_active; + $where['active'] = $only_active; + $where['visible'] = $only_active; } if ($request->filled('flight_id')) { diff --git a/app/Services/ImportExport/AirportImporter.php b/app/Services/ImportExport/AirportImporter.php index d0ad25a4..3723ddab 100644 --- a/app/Services/ImportExport/AirportImporter.php +++ b/app/Services/ImportExport/AirportImporter.php @@ -18,15 +18,19 @@ class AirportImporter extends ImportExport * Should match the database fields, for the most part */ public static $columns = [ - 'icao' => 'required', - 'iata' => 'required', - 'name' => 'required', - 'location' => 'nullable', - 'country' => 'nullable', - 'timezone' => 'nullable', - 'hub' => 'nullable|boolean', - 'lat' => 'required|numeric', - 'lon' => 'required|numeric', + 'icao' => 'required', + 'iata' => 'required', + 'name' => 'required', + 'location' => 'nullable', + 'country' => 'nullable', + 'timezone' => 'nullable', + 'hub' => 'nullable|boolean', + 'lat' => 'required|numeric', + 'lon' => 'required|numeric', + 'ground_handling_cost' => 'nullable|float', + 'fuel_100ll_cost' => 'nullable|float', + 'fuel_jeta_cost' => 'nullable|float', + 'fuel_mogas_cost' => 'nullable|float', ]; /** @@ -41,12 +45,12 @@ class AirportImporter extends ImportExport $row['hub'] = get_truth_state($row['hub']); $airport = Airport::firstOrNew([ - 'id' => $row['icao'] + 'id' => $row['icao'] ], $row); try { $airport->save(); - } catch(\Exception $e) { + } catch (\Exception $e) { $this->errorLog('Error in row '.$index.': '.$e->getMessage()); return false; } diff --git a/app/Services/PirepService.php b/app/Services/PirepService.php index 403afa0d..cbe2780e 100644 --- a/app/Services/PirepService.php +++ b/app/Services/PirepService.php @@ -17,7 +17,7 @@ use App\Models\Enums\PirepStatus; use App\Models\Enums\UserState; use App\Models\Navdata; use App\Models\Pirep; -use App\Models\PirepFieldValues; +use App\Models\PirepFieldValue; use App\Models\User; use App\Repositories\AcarsRepository; use App\Repositories\FlightRepository; @@ -96,6 +96,8 @@ class PirepService extends Service /** * Save the route into the ACARS table with AcarsType::ROUTE + * This attempts to create the route from the navdata and the route + * entered into the PIREP's route field * @param Pirep $pirep * @return Pirep * @throws \Exception @@ -115,7 +117,6 @@ class PirepService extends Service if (!filled($pirep->dpt_airport)) { Log::error('saveRoute: dpt_airport not found: '.$pirep->dpt_airport_id); - return $pirep; } @@ -151,7 +152,7 @@ class PirepService extends Service * Create a new PIREP with some given fields * * @param Pirep $pirep - * @param array [PirepFieldValues] $field_values + * @param array PirepFieldValue[] $field_values * * @return Pirep */ @@ -243,7 +244,7 @@ class PirepService extends Service public function updateCustomFields($pirep_id, array $field_values) { foreach ($field_values as $fv) { - PirepFieldValues::updateOrCreate( + PirepFieldValue::updateOrCreate( ['pirep_id' => $pirep_id, 'name' => $fv['name'] ], diff --git a/composer.json b/composer.json index 505b82f0..b5c882c2 100755 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "jmikola/geojson": "1.0.x", "laracasts/flash": "3.0.x", "arrilot/laravel-widgets": "3.9.x", - "nabeel/vacentral": "1.0.x", + "nabeel/vacentral": "^1.0", "league/iso3166": "2.1.x", "theiconic/php-ga-measurement-protocol": "2.7.x", "joshbrw/laravel-module-installer": "0.1.x", diff --git a/composer.lock b/composer.lock index a055fbf9..c1c672fd 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "cdbd47e5570d8787f6b54d22950466b7", + "content-hash": "65230ca9de4b86cf542d098549c08f60", "packages": [ { "name": "akaunting/money", @@ -189,16 +189,16 @@ }, { "name": "cache/adapter-common", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-cache/adapter-common.git", - "reference": "f433e2496e1f351272e7985a5e908db86bc2db5c" + "reference": "6320bb5f5574cb88438059b59f8708da6b6f1d32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-cache/adapter-common/zipball/f433e2496e1f351272e7985a5e908db86bc2db5c", - "reference": "f433e2496e1f351272e7985a5e908db86bc2db5c", + "url": "https://api.github.com/repos/php-cache/adapter-common/zipball/6320bb5f5574cb88438059b59f8708da6b6f1d32", + "reference": "6320bb5f5574cb88438059b59f8708da6b6f1d32", "shasum": "" }, "require": { @@ -215,7 +215,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -223,7 +223,7 @@ "Cache\\Adapter\\Common\\": "" } }, - "notification-url": "http://packagist.org/downloads/", + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -246,7 +246,7 @@ "psr-6", "tag" ], - "time": "2017-07-16T17:13:36+00:00" + "time": "2018-07-08T13:04:33+00:00" }, { "name": "cache/array-adapter", @@ -1448,16 +1448,16 @@ }, { "name": "laravel/framework", - "version": "v5.6.26", + "version": "v5.6.27", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "7047df295e77cecb6a2f84736a732af66cc6789c" + "reference": "2fe661f2444410a576aa40054ad9b7fe0bb5cee5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/7047df295e77cecb6a2f84736a732af66cc6789c", - "reference": "7047df295e77cecb6a2f84736a732af66cc6789c", + "url": "https://api.github.com/repos/laravel/framework/zipball/2fe661f2444410a576aa40054ad9b7fe0bb5cee5", + "reference": "2fe661f2444410a576aa40054ad9b7fe0bb5cee5", "shasum": "" }, "require": { @@ -1583,7 +1583,7 @@ "framework", "laravel" ], - "time": "2018-06-20T14:21:11+00:00" + "time": "2018-07-10T13:47:01+00:00" }, { "name": "laravelcollective/html", @@ -2077,16 +2077,16 @@ }, { "name": "nabeel/vacentral", - "version": "v1.0.0", + "version": "v1.0.1", "source": { "type": "git", "url": "https://github.com/nabeelio/vacentral-library.git", - "reference": "35316106c8840c6ddacadcc0c80fdcc906482242" + "reference": "75dcd840e3d794b3c55c1f97d96f057fd84bf695" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nabeelio/vacentral-library/zipball/35316106c8840c6ddacadcc0c80fdcc906482242", - "reference": "35316106c8840c6ddacadcc0c80fdcc906482242", + "url": "https://api.github.com/repos/nabeelio/vacentral-library/zipball/75dcd840e3d794b3c55c1f97d96f057fd84bf695", + "reference": "75dcd840e3d794b3c55c1f97d96f057fd84bf695", "shasum": "" }, "require": { @@ -2103,11 +2103,11 @@ "VaCentral\\": "src/" } }, - "notification-url": "http://packagist.org/downloads/", + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "time": "2018-02-05T17:20:06+00:00" + "time": "2018-07-11T13:02:24+00:00" }, { "name": "nesbot/carbon", @@ -2215,16 +2215,16 @@ }, { "name": "nwidart/laravel-modules", - "version": "3.2.1", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/nWidart/laravel-modules.git", - "reference": "5250efef2505c47687ebe4c0368a4f0cd01c84ef" + "reference": "6e27f17ebf27c07bc6aeb83d5cc5a547cfa0c204" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/5250efef2505c47687ebe4c0368a4f0cd01c84ef", - "reference": "5250efef2505c47687ebe4c0368a4f0cd01c84ef", + "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/6e27f17ebf27c07bc6aeb83d5cc5a547cfa0c204", + "reference": "6e27f17ebf27c07bc6aeb83d5cc5a547cfa0c204", "shasum": "" }, "require": { @@ -2281,20 +2281,20 @@ "nwidart", "rad" ], - "time": "2018-04-16T17:35:14+00:00" + "time": "2018-06-21T17:40:05+00:00" }, { "name": "paragonie/random_compat", - "version": "v2.0.15", + "version": "v2.0.17", "source": { "type": "git", "url": "https://github.com/paragonie/random_compat.git", - "reference": "10bcb46e8f3d365170f6de9d05245aa066b81f09" + "reference": "29af24f25bab834fcbb38ad2a69fa93b867e070d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/10bcb46e8f3d365170f6de9d05245aa066b81f09", - "reference": "10bcb46e8f3d365170f6de9d05245aa066b81f09", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/29af24f25bab834fcbb38ad2a69fa93b867e070d", + "reference": "29af24f25bab834fcbb38ad2a69fa93b867e070d", "shasum": "" }, "require": { @@ -2330,7 +2330,7 @@ "pseudorandom", "random" ], - "time": "2018-06-08T15:26:40+00:00" + "time": "2018-07-04T16:31:37+00:00" }, { "name": "php-http/discovery", @@ -3267,16 +3267,16 @@ }, { "name": "swiftmailer/swiftmailer", - "version": "v6.0.2", + "version": "v6.1.1", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc" + "reference": "aa899fef280b1c1aec8d5d4ac069af7f80c89a23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/412333372fb6c8ffb65496a2bbd7321af75733fc", - "reference": "412333372fb6c8ffb65496a2bbd7321af75733fc", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/aa899fef280b1c1aec8d5d4ac069af7f80c89a23", + "reference": "aa899fef280b1c1aec8d5d4ac069af7f80c89a23", "shasum": "" }, "require": { @@ -3287,10 +3287,14 @@ "mockery/mockery": "~0.9.1", "symfony/phpunit-bridge": "~3.3@dev" }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses", + "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.0-dev" + "dev-master": "6.1-dev" } }, "autoload": { @@ -3298,7 +3302,7 @@ "lib/swift_required.php" ] }, - "notification-url": "http://packagist.org/downloads/", + "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -3312,26 +3316,26 @@ } ], "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "http://swiftmailer.symfony.com", + "homepage": "https://swiftmailer.symfony.com", "keywords": [ "email", "mail", "mailer" ], - "time": "2017-09-30T22:39:41+00:00" + "time": "2018-07-04T11:12:44+00:00" }, { "name": "symfony/console", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "2d5d973bf9933d46802b01010bd25c800c87c242" + "reference": "70591cda56b4b47c55776ac78e157c4bb6c8b43f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/2d5d973bf9933d46802b01010bd25c800c87c242", - "reference": "2d5d973bf9933d46802b01010bd25c800c87c242", + "url": "https://api.github.com/repos/symfony/console/zipball/70591cda56b4b47c55776ac78e157c4bb6c8b43f", + "reference": "70591cda56b4b47c55776ac78e157c4bb6c8b43f", "shasum": "" }, "require": { @@ -3386,11 +3390,11 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2018-05-30T07:26:09+00:00" + "time": "2018-05-31T10:17:53+00:00" }, { "name": "symfony/css-selector", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -3443,16 +3447,16 @@ }, { "name": "symfony/debug", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "449f8b00b28ab6e6912c3e6b920406143b27193b" + "reference": "dbe0fad88046a755dcf9379f2964c61a02f5ae3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/449f8b00b28ab6e6912c3e6b920406143b27193b", - "reference": "449f8b00b28ab6e6912c3e6b920406143b27193b", + "url": "https://api.github.com/repos/symfony/debug/zipball/dbe0fad88046a755dcf9379f2964c61a02f5ae3d", + "reference": "dbe0fad88046a755dcf9379f2964c61a02f5ae3d", "shasum": "" }, "require": { @@ -3495,11 +3499,11 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-05-16T14:33:22+00:00" + "time": "2018-06-08T09:39:36+00:00" }, { "name": "symfony/dom-crawler", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", @@ -3556,7 +3560,7 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -3619,16 +3623,16 @@ }, { "name": "symfony/finder", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "087e2ee0d74464a4c6baac4e90417db7477dc238" + "reference": "84714b8417d19e4ba02ea78a41a975b3efaafddb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/087e2ee0d74464a4c6baac4e90417db7477dc238", - "reference": "087e2ee0d74464a4c6baac4e90417db7477dc238", + "url": "https://api.github.com/repos/symfony/finder/zipball/84714b8417d19e4ba02ea78a41a975b3efaafddb", + "reference": "84714b8417d19e4ba02ea78a41a975b3efaafddb", "shasum": "" }, "require": { @@ -3664,20 +3668,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-05-16T14:33:22+00:00" + "time": "2018-06-19T21:38:16+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "a916c88390fb861ee21f12a92b107d51bb68af99" + "reference": "4f9c7cf962e635b0b26b14500ac046e07dbef7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a916c88390fb861ee21f12a92b107d51bb68af99", - "reference": "a916c88390fb861ee21f12a92b107d51bb68af99", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/4f9c7cf962e635b0b26b14500ac046e07dbef7f3", + "reference": "4f9c7cf962e635b0b26b14500ac046e07dbef7f3", "shasum": "" }, "require": { @@ -3718,20 +3722,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2018-05-25T14:55:38+00:00" + "time": "2018-06-19T21:38:16+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "b5ab9d4cdbfd369083744b6b5dfbf454e31e5f90" + "reference": "29c094a1c4f8209b7e033f612cbbd69029e38955" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b5ab9d4cdbfd369083744b6b5dfbf454e31e5f90", - "reference": "b5ab9d4cdbfd369083744b6b5dfbf454e31e5f90", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/29c094a1c4f8209b7e033f612cbbd69029e38955", + "reference": "29c094a1c4f8209b7e033f612cbbd69029e38955", "shasum": "" }, "require": { @@ -3739,13 +3743,13 @@ "psr/log": "~1.0", "symfony/debug": "~3.4|~4.0", "symfony/event-dispatcher": "~4.1", - "symfony/http-foundation": "~4.1", + "symfony/http-foundation": "^4.1.1", "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/config": "<3.4", "symfony/dependency-injection": "<4.1", - "symfony/var-dumper": "<4.1", + "symfony/var-dumper": "<4.1.1", "twig/twig": "<1.34|<2.4,>=2" }, "provide": { @@ -3766,7 +3770,7 @@ "symfony/stopwatch": "~3.4|~4.0", "symfony/templating": "~3.4|~4.0", "symfony/translation": "~3.4|~4.0", - "symfony/var-dumper": "~4.1" + "symfony/var-dumper": "^4.1.1" }, "suggest": { "symfony/browser-kit": "", @@ -3805,11 +3809,11 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2018-05-30T12:52:34+00:00" + "time": "2018-06-25T13:06:45+00:00" }, { "name": "symfony/inflector", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/inflector.git", @@ -4036,16 +4040,16 @@ }, { "name": "symfony/process", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "73445bd33b0d337c060eef9652b94df72b6b3434" + "reference": "1d1677391ecf00d1c5b9482d6050c0c27aa3ac3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/73445bd33b0d337c060eef9652b94df72b6b3434", - "reference": "73445bd33b0d337c060eef9652b94df72b6b3434", + "url": "https://api.github.com/repos/symfony/process/zipball/1d1677391ecf00d1c5b9482d6050c0c27aa3ac3a", + "reference": "1d1677391ecf00d1c5b9482d6050c0c27aa3ac3a", "shasum": "" }, "require": { @@ -4081,11 +4085,11 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2018-05-30T07:26:09+00:00" + "time": "2018-05-31T10:17:53+00:00" }, { "name": "symfony/property-access", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", @@ -4152,16 +4156,16 @@ }, { "name": "symfony/routing", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "180b51c66d10f09e562c9ebc395b39aacb2cf8a2" + "reference": "b38b9797327b26ea2e4146a40e6e2dc9820a6932" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/180b51c66d10f09e562c9ebc395b39aacb2cf8a2", - "reference": "180b51c66d10f09e562c9ebc395b39aacb2cf8a2", + "url": "https://api.github.com/repos/symfony/routing/zipball/b38b9797327b26ea2e4146a40e6e2dc9820a6932", + "reference": "b38b9797327b26ea2e4146a40e6e2dc9820a6932", "shasum": "" }, "require": { @@ -4174,7 +4178,6 @@ }, "require-dev": { "doctrine/annotations": "~1.0", - "doctrine/common": "~2.2", "psr/log": "~1.0", "symfony/config": "~3.4|~4.0", "symfony/dependency-injection": "~3.4|~4.0", @@ -4226,20 +4229,20 @@ "uri", "url" ], - "time": "2018-05-30T07:26:09+00:00" + "time": "2018-06-19T21:38:16+00:00" }, { "name": "symfony/serializer", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "db427d70438645789ffce6048d61b3992118a33a" + "reference": "2ddc6ec084eba809aec92bf723e007bc3a8345c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/db427d70438645789ffce6048d61b3992118a33a", - "reference": "db427d70438645789ffce6048d61b3992118a33a", + "url": "https://api.github.com/repos/symfony/serializer/zipball/2ddc6ec084eba809aec92bf723e007bc3a8345c0", + "reference": "2ddc6ec084eba809aec92bf723e007bc3a8345c0", "shasum": "" }, "require": { @@ -4306,20 +4309,20 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2018-05-30T07:26:09+00:00" + "time": "2018-06-22T08:59:39+00:00" }, { "name": "symfony/translation", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "16328f5b217cebc8dd4adfe4aeeaa8c377581f5a" + "reference": "b6d8164085ee0b6debcd1b7a131fd6f63bb04854" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/16328f5b217cebc8dd4adfe4aeeaa8c377581f5a", - "reference": "16328f5b217cebc8dd4adfe4aeeaa8c377581f5a", + "url": "https://api.github.com/repos/symfony/translation/zipball/b6d8164085ee0b6debcd1b7a131fd6f63bb04854", + "reference": "b6d8164085ee0b6debcd1b7a131fd6f63bb04854", "shasum": "" }, "require": { @@ -4375,20 +4378,20 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2018-05-30T07:26:09+00:00" + "time": "2018-06-22T08:59:39+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "bc88ad53e825ebacc7b190bbd360781fce381c64" + "reference": "b2eebaec085d1f2cafbad7644733d494a3bbbc9b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/bc88ad53e825ebacc7b190bbd360781fce381c64", - "reference": "bc88ad53e825ebacc7b190bbd360781fce381c64", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b2eebaec085d1f2cafbad7644733d494a3bbbc9b", + "reference": "b2eebaec085d1f2cafbad7644733d494a3bbbc9b", "shasum": "" }, "require": { @@ -4450,11 +4453,11 @@ "debug", "dump" ], - "time": "2018-04-29T07:56:09+00:00" + "time": "2018-06-23T12:23:56+00:00" }, { "name": "symfony/yaml", - "version": "v4.1.0", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", @@ -4763,28 +4766,28 @@ }, { "name": "vlucas/phpdotenv", - "version": "v2.4.0", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c" + "reference": "6ae3e2e6494bb5e58c2decadafc3de7f1453f70a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", - "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/6ae3e2e6494bb5e58c2decadafc3de7f1453f70a", + "reference": "6ae3e2e6494bb5e58c2decadafc3de7f1453f70a", "shasum": "" }, "require": { "php": ">=5.3.9" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.0" + "phpunit/phpunit": "^4.8.35 || ^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.5-dev" } }, "autoload": { @@ -4794,7 +4797,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause-Attribution" + "BSD-3-Clause" ], "authors": [ { @@ -4809,7 +4812,7 @@ "env", "environment" ], - "time": "2016-09-01T10:05:43+00:00" + "time": "2018-07-01T10:25:50+00:00" }, { "name": "waavi/sanitizer", @@ -5849,16 +5852,16 @@ }, { "name": "nette/di", - "version": "v2.4.12", + "version": "v2.4.13", "source": { "type": "git", "url": "https://github.com/nette/di.git", - "reference": "8e717aed2d182a26763be58c220eebaaa32917df" + "reference": "3f8f212b02d5c17feb97a7e0a39ab306f40c06ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/8e717aed2d182a26763be58c220eebaaa32917df", - "reference": "8e717aed2d182a26763be58c220eebaaa32917df", + "url": "https://api.github.com/repos/nette/di/zipball/3f8f212b02d5c17feb97a7e0a39ab306f40c06ca", + "reference": "3f8f212b02d5c17feb97a7e0a39ab306f40c06ca", "shasum": "" }, "require": { @@ -5914,31 +5917,31 @@ "nette", "static" ], - "time": "2018-04-26T09:18:42+00:00" + "time": "2018-06-11T08:46:01+00:00" }, { "name": "nette/finder", - "version": "v2.4.1", + "version": "v2.4.2", "source": { "type": "git", "url": "https://github.com/nette/finder.git", - "reference": "4d43a66d072c57d585bf08a3ef68d3587f7e9547" + "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/4d43a66d072c57d585bf08a3ef68d3587f7e9547", - "reference": "4d43a66d072c57d585bf08a3ef68d3587f7e9547", + "url": "https://api.github.com/repos/nette/finder/zipball/ee951a656cb8ac622e5dd33474a01fd2470505a0", + "reference": "ee951a656cb8ac622e5dd33474a01fd2470505a0", "shasum": "" }, "require": { - "nette/utils": "^2.4 || ~3.0.0", + "nette/utils": "~2.4", "php": ">=5.6.0" }, "conflict": { "nette/nette": "<2.2" }, "require-dev": { - "nette/tester": "^2.0", + "nette/tester": "~2.0", "tracy/tracy": "^2.3" }, "type": "library", @@ -5968,22 +5971,28 @@ "homepage": "https://nette.org/contributors" } ], - "description": "Nette Finder: Files Searching", + "description": "🔍 Nette Finder: find files and directories with an intuitive API.", "homepage": "https://nette.org", - "time": "2017-07-10T23:47:08+00:00" + "keywords": [ + "filesystem", + "glob", + "iterator", + "nette" + ], + "time": "2018-06-28T11:49:23+00:00" }, { "name": "nette/neon", - "version": "v2.4.2", + "version": "v2.4.3", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "9eacd50553b26b53a3977bfb2fea2166d4331622" + "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/9eacd50553b26b53a3977bfb2fea2166d4331622", - "reference": "9eacd50553b26b53a3977bfb2fea2166d4331622", + "url": "https://api.github.com/repos/nette/neon/zipball/5e72b1dd3e2d34f0863c5561139a19df6a1ef398", + "reference": "5e72b1dd3e2d34f0863c5561139a19df6a1ef398", "shasum": "" }, "require": { @@ -6022,9 +6031,16 @@ "homepage": "https://nette.org/contributors" } ], - "description": "Nette NEON: parser & generator for Nette Object Notation", + "description": "🍸 Nette NEON: encodes and decodes NEON file format.", "homepage": "http://ne-on.org", - "time": "2017-07-11T18:29:08+00:00" + "keywords": [ + "export", + "import", + "neon", + "nette", + "yaml" + ], + "time": "2018-03-21T12:12:21+00:00" }, { "name": "nette/php-generator", @@ -6090,16 +6106,16 @@ }, { "name": "nette/robot-loader", - "version": "v3.0.3", + "version": "v3.0.4", "source": { "type": "git", "url": "https://github.com/nette/robot-loader.git", - "reference": "92d4b40b49d5e2d9e37fc736bbcebe6da55fa44a" + "reference": "3cf88781a05e0bf4618ae605361afcbaa4d5b392" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/92d4b40b49d5e2d9e37fc736bbcebe6da55fa44a", - "reference": "92d4b40b49d5e2d9e37fc736bbcebe6da55fa44a", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/3cf88781a05e0bf4618ae605361afcbaa4d5b392", + "reference": "3cf88781a05e0bf4618ae605361afcbaa4d5b392", "shasum": "" }, "require": { @@ -6151,7 +6167,7 @@ "nette", "trait" ], - "time": "2017-09-26T13:42:21+00:00" + "time": "2018-06-22T09:34:04+00:00" }, { "name": "nette/utils", @@ -7023,16 +7039,16 @@ }, { "name": "phpunit/phpunit", - "version": "7.2.4", + "version": "7.2.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "00bc0b93f0ff4f557e9ea766557fde96da9a03dd" + "reference": "400a3836ee549ae6f665323ac3f21e27eac7155f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/00bc0b93f0ff4f557e9ea766557fde96da9a03dd", - "reference": "00bc0b93f0ff4f557e9ea766557fde96da9a03dd", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/400a3836ee549ae6f665323ac3f21e27eac7155f", + "reference": "400a3836ee549ae6f665323ac3f21e27eac7155f", "shasum": "" }, "require": { @@ -7048,7 +7064,7 @@ "php": "^7.1", "phpspec/prophecy": "^1.7", "phpunit/php-code-coverage": "^6.0.7", - "phpunit/php-file-iterator": "^2.0", + "phpunit/php-file-iterator": "^2.0.1", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^2.0", "sebastian/comparator": "^3.0", @@ -7103,7 +7119,7 @@ "testing", "xunit" ], - "time": "2018-06-05T03:40:05+00:00" + "time": "2018-06-21T13:13:39+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -7670,7 +7686,7 @@ }, { "name": "symfony/class-loader", - "version": "v3.4.11", + "version": "v3.4.12", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", diff --git a/public/assets/admin/css/admin.css b/public/assets/admin/css/admin.css index e7ce00bd..dba05404 100644 --- a/public/assets/admin/css/admin.css +++ b/public/assets/admin/css/admin.css @@ -3,6 +3,10 @@ * */ +.form-container { + font-weight: normal; +} + .select2-container { margin-top: 2px; } diff --git a/resources/lang/en/pireps.php b/resources/lang/en/pireps.php index dbc8e47c..2f537bdd 100644 --- a/resources/lang/en/pireps.php +++ b/resources/lang/en/pireps.php @@ -13,6 +13,7 @@ return [ 'pilotreport' => 'Pilot Report|Pilot Reports', 'arrived' => 'Arrived', 'source' => 'Source', + 'flightlog' => 'Flight Log', 'filedroute' => 'Filed Route', 'filedon' => 'Filed On', 'fare' => 'Fare|Fares', diff --git a/resources/lang/it/pireps.php b/resources/lang/it/pireps.php index 43a13ec6..dc4859a3 100644 --- a/resources/lang/it/pireps.php +++ b/resources/lang/it/pireps.php @@ -13,6 +13,7 @@ return [ 'fare' => 'Tariffa|Tariffe', 'class' => 'Classe', 'count' => 'Numero', + 'flightlog' => 'Flight Log', 'flighttime' => 'Tempo di volo', 'flightlevel' => 'Livello di Volo', 'fieldsreadonly' => 'Quando un PIREP viene sottoporre, alcuni cami entrano in modalità di sola lettura.', diff --git a/resources/views/admin/airports/script.blade.php b/resources/views/admin/airports/script.blade.php index 7cfc1079..e181aea4 100644 --- a/resources/views/admin/airports/script.blade.php +++ b/resources/views/admin/airports/script.blade.php @@ -57,9 +57,11 @@ function phpvms_vacentral_airport_lookup(icao, callback) { url: '{{ url('/api/airports/') }}/' + icao + '/lookup', }; - axios(params).then(response => { - callback(response.data); - }); + axios(params) + .then(response => { + console.log(response); + callback(response.data); + }); } $(document).ready(function() { diff --git a/resources/views/admin/pireps/field_values.blade.php b/resources/views/admin/pireps/field_values.blade.php index 17cdab55..06144b54 100644 --- a/resources/views/admin/pireps/field_values.blade.php +++ b/resources/views/admin/pireps/field_values.blade.php @@ -15,9 +15,13 @@
- {{ Form::text($field->slug, null, [ - 'class' => 'form-control' - ]) }} + @if(!$field->read_only) + {{ Form::text($field->slug, $field->value, [ + 'class' => 'form-control' + ]) }} + @else +

{{ $field->value }}

+ @endif

{{ $errors->first($field->slug) }}

diff --git a/resources/views/admin/pireps/fields.blade.php b/resources/views/admin/pireps/fields.blade.php index dd1b67ca..2e733648 100644 --- a/resources/views/admin/pireps/fields.blade.php +++ b/resources/views/admin/pireps/fields.blade.php @@ -108,7 +108,8 @@
{{ Form::label('dpt_airport_id', 'Departure Airport:') }} @if($pirep->read_only) -

{{ $pirep->dpt_airport->id }} - {{ $pirep->dpt_airport->name }}

+

{{ $pirep->dpt_airport_id }}@if($pirep->dpt_airport->name) - {{ $pirep->dpt_airport->name }}@endif +

{{ Form::hidden('dpt_airport_id') }} @else {{ Form::select('dpt_airport_id', $airports_list, null, [ @@ -121,7 +122,8 @@
{{ Form::label('arr_airport_id', 'Arrival Airport:') }} @if($pirep->read_only) -

{{ $pirep->arr_airport->id }} - {{ $pirep->arr_airport->name }}

+

{{ $pirep->arr_airport->id }}@if($pirep->arr_airport->name) - {{ $pirep->arr_airport->name }}@endif +

{{ Form::hidden('arr_airport_id') }} @else {{ Form::select('arr_airport_id', $airports_list, null, ['class' => 'form-control select2']) }} diff --git a/resources/views/admin/pireps/pirep_card.blade.php b/resources/views/admin/pireps/pirep_card.blade.php index e0c9707c..9b587824 100644 --- a/resources/views/admin/pireps/pirep_card.blade.php +++ b/resources/views/admin/pireps/pirep_card.blade.php @@ -28,9 +28,9 @@
DEP  - {{ $pirep->dpt_airport->icao }}  + {{ $pirep->dpt_airport_id }}  ARR  - {{ $pirep->arr_airport->icao }}  + {{ $pirep->arr_airport_id }} 
diff --git a/resources/views/layouts/default/pireps/custom_fields.blade.php b/resources/views/layouts/default/pireps/custom_fields.blade.php new file mode 100644 index 00000000..32a97313 --- /dev/null +++ b/resources/views/layouts/default/pireps/custom_fields.blade.php @@ -0,0 +1,21 @@ + + + {{ $field->name }} + @if($field->required === true) + * + @endif + + +
+ @if(!$field->read_only) + {{ Form::text($field->slug, $field->value, [ + 'class' => 'form-control', + 'readonly' => (!empty($pirep) && $pirep->read_only), + ]) }} + @else + {{ $field->value }} + @endif +
+

{{ $errors->first($field->slug) }}

+ + diff --git a/resources/views/layouts/default/pireps/fares.blade.php b/resources/views/layouts/default/pireps/fares.blade.php index 5ee31199..a6c05575 100644 --- a/resources/views/layouts/default/pireps/fares.blade.php +++ b/resources/views/layouts/default/pireps/fares.blade.php @@ -4,7 +4,7 @@  {{ trans_choice('pireps.fare', 2) }}
- @foreach($aircraft->subfleet->fares as $fare) + @foreach($pirep->aircraft->subfleet->fares as $fare)
{{Form::label('fare_'.$fare->id, $fare->name.' ('.$fare->code.')')}} diff --git a/resources/views/layouts/default/pireps/fields.blade.php b/resources/views/layouts/default/pireps/fields.blade.php index 86a04376..652a5227 100644 --- a/resources/views/layouts/default/pireps/fields.blade.php +++ b/resources/views/layouts/default/pireps/fields.blade.php @@ -276,36 +276,16 @@ flight reports that have been filed. You've been warned!  {{ trans_choice('common.field', 2) }}
- {{-- Write out the custom fields, and label if they're required --}} - @foreach($pirep_fields as $field) - - - {{ $field->name }} - @if($field->required === true) - * - @endif - - -
- {{ Form::text($field->slug, null, [ - 'class' => 'form-control', - 'readonly' => (!empty($pirep) && $pirep->read_only), - ]) }} -
-

{{ $errors->first($field->slug) }}

- - - @endforeach + @each('pireps.custom_fields', $pirep->fields, 'field')
@include('pireps.fares')
-
diff --git a/resources/views/layouts/default/pireps/pirep_card.blade.php b/resources/views/layouts/default/pireps/pirep_card.blade.php index 943a94cf..750a62e4 100644 --- a/resources/views/layouts/default/pireps/pirep_card.blade.php +++ b/resources/views/layouts/default/pireps/pirep_card.blade.php @@ -3,9 +3,7 @@

- @lang('common.edit') }} + @lang('common.edit')

diff --git a/resources/views/layouts/default/pireps/table.blade.php b/resources/views/layouts/default/pireps/table.blade.php index 2762c3ca..912dde44 100644 --- a/resources/views/layouts/default/pireps/table.blade.php +++ b/resources/views/layouts/default/pireps/table.blade.php @@ -22,16 +22,12 @@ $pirep->id]) }}">{{ $pirep->airline->code }}{{ $pirep->ident }} - {{ $pirep->dpt_airport->name }} - ({{$pirep->dpt_airport->icao}}) + @if($pirep->dpt_airport){{ $pirep->dpt_airport->name }}@endif + ({{$pirep->dpt_airport_id}}) - {{ $pirep->arr_airport->name }} - ({{$pirep->arr_airport->icao}}) + @if($pirep->arr_airport){{ $pirep->arr_airport->name }}@endif + ({{$pirep->arr_airport_id}}) @if($pirep->aircraft) diff --git a/tests/AcarsTest.php b/tests/AcarsTest.php index 90e611bb..bf185d10 100644 --- a/tests/AcarsTest.php +++ b/tests/AcarsTest.php @@ -226,7 +226,7 @@ class AcarsTest extends TestCase $this->assertEquals($fare->capacity, $saved_fare['count']); # Check saved fields - $saved_fields = \App\Models\PirepFieldValues::where('pirep_id', $pirep['id'])->get(); + $saved_fields = \App\Models\PirepFieldValue::where('pirep_id', $pirep['id'])->get(); $this->assertCount(1, $saved_fields); $field = $saved_fields->first(); diff --git a/tests/data/airports.csv b/tests/data/airports.csv index 0a279223..72a31c72 100644 --- a/tests/data/airports.csv +++ b/tests/data/airports.csv @@ -1,4 +1,4 @@ -icao,iata,name,location,country,timezone,hub,lat,lon -KAUS,AUS,Austin-Bergstrom,"Austin, Texas, USA", United States,America/Chicago,1,30.1945,-97.6699 -KSFO,SFO,San Francisco,"San Francisco, California, USA", United States,America/California,"1",30.1945,-97.6699 -KJFK,JFK,Kennedy,"Queens, New York, USA", United States,America/New_York,0,30.1945,abcd +icao,iata,name,location,country,timezone,hub,lat,lon,ground_handling_cost,fuel_100ll_cost,fuel_jeta_cost,fuel_mogas_cost +KAUS,AUS,Austin-Bergstrom,"Austin, Texas, USA", United States,America/Chicago,1,30.1945,-97.6699,,,, +KSFO,SFO,San Francisco,"San Francisco, California, USA", United States,America/California,"1",30.1945,-97.6699,,,, +KJFK,JFK,Kennedy,"Queens, New York, USA", United States,America/New_York,0,30.1945,abcd,,,,