added landing page event

This commit is contained in:
Denis Duliçi 2020-07-26 19:47:23 +03:00
parent 7feb9e9081
commit dd9e95f57e
8 changed files with 122 additions and 42 deletions

View File

@ -0,0 +1,22 @@
<?php
namespace App\Events\Auth;
use Illuminate\Queue\SerializesModels;
class LandingPageShowing
{
use SerializesModels;
public $user;
/**
* Create a new event instance.
*
* @param $user
*/
public function __construct($user)
{
$this->user = $user;
}
}

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Auth;
use App\Abstracts\Http\Controller;
use App\Events\Auth\LandingPageShowing;
use App\Http\Requests\Auth\User as Request;
use App\Jobs\Auth\CreateUser;
use App\Jobs\Auth\DeleteUser;
@ -46,25 +47,12 @@ class Users extends Controller
*/
public function create()
{
$routes = [
'dashboard' => trans_choice('general.dashboards', 1),
'items.index' => trans_choice('general.items', 2),
'invoices.index' => trans_choice('general.invoices', 2),
'revenues.index' => trans_choice('general.revenues', 2),
'customers.index' => trans_choice('general.customers', 2),
'bills.index' => trans_choice('general.bills', 2),
'payments.index' => trans_choice('general.payments', 2),
'vendors.index' => trans_choice('general.vendors', 2),
'accounts.index' => trans_choice('general.accounts', 2),
'transfers.index' => trans_choice('general.transfers', 2),
'transactions.index' => trans_choice('general.transactions', 2),
'reconciliations.index' => trans_choice('general.reconciliations', 2),
'reports.index' => trans_choice('general.reports', 2),
'settings.index' => trans_choice('general.settings', 2),
'categories.index' => trans_choice('general.categories', 2),
'currencies.index' => trans_choice('general.currencies', 2),
'taxes.index' => trans_choice('general.taxes', 2),
];
$u = new \stdClass();
$u->landing_pages = [];
event(new LandingPageShowing($u));
$landing_pages = $u->landing_pages;
$roles = Role::all()->reject(function ($r) {
return $r->hasPermission('read-client-portal');
@ -72,7 +60,7 @@ class Users extends Controller
$companies = user()->companies()->take(10)->get()->sortBy('name')->pluck('name', 'id');
return view('auth.users.create', compact('roles', 'companies', 'routes'));
return view('auth.users.create', compact('roles', 'companies', 'landing_pages'));
}
/**
@ -116,25 +104,12 @@ class Users extends Controller
abort(403);
}
$routes = [
'dashboard' => trans_choice('general.dashboards', 1),
'items.index' => trans_choice('general.items', 2),
'invoices.index' => trans_choice('general.invoices', 2),
'revenues.index' => trans_choice('general.revenues', 2),
'customers.index' => trans_choice('general.customers', 2),
'bills.index' => trans_choice('general.bills', 2),
'payments.index' => trans_choice('general.payments', 2),
'vendors.index' => trans_choice('general.vendors', 2),
'accounts.index' => trans_choice('general.accounts', 2),
'transfers.index' => trans_choice('general.transfers', 2),
'transactions.index' => trans_choice('general.transactions', 2),
'reconciliations.index' => trans_choice('general.reconciliations', 2),
'reports.index' => trans_choice('general.reports', 2),
'settings.index' => trans_choice('general.settings', 2),
'categories.index' => trans_choice('general.categories', 2),
'currencies.index' => trans_choice('general.currencies', 2),
'taxes.index' => trans_choice('general.taxes', 2),
];
$u = new \stdClass();
$u->landing_pages = [];
event(new LandingPageShowing($u));
$landing_pages = $u->landing_pages;
if ($user->can('read-client-portal')) {
// Show only roles with customer permission
@ -150,7 +125,7 @@ class Users extends Controller
$companies = user()->companies()->take(10)->get()->sortBy('name')->pluck('name', 'id');
return view('auth.users.edit', compact('user', 'companies', 'roles', 'routes'));
return view('auth.users.edit', compact('user', 'companies', 'roles', 'landing_pages'));
}
/**

View File

@ -0,0 +1,42 @@
<?php
namespace App\Listeners\Auth;
use App\Events\Auth\LandingPageShowing as Event;
class AddLandingPages
{
/**
* Handle the event.
*
* @param Event $event
* @return void
*/
public function handle(Event $event)
{
$routes = [
'dashboard' => trans_choice('general.dashboards', 1),
'items.index' => trans_choice('general.items', 2),
'invoices.index' => trans_choice('general.invoices', 2),
'revenues.index' => trans_choice('general.revenues', 2),
'customers.index' => trans_choice('general.customers', 2),
'bills.index' => trans_choice('general.bills', 2),
'payments.index' => trans_choice('general.payments', 2),
'vendors.index' => trans_choice('general.vendors', 2),
'accounts.index' => trans_choice('general.accounts', 2),
'transfers.index' => trans_choice('general.transfers', 2),
'transactions.index' => trans_choice('general.transactions', 2),
'reconciliations.index' => trans_choice('general.reconciliations', 2),
'reports.index' => trans_choice('general.reports', 2),
'settings.index' => trans_choice('general.settings', 2),
'categories.index' => trans_choice('general.categories', 2),
'currencies.index' => trans_choice('general.currencies', 2),
'taxes.index' => trans_choice('general.taxes', 2),
'users.index' => trans_choice('general.users', 2),
];
foreach($routes as $key => $value) {
$event->user->landing_pages[$key] = $value;
}
}
}

View File

@ -29,6 +29,9 @@ class Event extends Provider
'Illuminate\Auth\Events\Logout' => [
'App\Listeners\Auth\Logout',
],
'App\Events\Auth\LandingPageShowing' => [
'App\Listeners\Auth\AddLandingPages',
],
'App\Events\Purchase\BillCreated' => [
'App\Listeners\Purchase\CreateBillCreatedHistory',
'App\Listeners\Purchase\IncreaseNextBillNumber',

View File

@ -0,0 +1,19 @@
<?php
namespace Modules\OfflinePayments\Listeners;
use App\Events\Auth\LandingPageShowing as Event;
class AddLandingPage
{
/**
* Handle the event.
*
* @param Event $event
* @return void
*/
public function handle(Event $event)
{
$event->user->landing_pages['offline-payments.settings.edit'] = trans('offline-payments::general.name');
}
}

View File

@ -0,0 +1,19 @@
<?php
namespace Modules\PaypalStandard\Listeners;
use App\Events\Auth\LandingPageShowing as Event;
class AddLandingPage
{
/**
* Handle the event.
*
* @param Event $event
* @return void
*/
public function handle(Event $event)
{
$event->user->landing_pages['paypal-standard.settings.edit'] = trans('paypal-standard::general.name');
}
}

View File

@ -27,7 +27,7 @@
{{ Form::selectGroup('locale', trans_choice('general.languages', 1), 'flag', language()->allowed(), setting('default.locale')) }}
{{ Form::selectGroup('landing_page', trans('auth.landing_page'), 'sign-in-alt', $routes, 'dashboard') }}
{{ Form::selectGroup('landing_page', trans('auth.landing_page'), 'sign-in-alt', $landing_pages, 'dashboard') }}
@if (setting('default.use_gravatar', '0') == '1')
@stack('picture_input_start')

View File

@ -28,7 +28,7 @@
{{ Form::selectGroup('locale', trans_choice('general.languages', 1), 'flag', language()->allowed(), $user->locale) }}
{{ Form::selectGroup('landing_page', trans('auth.landing_page'), 'sign-in-alt', $routes, $user->landing_page) }}
{{ Form::selectGroup('landing_page', trans('auth.landing_page'), 'sign-in-alt', $landing_pages, $user->landing_page) }}
@if (setting('default.use_gravatar', '0') == '1')
@stack('picture_input_start')