diff --git a/app/Http/Controllers/Common/Dashboards.php b/app/Http/Controllers/Common/Dashboards.php index c3f245197..39fdae997 100644 --- a/app/Http/Controllers/Common/Dashboards.php +++ b/app/Http/Controllers/Common/Dashboards.php @@ -10,6 +10,7 @@ use App\Jobs\Common\UpdateDashboard; use App\Models\Common\Company; use App\Models\Common\Dashboard; use App\Models\Common\Widget; +use App\Models\Module\Module; use App\Traits\DateTime; use App\Traits\Users; use App\Utilities\Widgets; @@ -68,6 +69,12 @@ class Dashboards extends Controller } $widgets = Widget::where('dashboard_id', $dashboard->id)->orderBy('sort', 'asc')->get()->filter(function ($widget) { + if ($alias = Widgets::getModuleAlias($widget->class)) { + if (!Module::alias($alias)->enabled()->first()) { + return false; + } + } + return Widgets::canRead($widget->class); }); diff --git a/app/Utilities/Widgets.php b/app/Utilities/Widgets.php index 2038e114f..aaad77430 100644 --- a/app/Utilities/Widgets.php +++ b/app/Utilities/Widgets.php @@ -100,8 +100,8 @@ class Widgets $prefix = 'read-'; // Add module - if (strtolower($arr[0]) == 'modules') { - $prefix .= Str::kebab($arr[1]) . '-'; + if ($alias = Widgets::getModuleAlias($class)) { + $prefix .= $alias . '-'; } $prefix .= 'widgets-'; @@ -117,4 +117,22 @@ class Widgets { return (new $class())->getDefaultName(); } + + public static function isModule($class) + { + $arr = explode('\\', $class); + + return (strtolower($arr[0]) == 'modules'); + } + + public static function getModuleAlias($class) + { + if (!static::isModule($class)) { + return false; + } + + $arr = explode('\\', $class); + + return Str::kebab($arr[1]); + } }