* Block Aircraft with SimBrief
Changes aim to have the ability to block an aircraft's usage if it is used to generate a SimBrief OFP.
Unused/Expired briefings will be deleted by cron like before but will now be checked by HourlyCron, so admins can define more precise restrictions for them (and the blockage period of their aircraft)
Owner of the SimBrief OFP will be able to start a flight with acars using that particular aircraft, but pilots will get an Aircraft Not Available error (similar to Aircraft State check)
To prevent SimBrief OFP packs being marked as expired/unused, during pirep prefile, pirep_id will be saved to SimBrief model along with flight_id.
And when a flight is finished (pirep file), flight_id will be removed from SimBrief model as before. Only pirep_id will remain and aircraft will be available for another OFP generation.
* Update PirepController
In case a pirep is being saved/submitted with manual entry (but the va is using simbrief effectively) same logic should be applied during save/submit button selection.
Save will act like a pirep prefile , Submit will be pirep file.
* Manual Pirep Checks
Manual pireps, prefiled from a generated simbrief should be checked too. Also pirep.show blade's submit button should provide the same simbrief checks.
* Update PirepService.php
* Change settings and move sb cron to hourly
* StyleFix (SimBriefService)
* Another StyleFix (SimBriefService)
* Update SimBriefController
Removed null check of pirep_id for aircraft list generation to prevent live flights' aircraft being listed for another ofp generation.
( Active acars flights will have both flight_id and pirep_id at simbrief table)
* Update PirepService.php
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* PirepCancelled Event (Cron Expired Pirep Deletion)
While deleting frozen in progress pireps we should at least send a PirepCancelled event for those who are listening.
(or we may have a new PirepDeleted event to be issued in such cases, I think PirepCancelled is enough though)
* StyleFix
* Another StyleFix
* Missing Log
Of course it will not be possible to write log entries without the Log itself.
Using whereTime may present a problem for flights conducted during utc midnight and some active/live flights may be deleted with whereTime.
Scenario;
now = today-01:00 utc
setting = 2 hours
date = yesterday-23:00 utc
Any live pireps will/may be deleted with whereTime 'cause their last updated TIME will be maximum 00:59 which is smaller than 23:00.
* Fix for Hourly Cron
We should be using whereTime instead of whereDate
https://laravel.com/docs/8.x/queries#additional-where-clauses
`The whereDate method may be used to compare a column's value against a date`
* Fix for RemoveExpiredBids
I used where to do check 'cause people may set 48 hours to remove a bid, thus neither whereDate nor whereTime will give a correct results.
* Fix for DeletePireps
I used where to do check 'cause people may set 48 hours to delete cancelled or rejected pireps, thus neither whereDate nor whereTime will give a correct results.
* 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)