From 6cc2d9682b62f5d512fe3e89c096873587bce9b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Thu, 2 Jul 2020 10:09:23 +0300 Subject: [PATCH] refactored suggestions --- app/Http/ViewComposers/Suggestions.php | 53 ++++++++++--------- app/Traits/Modules.php | 6 +-- .../views/partials/admin/header.blade.php | 38 ++++++------- .../partials/admin/suggestions.blade.php | 6 +++ 4 files changed, 52 insertions(+), 51 deletions(-) create mode 100644 resources/views/partials/admin/suggestions.blade.php diff --git a/app/Http/ViewComposers/Suggestions.php b/app/Http/ViewComposers/Suggestions.php index 011c3c843..d97523097 100644 --- a/app/Http/ViewComposers/Suggestions.php +++ b/app/Http/ViewComposers/Suggestions.php @@ -3,13 +3,12 @@ namespace App\Http\ViewComposers; use Illuminate\View\View; -use App\Traits\Modules as RemoteModules; +use App\Traits\Modules; use Route; -use App\Models\Module\Module; class Suggestions { - use RemoteModules; + use Modules; /** * Bind data to the view. @@ -24,30 +23,32 @@ class Suggestions return; } - $modules = false; - - if (user()) { - $path = Route::current()->uri(); - - if ($path) { - $suggestions = $this->getSuggestions($path); - - if ($suggestions) { - $suggestion_modules = $suggestions->modules; - - foreach ($suggestion_modules as $key => $module) { - $installed = Module::where('company_id', session('company_id'))->where('alias', $module->alias)->first(); - - if ($installed) { - continue; - } - - $modules[] = $module; - } - } - } + if ((!$user = user()) || $user->cannot('read-modules-home')) { + return; } - $view->with(['suggestion_modules' => $modules]); + if (!$path = Route::current()->uri()) { + return; + } + + if (!$suggestions = $this->getSuggestions($path)) { + return; + } + + $modules = []; + + foreach ($suggestions->modules as $s_module) { + if ($this->moduleIsEnabled($s_module->alias)) { + continue; + } + + $modules[] = $s_module; + } + + if (empty($modules)) { + return; + } + + $view->getFactory()->startPush('header_button_end', view('partials.admin.suggestions', compact('modules'))); } } diff --git a/app/Traits/Modules.php b/app/Traits/Modules.php index 5a81573fd..cfe5d58b7 100644 --- a/app/Traits/Modules.php +++ b/app/Traits/Modules.php @@ -558,7 +558,7 @@ trait Modules return true; } - public function moduleEnabled($alias) + public function moduleIsEnabled($alias) { if (!$this->moduleExists($alias)) { return false; @@ -674,10 +674,10 @@ trait Modules if (isset($data['query'])){ foreach($data['query'] as $key => $value) { - $result .= '.' . $key . '.' . $value; + $result .= '.' . $key . '.' . $value; } } return $result; - } + } } diff --git a/resources/views/partials/admin/header.blade.php b/resources/views/partials/admin/header.blade.php index 0381c8d74..ad0e8e486 100644 --- a/resources/views/partials/admin/header.blade.php +++ b/resources/views/partials/admin/header.blade.php @@ -1,32 +1,26 @@ @stack('header_start') -