akaunting 3.0 (the last dance)
This commit is contained in:
@@ -8,23 +8,22 @@ use Illuminate\Support\Str;
|
||||
|
||||
class Widgets
|
||||
{
|
||||
public static $core_widgets = [
|
||||
'App\Widgets\Receivables',
|
||||
'App\Widgets\Payables',
|
||||
'App\Widgets\CashFlow',
|
||||
'App\Widgets\ProfitLoss',
|
||||
'App\Widgets\ExpensesByCategory',
|
||||
'App\Widgets\AccountBalance',
|
||||
'App\Widgets\Currencies',
|
||||
];
|
||||
|
||||
public static function getClasses($alias = 'core', $check_permission = true)
|
||||
{
|
||||
$classes = $list = [];
|
||||
|
||||
if (in_array($alias, ['core', 'all'])) {
|
||||
$list = [
|
||||
'App\Widgets\TotalIncome',
|
||||
'App\Widgets\TotalExpenses',
|
||||
'App\Widgets\TotalProfit',
|
||||
'App\Widgets\CashFlow',
|
||||
'App\Widgets\IncomeByCategory',
|
||||
'App\Widgets\ExpensesByCategory',
|
||||
'App\Widgets\AccountBalance',
|
||||
'App\Widgets\LatestIncome',
|
||||
'App\Widgets\LatestExpenses',
|
||||
'App\Widgets\Currencies',
|
||||
];
|
||||
$list = static::$core_widgets;
|
||||
}
|
||||
|
||||
Module::enabled()->each(function ($module) use (&$list, $alias) {
|
||||
@@ -57,7 +56,7 @@ class Widgets
|
||||
if (is_string($model)) {
|
||||
$class_name = $model;
|
||||
|
||||
if (!class_exists($class_name)) {
|
||||
if (! class_exists($class_name)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -76,7 +75,7 @@ class Widgets
|
||||
$model->settings = $class->getDefaultSettings();
|
||||
}
|
||||
} else {
|
||||
if ((!$model instanceof Widget) || !class_exists($model->class)) {
|
||||
if ((! $model instanceof Widget) || ! class_exists($model->class)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -100,11 +99,21 @@ class Widgets
|
||||
return (static::isModuleEnabled($class) && static::canRead($class));
|
||||
}
|
||||
|
||||
public static function cannotShow($class)
|
||||
{
|
||||
return ! static::canShow($class);
|
||||
}
|
||||
|
||||
public static function canRead($class)
|
||||
{
|
||||
return user()->can(static::getPermission($class));
|
||||
}
|
||||
|
||||
public static function cannotRead($class)
|
||||
{
|
||||
return ! static::canRead($class);
|
||||
}
|
||||
|
||||
public static function getPermission($class)
|
||||
{
|
||||
$arr = explode('\\', $class);
|
||||
@@ -132,7 +141,7 @@ class Widgets
|
||||
|
||||
public static function isModuleEnabled($class)
|
||||
{
|
||||
if (!$alias = static::getModuleAlias($class)) {
|
||||
if (! $alias = static::getModuleAlias($class)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -143,6 +152,11 @@ class Widgets
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function isModuleDisabled($class)
|
||||
{
|
||||
return ! static::isModuleEnabled($class);
|
||||
}
|
||||
|
||||
public static function isModule($class)
|
||||
{
|
||||
$arr = is_array($class) ? $class : explode('\\', $class);
|
||||
@@ -150,9 +164,14 @@ class Widgets
|
||||
return (strtolower($arr[0]) == 'modules');
|
||||
}
|
||||
|
||||
public static function isNotModule($class)
|
||||
{
|
||||
return ! static::isModule($class);
|
||||
}
|
||||
|
||||
public static function getModuleAlias($class)
|
||||
{
|
||||
if (!static::isModule($class)) {
|
||||
if (static::isNotModule($class)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -160,4 +179,25 @@ class Widgets
|
||||
|
||||
return Str::kebab($arr[1]);
|
||||
}
|
||||
|
||||
public static function getCoreWidgets()
|
||||
{
|
||||
return static::$core_widgets;
|
||||
}
|
||||
|
||||
public static function setCoreWidgets($widgets)
|
||||
{
|
||||
static::$core_widgets = $widgets;
|
||||
}
|
||||
|
||||
public static function optimizeCoreWidgets()
|
||||
{
|
||||
$core_widgets = collect(static::getCoreWidgets());
|
||||
|
||||
$core_widgets->pop();
|
||||
|
||||
$core_widgets->push('App\Widgets\BankFeeds');
|
||||
|
||||
static::setCoreWidgets($core_widgets->all());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user