diff --git a/app/Console/Commands/Version.php b/app/Console/Commands/Version.php index 6794acf6..9a7bc5be 100644 --- a/app/Console/Commands/Version.php +++ b/app/Console/Commands/Version.php @@ -19,7 +19,7 @@ class Version extends BaseCommand # prefix with the date in YYMMDD format $date = date('ymd'); - $version = $date.'-'.$version; + $version = $date . '-' . $version; return $version; } @@ -40,7 +40,7 @@ class Version extends BaseCommand $c = $cfg['current']; $version = "v{$c['major']}.{$c['minor']}.{$c['patch']}-{$build_number}"; - if($this->option('write')) { + if ($this->option('write')) { file_put_contents($version_file, Yaml::dump($cfg, 4, 2)); } diff --git a/app/Models/Acars.php b/app/Models/Acars.php index 960c5fbe..630d928e 100644 --- a/app/Models/Acars.php +++ b/app/Models/Acars.php @@ -2,11 +2,11 @@ namespace App\Models; -use App\Models\Traits\HashId; +use App\Models\Traits\HashIdTrait; class Acars extends BaseModel { - use HashId; + use HashIdTrait; public $table = 'acars'; public $incrementing = false; diff --git a/app/Models/Aircraft.php b/app/Models/Aircraft.php index 95e68ddd..c5348220 100644 --- a/app/Models/Aircraft.php +++ b/app/Models/Aircraft.php @@ -3,7 +3,7 @@ namespace App\Models; use App\Models\Enums\AircraftStatus; -use App\Models\Traits\Expensable; +use App\Models\Traits\ExpensableTrait; use App\Support\ICAO; /** @@ -19,7 +19,7 @@ use App\Support\ICAO; */ class Aircraft extends BaseModel { - use Expensable; + use ExpensableTrait; public $table = 'aircraft'; diff --git a/app/Models/Airport.php b/app/Models/Airport.php index 38c356e1..a257f995 100644 --- a/app/Models/Airport.php +++ b/app/Models/Airport.php @@ -2,7 +2,7 @@ namespace App\Models; -use App\Models\Traits\Expensable; +use App\Models\Traits\ExpensableTrait; use Illuminate\Notifications\Notifiable; /** @@ -12,7 +12,7 @@ use Illuminate\Notifications\Notifiable; */ class Airport extends BaseModel { - use Expensable; + use ExpensableTrait; use Notifiable; public $table = 'airports'; diff --git a/app/Models/Enums/AcarsType.php b/app/Models/Enums/AcarsType.php index d936f6a0..2a52b387 100644 --- a/app/Models/Enums/AcarsType.php +++ b/app/Models/Enums/AcarsType.php @@ -6,7 +6,7 @@ namespace App\Models\Enums; * Class AcarsType * @package App\Models\Enums */ -class AcarsType extends EnumBase +class AcarsType extends Enum { public const FLIGHT_PATH = 0; public const ROUTE = 1; diff --git a/app/Models/Enums/ActiveState.php b/app/Models/Enums/ActiveState.php index 861a25b2..8a62af67 100644 --- a/app/Models/Enums/ActiveState.php +++ b/app/Models/Enums/ActiveState.php @@ -6,7 +6,7 @@ namespace App\Models\Enums; * Class ActiveState * @package App\Models\Enums */ -class ActiveState extends EnumBase +class ActiveState extends Enum { public const INACTIVE = 0; public const ACTIVE = 1; diff --git a/app/Models/Enums/AircraftState.php b/app/Models/Enums/AircraftState.php index 5d141aef..c283d53b 100644 --- a/app/Models/Enums/AircraftState.php +++ b/app/Models/Enums/AircraftState.php @@ -6,7 +6,7 @@ namespace App\Models\Enums; * Class AircraftState * @package App\Models\Enums */ -class AircraftState extends EnumBase +class AircraftState extends Enum { public const PARKED = 0; public const IN_USE = 1; diff --git a/app/Models/Enums/AircraftStatus.php b/app/Models/Enums/AircraftStatus.php index 8f2705c0..a56f758f 100644 --- a/app/Models/Enums/AircraftStatus.php +++ b/app/Models/Enums/AircraftStatus.php @@ -6,7 +6,7 @@ namespace App\Models\Enums; * Class AircraftState * @package App\Models\Enums */ -class AircraftStatus extends EnumBase +class AircraftStatus extends Enum { public const STORED = 0; public const ACTIVE = 1; diff --git a/app/Models/Enums/Days.php b/app/Models/Enums/Days.php index 130a4a7e..96e15d70 100644 --- a/app/Models/Enums/Days.php +++ b/app/Models/Enums/Days.php @@ -9,7 +9,7 @@ namespace App\Models\Enums; * Class Days * @package App\Models\Enums */ -class Days extends EnumBase { +class Days extends Enum { public const MONDAY = 1 << 0; public const TUESDAY = 1 << 1; diff --git a/app/Models/Enums/Enum.php b/app/Models/Enums/Enum.php new file mode 100644 index 00000000..197b22e3 --- /dev/null +++ b/app/Models/Enums/Enum.php @@ -0,0 +1,89 @@ + $label) { + $labels[$key] = trans($label); + } + + return $labels; + } + + /** + * Select box + */ + public static function select($add_blank=false) + { + $labels = []; + if($add_blank) { + $labels[] = ''; + } + + foreach (static::$labels as $key => $label) { + $labels[$key] = trans($label); + } + + return $labels; + } + + /** + * Returns all possible values as an array + * @return array Constant name in key, constant value in value + * @throws \ReflectionException + */ + public static function toArray() + { + $class = get_called_class(); + if (!array_key_exists($class, static::$cache)) { + $reflection = new \ReflectionClass($class); + static::$cache[$class] = $reflection->getConstants(); + } + + return static::$cache[$class]; + } + + /** + * Returns a value when called statically like so: MyEnum::SOME_VALUE() given SOME_VALUE is a class constant + * @param string $name + * @param array $arguments + * @return static + * @throws \BadMethodCallException + * @throws \ReflectionException + */ + public static function __callStatic($name, $arguments) + { + $array = static::toArray(); + if (isset($array[$name])) { + return new static($array[$name]); + } + throw new \BadMethodCallException( + "No static method or enum constant '$name' in class ".get_called_class() + ); + } +} diff --git a/app/Models/Enums/EnumBase.php b/app/Models/Enums/EnumBase.php deleted file mode 100644 index e50851a9..00000000 --- a/app/Models/Enums/EnumBase.php +++ /dev/null @@ -1,53 +0,0 @@ - $label) { - $labels[$key] = trans($label); - } - - return $labels; - } - - /** - * Select box - */ - public static function select($add_blank=false) - { - $labels = []; - if($add_blank) { - $labels[] = ''; - } - - foreach (static::$labels as $key => $label) { - $labels[$key] = trans($label); - } - - return $labels; - } -} diff --git a/app/Models/Enums/ExpenseType.php b/app/Models/Enums/ExpenseType.php index a3c07195..1bdc1fbe 100644 --- a/app/Models/Enums/ExpenseType.php +++ b/app/Models/Enums/ExpenseType.php @@ -6,7 +6,7 @@ namespace App\Models\Enums; * Class ExpenseType * @package App\Models\Enums */ -class ExpenseType extends EnumBase { +class ExpenseType extends Enum { public const FLIGHT = 0; public const DAILY = 1; diff --git a/app/Models/Enums/FlightType.php b/app/Models/Enums/FlightType.php index 9ad60373..1535cf5a 100644 --- a/app/Models/Enums/FlightType.php +++ b/app/Models/Enums/FlightType.php @@ -3,7 +3,7 @@ namespace App\Models\Enums; -class FlightType extends EnumBase { +class FlightType extends Enum { public const PASSENGER = 0; public const CARGO = 1; diff --git a/app/Models/Enums/FuelType.php b/app/Models/Enums/FuelType.php index 726360c7..f2d140f2 100644 --- a/app/Models/Enums/FuelType.php +++ b/app/Models/Enums/FuelType.php @@ -2,7 +2,7 @@ namespace App\Models\Enums; -class FuelType extends EnumBase { +class FuelType extends Enum { public const LOW_LEAD = 0; public const JET_A = 1; diff --git a/app/Models/Enums/JournalType.php b/app/Models/Enums/JournalType.php index 37a0cbab..b57f685a 100644 --- a/app/Models/Enums/JournalType.php +++ b/app/Models/Enums/JournalType.php @@ -6,7 +6,7 @@ namespace App\Models\Enums; * Class AcarsType * @package App\Models\Enums */ -class JournalType extends EnumBase +class JournalType extends Enum { public const AIRLINE = 0; public const USER = 1; diff --git a/app/Models/Enums/NavaidType.php b/app/Models/Enums/NavaidType.php index 664d57a6..f08f70a4 100644 --- a/app/Models/Enums/NavaidType.php +++ b/app/Models/Enums/NavaidType.php @@ -11,7 +11,7 @@ namespace App\Models\Enums; * https://github.com/skiselkov/openfmc/blob/master/airac.h * @package App\Models\Enums */ -class NavaidType extends EnumBase +class NavaidType extends Enum { public const VOR = 1 << 0; public const VOR_DME = 1 << 1; diff --git a/app/Models/Enums/PirepSource.php b/app/Models/Enums/PirepSource.php index c15a06d5..8cbd64bf 100644 --- a/app/Models/Enums/PirepSource.php +++ b/app/Models/Enums/PirepSource.php @@ -2,7 +2,7 @@ namespace App\Models\Enums; -class PirepSource extends EnumBase +class PirepSource extends Enum { public const MANUAL = 0; public const ACARS = 1; diff --git a/app/Models/Enums/PirepState.php b/app/Models/Enums/PirepState.php index 2b337411..51884672 100644 --- a/app/Models/Enums/PirepState.php +++ b/app/Models/Enums/PirepState.php @@ -2,7 +2,7 @@ namespace App\Models\Enums; -class PirepState extends EnumBase { +class PirepState extends Enum { public const REJECTED = -1; public const IN_PROGRESS = 0; // flight is ongoing diff --git a/app/Models/Enums/PirepStatus.php b/app/Models/Enums/PirepStatus.php index 78c9b537..2998251c 100644 --- a/app/Models/Enums/PirepStatus.php +++ b/app/Models/Enums/PirepStatus.php @@ -10,7 +10,7 @@ namespace App\Models\Enums; * Class PirepStatus * @package App\Models\Enums */ -class PirepStatus extends EnumBase +class PirepStatus extends Enum { public const PREFILE = 0; public const SCHEDULED = 0; diff --git a/app/Models/Enums/UserState.php b/app/Models/Enums/UserState.php index ae6e0b06..1d788a67 100644 --- a/app/Models/Enums/UserState.php +++ b/app/Models/Enums/UserState.php @@ -5,7 +5,7 @@ namespace App\Models\Enums; -class UserState extends EnumBase +class UserState extends Enum { public const PENDING = 0; public const ACTIVE = 1; diff --git a/app/Models/Flight.php b/app/Models/Flight.php index 75baff5b..f35b65dd 100644 --- a/app/Models/Flight.php +++ b/app/Models/Flight.php @@ -2,7 +2,7 @@ namespace App\Models; -use App\Models\Traits\HashId; +use App\Models\Traits\HashIdTrait; use App\Support\Units\Distance; use App\Support\Units\Time; use PhpUnitsOfMeasure\Exception\NonNumericValue; @@ -10,7 +10,7 @@ use PhpUnitsOfMeasure\Exception\NonStringUnitName; class Flight extends BaseModel { - use HashId; + use HashIdTrait; public const ID_MAX_LENGTH = 12; diff --git a/app/Models/Pirep.php b/app/Models/Pirep.php index bc46d187..e8459f09 100644 --- a/app/Models/Pirep.php +++ b/app/Models/Pirep.php @@ -4,7 +4,7 @@ namespace App\Models; use App\Models\Enums\AcarsType; use App\Models\Enums\PirepState; -use App\Models\Traits\HashId; +use App\Models\Traits\HashIdTrait; use App\Support\Units\Distance; use App\Support\Units\Fuel; use PhpUnitsOfMeasure\Exception\NonNumericValue; @@ -27,7 +27,7 @@ use PhpUnitsOfMeasure\Exception\NonStringUnitName; */ class Pirep extends BaseModel { - use HashId; + use HashIdTrait; public const ID_MAX_LENGTH = 12; diff --git a/app/Models/Subfleet.php b/app/Models/Subfleet.php index 94f765b7..c3b77fee 100644 --- a/app/Models/Subfleet.php +++ b/app/Models/Subfleet.php @@ -3,7 +3,7 @@ namespace App\Models; use App\Models\Enums\AircraftStatus; -use App\Models\Traits\Expensable; +use App\Models\Traits\ExpensableTrait; /** * Class Subfleet @@ -11,7 +11,7 @@ use App\Models\Traits\Expensable; */ class Subfleet extends BaseModel { - use Expensable; + use ExpensableTrait; public $table = 'subfleets'; diff --git a/app/Models/Traits/Expensable.php b/app/Models/Traits/ExpensableTrait.php similarity index 94% rename from app/Models/Traits/Expensable.php rename to app/Models/Traits/ExpensableTrait.php index 0ef08921..8e7cf8da 100644 --- a/app/Models/Traits/Expensable.php +++ b/app/Models/Traits/ExpensableTrait.php @@ -4,7 +4,7 @@ namespace App\Models\Traits; use App\Models\Expense; -trait Expensable +trait ExpensableTrait { public static function bootExpensable() { diff --git a/app/Models/Traits/HashId.php b/app/Models/Traits/HashIdTrait.php similarity index 97% rename from app/Models/Traits/HashId.php rename to app/Models/Traits/HashIdTrait.php index aef618de..5ba489d9 100644 --- a/app/Models/Traits/HashId.php +++ b/app/Models/Traits/HashIdTrait.php @@ -4,7 +4,7 @@ namespace App\Models\Traits; use Hashids\Hashids; -trait HashId +trait HashIdTrait { /** * @return string diff --git a/config/ide-helper.php b/config/ide-helper.php index e5759234..361e5d0f 100644 --- a/config/ide-helper.php +++ b/config/ide-helper.php @@ -1,4 +1,4 @@ - array( - 'app', + 'app/Models', ), @@ -71,7 +71,7 @@ return array( 'emergency' => 'Monolog\Logger::addEmergency', ) ), - + /* |-------------------------------------------------------------------------- | Interface implementations @@ -81,7 +81,7 @@ return array( | are detected by the helpers, others can be listed below. | */ - + 'interfaces' => array( ), diff --git a/resources/views/layouts/default/flights/table.blade.php b/resources/views/layouts/default/flights/table.blade.php index a1574d07..ffe478b9 100644 --- a/resources/views/layouts/default/flights/table.blade.php +++ b/resources/views/layouts/default/flights/table.blade.php @@ -39,12 +39,12 @@
@if($flight->distance) DISTANCE  - {!! $flight->distance !!} {!! setting('general.distance_unit') !!} + {!! $flight->distance !!} {!! setting('units.distance') !!} @endif
@if($flight->level) LEVEL  - {!! $flight->level !!} {!! setting('general.altitude_unit') !!} + {!! $flight->level !!} {!! setting('units.altitude') !!} @endif