diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 2d4b717..56af264 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -3,7 +3,6 @@ namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; -use Symfony\Component\HttpKernel\Exception\HttpException; use Throwable; class Handler extends ExceptionHandler diff --git a/app/Models/User.php b/app/Models/User.php index d4cef73..8987086 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -11,6 +11,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; +use Laravel\Nova\Actions\Actionable; use Laravel\Sanctum\HasApiTokens; use Spatie\Permission\Traits\HasRoles; @@ -32,6 +33,7 @@ use Spatie\Permission\Traits\HasRoles; */ class User extends Authenticatable { + use Actionable; use HasApiTokens; use HasFactory; use HasRoles; diff --git a/app/Modules/CardOrder/Nova/Actions/RetryNovaCardOrderPayment.php b/app/Modules/CardOrder/Nova/Actions/RetryNovaCardOrderPayment.php index 9f2fe62..a25c44b 100644 --- a/app/Modules/CardOrder/Nova/Actions/RetryNovaCardOrderPayment.php +++ b/app/Modules/CardOrder/Nova/Actions/RetryNovaCardOrderPayment.php @@ -2,15 +2,12 @@ namespace App\Modules\CardOrder\Nova\Actions; -use App\Nova\Resources\Order\Card\CardOrder; use App\Repos\Order\OrderRepo; use App\Repos\Payment\OnlinePaymentRepo; -use Closure; use Illuminate\Bus\Queueable; use Illuminate\Http\Request; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Support\Collection; -use Illuminate\Support\Facades\Gate; use Laravel\Nova\Actions\Action; use Laravel\Nova\Actions\ActionResponse; use Laravel\Nova\Fields\ActionFields; diff --git a/app/Nova/Actions/CheckOnlinePaymentStatus.php b/app/Nova/Actions/CheckOnlinePaymentStatus.php index 68e86fa..f7ffd78 100644 --- a/app/Nova/Actions/CheckOnlinePaymentStatus.php +++ b/app/Nova/Actions/CheckOnlinePaymentStatus.php @@ -4,12 +4,10 @@ namespace App\Nova\Actions; use App\Models\Payment\OnlinePaymentHistory; use Illuminate\Bus\Queueable; -use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Http; use Laravel\Nova\Actions\Action; -use Laravel\Nova\Actions\ActionResponse; use Laravel\Nova\Fields\ActionFields; use Laravel\Nova\Http\Requests\NovaRequest; @@ -38,10 +36,10 @@ class CheckOnlinePaymentStatus extends Action $item = $models->first(); $onlinePaymentResource = OnlinePaymentHistory::query() - ->where('online_paymantable_type', $this->paymantable_type) - ->where('online_paymantable_id', $item->id) - ->latest() - ->first(); + ->where('online_paymantable_type', $this->paymantable_type) + ->where('online_paymantable_id', $item->id) + ->latest() + ->first(); if (! $onlinePaymentResource) { return Action::modal('modal-response', [ diff --git a/app/Nova/Resources/Order/Card/CardOrder.php b/app/Nova/Resources/Order/Card/CardOrder.php index 1f59b1f..4036062 100644 --- a/app/Nova/Resources/Order/Card/CardOrder.php +++ b/app/Nova/Resources/Order/Card/CardOrder.php @@ -382,7 +382,7 @@ class CardOrder extends Resource public function actions(NovaRequest $request): array { return [ - (new RetryNovaCardOrderPayment()) + (new RetryNovaCardOrderPayment) ->sole() ->onlyOnDetail() ->canSee(fn () => true) diff --git a/app/Nova/User/Client.php b/app/Nova/User/Client.php index e9ec3ef..00e9c29 100644 --- a/app/Nova/User/Client.php +++ b/app/Nova/User/Client.php @@ -44,7 +44,7 @@ class Client extends Resource * @var array */ public static $search = [ - 'id', 'name', 'email', + 'id', 'username', 'name', 'email', 'phone', ]; /** @@ -99,7 +99,9 @@ class Client extends Resource NovaInputmask::make(__('Phone'), 'phone') ->mask('+(\\9\\93)-99-99-99-99') ->storeRawValue() - ->rules('nullable', 'integer', 'between:61000000, 71999999'), + ->rules('required', 'integer', 'between:61000000, 71999999') + ->creationRules('unique:users,phone') + ->updateRules('unique:users,phone,{{resourceId}}'), Text::make(__('Email'), 'email') ->sortable() diff --git a/app/Nova/User/Operator.php b/app/Nova/User/Operator.php index a2c4f3e..ca3bc0b 100644 --- a/app/Nova/User/Operator.php +++ b/app/Nova/User/Operator.php @@ -44,7 +44,7 @@ class Operator extends Resource * @var array */ public static $search = [ - 'id', 'name', 'email', + 'id', 'username', 'name', 'email', 'phone', ]; /** @@ -135,7 +135,8 @@ class Operator extends Resource ->canSeeWhen('isAdmin', $this), BelongsToMany::make(__('Branches'), 'branches', Branch::class) - ->canSeeWhen('isAdmin', $this), + ->canSeeWhen('isAdmin', $this) + ->filterable(), HasMany::make(__('Loan order'), 'loanOrders', LoanOrder::class), diff --git a/app/Repos/System/Nova/NovaMenuRepo.php b/app/Repos/System/Nova/NovaMenuRepo.php index 1a0b067..40ac7d7 100644 --- a/app/Repos/System/Nova/NovaMenuRepo.php +++ b/app/Repos/System/Nova/NovaMenuRepo.php @@ -71,7 +71,7 @@ class NovaMenuRepo MenuItem::resource(Operator::class), MenuItem::resource(Client::class), MenuItem::resource(User::class)->name(__('All users')), - ])->icon('user-group'), + ])->collapsedByDefault()->icon('user-group'), MenuSection::make(__('System'), [ MenuGroup::make(__('Users'), [ diff --git a/lang/tk.json b/lang/tk.json index 1f1dd66..a77f05e 100644 --- a/lang/tk.json +++ b/lang/tk.json @@ -334,5 +334,7 @@ "Required docs": "Gerekli resminamalar", "Payment items": "Тöleg taryhy", "This month": "Şul aý", - "Retry payment": "Tölegi täzeden geçir" + "Retry payment": "Tölegi täzeden geçir", + "Operators": "Operatorlar", + "Operator": "Operator" } diff --git a/resources/js/vendor/nova/js/additional.js b/resources/js/vendor/nova/js/additional.js index 229c64d..573c5e0 100644 --- a/resources/js/vendor/nova/js/additional.js +++ b/resources/js/vendor/nova/js/additional.js @@ -67,7 +67,7 @@ async function fetchLoanHistory(containerID, passport_serie, passport_id) { Nova.$progress.start() Nova.request().post('/api/fetch-loan-history', formData).then(response => { - let result = response.data; + let result = (typeof response.data === 'string') ? JSON.parse(response.data) : response.data; let recipients = Array.from(result.recipient);