7.0.0-beta3 Release (#541)

* 391 Notification refactorings (#441)

* Refactor notifications to allow easier plugins

* Notification refactoring

* Formatting

* Move news to NewsService; cleanup of events

* More refactoring; added send email out for news item and the template

* Formatting

* Formatting

* Fix missing newsRepo (#445)

* Refactor and add importer to Installer module #443 (#444)

* Refactor and add importer to Installer module #443

* Refactor for finances to use in import

* Import groups into roles

* Formatting

* Formatting

* Add interface in installer for import

* Notes about importing

* Check for installer folder

* Formatting

* Fix pirep->user mapping

* Unused import

* Formatting

* Replace importer with AJAX powered; better error handling #443 (#447)

* Replace importer with AJAX powered; better error handling #443

* Formatting

* Fix command line importer

* Remove bootstrap cache (#448)

* Cleanup the bootstrap/cache directory when packaging

* Fix removal of bootstrap cache

* Formatting

* Stricter checks on ACARS API data (#451)

* Stricter checks on ACARS API data

* More checks

* Fix for flight_number check forcing to exist

* Allow nullable on flight_id

* Avoid proc_open use #455 (#456)

* Use PhpExecutableFinder() closes #457 #458 (#460)

* Use DateTimeZone instead of int for creating datetime

closes #461

* Fix CSV imports giving Storage class not found #454 (#462)

* Fix CSV imports giving Storage class not found #454

* Update yarn files for security alert

* Add PHP 7.4 support (#464)

* Add PHP 7.4 to build matrix

* DB fix

* YAML parser fix in test data

* Show versions

* Package updates

* Track used ICAOs

* 7.4 METAR parsing fix

* METAR parser fix

* Formatting

* Add meters to response units

* Call instance for unit conversion

* Return value

* Catch exception for unknown quantity

* Comment fix

* Formatting

* METAR parsing fixes on PHP 7.4

* Package updates

* More random airport ID

* More random airport ID

* Properly disable toolbar

* Semver written out to version file

* Use dev as default identifier

* Fix BindingResolutionError when debug toolbar isn't present (#465)

* Fix BindingResolutionError when debug toolbar isn't present

* Formatting

* Split the importer module out from the installer module (#468)

* Split the importer module out from the installer module

* Cleanup of unused imports

* Move updater into separate module #453

* Remove unused imports/formatting

* Disable the install and importer modules at the end of the setup

* Unused imports; update IJ style

* test explicit stage for php+mysql

* add more to matrix

* Add different MariaDB versions

* undo

* Cleanup Model doc

* Pilots cannot use the dashboard or flights without admin rights (#481)

* Use auth middleware instead of specific groups for logged in state

* Auth check for admin access

* Check user admin access for updates

* Formatting

* Allow nullable field and calculate distance if nulled for flight import #478 (#482)

* Check for no roles being attached #480 (#483)

* Return the flight fares if there are no subfleet fares #488 (#489)

* Return the flight fares if there are no subfleet fares #488

* Formatting

* Formatting

* Account for units when entering fuel amounts #493

* Search for ICAO not working properly (#496)

* /flights and /flights/search direct to the same endpoint

* Properly set the distance/planned_distance on save (#497)

* 491 Installation Error (#495)

* Disable CSRF token

* Add error handling around looking up the theme and set a default

* Note about logs in issue template

* Formatting

* Fix GeoService errors when viewing PIREP #498 (#499)

* Add new command to export a specific PIREP for debugging (#501)

* Set a default model value for airports on PIREP (#500)

* Set a default model value for airports on PIREP

* Fix airport icao reference

* Default airport models

* Catch broader exception writing out config files #491

* style

* Add reference to docs on doc site (#502)

* Properly create/update rows importing #486 (#503)

* Add base Dockerfile for Dockerhub builds (#504)

* New subfleet not being attached to an airline on import #479 (#505)

* Fix subfleet not being attached to an airline on creation in import #479

* Call airline name with optional() around subfleet

* Minor cleanup

* Search flights by subfleet #484 (#506)

* API level search of flights #484

* Add Subfleet to flights page for search

* Make the fuel used optional (#512)

* Add make to Docker container

* Add getRootDomain() to Utils (#514)

* Show admin dropdown for admin-access ability (#515)

* Show admin dropdown for admin-access ability closes #509

* Formatting

* Check user permissions on the routes #508 (#516)

* Check user permissions on the routes #508

* Formatting

* Return default value on exception for setting()

* Correct text for no subfleets #507 (#518)

* Add a public_url() helper #513 (#519)

* Reduce number of queries for update check (#520)

* Try to clear caches before updating (#522)

* Try to clear caches before updating

* Add clear-compiled to maintenance cache list

* Formatting

* Set PIREPs page to public (#526)

Set PIREPs page to public

* Fix live and route map errors #527 (#528)

* Add menu bar for mobile (#529)

* Format all blade templates to 2 spaces #530 (#531)

* Fix PIREP edit endpoint closes #533 (#534)

* Fix import during flight cron #532 (#535)

* PIREPS resource except for show (#536)

* Use optional() around the airport fields (#537)

* Use optional() around the airport fields

* Add null-coalesce around full_name

* Add link to download ACARS config from profile (#539)

* Add link to download ACARS config from profile

* Formatting

* Update xml config file template (#540)
This commit is contained in:
Nabeel S
2020-02-08 13:29:34 -05:00
committed by GitHub
parent a335ed8e9b
commit 073e48c396
515 changed files with 13930 additions and 10708 deletions
@@ -1,67 +1,67 @@
<div class="row">
<div class="col-md-12">
<div class="box-body">
<div class="col-md-12">
<div class="box-body">
{{--
This map uses rivets.js to fill in the updates from the livemap
So the single brackets are used by rivets to fill in the values
And then the rv-* attributes are data-binds that will automatically
update whenever the base model behind it updates:
{{--
This map uses rivets.js to fill in the updates from the livemap
So the single brackets are used by rivets to fill in the values
And then the rv-* attributes are data-binds that will automatically
update whenever the base model behind it updates:
http://rivetsjs.com/docs/guide
http://rivetsjs.com/docs/guide
Look in resources/js/maps/live_map.js to see where the actual binding
and update() call is made
--}}
<div id="map" style="width: {{ $config['width'] }}; height: {{ $config['height'] }}">
Look in resources/js/maps/live_map.js to see where the actual binding
and update() call is made
--}}
<div id="map" style="width: {{ $config['width'] }}; height: {{ $config['height'] }}">
{{--
This is the bottom bar that appears when you click on a flight in the map.
You can show any data you want - use a JS debugger to see the value of "pirep",
or look up the API documentation for the /api/pirep/{id}/acars call
{{--
This is the bottom bar that appears when you click on a flight in the map.
You can show any data you want - use a JS debugger to see the value of "pirep",
or look up the API documentation for the /api/pirep/{id}/acars call
It's basically any of the fields from the database and pirep.position.X is any
column from the ACARS table - holds the latest position.
It's basically any of the fields from the database and pirep.position.X is any
column from the ACARS table - holds the latest position.
Again, this is updated automatically via the rivets.js bindings, so be mindful
when you're editing the { } - single brackets == rivets, double brackets == laravel
Again, this is updated automatically via the rivets.js bindings, so be mindful
when you're editing the { } - single brackets == rivets, double brackets == laravel
A couple of places (like the distance) use both to output the correct bindings.
--}}
<div id="map-info-box" class="map-info-box"
rv-show="pirep"
style="width: {{ $config['width'] }};">
<div style="float: left; width: 50%;">
<h3 style="margin: 0" id="map_flight_id">
<a rv-href="pirep.id | prepend '{{url('/pireps/')}}/'" target="_blank">
{ pirep.airline.icao }{ pirep.flight_number }
</a>
</h3>
<p id="map_flight_info">
{ pirep.dpt_airport.name } ({ pirep.dpt_airport.icao }) @lang('common.to')
{ pirep.arr_airport.name } ({ pirep.arr_airport.icao })
</p>
</div>
<div style="float: right; margin-left: 30px; margin-right: 30px;">
<p id="map_flight_stats_right">
@lang('widgets.livemap.groundspeed'): <span style="font-weight: bold">{ pirep.position.gs }</span><br/>
@lang('widgets.livemap.altitude'): <span style="font-weight: bold">{ pirep.position.altitude }</span><br/>
@lang('widgets.livemap.heading'): <span style="font-weight: bold">{ pirep.position.heading }</span><br/>
</p>
</div>
<div style="float: right; margin-left: 30px;">
<p id="map_flight_stats_middle">
@lang('common.status'): <span style="font-weight: bold">{ pirep.status_text }</span><br />
@lang('flights.flighttime'): <span style="font-weight: bold">{ pirep.flight_time | time_hm }</span><br />
@lang('common.distance'): <span style="font-weight: bold">{ pirep.position.distance.{{setting('units.distance')}} }</span>
/ <span style="font-weight: bold">
A couple of places (like the distance) use both to output the correct bindings.
--}}
<div id="map-info-box" class="map-info-box"
rv-show="pirep"
style="width: {{ $config['width'] }};">
<div style="float: left; width: 50%;">
<h3 style="margin: 0" id="map_flight_id">
<a rv-href="pirep.id | prepend '{{url('/pireps/')}}/'" target="_blank">
{ pirep.airline.icao }{ pirep.flight_number }
</a>
</h3>
<p id="map_flight_info">
{ pirep.dpt_airport.name } ({ pirep.dpt_airport.icao }) @lang('common.to')
{ pirep.arr_airport.name } ({ pirep.arr_airport.icao })
</p>
</div>
<div style="float: right; margin-left: 30px; margin-right: 30px;">
<p id="map_flight_stats_right">
@lang('widgets.livemap.groundspeed'): <span style="font-weight: bold">{ pirep.position.gs }</span><br/>
@lang('widgets.livemap.altitude'): <span style="font-weight: bold">{ pirep.position.altitude }</span><br/>
@lang('widgets.livemap.heading'): <span style="font-weight: bold">{ pirep.position.heading }</span><br/>
</p>
</div>
<div style="float: right; margin-left: 30px;">
<p id="map_flight_stats_middle">
@lang('common.status'): <span style="font-weight: bold">{ pirep.status_text }</span><br/>
@lang('flights.flighttime'): <span style="font-weight: bold">{ pirep.flight_time | time_hm }</span><br/>
@lang('common.distance'): <span style="font-weight: bold">{ pirep.position.distance.{{setting('units.distance')}} }</span>
/ <span style="font-weight: bold">
{ pirep.planned_distance.{{setting('units.distance')}} }</span>
</p>
</div>
</div>
</div>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="clearfix" style="padding-top: 25px"></div>
@@ -74,47 +74,47 @@ Same note applies from above about the data from the PIREP API being available
and being mindful of the rivets bindings
--}}
<div id="live_flights" class="row">
<div class="col-md-12">
<div rv-hide="has_data" class="jumbotron text-center">@lang('widgets.livemap.noflights')</div>
<table rv-show="has_data" id="live_flights_table" class="table table-striped">
<thead>
<tr class="text-small header">
<td class="text-small">{{ trans_choice('common.flight', 2) }}</td>
<td class="text-small">@lang('common.departure')</td>
<td class="text-small">@lang('common.arrival')</td>
<td class="text-small">@lang('common.aircraft')</td>
<td class="text-small">@lang('widgets.livemap.altitude')</td>
<td class="text-small">@lang('widgets.livemap.gs')</td>
<td class="text-small">@lang('widgets.livemap.distance')</td>
<td class="text-small">@lang('common.status')</td>
</tr>
</thead>
<tbody>
<tr rv-each-pirep="pireps">
<td><a href="#top_anchor" rv-on-click="controller.focusMarker">{ pirep.airline.icao }{ pirep.ident}</a> </td>
{{-- Show the full airport name on hover --}}
<td><span rv-title="pirep.dpt_airport.name">{ pirep.dpt_airport.icao }</span></td>
<td><span rv-title="pirep.arr_airport.name">{ pirep.arr_airport.icao }</span></td>
<td>{ pirep.aircraft.name }</td>
<td>{ pirep.position.altitude }</td>
<td>{ pirep.position.gs }</td>
<td>{ pirep.position.distance.{{setting('units.distance')}} | fallback 0 } /
{ pirep.planned_distance.{{setting('units.distance')}} | fallback 0 }
</td>
<td>{ pirep.status_text }</td>
</tr>
</tbody>
</table>
</div>
<div class="col-md-12">
<div rv-hide="has_data" class="jumbotron text-center">@lang('widgets.livemap.noflights')</div>
<table rv-show="has_data" id="live_flights_table" class="table table-striped">
<thead>
<tr class="text-small header">
<td class="text-small">{{ trans_choice('common.flight', 2) }}</td>
<td class="text-small">@lang('common.departure')</td>
<td class="text-small">@lang('common.arrival')</td>
<td class="text-small">@lang('common.aircraft')</td>
<td class="text-small">@lang('widgets.livemap.altitude')</td>
<td class="text-small">@lang('widgets.livemap.gs')</td>
<td class="text-small">@lang('widgets.livemap.distance')</td>
<td class="text-small">@lang('common.status')</td>
</tr>
</thead>
<tbody>
<tr rv-each-pirep="pireps">
<td><a href="#top_anchor" rv-on-click="controller.focusMarker">{ pirep.airline.icao }{ pirep.ident}</a></td>
{{-- Show the full airport name on hover --}}
<td><span rv-title="pirep.dpt_airport.name">{ pirep.dpt_airport.icao }</span></td>
<td><span rv-title="pirep.arr_airport.name">{ pirep.arr_airport.icao }</span></td>
<td>{ pirep.aircraft.name }</td>
<td>{ pirep.position.altitude }</td>
<td>{ pirep.position.gs }</td>
<td>{ pirep.position.distance.{{setting('units.distance')}} | fallback 0 } /
{ pirep.planned_distance.{{setting('units.distance')}} | fallback 0 }
</td>
<td>{ pirep.status_text }</td>
</tr>
</tbody>
</table>
</div>
</div>
@section('scripts')
<script>
phpvms.map.render_live_map({
center: ['{{ $center[0] }}', '{{ $center[1] }}'],
zoom: '{{ $zoom }}',
aircraft_icon: '{!! public_asset('/assets/img/acars/aircraft.png') !!}',
units: '{{ setting('units.distance') }}',
});
</script>
<script>
phpvms.map.render_live_map({
center: ['{{ $center[0] }}', '{{ $center[1] }}'],
zoom: '{{ $zoom }}',
aircraft_icon: '{!! public_asset('/assets/img/acars/aircraft.png') !!}',
units: '{{ setting('units.distance') }}',
});
</script>
@endsection