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\Company;
use App\Models\Common\Dashboard; use App\Models\Common\Dashboard;
use App\Models\Common\Widget; use App\Models\Common\Widget;
use App\Models\Module\Module;
use App\Traits\DateTime; use App\Traits\DateTime;
use App\Traits\Users; use App\Traits\Users;
use App\Utilities\Widgets; 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) { $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); return Widgets::canRead($widget->class);
}); });

View File

@ -100,8 +100,8 @@ class Widgets
$prefix = 'read-'; $prefix = 'read-';
// Add module // Add module
if (strtolower($arr[0]) == 'modules') { if ($alias = Widgets::getModuleAlias($class)) {
$prefix .= Str::kebab($arr[1]) . '-'; $prefix .= $alias . '-';
} }
$prefix .= 'widgets-'; $prefix .= 'widgets-';
@ -117,4 +117,22 @@ class Widgets
{ {
return (new $class())->getDefaultName(); 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]);
}
} }