user notifications added
This commit is contained in:
@@ -10,6 +10,7 @@ use App\Nova\Filters\StatusFilter;
|
||||
use App\Nova\Resource;
|
||||
use App\Nova\Resources\Order\Loan\Concerns\LoanOrderFieldsForDetail;
|
||||
use App\Nova\Resources\Order\Loan\Concerns\LoanOrderFieldsForIndex;
|
||||
use App\Repos\Order\Loan\LoanOrderRepo;
|
||||
use App\Repos\Order\Loan\LoanTypeRepo;
|
||||
use App\Repos\Order\OrderRepo;
|
||||
use App\Repos\System\Nova\NovaRepo;
|
||||
@@ -126,6 +127,42 @@ class LoanOrder extends Resource
|
||||
return $query->where('user_id', $request->user()->id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a callback to be called after the resource is created.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @return void
|
||||
*/
|
||||
public static function afterCreate(NovaRequest $request, Model $model): void
|
||||
{
|
||||
LoanOrderRepo::notifyUser($request, $model, __('Loan order created'), 'success');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a callback to be called after the resource is updated.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @return void
|
||||
*/
|
||||
public static function afterUpdate(NovaRequest $request, Model $model): void
|
||||
{
|
||||
LoanOrderRepo::notifyUser($request, $model, __('Loan order updated'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a callback to be called after the resource is deleted.
|
||||
*
|
||||
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
|
||||
* @param \Illuminate\Database\Eloquent\Model $model
|
||||
* @return void
|
||||
*/
|
||||
public static function afterDelete(NovaRequest $request, Model $model): void
|
||||
{
|
||||
LoanOrderRepo::notifyUser($request, $model, __('Loan order deleted'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the fields for index.
|
||||
*
|
||||
|
||||
@@ -3,9 +3,13 @@
|
||||
namespace App\Repos\Order\Loan;
|
||||
|
||||
use App\Models\Branch\Branch;
|
||||
use App\Nova\Resources\Order\Loan\LoanOrder as NovaLoanOrder;
|
||||
use App\Repos\Order\OrderRepo;
|
||||
use Closure;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Laravel\Nova\Http\Requests\NovaRequest;
|
||||
use Laravel\Nova\Notifications\NovaNotification;
|
||||
use Laravel\Nova\URL;
|
||||
|
||||
class LoanOrderRepo
|
||||
{
|
||||
@@ -40,14 +44,14 @@ class LoanOrderRepo
|
||||
public static function created(): Closure
|
||||
{
|
||||
return function ($model) {
|
||||
$model->update(['unique_id' => static::fillUniqueId($model)]);
|
||||
$model->update(['unique_id' => static::generateUniqueId($model)]);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Fill unique id
|
||||
*/
|
||||
public static function fillUniqueId(mixed $model): string
|
||||
public static function generateUniqueId(mixed $model): string
|
||||
{
|
||||
return sprintf(
|
||||
'TB%s-%s',
|
||||
@@ -55,4 +59,23 @@ class LoanOrderRepo
|
||||
$model->id,
|
||||
);
|
||||
}
|
||||
|
||||
public static function notifyUser(NovaRequest $request, Model $model, string $message, string $type = 'info'): void
|
||||
{
|
||||
/** @var \App\Models\Order\Loan\LoanOrder */
|
||||
$loanOrder = $model;
|
||||
|
||||
$id = $loanOrder->id;
|
||||
$nova_path = config('nova.path');
|
||||
$loan_order_path = NovaLoanOrder::uriKey();
|
||||
$url = url($nova_path.'/resources/'.$loan_order_path.'/'.$id);
|
||||
|
||||
$request->user()->notifyNow(
|
||||
NovaNotification::make()
|
||||
->message($message.': '.$loanOrder->unique_id)
|
||||
->action(__('See'), URL::remote($url))
|
||||
->icon('cash')
|
||||
->type($type)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ class NovaMenuRepo
|
||||
MenuItem::resource(User::class)->name(__('All users')),
|
||||
])->collapsedByDefault()->icon('user-group'),
|
||||
|
||||
MenuSection::make(__('System'), [
|
||||
MenuSection::make(__('Settings'), [
|
||||
MenuGroup::make(__('Users'), [
|
||||
MenuItem::resource(Role::class),
|
||||
MenuItem::resource(Permission::class),
|
||||
|
||||
Reference in New Issue
Block a user