From 6ca0ec5522bfa25833227e2b423d8a53c17cb632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Fri, 12 Jun 2020 17:32:00 +0300 Subject: [PATCH] check module status before showing widget --- app/Http/Controllers/Common/Dashboards.php | 7 +++++++ app/Utilities/Widgets.php | 22 ++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) 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]); + } }