Follow up for improved SimBrief API, sending separate pax and bag weights is possible now.
Core v7 already had them separated ;)
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* Fix dead links
Fixed one dead link, removed another one and changed load factor and variance fields to accept only numbers between 0-100.
* Update fields.blade.php
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* Notes for Airports
Adds capability of having notes/remarks for airports, includes
* New database field
* Airport Model change
* CSV Import/Export capability for notes
* Admin Airports list page change
* Admin Airports edit page change
* Default Template Airport show page change
* Update Airport Tests
* Add the new field to source csv
* Check if the import works
* Update AirportFactory.php
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* Backend changes
Sorting for : Airlines, Subfleets, Type Ratings and exported Flights
Blade : Added WYSIWYG editor to flight remarks/notes field
Notifications :
Mails > Added enabled/disabled settings for mails. Discord > Dashed out PirepPreFiled, re-enabled PirepStatusChanged with reduced messages
* Update PirepStatusChanged.php
* Update NotificationEventsHandler.php
* in_array fix
* Fix Discord Notifications
* Discord Notifications
Removed the pirep url from message as it is mostly private at phpvms side.
Also removed the Flight Ident from fields 'cause it is being used in the title.
Added the user avatar as thumbnail, and pirep filed message uses the airline logo as the main image.
Even though the outgoing pirep status messages are reduced, it is still possible to enable/disable them from admin settings.
Pirep Filed is always being sent (if the webhook is defined)
* StyleFix
* Custom Code for Pilot IDents
Adds a new setting to customize the ident or to use a fixed icao code in a multi airline environment.
If settings is null/empty, airline icao will be used as like before.
* StyleFix
Current GDPR compliant Private Name attribute is not compatible with multi byte strings, and when encountered it fails and returns an empty string for the name_private attribute.
`substr($last_name, 0, 1)` or just `$last_name[0]` is not multi byte compatible, therefore only solution is to use `mb_substr`.
It also supports encoding definitions like `mb_substr($last_name, 0, 1, 'UTF-8')`
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* Update UserRepository.php
Make `name` and `e-mail` based searches with `like` for easier administration and search.
* Update search.blade.php
Remove old dashed out code
* Update index.blade.php
Add proper state selections
* Aircraft level Hub definitions
* Add ability to define a hub for an aircraft apart from its subfleet.
* Update csv import/export capability for hub_id field
* Fix importertest source csv
* Fix source csv for updating too
* Update aircraft_empty_cols.csv
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* Update SimBriefController.php
Fix the fares relationship which was causing trouble when a flight had assigned fares
* Fix model name used in relationship
`Simbrief` should be `SimBrief`
* Update table.blade.php
* Update show.blade.php
* Update pirep_card.blade.php
* Update latest_pireps.blade.php
* Update ProfileController.php
Removed non used airports, added necessary relationships for eager loading.
Also removed `fields` 'cause it is already being loaded when `fields.field` is used. No need to query it twice.
* Update ProfileController.php
Reject button was not showing up for pending pireps due to usage of `@elseif`. Now both Accept and Reject buttons should be visible for pending pireps.
* Update EventServiceProvider.php
Add FareListener
* Create Fares.php
* Create FareListener.php
* Update ExpenseListener.php
* Update PirepFinanceService.php
Add listener for the fares, process them like the custom expenses and apply if there are any returned
* Update search.blade.php
Used select2 for airports, fixed grid layout
* Update actions.blade.php
Fixed button placing
* Update pirep_card.blade.php
Added user id before the name, made name optional so if page hits an hard deleted user's pirep it will not fail. Also improved the flight level check.
That `if` should return `true` when both conditions are met (pirep not accepted and not rejected yet), so **AND** must be used there ;) Sorry for the trouble.
Now it works and listens more carefully.
* Update PirepService.php
Moved `$default_state` logic below `PirepFiled` event, so admins can have some flexibility to define their own default states by listening that event.
Any ideas ?
Hopefully closes#1312
* Update PirepService.php
Added the missing `$pirep->refresh();`
* Update GeoService.php
Replace double name usage with more valuable info
* Update GeoService.php
Changed `GS` with `Spd` 'cause it may be IAS or GS according to the phase of the flight.
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* Update FareService.php
* Update PirepController.php
Move the logic to controller as requested
* Update FareService.php
Reverting back the service changes as requested
* StyleFix
Title says it all ... Added web middleware to laravel-widgets config so the widget auto-reload / auto-refresh options can work with full functionality.
* Update FlightController.php
Add missing $bid to flight/show so when needed Load In Acars button can be placed there too.
* Update show.blade.php
Add Load In Acars button to flight details page (flights/show.blade.php)
* Update AcarsRepository.php
Use `where` instead of `whereDate` , as you know whereDate only checks the date, it skips the time part completely, thus not providing correct live pireps collection.
* Switch from created_at to updated_at
Also remove the UTC conversion 'cause `updated_at` field is not being populated with UTC values.
* Update PirepStatusChanged.php
Use profile route for author url instead of pirep
* Update PirepSubmitted.php
Use profile route for author url instead of pirep
* Update PirepPrefiled.php
Use profile route for author instead of pirep
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* SimBrief OFP Edit
Changes aim to have ability of editing generated SimBrief Flight Plans and re-downloading.
* Move url to config
* Blade update and $uri change
* Update simbrief_form.blade.php
Used `$flight->id` along with `$user->ident` to have a more unique static id value. No details given for that fields uniqueness requirements, this will be ok I think though.
Also we are passing user's simbrief userid with api to find the flight plan, both combined, no chance to get another users plan and/or any other plan of same user.
* Update SimBriefController.php
Move `static_id` to controller
* Update simbrief_form.blade.php
Read `static_id` from controller
* StyleFix
* Update phpvms.php
* Update SimBriefService.php
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* Update helpers.php
Looks like php8 is not liking numeric strings as we like them.
Fixes#1229
* StyleFix
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* 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>
* Update PirepController
Frontend : Use `$subfleet->type` instead of `name` for grouping aircraft list.
* Update PirepController (Admin)
Use `$subfleet->type` instead of `name` here too , for grouping aircraft list according to their subfleets.
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* Fix removeExpiredEntires()
* Fix SimBriefTest
No need to add `'pirep_id' => ''` , just let it be `null` (like the core code does) and no need to convert Carbon to DateTimeString.
* Update Flight Controller
Show only used flight types in the search form instead of all IATA Flight Types.
* PrePR StyleFix
* StyleFix
* Use Model instead of DB
Also used the same $where array
Co-authored-by: Nabeel S <nabeelio@users.noreply.github.com>
* Edit Search Form
Add ability to search via flight/route code (technically it was possible but the field was not present in the blade)
* Add Code (EN)
* Add Code (ES)
* Add Code (IT)
* Add Code (PT-BR)
* FlightCode => Code
* FlightCode => Code
* FlightCode => Code
* FlightCode => Code
* FlightCode => Code