refactored suggestions

This commit is contained in:
Denis Duliçi 2020-07-02 10:09:23 +03:00
parent d22a3e2001
commit 6cc2d9682b
4 changed files with 52 additions and 51 deletions

View File

@ -3,13 +3,12 @@
namespace App\Http\ViewComposers; namespace App\Http\ViewComposers;
use Illuminate\View\View; use Illuminate\View\View;
use App\Traits\Modules as RemoteModules; use App\Traits\Modules;
use Route; use Route;
use App\Models\Module\Module;
class Suggestions class Suggestions
{ {
use RemoteModules; use Modules;
/** /**
* Bind data to the view. * Bind data to the view.
@ -24,30 +23,32 @@ class Suggestions
return; return;
} }
$modules = false; if ((!$user = user()) || $user->cannot('read-modules-home')) {
return;
}
if (user()) { if (!$path = Route::current()->uri()) {
$path = Route::current()->uri(); return;
}
if ($path) { if (!$suggestions = $this->getSuggestions($path)) {
$suggestions = $this->getSuggestions($path); return;
}
if ($suggestions) { $modules = [];
$suggestion_modules = $suggestions->modules;
foreach ($suggestion_modules as $key => $module) { foreach ($suggestions->modules as $s_module) {
$installed = Module::where('company_id', session('company_id'))->where('alias', $module->alias)->first(); if ($this->moduleIsEnabled($s_module->alias)) {
if ($installed) {
continue; continue;
} }
$modules[] = $module; $modules[] = $s_module;
}
}
}
} }
$view->with(['suggestion_modules' => $modules]); if (empty($modules)) {
return;
}
$view->getFactory()->startPush('header_button_end', view('partials.admin.suggestions', compact('modules')));
} }
} }

View File

@ -558,7 +558,7 @@ trait Modules
return true; return true;
} }
public function moduleEnabled($alias) public function moduleIsEnabled($alias)
{ {
if (!$this->moduleExists($alias)) { if (!$this->moduleExists($alias)) {
return false; return false;

View File

@ -1,5 +1,6 @@
@stack('header_start') @stack('header_start')
<div id="header" class="header pb-6">
<div id="header" class="header pb-6">
<div class="container-fluid content-layout"> <div class="container-fluid content-layout">
<div class="header-body"> <div class="header-body">
<div class="row py-4 align-items-center"> <div class="row py-4 align-items-center">
@ -10,23 +11,16 @@
<div class="col-xs-12 col-sm-8 col-md-7"> <div class="col-xs-12 col-sm-8 col-md-7">
<div class="text-right"> <div class="text-right">
@stack('header_button_start')
@yield('new_button') @yield('new_button')
@permission('read-modules-home') @stack('header_button_end')
@if (!empty($suggestion_modules)) </div>
@foreach($suggestion_modules as $s_module) </div>
<span> </div>
<a href="{{ url($s_module->action_url) . '?' . http_build_query((array) $s_module->action_parameters) }}" class="btn btn-white btn-sm header-button-bottom" target="{{ $s_module->action_target }}"><span class="fa fa-rocket"></span> &nbsp;{{ $s_module->name }}</a> </div>
</span> </div>
@endforeach </div>
@endif
@endpermission
@stack('header_button')
</div>
</div>
</div>
</div>
</div>
</div>
@stack('header_end') @stack('header_end')

View File

@ -0,0 +1,6 @@
@foreach($modules as $module)
<span>
<a href="{{ url($module->action_url) . '?' . http_build_query((array) $module->action_parameters) }}" class="btn btn-white btn-sm header-button-bottom" target="{{ $module->action_target }}"><span class="fa fa-rocket"></span> &nbsp;{{ $module->name }}</a>
</span>
@endforeach