akaunting 3.0 (the last dance)
This commit is contained in:
42
app/View/Components/Layouts/Admin/Menu.php
Normal file
42
app/View/Components/Layouts/Admin/Menu.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Layouts\Admin;
|
||||
|
||||
use App\Abstracts\View\Component;
|
||||
use App\Utilities\Versions;
|
||||
|
||||
class Menu extends Component
|
||||
{
|
||||
/** array */
|
||||
public $companies = [];
|
||||
|
||||
public $notification_count;
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->companies = $this->getCompanies();
|
||||
|
||||
$version_update = Versions::getUpdates();
|
||||
|
||||
$this->notification_count = user()->unreadNotifications->count();
|
||||
$this->notification_count += count($version_update);
|
||||
|
||||
return view('components.layouts.admin.menu');
|
||||
}
|
||||
|
||||
public function getCompanies()
|
||||
{
|
||||
if ($user = user()) {
|
||||
$companies = $user->companies()->enabled()->limit(10)->get()->sortBy('name');
|
||||
} else {
|
||||
$companies = [];
|
||||
}
|
||||
|
||||
return $companies;
|
||||
}
|
||||
}
|
57
app/View/Components/Layouts/Admin/Notifications.php
Normal file
57
app/View/Components/Layouts/Admin/Notifications.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Layouts\Admin;
|
||||
|
||||
use App\Abstracts\View\Component;
|
||||
use App\Traits\Modules;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
class Notifications extends Component
|
||||
{
|
||||
use Modules;
|
||||
|
||||
public $notifications;
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->notifications = $this->getNotify();
|
||||
|
||||
return view('components.layouts.admin.notifications');
|
||||
}
|
||||
|
||||
public function getNotify()
|
||||
{
|
||||
if (! $path = Route::current()->uri()) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$path = str_replace('{company_id}/', '', $path);
|
||||
$path = str_replace('{company_id}', '', $path);
|
||||
|
||||
$notify = [];
|
||||
$notifications = $this->getNotifications($path);
|
||||
|
||||
// Push to a stack
|
||||
foreach ($notifications as $notification) {
|
||||
$path = str_replace('/', '#', $notification->path);
|
||||
|
||||
$message = str_replace('#path#', $path, $notification->message);
|
||||
$message = str_replace('#token#', csrf_token(), $message);
|
||||
$message = str_replace('#url#', route('dashboard'), $message);
|
||||
$message = str_replace('#company_id#', company_id(), $message);
|
||||
|
||||
if (! setting('notifications.' . $notification->path . '.' . $notification->id . '.status', 1)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$notify[] = $message;
|
||||
}
|
||||
|
||||
return $notify;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user