CustomerMenu.php 1.7 KB
<?php

namespace App\Http\Middleware;

use App\Events\CustomerMenuCreated;
use Auth;
use Closure;
use Menu;

class CustomerMenu
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // Check if logged in
        if (!Auth::check()) {
            return $next($request);
        }

        Menu::create('CustomerMenu', function ($menu) {
            $menu->style('adminlte');

            $user = Auth::user();

            // Dashboard
            $menu->add([
                'url'   => 'customers/',
                'title' => trans('general.dashboard'),
                'icon'  => 'fa fa-dashboard',
                'order' => 1,
            ]);

            // Invoices
            $menu->add([
                'url'   => 'customers/invoices',
                'title' => trans_choice('general.invoices', 2),
                'icon'  => 'fa fa-wpforms',
                'order' => 2,
            ]);

            // Payments
            $menu->add([
                'url'   => 'customers/payments',
                'title' => trans_choice('general.payments', 2),
                'icon'  => 'fa fa-money',
                'order' => 3,
            ]);

            // Payments
            $menu->add([
                'url'   => 'customers/transactions',
                'title' => trans_choice('general.transactions', 2),
                'icon'  => 'fa fa-list',
                'order' => 4,
            ]);

            // Fire the event to extend the menu
            event(new CustomerMenuCreated($menu));
        });

        return $next($request);
    }
}