check module status before showing widget

This commit is contained in:
Denis Duliçi 2020-06-12 17:32:00 +03:00
parent 060ffcd70a
commit 6ca0ec5522
2 changed files with 27 additions and 2 deletions

View File

@ -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);
});

View File

@ -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]);
}
}