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