diff --git a/app/Database/migrations/2017_12_20_005147_create_acars_tables.php b/app/Database/migrations/2017_12_20_005147_create_acars_tables.php index ee7a087b..14be0fd3 100644 --- a/app/Database/migrations/2017_12_20_005147_create_acars_tables.php +++ b/app/Database/migrations/2017_12_20_005147_create_acars_tables.php @@ -29,6 +29,7 @@ class CreateAcarsTables extends Migration $table->unsignedInteger('gs')->nullable(); $table->unsignedInteger('transponder')->nullable(); $table->string('autopilot')->nullable(); + $table->decimal('fuel')->nullable(); $table->decimal('fuel_flow')->nullable(); $table->string('sim_time')->nullable(); diff --git a/app/Database/seeds/in_progress.yml b/app/Database/seeds/in_progress.yml new file mode 100644 index 00000000..44490d83 --- /dev/null +++ b/app/Database/seeds/in_progress.yml @@ -0,0 +1,1075 @@ +acars: + - + id: aOYyrOopomBd + pirep_id: dNk9qNnojYKe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934786422889' + lon: '-76.778003584686' + heading: '292' + altitude: '8.1515683516007' + vs: '0' + gs: '0' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-01 23:49:04' + updated_at: '2018-05-01 23:49:04' + - + id: bW67DZA551Ja + pirep_id: dNk9qNnojYKe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934786432775' + lon: '-76.77800361008' + heading: '292' + altitude: '8.1583404581437' + vs: '0' + gs: '0.0074230431465574' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:28:36' + updated_at: '2018-05-02 00:28:36' + - + id: erkRwJWQnr4a + pirep_id: dNk9qNnojYKe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934786689673' + lon: '-76.77800427491' + heading: '292' + altitude: '8.1583200798013' + vs: '0' + gs: '0.0063170024918172' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:28:58' + updated_at: '2018-05-02 00:28:58' + - + id: bmZQoAzRGYAd + pirep_id: dNk9qNnojYKe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934786863364' + lon: '-76.778004724083' + heading: '292' + altitude: '8.1583258454302' + vs: '0' + gs: '0.0062211738290854' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:29:13' + updated_at: '2018-05-02 00:29:13' + - + id: mbk8EolwQOEd + pirep_id: dNk9qNnojYKe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934787031837' + lon: '-76.778005160205' + heading: '292' + altitude: '8.1583950316794' + vs: '0' + gs: '0.0074284254152491' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:29:28' + updated_at: '2018-05-02 00:29:28' + - + id: bYEvG2JvOJAb + pirep_id: dNk9qNnojYKe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934787200997' + lon: '-76.778005597894' + heading: '292' + altitude: '8.1583980328179' + vs: '0' + gs: '0.0056652719315407' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:29:43' + updated_at: '2018-05-02 00:29:43' + - + id: ejRqlxwJ5Ave + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934787330613' + lon: '-76.778005933186' + heading: '292' + altitude: '8.1584579148505' + vs: '0' + gs: '0' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:31:21' + updated_at: '2018-05-02 00:31:21' + - + id: bkRZmyxPQwva + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934787413408' + lon: '-76.778006147368' + heading: '292' + altitude: '8.1587934295896' + vs: '0' + gs: '0.0057051356580496' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:32:10' + updated_at: '2018-05-02 00:32:10' + - + id: lejZDnk5qMWe + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934788873785' + lon: '-76.778009925791' + heading: '292' + altitude: '8.1591462785382' + vs: '0' + gs: '0.0087238823686628' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:35:15' + updated_at: '2018-05-02 00:35:15' + - + id: aM8QpMPDAMPe + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934842509128' + lon: '-76.778532656292' + heading: '223' + altitude: '8.1607914299049' + vs: '0' + gs: '6.4202715128239' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:35:30' + updated_at: '2018-05-02 00:35:30' + - + id: aQW0wQl1jz7d + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934617196721' + lon: '-76.778605526212' + heading: '194' + altitude: '8.1632128918151' + vs: '0' + gs: '0.78235724264669' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:35:45' + updated_at: '2018-05-02 00:35:45' + - + id: eVOPBYqAPWMa + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934300718688' + lon: '-76.778703210335' + heading: '176' + altitude: '8.1666375744461' + vs: '0' + gs: '6.8945587994399' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:36:00' + updated_at: '2018-05-02 00:36:00' + - + id: epYQ0EpZyp1a + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934118452794' + lon: '-76.77856797319' + heading: '124' + altitude: '8.166254969636' + vs: '0' + gs: '0.0063371483834717' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:36:15' + updated_at: '2018-05-02 00:36:15' + - + id: b2kv53PWlqKd + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934118203036' + lon: '-76.778567591848' + heading: '124' + altitude: '8.1663702576785' + vs: '0' + gs: '0.0070555182089322' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:36:30' + updated_at: '2018-05-02 00:36:30' + - + id: aM8QpMPEB15e + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934117958358' + lon: '-76.77856721815' + heading: '124' + altitude: '8.1663703232199' + vs: '0' + gs: '0.0064996252497234' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:36:45' + updated_at: '2018-05-02 00:36:45' + - + id: eZ6VJ3xj8vge + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934117498661' + lon: '-76.778566516289' + heading: '124' + altitude: '8.1664622222087' + vs: '0' + gs: '0' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 00:40:16' + updated_at: '2018-05-02 00:40:16' + - + id: bo2QqDLl2lLa + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.933884143334' + lon: '-76.778210172233' + heading: '124' + altitude: '8.1707802663933' + vs: '0' + gs: '14.419195209695' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:22:25' + updated_at: '2018-05-02 01:22:25' + - + id: aM8QpM4qV2Be + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.933705349611' + lon: '-76.777936938059' + heading: '124' + altitude: '8.170089899507' + vs: '0' + gs: '15.392330039049' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:22:55' + updated_at: '2018-05-02 01:22:55' + - + id: dR6oxR9qjoOd + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.933130691906' + lon: '-76.777152737985' + heading: '158' + altitude: '8.1683570286331' + vs: '0' + gs: '10.450467475023' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:23:10' + updated_at: '2018-05-02 01:23:10' + - + id: erkRwJODRvEa + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.932580370289' + lon: '-76.777450200122' + heading: '221' + altitude: '8.1695896791822' + vs: '0' + gs: '12.932334300694' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:23:25' + updated_at: '2018-05-02 01:23:25' + - + id: b2kv53VMy7Ad + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.932012550651' + lon: '-76.778009113329' + heading: '296' + altitude: '8.1683852467213' + vs: '0' + gs: '10.502719192825' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:23:41' + updated_at: '2018-05-02 01:23:41' + - + id: eXDoE14JxAve + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.932052237309' + lon: '-76.778111495187' + heading: '290' + altitude: '8.1719753739837' + vs: '0' + gs: '12.643743277153' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:23:42' + updated_at: '2018-05-02 01:23:42' + - + id: b68R5gZ5YyOe + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.932664026837' + lon: '-76.779705339967' + heading: '293' + altitude: '8.2203963962548' + vs: '0' + gs: '64.870244840054' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:23:52' + updated_at: '2018-05-02 01:23:52' + - + id: bqxYvGNN5N0a + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.934300220408' + lon: '-76.783954914814' + heading: '293' + altitude: '8.3302468103811' + vs: '0' + gs: '122.78529244208' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:24:02' + updated_at: '2018-05-02 01:24:02' + - + id: en5rpBKw514d + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.935736496556' + lon: '-76.78765616448' + heading: '293' + altitude: '49.554739665916' + vs: '21' + gs: '146.79677958636' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:24:08' + updated_at: '2018-05-02 01:24:08' + - + id: erkRwJA29l2a + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '17.976972983585' + lon: '-76.896548114872' + heading: '297' + altitude: '6228.684012199' + vs: '62' + gs: '281.03976876098' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:26:08' + updated_at: '2018-05-02 01:26:08' + - + id: dR6oxR3r5nwd + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.061360208405' + lon: '-77.056156629983' + heading: '301' + altitude: '12522.331716891' + vs: '25' + gs: '371.70833265547' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:28:08' + updated_at: '2018-05-02 01:28:08' + - + id: e1wr82J877Zb + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.17373613295' + lon: '-77.260347185993' + heading: '301' + altitude: '16802.15636323' + vs: '43' + gs: '421.37353688139' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:30:08' + updated_at: '2018-05-02 01:30:08' + - + id: bqxYvGyExN2a + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.193907285814' + lon: '-77.29810465405' + heading: '297' + altitude: '17395.953175647' + vs: '40' + gs: '425.98105291451' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:35:21' + updated_at: '2018-05-02 01:35:21' + - + id: aQW0wQDQk5Md + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.648921231143' + lon: '-78.014696613517' + heading: '323' + altitude: '37108.124381987' + vs: '22' + gs: '438.52028383384' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:37:20' + updated_at: '2018-05-02 01:37:20' + - + id: e9rQ5lk3p63a + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.796585259338' + lon: '-78.194734005052' + heading: '260' + altitude: '39718.178225504' + vs: '19' + gs: '432.41969107334' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:39:20' + updated_at: '2018-05-02 01:39:20' + - + id: aQW0wQP8vZqd + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.660552760063' + lon: '-78.407597067994' + heading: '242' + altitude: '40998.775690971' + vs: '-25' + gs: '449.51695639627' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:41:20' + updated_at: '2018-05-02 01:41:20' + - + id: bqxYvGKgp32a + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.592775999582' + lon: '-78.638711340118' + heading: '298' + altitude: '41060.297106821' + vs: '0' + gs: '427.14806185954' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:43:20' + updated_at: '2018-05-02 01:43:20' + - + id: bqxYvGg2r02a + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.718367591656' + lon: '-78.840980459275' + heading: '284' + altitude: '41065.55293844' + vs: '1' + gs: '424.89060056552' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:45:20' + updated_at: '2018-05-02 01:45:20' + - + id: e0RV61wPj53b + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.77448809677' + lon: '-79.082727467209' + heading: '283' + altitude: '41069.809333539' + vs: '0' + gs: '425.02780492483' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:47:21' + updated_at: '2018-05-02 01:47:21' + - + id: dwpmBOo3wWwe + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.813031600863' + lon: '-79.249543355636' + heading: '283' + altitude: '41072.545805172' + vs: '0' + gs: '425.04687332464' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:48:46' + updated_at: '2018-05-02 01:48:46' + - + id: ejRqlxXoZPle + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.840653974635' + lon: '-79.370042672541' + heading: '283' + altitude: '40396.200981621' + vs: '-16' + gs: '428.08364925851' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:49:16' + updated_at: '2018-05-02 01:49:16' + - + id: eVOPBYw4q9Xa + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.868358744495' + lon: '-79.491434926253' + heading: '283' + altitude: '39399.093383161' + vs: '-16' + gs: '427.57826037174' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:49:46' + updated_at: '2018-05-02 01:49:46' + - + id: aOYyrOmVPzEd + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.896191929474' + lon: '-79.613169477385' + heading: '284' + altitude: '36491.730092364' + vs: '-55' + gs: '429.74732238829' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:50:16' + updated_at: '2018-05-02 01:50:16' + - + id: dL98oLQgyzje + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.9242378342' + lon: '-79.736368411294' + heading: '284' + altitude: '32998.644142986' + vs: '-61' + gs: '434.90864533098' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:50:46' + updated_at: '2018-05-02 01:50:46' + - + id: e9rQ5lqD2o8a + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.952608029755' + lon: '-79.861339775352' + heading: '284' + altitude: '29069.168636089' + vs: '-68' + gs: '441.90475491564' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:51:16' + updated_at: '2018-05-02 01:51:16' + - + id: av2oANWY1vma + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '18.981670375928' + lon: '-79.987960713131' + heading: '283' + altitude: '24954.890708875' + vs: '-56' + gs: '447.81957529674' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:51:46' + updated_at: '2018-05-02 01:51:46' + - + id: 9aAN4mxlK9zb + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.01074931075' + lon: '-80.116947122245' + heading: '283' + altitude: '21483.90439337' + vs: '-57' + gs: '450.05461228268' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:52:16' + updated_at: '2018-05-02 01:52:16' + - + id: e1wr82gp8zGb + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.039021032617' + lon: '-80.242584645189' + heading: '283' + altitude: '18000.954967422' + vs: '-58' + gs: '431.5690825604' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:52:46' + updated_at: '2018-05-02 01:52:46' + - + id: dG65jDL2gK0b + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.066116186076' + lon: '-80.36338355333' + heading: '284' + altitude: '14630.153058153' + vs: '-55' + gs: '414.70845758094' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:53:16' + updated_at: '2018-05-02 01:53:16' + - + id: epYQ0ENmyvXa + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.091238961633' + lon: '-80.475901417309' + heading: '284' + altitude: '11927.379697397' + vs: '-17' + gs: '381.57664353055' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:53:46' + updated_at: '2018-05-02 01:53:46' + - + id: erkRwJPrVoEa + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.10261633392' + lon: '-80.527021151647' + heading: '284' + altitude: '11424.525210898' + vs: '-17' + gs: '337.58307680654' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:54:16' + updated_at: '2018-05-02 01:54:16' + - + id: e1wr82gZXqZb + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.112886513796' + lon: '-80.57297038027' + heading: '284' + altitude: '10919.983208888' + vs: '-16' + gs: '307.28164751381' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:54:46' + updated_at: '2018-05-02 01:54:46' + - + id: eER95AJ4XLga + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.122449020305' + lon: '-80.615560002642' + heading: '284' + altitude: '10418.227268525' + vs: '-16' + gs: '292.97011599774' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:55:16' + updated_at: '2018-05-02 01:55:16' + - + id: dPNZvP0O0Gza + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.131746364354' + lon: '-80.657133675868' + heading: '284' + altitude: '9921.6695218175' + vs: '-16' + gs: '293.10586428433' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:55:46' + updated_at: '2018-05-02 01:55:46' + - + id: aQW0wQYVm2Yd + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.141074988147' + lon: '-80.698952940579' + heading: '284' + altitude: '9423.0799985721' + vs: '-16' + gs: '291.77956791503' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:56:16' + updated_at: '2018-05-02 01:56:16' + - + id: eXDoE11x32We + pirep_id: b68R5gwVzpVe + type: '0' + nav_type: null + order: '0' + name: null + log: null + lat: '19.150291803457' + lon: '-80.740363792336' + heading: '284' + altitude: '8921.7506913567' + vs: '-16' + gs: '289.03760297791' + transponder: null + autopilot: null + fuel_flow: null + sim_time: null + created_at: '2018-05-02 01:56:46' + updated_at: '2018-05-02 01:56:46' +pireps: + - + id: b68R5gwVzpVe + user_id: '1' + airline_id: '1' + aircraft_id: '1' + flight_number: '13' + route_code: null + route_leg: null + flight_type: J + dpt_airport_id: MKJP + arr_airport_id: MWCR + level: '320' + distance: '249.63' + planned_distance: '273.09' + block_time: null + flight_time: '0' + planned_flight_time: '0' + zfw: null + block_fuel: '21500.25390625' + fuel_used: null + landing_rate: '0' + score: '0' + route: '' + notes: null + source: '1' + source_name: vmsacars + state: '0' + status: APR + submitted_at: null + block_off_time: '2018-04-28T12:55:40Z' + block_on_time: null + created_at: '2018-05-02 00:31:21' + updated_at: '2018-05-02 01:56:46' diff --git a/app/Http/Controllers/Api/PirepController.php b/app/Http/Controllers/Api/PirepController.php index 4be491b5..da8db702 100644 --- a/app/Http/Controllers/Api/PirepController.php +++ b/app/Http/Controllers/Api/PirepController.php @@ -240,7 +240,8 @@ class PirepController extends Controller */ public function update($id, UpdateRequest $request) { - Log::info('PIREP Update, user '.Auth::id(), $request->post()); + Log::info('PIREP Update, user '.Auth::id()); + Log::info($request->getContent()); $user = Auth::user(); $pirep = Pirep::find($id); diff --git a/app/Http/Requests/Acars/PositionRequest.php b/app/Http/Requests/Acars/PositionRequest.php index 21ca418d..da800e7c 100644 --- a/app/Http/Requests/Acars/PositionRequest.php +++ b/app/Http/Requests/Acars/PositionRequest.php @@ -26,12 +26,13 @@ class PositionRequest extends FormRequest 'positions.*.lat' => 'required|numeric', 'positions.*.lon' => 'required|numeric', 'positions.*.altitude' => 'nullable|numeric', - 'positions.*.heading' => 'nullable|integer|between:0,360', + 'positions.*.heading' => 'nullable|numeric|between:0,360', 'positions.*.vs' => 'nullable', 'positions.*.gs' => 'nullable', 'positions.*.transponder' => 'nullable', 'positions.*.autopilot' => 'nullable', - 'positions.*.fuel_flow' => 'nullable', + 'positions.*.fuel' => 'nullable|numeric', + 'positions.*.fuel_flow' => 'nullable|numeric', 'positions.*.log' => 'nullable', 'positions.*.created_at' => 'nullable|date', ]; diff --git a/app/Http/Requests/Acars/UpdateRequest.php b/app/Http/Requests/Acars/UpdateRequest.php index 2941c3d1..49b86c35 100644 --- a/app/Http/Requests/Acars/UpdateRequest.php +++ b/app/Http/Requests/Acars/UpdateRequest.php @@ -43,9 +43,9 @@ class UpdateRequest extends FormRequest 'notes' => 'nullable', 'source_name' => 'nullable|max:25', 'landing_rate' => 'nullable|numeric', - 'block_off_time' => 'nullable|date', - 'block_on_time' => 'nullable|date', - 'created_at' => 'nullable|date', + 'block_off_time' => 'nullable', + 'block_on_time' => 'nullable', + 'created_at' => 'nullable', 'status' => 'nullable', 'score' => 'nullable|integer', diff --git a/app/Models/Pirep.php b/app/Models/Pirep.php index 375e64b5..d12f66b4 100644 --- a/app/Models/Pirep.php +++ b/app/Models/Pirep.php @@ -33,6 +33,8 @@ use PhpUnitsOfMeasure\Exception\NonStringUnitName; * @property integer block_time * @property integer flight_time In minutes * @property integer planned_flight_time + * @property mixed planned_distance + * @property mixed distance * @property integer score * @property User user * @property Flight|null flight @@ -105,11 +107,20 @@ class Pirep extends Model 'score' => 'integer', 'source' => 'integer', 'state' => 'integer', - 'block_off_time' => 'datetime', - 'block_on_time' => 'datetime', - 'submitted_at' => 'datetime', + #'block_off_time' => 'datetime', + #'block_on_time' => 'datetime', + #'submitted_at' => 'datetime', ]; + /*protected $dates = [ + 'block_off_time', + 'block_on_time', + 'submitted_at', + 'created_at', + 'updated_at', + 'deleted_at' + ];*/ + public static $rules = [ 'airline_id' => 'required|exists:airlines,id', 'aircraft_id' => 'required|exists:aircraft,id', @@ -140,6 +151,24 @@ class Pirep extends Model return $flight_id; } + /** + * Return the block off time in carbon format + * @return Carbon + */ + public function getBlockOffTimeAttribute() + { + return new Carbon($this->attributes['block_off_time']); + } + + /** + * Return the block on time + * @return Carbon + */ + public function getBlockOnTimeAttribute() + { + return new Carbon($this->attributes['block_on_time']); + } + /** * Return a new Length unit so conversions can be made * @return int|Distance @@ -236,16 +265,16 @@ class Pirep extends Model */ public function getProgressPercentAttribute() { - $upper_bound = $this->flight_time; - if($this->planned_flight_time) { - $upper_bound = $this->planned_flight_time; + $upper_bound = $this->distance['nmi']; + if($this->planned_distance) { + $upper_bound = $this->planned_distance['nmi']; } if(!$upper_bound) { $upper_bound = 1; } - return round(($this->flight_time / $upper_bound) * 100, 0); + return round(($this->distance['nmi'] / $upper_bound) * 100, 0); } /** diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index fbe0ef29..a01140f8 100755 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -18,6 +18,7 @@ use App\Models\Setting; use App\Models\Subfleet; use App\Repositories\SettingRepository; use App\Services\ModuleService; +use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Schema; use Illuminate\Support\ServiceProvider; use View; @@ -27,6 +28,11 @@ class AppServiceProvider extends ServiceProvider public function boot(): void { Schema::defaultStringLength(191); + + Carbon::serializeUsing(function ($carbon) { + return $carbon->format('U'); + }); + $this->app->bind('setting', SettingRepository::class); View::share('moduleSvc', app(ModuleService::class)); @@ -39,6 +45,7 @@ class AppServiceProvider extends ServiceProvider PirepField::observe(PirepFieldObserver::class); Setting::observe(SettingObserver::class); Subfleet::observe(SubfleetObserver::class); + } /** diff --git a/public/assets/admin/css/vendor.css b/public/assets/admin/css/vendor.css index 535bbe1f..36bf5cd2 100644 --- a/public/assets/admin/css/vendor.css +++ b/public/assets/admin/css/vendor.css @@ -10838,246 +10838,6 @@ button.close { .select2-container--classic.select2-container--open .select2-dropdown { border-color: #5897fb; } -@charset "UTF-8"; - -/*! - * Pikaday - * Copyright © 2014 David Bushell | BSD & MIT license | http://dbushell.com/ - */ - -.pika-single { - z-index: 9999; - display: block; - position: relative; - color: #333; - background: #fff; - border: 1px solid #ccc; - border-bottom-color: #bbb; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} - -/* -clear child float (pika-lendar), using the famous micro clearfix hack -http://nicolasgallagher.com/micro-clearfix-hack/ -*/ -.pika-single:before, -.pika-single:after { - content: " "; - display: table; -} -.pika-single:after { clear: both } -.pika-single { *zoom: 1 } - -.pika-single.is-hidden { - display: none; -} - -.pika-single.is-bound { - position: absolute; - box-shadow: 0 5px 15px -5px rgba(0,0,0,.5); -} - -.pika-lendar { - float: left; - width: 240px; - margin: 8px; -} - -.pika-title { - position: relative; - text-align: center; -} - -.pika-label { - display: inline-block; - *display: inline; - position: relative; - z-index: 9999; - overflow: hidden; - margin: 0; - padding: 5px 3px; - font-size: 14px; - line-height: 20px; - font-weight: bold; - background-color: #fff; -} -.pika-title select { - cursor: pointer; - position: absolute; - z-index: 9998; - margin: 0; - left: 0; - top: 5px; - filter: alpha(opacity=0); - opacity: 0; -} - -.pika-prev, -.pika-next { - display: block; - cursor: pointer; - position: relative; - outline: none; - border: 0; - padding: 0; - width: 20px; - height: 30px; - /* hide text using text-indent trick, using width value (it's enough) */ - text-indent: 20px; - white-space: nowrap; - overflow: hidden; - background-color: transparent; - background-position: center center; - background-repeat: no-repeat; - background-size: 75% 75%; - opacity: .5; - *position: absolute; - *top: 0; -} - -.pika-prev:hover, -.pika-next:hover { - opacity: 1; -} - -.pika-prev, -.is-rtl .pika-next { - float: left; - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg=='); - *left: 0; -} - -.pika-next, -.is-rtl .pika-prev { - float: right; - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII='); - *right: 0; -} - -.pika-prev.is-disabled, -.pika-next.is-disabled { - cursor: default; - opacity: .2; -} - -.pika-select { - display: inline-block; - *display: inline; -} - -.pika-table { - width: 100%; - border-collapse: collapse; - border-spacing: 0; - border: 0; -} - -.pika-table th, -.pika-table td { - width: 14.285714285714286%; - padding: 0; -} - -.pika-table th { - color: #999; - font-size: 12px; - line-height: 25px; - font-weight: bold; - text-align: center; -} - -.pika-button { - cursor: pointer; - display: block; - box-sizing: border-box; - -moz-box-sizing: border-box; - outline: none; - border: 0; - margin: 0; - width: 100%; - padding: 5px; - color: #666; - font-size: 12px; - line-height: 15px; - text-align: right; - background: #f5f5f5; -} - -.pika-week { - font-size: 11px; - color: #999; -} - -.is-today .pika-button { - color: #33aaff; - font-weight: bold; -} - -.is-selected .pika-button, -.has-event .pika-button { - color: #fff; - font-weight: bold; - background: #33aaff; - box-shadow: inset 0 1px 3px #178fe5; - border-radius: 3px; -} - -.has-event .pika-button { - background: #005da9; - box-shadow: inset 0 1px 3px #0076c9; -} - -.is-disabled .pika-button, -.is-inrange .pika-button { - background: #D5E9F7; -} - -.is-startrange .pika-button { - color: #fff; - background: #6CB31D; - box-shadow: none; - border-radius: 3px; -} - -.is-endrange .pika-button { - color: #fff; - background: #33aaff; - box-shadow: none; - border-radius: 3px; -} - -.is-disabled .pika-button { - pointer-events: none; - cursor: default; - color: #999; - opacity: .3; -} - -.is-outside-current-month .pika-button { - color: #999; - opacity: .3; -} - -.is-selection-disabled { - pointer-events: none; - cursor: default; -} - -.pika-button:hover, -.pika-row.pick-whole-week:hover .pika-button { - color: #fff; - background: #ff8000; - box-shadow: none; - border-radius: 3px; -} - -/* styling for abbr */ -.pika-table abbr { - border-bottom: none; - cursor: help; -} - - /*! X-editable - v1.5.1 * In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery * http://github.com/vitalets/x-editable diff --git a/public/assets/admin/js/app.js b/public/assets/admin/js/app.js index 42bf609d..c6c8d461 100644 --- a/public/assets/admin/js/app.js +++ b/public/assets/admin/js/app.js @@ -366,7 +366,7 @@ eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpa /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* unused harmony export onFeaturePointClick */\n/* unused harmony export pointToLayer */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n\n\n/**\n * Show some popup text when a feature is clicked on\n * @param feature\n * @param layer\n */\nvar onFeaturePointClick = function onFeaturePointClick(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n};\n\n/**\n * Show each point as a marker\n * @param feature\n * @param latlng\n * @returns {*}\n */\nvar pointToLayer = function pointToLayer(feature, latlng) {\n return leaflet.circleMarker(latlng, {\n radius: 5,\n fillColor: __WEBPACK_IMPORTED_MODULE_2__config__[\"b\" /* CIRCLE_COLOR */],\n color: '#000',\n weight: 1,\n opacity: 1,\n fillOpacity: 0.8\n });\n};\n\n/**\n *\n * @param opts\n * @private\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n route_points: null,\n planned_route_line: null,\n actual_route_points: null,\n actual_route_line: null,\n render_elem: 'map',\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n console.log(opts);\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n var geodesicLayer = leaflet.geodesic([], {\n weight: 4,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n geodesicLayer.geoJson(opts.planned_route_line);\n\n try {\n map.fitBounds(geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n\n // Draw the route points after\n if (opts.route_points !== null) {\n var route_points = leaflet.geoJSON(opts.route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n route_points.addTo(map);\n }\n\n /**\n * draw the actual route\n */\n\n if (opts.actual_route_line !== null && opts.actual_route_line.features.length > 0) {\n var _geodesicLayer = leaflet.geodesic([], {\n weight: 3,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n _geodesicLayer.geoJson(opts.actual_route_line);\n\n try {\n map.fitBounds(_geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n }\n\n if (opts.actual_route_points !== null && opts.actual_route_points.features.length > 0) {\n var _route_points = leaflet.geoJSON(opts.actual_route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n _route_points.addTo(map);\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanM/YTc0NSJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9uRmVhdHVyZVBvaW50Q2xpY2siLCJmZWF0dXJlIiwibGF5ZXIiLCJwb3B1cF9odG1sIiwicHJvcGVydGllcyIsInBvcHVwIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG5nIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiZmlsbENvbG9yIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwiZmlsbE9wYWNpdHkiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwicm91dGVfcG9pbnRzIiwicGxhbm5lZF9yb3V0ZV9saW5lIiwiYWN0dWFsX3JvdXRlX3BvaW50cyIsImFjdHVhbF9yb3V0ZV9saW5lIiwicmVuZGVyX2VsZW0iLCJtZXRhcl93bXMiLCJ1cmwiLCJwYXJhbXMiLCJjb25zb2xlIiwibG9nIiwibWFwIiwiZHJhd19iYXNlX21hcCIsImFkZFdNU0xheWVyIiwiZ2VvZGVzaWNMYXllciIsImdlb2Rlc2ljIiwic3RlcHMiLCJ3cmFwIiwiYWRkVG8iLCJnZW9Kc29uIiwiZml0Qm91bmRzIiwiZ2V0Qm91bmRzIiwiZSIsImdlb0pTT04iLCJvbkVhY2hGZWF0dXJlIiwic3R5bGUiLCJmZWF0dXJlcyIsImxlbmd0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTtBQUNBOztBQUVBOztBQU1BOzs7OztBQUtPLElBQU1DLHNCQUFzQixTQUF0QkEsbUJBQXNCLENBQUNDLE9BQUQsRUFBVUMsS0FBVixFQUFvQjtBQUNyRCxNQUFJQyxhQUFhLEVBQWpCO0FBQ0EsTUFBSUYsUUFBUUcsVUFBUixJQUFzQkgsUUFBUUcsVUFBUixDQUFtQkMsS0FBN0MsRUFBb0Q7QUFDbERGLGtCQUFjRixRQUFRRyxVQUFSLENBQW1CQyxLQUFqQztBQUNE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QWtDQyxNQUFsQyxHQUEyQyxDQUFwRixFQUF1RjtBQUNyRixRQUFJMUIsZ0JBQWVyQixRQUFRMkMsT0FBUixDQUFnQnpCLEtBQUtLLG1CQUFyQixFQUEwQztBQUMzRHFCLHFCQUFlMUMsbUJBRDRDO0FBRTNETyxvQkFBY0EsWUFGNkM7QUFHM0RvQyxhQUFPO0FBQ0wsaUJBQVMsbUVBREo7QUFFTCxrQkFBVSxDQUZMO0FBR0wsbUJBQVc7QUFITjtBQUhvRCxLQUExQyxDQUFuQjs7QUFVQXhCLGtCQUFhaUIsS0FBYixDQUFtQlAsR0FBbkI7QUFDRDtBQUNGLENBeEZEIiwiZmlsZSI6Ii4vcmVzb3VyY2VzL2pzL21hcHMvcm91dGVfbWFwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5jb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xuXG5pbXBvcnQgZHJhd19iYXNlX21hcCBmcm9tICcuL2Jhc2VfbWFwJ1xuaW1wb3J0IHsgYWRkV01TTGF5ZXIgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5pbXBvcnQge1xuICBBQ1RVQUxfUk9VVEVfQ09MT1IsXG4gIFBMQU5fUk9VVEVfQ09MT1IsXG4gIENJUkNMRV9DT0xPUlxufSBmcm9tICcuL2NvbmZpZydcblxuLyoqXG4gKiBTaG93IHNvbWUgcG9wdXAgdGV4dCB3aGVuIGEgZmVhdHVyZSBpcyBjbGlja2VkIG9uXG4gKiBAcGFyYW0gZmVhdHVyZVxuICogQHBhcmFtIGxheWVyXG4gKi9cbmV4cG9ydCBjb25zdCBvbkZlYXR1cmVQb2ludENsaWNrID0gKGZlYXR1cmUsIGxheWVyKSA9PiB7XG4gIGxldCBwb3B1cF9odG1sID0gJyc7XG4gIGlmIChmZWF0dXJlLnByb3BlcnRpZXMgJiYgZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwKSB7XG4gICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcbiAgfVxuXG4gIGxheWVyLmJpbmRQb3B1cChwb3B1cF9odG1sKVxufTtcblxuLyoqXG4gKiBTaG93IGVhY2ggcG9pbnQgYXMgYSBtYXJrZXJcbiAqIEBwYXJhbSBmZWF0dXJlXG4gKiBAcGFyYW0gbGF0bG5nXG4gKiBAcmV0dXJucyB7Kn1cbiAqL1xuZXhwb3J0IGNvbnN0IHBvaW50VG9MYXllciA9IChmZWF0dXJlLCBsYXRsbmcpID0+IHtcbiAgcmV0dXJuIGxlYWZsZXQuY2lyY2xlTWFya2VyKGxhdGxuZywge1xuICAgIHJhZGl1czogNSxcbiAgICBmaWxsQ29sb3I6IENJUkNMRV9DT0xPUixcbiAgICBjb2xvcjogJyMwMDAnLFxuICAgIHdlaWdodDogMSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIGZpbGxPcGFjaXR5OiAwLjhcbiAgfSlcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIG9wdHNcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IChvcHRzKSA9PiB7XG5cbiAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHJvdXRlX3BvaW50czogbnVsbCxcbiAgICBwbGFubmVkX3JvdXRlX2xpbmU6IG51bGwsXG4gICAgYWN0dWFsX3JvdXRlX3BvaW50czogbnVsbCxcbiAgICBhY3R1YWxfcm91dGVfbGluZTogbnVsbCxcbiAgICByZW5kZXJfZWxlbTogJ21hcCcsXG4gICAgbWV0YXJfd21zOiB7XG4gICAgICAgIHVybDogJycsXG4gICAgICAgIHBhcmFtczoge31cbiAgICB9LFxuICB9LCBvcHRzKTtcblxuICBjb25zb2xlLmxvZyhvcHRzKTtcblxuICBsZXQgbWFwID0gZHJhd19iYXNlX21hcChvcHRzKTtcblxuICBpZiAob3B0cy5tZXRhcl93bXMudXJsICE9PSAnJykge1xuICAgICAgYWRkV01TTGF5ZXIobWFwLCBvcHRzLm1ldGFyX3dtcyk7XG4gIH1cblxuICBsZXQgZ2VvZGVzaWNMYXllciA9IGxlYWZsZXQuZ2VvZGVzaWMoW10sIHtcbiAgICB3ZWlnaHQ6IDQsXG4gICAgb3BhY2l0eTogMC45LFxuICAgIGNvbG9yOiBQTEFOX1JPVVRFX0NPTE9SLFxuICAgIHN0ZXBzOiA1MCxcbiAgICB3cmFwOiBmYWxzZSxcbiAgfSkuYWRkVG8obWFwKTtcblxuICBnZW9kZXNpY0xheWVyLmdlb0pzb24ob3B0cy5wbGFubmVkX3JvdXRlX2xpbmUpO1xuXG4gIHRyeSB7XG4gICAgbWFwLmZpdEJvdW5kcyhnZW9kZXNpY0xheWVyLmdldEJvdW5kcygpKVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5sb2coZSlcbiAgfVxuXG4gIC8vIERyYXcgdGhlIHJvdXRlIHBvaW50cyBhZnRlclxuICBpZiAob3B0cy5yb3V0ZV9wb2ludHMgIT09IG51bGwpIHtcbiAgICBsZXQgcm91dGVfcG9pbnRzID0gbGVhZmxldC5nZW9KU09OKG9wdHMucm91dGVfcG9pbnRzLCB7XG4gICAgICBvbkVhY2hGZWF0dXJlOiBvbkZlYXR1cmVQb2ludENsaWNrLFxuICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXG4gICAgICBzdHlsZToge1xuICAgICAgICAnY29sb3InOiBQTEFOX1JPVVRFX0NPTE9SLFxuICAgICAgICAnd2VpZ2h0JzogMyxcbiAgICAgICAgJ29wYWNpdHknOiAwLjY1LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJvdXRlX3BvaW50cy5hZGRUbyhtYXApO1xuICB9XG5cbiAgLyoqXG4gICAqIGRyYXcgdGhlIGFjdHVhbCByb3V0ZVxuICAgKi9cblxuICBpZiAob3B0cy5hY3R1YWxfcm91dGVfbGluZSAhPT0gbnVsbCAmJiBvcHRzLmFjdHVhbF9yb3V0ZV9saW5lLmZlYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICBsZXQgZ2VvZGVzaWNMYXllciA9IGxlYWZsZXQuZ2VvZGVzaWMoW10sIHtcbiAgICAgIHdlaWdodDogMyxcbiAgICAgIG9wYWNpdHk6IDAuOSxcbiAgICAgIGNvbG9yOiBBQ1RVQUxfUk9VVEVfQ09MT1IsXG4gICAgICBzdGVwczogNTAsXG4gICAgICB3cmFwOiBmYWxzZSxcbiAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgZ2VvZGVzaWNMYXllci5nZW9Kc29uKG9wdHMuYWN0dWFsX3JvdXRlX2xpbmUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIG1hcC5maXRCb3VuZHMoZ2VvZGVzaWNMYXllci5nZXRCb3VuZHMoKSlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRzLmFjdHVhbF9yb3V0ZV9wb2ludHMgIT09IG51bGwgJiYgb3B0cy5hY3R1YWxfcm91dGVfcG9pbnRzLmZlYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICBsZXQgcm91dGVfcG9pbnRzID0gbGVhZmxldC5nZW9KU09OKG9wdHMuYWN0dWFsX3JvdXRlX3BvaW50cywge1xuICAgICAgb25FYWNoRmVhdHVyZTogb25GZWF0dXJlUG9pbnRDbGljayxcbiAgICAgIHBvaW50VG9MYXllcjogcG9pbnRUb0xheWVyLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgJ2NvbG9yJzogQUNUVUFMX1JPVVRFX0NPTE9SLFxuICAgICAgICAnd2VpZ2h0JzogMyxcbiAgICAgICAgJ29wYWNpdHknOiAwLjY1LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJvdXRlX3BvaW50cy5hZGRUbyhtYXApXG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/maps/route_map.js\n"); +eval("/* unused harmony export onFeaturePointClick */\n/* unused harmony export pointToLayer */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n\n\n/**\n * Show some popup text when a feature is clicked on\n * @param feature\n * @param layer\n */\nvar onFeaturePointClick = function onFeaturePointClick(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n};\n\n/**\n * Show each point as a marker\n * @param feature\n * @param latlng\n * @returns {*}\n */\nvar pointToLayer = function pointToLayer(feature, latlng) {\n return leaflet.circleMarker(latlng, {\n radius: 5,\n fillColor: __WEBPACK_IMPORTED_MODULE_2__config__[\"b\" /* CIRCLE_COLOR */],\n color: '#000',\n weight: 1,\n opacity: 1,\n fillOpacity: 0.8\n });\n};\n\n/**\n *\n * @param opts\n * @private\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n\n route_points: null,\n planned_route_line: null,\n actual_route_points: null,\n actual_route_line: null,\n render_elem: 'map',\n live_map: false,\n aircraft_icon: '/assets/img/acars/aircraft.png',\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n var aircraftIcon = leaflet.icon({\n iconUrl: opts.aircraft_icon,\n iconSize: [42, 42],\n iconAnchor: [21, 21]\n });\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var layerLiveFlight = void 0;\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n var geodesicLayer = leaflet.geodesic([], {\n weight: 4,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n geodesicLayer.geoJson(opts.planned_route_line);\n\n try {\n map.fitBounds(geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n\n // Draw the route points after\n if (opts.route_points !== null) {\n var route_points = leaflet.geoJSON(opts.route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n route_points.addTo(map);\n }\n\n /**\n * draw the actual route\n */\n\n if (opts.actual_route_line !== null && opts.actual_route_line.features.length > 0) {\n var _geodesicLayer = leaflet.geodesic([], {\n weight: 3,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n _geodesicLayer.geoJson(opts.actual_route_line);\n\n try {\n map.fitBounds(_geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n }\n\n if (opts.actual_route_points !== null && opts.actual_route_points.features.length > 0) {\n var _route_points = leaflet.geoJSON(opts.actual_route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n _route_points.addTo(map);\n }\n\n /**\n *\n */\n var liveFlight = function liveFlight() {\n var uri = opts.pirep_uri;\n var live_route = $.ajax({\n url: uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(live_route).done(function (routeJson) {\n layerLiveFlight = leaflet.geoJSON(routeJson, {\n pointToLayer: function pointToLayer(feature, latlon) {\n return leaflet.marker(latlon, {\n icon: aircraftIcon,\n rotationAngle: feature.properties.heading\n });\n }\n });\n\n layerLiveFlight.addTo(map);\n });\n };\n\n setInterval(liveFlight, 10000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanM/YTc0NSJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9uRmVhdHVyZVBvaW50Q2xpY2siLCJmZWF0dXJlIiwibGF5ZXIiLCJwb3B1cF9odG1sIiwicHJvcGVydGllcyIsInBvcHVwIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG5nIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiZmlsbENvbG9yIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwiZmlsbE9wYWNpdHkiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwicm91dGVfcG9pbnRzIiwicGxhbm5lZF9yb3V0ZV9saW5lIiwiYWN0dWFsX3JvdXRlX3BvaW50cyIsImFjdHVhbF9yb3V0ZV9saW5lIiwicmVuZGVyX2VsZW0iLCJsaXZlX21hcCIsImFpcmNyYWZ0X2ljb24iLCJtZXRhcl93bXMiLCJ1cmwiLCJwYXJhbXMiLCJhaXJjcmFmdEljb24iLCJpY29uIiwiaWNvblVybCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hcCIsImRyYXdfYmFzZV9tYXAiLCJsYXllckxpdmVGbGlnaHQiLCJhZGRXTVNMYXllciIsImdlb2Rlc2ljTGF5ZXIiLCJnZW9kZXNpYyIsInN0ZXBzIiwid3JhcCIsImFkZFRvIiwiZ2VvSnNvbiIsImZpdEJvdW5kcyIsImdldEJvdW5kcyIsImUiLCJjb25zb2xlIiwibG9nIiwiZ2VvSlNPTiIsIm9uRWFjaEZlYXR1cmUiLCJzdHlsZSIsImZlYXR1cmVzIiwibGVuZ3RoIiwibGl2ZUZsaWdodCIsInVyaSIsInBpcmVwX3VyaSIsImxpdmVfcm91dGUiLCIkIiwiYWpheCIsImRhdGFUeXBlIiwiZXJyb3IiLCJ3aGVuIiwiZG9uZSIsInJvdXRlSnNvbiIsImxhdGxvbiIsIm1hcmtlciIsInJvdGF0aW9uQW5nbGUiLCJoZWFkaW5nIiwic2V0SW50ZXJ2YWwiXSwibWFwcGluZ3Mi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QVUsVUFBRUksSUFBRixDQUFPTCxVQUFQLEVBQW1CTSxJQUFuQixDQUF3QixVQUFDQyxTQUFELEVBQWU7QUFDbkM1Qiw4QkFBa0J0QyxRQUFRbUQsT0FBUixDQUFnQmUsU0FBaEIsRUFBMkI7QUFDekN6RCw4QkFBYyxzQkFBVU4sT0FBVixFQUFtQmdFLE1BQW5CLEVBQTJCO0FBQ3JDLDJCQUFPbkUsUUFBUW9FLE1BQVIsQ0FBZUQsTUFBZixFQUF1QjtBQUMxQm5DLDhCQUFNRCxZQURvQjtBQUUxQnNDLHVDQUFlbEUsUUFBUUcsVUFBUixDQUFtQmdFO0FBRlIscUJBQXZCLENBQVA7QUFJSDtBQU53QyxhQUEzQixDQUFsQjs7QUFTQWhDLDRCQUFnQk0sS0FBaEIsQ0FBc0JSLEdBQXRCO0FBQ0gsU0FYRDtBQVlILEtBcEJEOztBQXNCQW1DLGdCQUFZZixVQUFaLEVBQXdCLEtBQXhCO0FBQ0gsQ0EzSEQiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xuXG5pbXBvcnQgZHJhd19iYXNlX21hcCBmcm9tICcuL2Jhc2VfbWFwJ1xuaW1wb3J0IHthZGRXTVNMYXllcn0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW1wb3J0IHtBQ1RVQUxfUk9VVEVfQ09MT1IsIENJUkNMRV9DT0xPUiwgUExBTl9ST1VURV9DT0xPUn0gZnJvbSAnLi9jb25maWcnXG5cbi8qKlxuICogU2hvdyBzb21lIHBvcHVwIHRleHQgd2hlbiBhIGZlYXR1cmUgaXMgY2xpY2tlZCBvblxuICogQHBhcmFtIGZlYXR1cmVcbiAqIEBwYXJhbSBsYXllclxuICovXG5leHBvcnQgY29uc3Qgb25GZWF0dXJlUG9pbnRDbGljayA9IChmZWF0dXJlLCBsYXllcikgPT4ge1xuICAgIGxldCBwb3B1cF9odG1sID0gJyc7XG4gICAgaWYgKGZlYXR1cmUucHJvcGVydGllcyAmJiBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXApIHtcbiAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcbiAgICB9XG5cbiAgICBsYXllci5iaW5kUG9wdXAocG9wdXBfaHRtbClcbn07XG5cbi8qKlxuICogU2hvdyBlYWNoIHBvaW50IGFzIGEgbWFya2VyXG4gKiBAcGFyYW0gZmVhdHVyZVxuICogQHBhcmFtIGxhdGxuZ1xuICogQHJldHVybnMgeyp9XG4gKi9cbmV4cG9ydCBjb25zdCBwb2ludFRvTGF5ZXIgPSAoZmVhdHVyZSwgbGF0bG5nKSA9PiB7XG4gICAgcmV0dXJuIGxlYWZsZXQuY2lyY2xlTWFya2VyKGxhdGxuZywge1xuICAgICAgICByYWRpdXM6IDUsXG4gICAgICAgIGZpbGxDb2xvcjogQ0lSQ0xFX0NPTE9SLFxuICAgICAgICBjb2xvcjogJyMwMDAnLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgIGZpbGxPcGFjaXR5OiAwLjhcbiAgICB9KVxufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gb3B0c1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgKG9wdHMpID0+IHtcblxuICAgIG9wdHMgPSBPYmplY3QuYXNzaWduKHtcblxuICAgICAgICByb3V0ZV9wb2ludHM6IG51bGwsXG4gICAgICAgIHBsYW5uZWRfcm91dGVfbGluZTogbnVsbCxcbiAgICAgICAgYWN0dWFsX3JvdXRlX3BvaW50czogbnVsbCxcbiAgICAgICAgYWN0dWFsX3JvdXRlX2xpbmU6IG51bGwsXG4gICAgICAgIHJlbmRlcl9lbGVtOiAnbWFwJyxcbiAgICAgICAgbGl2ZV9tYXA6IGZhbHNlLFxuICAgICAgICBhaXJjcmFmdF9pY29uOiAnL2Fzc2V0cy9pbWcvYWNhcnMvYWlyY3JhZnQucG5nJyxcbiAgICAgICAgbWV0YXJfd21zOiB7XG4gICAgICAgICAgICB1cmw6ICcnLFxuICAgICAgICAgICAgcGFyYW1zOiB7fVxuICAgICAgICB9LFxuICAgIH0sIG9wdHMpO1xuXG4gICAgY29uc3QgYWlyY3JhZnRJY29uID0gbGVhZmxldC5pY29uKHtcbiAgICAgICAgaWNvblVybDogb3B0cy5haXJjcmFmdF9pY29uLFxuICAgICAgICBpY29uU2l6ZTogWzQyLCA0Ml0sXG4gICAgICAgIGljb25BbmNob3I6IFsyMSwgMjFdLFxuICAgIH0pO1xuXG4gICAgbGV0IG1hcCA9IGRyYXdfYmFzZV9tYXAob3B0cyk7XG4gICAgbGV0IGxheWVyTGl2ZUZsaWdodDtcblxuICAgIGlmIChvcHRzLm1ldGFyX3dtcy51cmwgIT09ICcnKSB7XG4gICAgICAgIGFkZFdNU0xheWVyKG1hcCwgb3B0cy5tZXRhcl93bXMpO1xuICAgIH1cblxuICAgIGxldCBnZW9kZXNpY0xheWVyID0gbGVhZmxldC5nZW9kZXNpYyhbXSwge1xuICAgICAgICB3ZWlnaHQ6IDQsXG4gICAgICAgIG9wYWNpdHk6IDAuOSxcbiAgICAgICAgY29sb3I6IFBMQU5fUk9VVEVfQ09MT1IsXG4gICAgICAgIHN0ZXBzOiA1MCxcbiAgICAgICAgd3JhcDogZmFsc2UsXG4gICAgfSkuYWRkVG8obWFwKTtcblxuICAgIGdlb2Rlc2ljTGF5ZXIuZ2VvSnNvbihvcHRzLnBsYW5uZWRfcm91dGVfbGluZSk7XG5cbiAgICB0cnkge1xuICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlKVxuICAgIH1cblxuICAgIC8vIERyYXcgdGhlIHJvdXRlIHBvaW50cyBhZnRlclxuICAgIGlmIChvcHRzLnJvdXRlX3BvaW50cyAhPT0gbnVsbCkge1xuICAgICAgICBsZXQgcm91dGVfcG9pbnRzID0gbGVhZmxldC5nZW9KU09OKG9wdHMucm91dGVfcG9pbnRzLCB7XG4gICAgICAgICAgICBvbkVhY2hGZWF0dXJlOiBvbkZlYXR1cmVQb2ludENsaWNrLFxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICdjb2xvcic6IFBMQU5fUk9VVEVfQ09MT1IsXG4gICAgICAgICAgICAgICAgJ3dlaWdodCc6IDMsXG4gICAgICAgICAgICAgICAgJ29wYWNpdHknOiAwLjY1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm91dGVfcG9pbnRzLmFkZFRvKG1hcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZHJhdyB0aGUgYWN0dWFsIHJvdXRlXG4gICAgICovXG5cbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfbGluZSAhPT0gbnVsbCAmJiBvcHRzLmFjdHVhbF9yb3V0ZV9saW5lLmZlYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IGdlb2Rlc2ljTGF5ZXIgPSBsZWFmbGV0Lmdlb2Rlc2ljKFtdLCB7XG4gICAgICAgICAgICB3ZWlnaHQ6IDMsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjksXG4gICAgICAgICAgICBjb2xvcjogQUNUVUFMX1JPVVRFX0NPTE9SLFxuICAgICAgICAgICAgc3RlcHM6IDUwLFxuICAgICAgICAgICAgd3JhcDogZmFsc2UsXG4gICAgICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAgICAgZ2VvZGVzaWNMYXllci5nZW9Kc29uKG9wdHMuYWN0dWFsX3JvdXRlX2xpbmUpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfcG9pbnRzICE9PSBudWxsICYmIG9wdHMuYWN0dWFsX3JvdXRlX3BvaW50cy5mZWF0dXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCByb3V0ZV9wb2ludHMgPSBsZWFmbGV0Lmdlb0pTT04ob3B0cy5hY3R1YWxfcm91dGVfcG9pbnRzLCB7XG4gICAgICAgICAgICBvbkVhY2hGZWF0dXJlOiBvbkZlYXR1cmVQb2ludENsaWNrLFxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICdjb2xvcic6IEFDVFVBTF9ST1VURV9DT0xPUixcbiAgICAgICAgICAgICAgICAnd2VpZ2h0JzogMyxcbiAgICAgICAgICAgICAgICAnb3BhY2l0eSc6IDAuNjUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICByb3V0ZV9wb2ludHMuYWRkVG8obWFwKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3QgbGl2ZUZsaWdodCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgdXJpID0gb3B0cy5waXJlcF91cmk7XG4gICAgICAgIGNvbnN0IGxpdmVfcm91dGUgPSAkLmFqYXgoe1xuICAgICAgICAgICAgdXJsOiB1cmksXG4gICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgZXJyb3I6IGNvbnNvbGUubG9nXG4gICAgICAgIH0pO1xuXG4gICAgICAgICQud2hlbihsaXZlX3JvdXRlKS5kb25lKChyb3V0ZUpzb24pID0+IHtcbiAgICAgICAgICAgIGxheWVyTGl2ZUZsaWdodCA9IGxlYWZsZXQuZ2VvSlNPTihyb3V0ZUpzb24sIHtcbiAgICAgICAgICAgICAgICBwb2ludFRvTGF5ZXI6IGZ1bmN0aW9uIChmZWF0dXJlLCBsYXRsb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlYWZsZXQubWFya2VyKGxhdGxvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogYWlyY3JhZnRJY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb25BbmdsZTogZmVhdHVyZS5wcm9wZXJ0aWVzLmhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBsYXllckxpdmVGbGlnaHQuYWRkVG8obWFwKVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgc2V0SW50ZXJ2YWwobGl2ZUZsaWdodCwgMTAwMDApO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL3JvdXRlX21hcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/maps/route_map.js\n"); /***/ }), diff --git a/public/assets/admin/js/vendor.js b/public/assets/admin/js/vendor.js index 1ee244d1..c42f0e17 100644 --- a/public/assets/admin/js/vendor.js +++ b/public/assets/admin/js/vendor.js @@ -44514,1252 +44514,6 @@ S2.define('jquery.select2',[ } })(window.jQuery || window.Zepto); -/*! - * Pikaday - * - * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday - */ - -(function (root, factory) -{ - 'use strict'; - - var moment; - if (typeof exports === 'object') { - // CommonJS module - // Load moment.js as an optional dependency - try { moment = require('moment'); } catch (e) {} - module.exports = factory(moment); - } else if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(function (req) - { - // Load moment.js as an optional dependency - var id = 'moment'; - try { moment = req(id); } catch (e) {} - return factory(moment); - }); - } else { - root.Pikaday = factory(root.moment); - } -}(this, function (moment) -{ - 'use strict'; - - /** - * feature detection and helper functions - */ - var hasMoment = typeof moment === 'function', - - hasEventListeners = !!window.addEventListener, - - document = window.document, - - sto = window.setTimeout, - - addEvent = function(el, e, callback, capture) - { - if (hasEventListeners) { - el.addEventListener(e, callback, !!capture); - } else { - el.attachEvent('on' + e, callback); - } - }, - - removeEvent = function(el, e, callback, capture) - { - if (hasEventListeners) { - el.removeEventListener(e, callback, !!capture); - } else { - el.detachEvent('on' + e, callback); - } - }, - - trim = function(str) - { - return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g,''); - }, - - hasClass = function(el, cn) - { - return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1; - }, - - addClass = function(el, cn) - { - if (!hasClass(el, cn)) { - el.className = (el.className === '') ? cn : el.className + ' ' + cn; - } - }, - - removeClass = function(el, cn) - { - el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' ')); - }, - - isArray = function(obj) - { - return (/Array/).test(Object.prototype.toString.call(obj)); - }, - - isDate = function(obj) - { - return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime()); - }, - - isWeekend = function(date) - { - var day = date.getDay(); - return day === 0 || day === 6; - }, - - isLeapYear = function(year) - { - // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951 - return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; - }, - - getDaysInMonth = function(year, month) - { - return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; - }, - - setToStartOfDay = function(date) - { - if (isDate(date)) date.setHours(0,0,0,0); - }, - - compareDates = function(a,b) - { - // weak date comparison (use setToStartOfDay(date) to ensure correct result) - return a.getTime() === b.getTime(); - }, - - extend = function(to, from, overwrite) - { - var prop, hasProp; - for (prop in from) { - hasProp = to[prop] !== undefined; - if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) { - if (isDate(from[prop])) { - if (overwrite) { - to[prop] = new Date(from[prop].getTime()); - } - } - else if (isArray(from[prop])) { - if (overwrite) { - to[prop] = from[prop].slice(0); - } - } else { - to[prop] = extend({}, from[prop], overwrite); - } - } else if (overwrite || !hasProp) { - to[prop] = from[prop]; - } - } - return to; - }, - - fireEvent = function(el, eventName, data) - { - var ev; - - if (document.createEvent) { - ev = document.createEvent('HTMLEvents'); - ev.initEvent(eventName, true, false); - ev = extend(ev, data); - el.dispatchEvent(ev); - } else if (document.createEventObject) { - ev = document.createEventObject(); - ev = extend(ev, data); - el.fireEvent('on' + eventName, ev); - } - }, - - adjustCalendar = function(calendar) { - if (calendar.month < 0) { - calendar.year -= Math.ceil(Math.abs(calendar.month)/12); - calendar.month += 12; - } - if (calendar.month > 11) { - calendar.year += Math.floor(Math.abs(calendar.month)/12); - calendar.month -= 12; - } - return calendar; - }, - - /** - * defaults and localisation - */ - defaults = { - - // bind the picker to a form field - field: null, - - // automatically show/hide the picker on `field` focus (default `true` if `field` is set) - bound: undefined, - - // position of the datepicker, relative to the field (default to bottom & left) - // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position) - position: 'bottom left', - - // automatically fit in the viewport even if it means repositioning from the position option - reposition: true, - - // the default output format for `.toString()` and `field` value - format: 'YYYY-MM-DD', - - // the toString function which gets passed a current date object and format - // and returns a string - toString: null, - - // used to create date object from current input string - parse: null, - - // the initial date to view when first opened - defaultDate: null, - - // make the `defaultDate` the initial selected value - setDefaultDate: false, - - // first day of week (0: Sunday, 1: Monday etc) - firstDay: 0, - - // the default flag for moment's strict date parsing - formatStrict: false, - - // the minimum/earliest date that can be selected - minDate: null, - // the maximum/latest date that can be selected - maxDate: null, - - // number of years either side, or array of upper/lower range - yearRange: 10, - - // show week numbers at head of row - showWeekNumber: false, - - // Week picker mode - pickWholeWeek: false, - - // used internally (don't config outside) - minYear: 0, - maxYear: 9999, - minMonth: undefined, - maxMonth: undefined, - - startRange: null, - endRange: null, - - isRTL: false, - - // Additional text to append to the year in the calendar title - yearSuffix: '', - - // Render the month after year in the calendar title - showMonthAfterYear: false, - - // Render days of the calendar grid that fall in the next or previous month - showDaysInNextAndPreviousMonths: false, - - // Allows user to select days that fall in the next or previous month - enableSelectionDaysInNextAndPreviousMonths: false, - - // how many months are visible - numberOfMonths: 1, - - // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`) - // only used for the first display or when a selected date is not visible - mainCalendar: 'left', - - // Specify a DOM element to render the calendar in - container: undefined, - - // Blur field when date is selected - blurFieldOnSelect : true, - - // internationalization - i18n: { - previousMonth : 'Previous Month', - nextMonth : 'Next Month', - months : ['January','February','March','April','May','June','July','August','September','October','November','December'], - weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'], - weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] - }, - - // Theme Classname - theme: null, - - // events array - events: [], - - // callback function - onSelect: null, - onOpen: null, - onClose: null, - onDraw: null, - - // Enable keyboard input - keyboardInput: true - }, - - - /** - * templating functions to abstract HTML rendering - */ - renderDayName = function(opts, day, abbr) - { - day += opts.firstDay; - while (day >= 7) { - day -= 7; - } - return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day]; - }, - - renderDay = function(opts) - { - var arr = []; - var ariaSelected = 'false'; - if (opts.isEmpty) { - if (opts.showDaysInNextAndPreviousMonths) { - arr.push('is-outside-current-month'); - - if(!opts.enableSelectionDaysInNextAndPreviousMonths) { - arr.push('is-selection-disabled'); - } - - } else { - return '
Arrived {{$pirep->created_at->diffForHumans()}}
++ @if($pirep->state === PirepState::IN_PROGRESS) + + @else + Arrived {{$pirep->created_at->diffForHumans()}} + @endif +
Status | @php @@ -96,6 +104,15 @@ {{ PirepState::label($pirep->state) }} | +||||
State | +
+
+ {{ PirepStatus::label($pirep->status) }}
+
+ |
||||
{{ $pirep->ident }} | +{{ $pirep->airline->code }}{{ $pirep->ident }} | {{ $pirep->dpt_airport_id }} | {{ $pirep->arr_airport_id }} | +{{ $pirep->aircraft->name }} | {{ PirepStatus::label($pirep->status) }} | diff --git a/tests/UtilsTest.php b/tests/UtilsTest.php index f90931bb..350ac300 100644 --- a/tests/UtilsTest.php +++ b/tests/UtilsTest.php @@ -9,8 +9,8 @@ class UtilsTest extends TestCase public function testDates() { - $carbon = new \Carbon\Carbon('2018-03-18 00:20:43'); - //echo $carbon; + $carbon = new \Carbon\Carbon('2018-04-28T12:55:40Z'); + $this->assertNotNull($carbon); } public function testSecondsToTimeParts()