sifatbaho

This commit is contained in:
2026-04-05 05:31:24 +05:00
commit df3d57f503
2609 changed files with 369825 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
@extends('layouts.master')
@section('title')
@lang('translation.appraisers-bonus')
@endsection
@section('content')
@component('components.breadcrumb')
@slot('li_1')
@lang("translation.pages")
@endslot
@slot('title')
@lang('translation.appraisers-bonus')
@endslot
@endcomponent
<div class="row">
<div class="col-xl-12">
<div class="card">
<div class="card-header">
<div class="d-flex align-items-center">
<h5 class="card-title mb-0 flex-grow-1"> @lang('translation.appraisers-bonuses',[$appraiser->name]) </h5>
<form action="{{ route('appraisers.bonus') }}" method="get" autocomplete="off" novalidate>
<div class="flex-shrink-0">
<input type="hidden" name="appraiser_id" value="{{ $appraiser->id }}">
@component('components.page-size',['size'=>$size])@endcomponent
</div>
</form>
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-hover table-borderless align-middle table-nowrap mb-0">
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">@lang('translation.order-number')</th>
<th scope="col">@lang('translation.order-customer')</th>
<th scope="col">@lang('translation.amount')</th>
</tr>
</thead>
<tbody>
@foreach ($bonuses as $bonus)
<tr>
<td class="fw-medium">{{($bonuses->currentPage() - 1) * $bonuses->perPage() + $loop->iteration}}</td>
<td>
<a href="{{ route('auto.show', [$bonus->order_id]) }}">
{{ $bonus->number }}
</a>
</td>
<td>
{{ $bonus->customer }}
</td>
<td>
@component('components.price', ['balance' => $bonus->amount])
@endcomponent
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">{{ $bonuses->withQueryString()->links() }}</div>
</div><!-- end card-body -->
</div><!-- end card -->
</div><!-- end col -->
</div>
@endsection

View File

@@ -0,0 +1,253 @@
@extends('layouts.master')
@section('title')
@lang('translation.appraisers')
@endsection
@section('content')
@component('components.breadcrumb')
@slot('li_1')
@lang('translation.pages')
@endslot
@slot('title')
@lang('translation.appraisers')
@endslot
@endcomponent
<div class="row">
<div class="col-xl-12">
<div class="card">
<div class="card-header border-0">
<div class="d-flex align-items-center">
<h5 class="card-title mb-0 flex-grow-1">@lang('translation.order-list')</h5>
@if(in_array(Auth::user()->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
<div class="flex-shrink-0">
<a href="javascript:void(0);" data-bs-toggle="modal"
title="Update user informations" data-bs-target="#givingBonusModal"
class="btn btn-outline-warning waves-effect waves-light mx-3">
@lang('translation.give-bonus')
</a>
</div>
@endif
<div class="flex-shrink-0">
<form action="{{ route('user.appraisers') }}" method="get" autocomplete="off" novalidate>
@component('components.page-size',['size'=>$size])@endcomponent
</form>
</div>
</div>
<div class="card-body">
<ul class="nav nav-tabs nav-tabs-custom nav-success mb-3" role="tablist">
<li class="nav-item">
<a class="nav-link py-3 {{ request()->get('status') === null ? 'active' : '' }}"
href="{{ route('user.appraisers', ['status' => null]) }}">
<i class="ri-store-2-fill me-1 align-bottom"></i>
@lang('translation.appraisers')
</a>
</li>
<li class="nav-item">
<a class="nav-link py-3 {{ request()->status === 'active' ? 'active' : '' }}"
href="{{ route('user.appraisers', ['status' => 'active']) }}">
<i class="ri-checkbox-circle-line me-1 align-bottom"></i>
@lang('translation.active')
<span class="badge bg-info bg-gradient align-middle ms-1">
{{ $statusStats['active'] ?? 0 }}
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link py-3 {{ request()->status === 'inactive' ? 'active' : '' }}"
href="{{ route('user.appraisers', ['status' => 'inactive']) }}">
<i class="ri-checkbox-circle-line me-1 align-bottom"></i>
@lang('translation.inactive')
<span class="badge bg-danger align-middle ms-1">
{{ $statusStats['inactive'] ?? 0 }}
</span>
</a>
</li>
</ul>
<div class="table-responsive">
<table class="table table-borderless align-middle table-nowrap mb-0">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">@lang('translation.avatar')</th>
<th scope="col">@lang('translation.user-name')</th>
<th scope="col">@lang('translation.phone-number')</th>
<th scope="col">@lang('translation.registered-date')</th>
<th scope="col">@lang('translation.amount')</th>
<th scope="col">@lang('translation.status')</th>
<th scope="col">@lang('translation.actions')</th>
</tr>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td class="fw-medium">{{($users->currentPage() - 1) * $users->perPage() + $loop->iteration}}</td>
<td>
<img class="rounded-circle header-profile-user" alt="200x200"
src="{{ URL::asset($user->avatar) }}">
</td>
<td>
<a class="text-decoration-underline"
href="{{ route('user.show', [$user->id]) }}">
{{ $user->name }}
</a>
</td>
<td>
@component('components.callable-phone',['phone'=>$user->phone]) @endcomponent</td>
<td>{{ $user->created_at }}</td>
<td>
<form method="get" action="{{ route('appraisers.bonus') }}">
<input type="hidden" name="appraiser_id" value="{{ $user->id }}">
<button
data-bs-toggle="tooltip"
data-bs-placement="bottom" style="border: none;background: none"
class="waves-effect waves-light text-decoration-underline border-none"
title="@lang('translation.view-all-bonuses')">
@component('components.price',['balance'=>$user->balance]) @endcomponent
</button>
</form>
</td>
<td class="text-uppercase">
@if ($user->status == 'active')
<button type="button"
class="btn btn-success btn-label waves-effect waves-light">
<i class="ri-emotion-happy-line label-icon align-middle fs-16 me-2"></i>
@lang('translation.'.$user->status)
</button>
@else
<button type="button"
class="btn btn-danger btn-label waves-effect waves-light">
<i
class="ri-emotion-unhappy-line label-icon align-middle fs-16 me-2"></i>
@lang('translation.'.$user->status)
</button>
@endif
</td>
<td>
<div class="hstack gap-3 fs-15">
@if(in_array(Auth::user()->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
<form action="{{ route('user.activate', ['id' => $user->id]) }}"
method="POST">
@csrf
@method('put')
<button type="submit" data-bs-toggle="tooltip"
data-bs-placement="bottom"
class="btn btn-outline-primary btn-icon waves-effect waves-light"
title="Setting user status is active">
<i class="ri-emotion-happy-line"></i>
<!-- Buttons with Label -->
</button>
</form>
<form action="{{ route('user.block', ['id' => $user->id]) }}"
method="POST">
@csrf
@method('put')
<button type="submit"
class="btn btn-outline-info btn-icon waves-effect waves-light"
data-bs-toggle="tooltip" data-bs-placement="bottom"
title="Setting user status is block">
<i class=" ri-emotion-unhappy-line"></i>
</button>
</form>
@endif
<a href="{{ route('user.show', ['id' => $user->id]) }}"
data-bs-toggle="tooltip" data-bs-placement="bottom"
title="View user profile page"
class="btn btn-outline-warning btn-icon waves-effect waves-light">
<i class="ri-eye-line"></i>
</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">{{ $users->withQueryString()->links() }}</div>
</div><!-- end card-body -->
</div><!-- end card -->
</div><!-- end col -->
</div>
</div>
<!-- Give bonus to Appraiser Modal -->
<div class="modal fade" id="givingBonusModal" tabindex="-1" aria-labelledby="givingBonusModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content border-0">
<div class="modal-header p-3 ps-4 bg-soft-success">
<h5 class="modal-title" id="givingBonusModalLabel">@lang('translation.set-price')</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form action="{{ route('credit.store') }}" method="POST">
@csrf
@method('put')
<div class="modal-body p-4">
<div class="card-body">
<input type="hidden" value="1-13333" name="order_id" id="order_id">
<input type="hidden" value="null" name="order_type" id="order_type">
<!-- Input with Label -->
<div class="m-3">
<label for="appraiser"
class="form-label">@lang('translation.select-appraiser')</label>
<select class="form-select mb-3" name="appraiser_id" id="appraiser"
aria-label="Select appraiser or many appraisers" data-choices
data-choices-search-true
data-choices-removeItem required @error('appraiser_id') is-invalid @enderror>
@foreach ($appraisers as $appraiser)
<option class="text-uppercase" value="{{ $appraiser->id }}">
{{ $appraiser->name }}
</option>
@endforeach
</select>
@error('appraiser_id')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<!-- Input with Label -->
<div class="m-3">
<label for="cleave-numeral"
class="form-label">@lang('translation.setting-bonus')</label>
<input type="text" name="amount" class="form-control " id="cleave-numeral" required
@error('amount') is-invalid @enderror>
@error('amount')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<!-- Input with Label -->
<div class="m-3">
<label for="note" class="form-label">
@lang('translation.note')
</label>
<textarea type="text" name="note" class="form-control " id="note"> </textarea>
</div>
</div>
<!-- end card body -->
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light w-xs" data-bs-dismiss="modal">
@lang('translation.cancel')
</button>
<button type="submit" class="btn btn-success w-xs">
@lang('translation.save')
</button>
</div>
</form>
</div>
<!-- end modal-content -->
</div>
<!-- modal-dialog -->
</div>
<!-- Give bonus to Appraiser end modal -->
@endsection
@section('script')
<script src="{{ URL::asset('assets/libs/cleave.js/cleave.js.min.js') }}"></script>
<script src="{{ URL::asset('/assets/js/app.min.js') }}"></script>
@endsection

View File

@@ -0,0 +1,474 @@
@extends('layouts.master')
@section('title')
@lang('translation.users')
@endsection
@section('content')
@component('components.breadcrumb')
@slot('li_1')
@lang('translation.pages')
@endslot
@slot('title')
@lang('translation.users')
@endslot
@endcomponent
<div class="row">
<div class="col-xl-12">
<div class="card">
<div class="card-header border-1">
<div class="d-flex align-items-center">
<h5 class="card-title mb-0 flex-grow-1">@lang('translation.users')</h5>
<div class="flex-shrink-0 mx-2">
<button data-bs-toggle="modal" data-bs-target="#userCreateModal" type="button"
class="btn btn-primary add-btn">
<i class="ri-add-line align-bottom me-1"></i>
@lang('translation.create-user-account')
</button>
</div>
<div class="flex-shrink-0 ">
<form action="{{ route('user.index') }}" method="get" autocomplete="off" novalidate>
@component('components.page-size',['size'=>$size]) @endcomponent
</form>
</div>
</div>
</div>
<div class="card-body">
<ul class="nav nav-tabs nav-tabs-custom nav-success mb-3" role="tablist">
<li class="nav-item">
<a class="nav-link py-3 {{ request()->get('status') === null ? 'active' : '' }}"
href="{{ route('user.index', ['status' => null]) }}">
<i class="ri-store-2-fill me-1 align-bottom"></i>
@lang('translation.users')
</a>
</li>
<li class="nav-item">
<a class="nav-link py-3 {{ request()->status === 'active' ? 'active' : '' }}"
href="{{ route('user.index', ['status' => 'active']) }}">
<i class="ri-checkbox-circle-line me-1 align-bottom"></i>
@lang('translation.active')
<span class="badge bg-info bg-gradient align-middle ms-1">
{{ $statusStats['active'] ?? 0 }}
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link py-3 {{ request()->status === 'inactive' ? 'active' : '' }}"
href="{{ route('user.index', ['status' => 'inactive']) }}">
<i class="ri-checkbox-circle-line me-1 align-bottom"></i>
@lang('translation.inactive')
<span class="badge bg-danger align-middle ms-1">
{{ $statusStats['inactive'] ?? 0 }}
</span>
</a>
</li>
<li class="nav-item my-3">|
</li>
<li class="nav-item">
<a class="nav-link py-3 {{ request()->role === \App\Enums\RoleEnum::USER->name ? 'active' : '' }}"
href="{{ route('user.index', ['role' => \App\Enums\RoleEnum::USER->name]) }}">
<i class="ri-checkbox-circle-line me-1 align-bottom"></i>
@lang(\App\Enums\RoleEnum::USER->value)
<span class="badge bg-success bg-gradient align-middle ms-1">
{{ $roleStats[\App\Enums\RoleEnum::USER->name] ?? 0 }}
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link py-3 {{ request()->role === \App\Enums\RoleEnum::APPRAISER->name ? 'active' : '' }}"
href="{{ route('user.index', ['role' => \App\Enums\RoleEnum::APPRAISER->name]) }}">
<i class="ri-checkbox-circle-line me-1 align-bottom"></i>
@lang( \App\Enums\RoleEnum::APPRAISER->value)
<span class="badge bg-primary bg-gradient align-middle ms-1">
{{ $roleStats[\App\Enums\RoleEnum::APPRAISER->name] ?? 0 }}
</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link py-3 {{ request()->role === \App\Enums\RoleEnum::DILLER->name ? 'active' : '' }}"
href="{{ route('user.index', ['role' => \App\Enums\RoleEnum::DILLER->name]) }}">
<i class="ri-checkbox-circle-line me-1 align-bottom"></i>
@lang( \App\Enums\RoleEnum::DILLER->value )
<span class="badge bg-success bg-gradient align-middle ms-1">
{{ $roleStats[\App\Enums\RoleEnum::DILLER->name] ?? 0 }}
</span>
</a>
</li>
</ul>
<div class="table-responsive">
<table class="table table-hover table-borderless align-middle table-nowrap mb-0">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">@lang('translation.avatar')</th>
<th scope="col">@lang('translation.username')</th>
<th scope="col">@lang('translation.phone-number')</th>
<th scope="col">@lang('translation.registered-date')</th>
<th scope="col">@lang('translation.role')</th>
<th scope="col">@lang('translation.status')</th>
<th scope="col">@lang('translation.actions')</th>
</tr>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td class="fw-medium">{{($users->currentPage() - 1) * $users->perPage() + $loop->iteration}}</td>
<td>
<img class="rounded-circle header-profile-user" alt="200x200"
src="{{ URL::asset($user->avatar) }}">
</td>
<td>
<a class="text-decoration-underline"
href="{{ route('user.show', [$user->id]) }}">
{{ $user->name }}
</a>
</td>
<td>
@component('components.callable-phone',['phone'=>$user->phone])@endcomponent
</td>
<td>{{ $user->created_at }}</td>
<td class="text-uppercase">
<span class="badge badge-soft-info text-uppercase">
@lang('translation.'.$user->role)
</span>
</td>
<td class="text-uppercase">
@if ($user->status == 'active')
<button type="button"
class="btn btn-success btn-label waves-effect waves-light">
<i class="ri-emotion-happy-line label-icon align-middle fs-16 me-2"></i>
@lang('translation.'.$user->status)
</button>
@else
<button type="button"
class="btn btn-danger btn-label waves-effect waves-light">
<i
class="ri-emotion-unhappy-line label-icon align-middle fs-16 me-2"></i>
@lang('translation.'.$user->status)
</button>
@endif
</td>
<td>
<div class="hstack gap-3 fs-15">
<form action="{{ route('user.activate', ['id' => $user->id]) }}"
method="POST">
@csrf
@method('put')
<button type="submit" data-bs-toggle="tooltip"
data-bs-placement="bottom"
class="btn btn-outline-success btn-icon waves-effect waves-light"
title="Setting user status is active">
<i class="ri-emotion-happy-line"></i>
<!-- Buttons with Label -->
</button>
</form>
<form action="{{ route('user.block', ['id' => $user->id]) }}"
method="POST">
@csrf
@method('put')
<button type="submit"
class="btn btn-outline-danger btn-icon waves-effect waves-light"
data-bs-toggle="tooltip" data-bs-placement="bottom"
title="Setting user status is block">
<i class=" ri-emotion-unhappy-line"></i>
</button>
</form>
<a href="{{ route('user.show', ['id' => $user->id]) }}"
data-bs-toggle="tooltip" data-bs-placement="bottom"
title="View user profile page"
class="btn btn-outline-info btn-icon waves-effect waves-light">
<i class="ri-eye-line"></i>
</a>
<a href="javascript:void(0);" data-bs-toggle="modal"
title="Update user informations" data-bs-target="#userUpdateModal"
data-bs-user-id="{{ $user->id }}"
data-bs-user-name="{{ $user->name }}"
data-bs-user-phone="{{ $user->phone }}"
class="btn btn-outline-warning btn-icon waves-effect waves-light">
<i class="ri-pencil-line"></i>
</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="mt-3">{{ $users->withQueryString()->links() }}</div>
</div><!-- end card-body -->
</div><!-- end card -->
</div><!-- end col -->
</div>
<!-- Varying modal content -->
<div class="modal fade" id="userCreateModal" tabindex="-1" aria-labelledby="userCreateModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="userCreateModalLabel">
@lang('translation.create-user-account')
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form name="user-create-modal" class="needs-validation" novalidate method="post"
action="{{ route('register') }}" enctype="multipart/form-data">
@csrf
<div class="modal-body">
<div class="mb-3">
<label for="cleave-phone" class="form-label">
@lang('translation.phone')
<span class="text-danger">*</span>
</label>
<input type="phone" class="form-control @error('phone') is-invalid @enderror"
name="phone" id="cleave-phone" placeholder="@lang('translation.enter-phone')"
required>
@error('phone')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="invalid-feedback">
@lang('translation.enter-phone')
</div>
</div>
<div class="mb-3">
<label for="username" class="form-label">
@lang('translation.username')
<span class="text-danger">*</span>
</label>
<input type="text" class="form-control @error('name') is-invalid @enderror" name="name"
id="username" placeholder="@lang('translation.enter-username')" required>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="invalid-feedback">
@lang('translation.enter-username')
</div>
</div>
<div class="mb-2">
<label for="userpassword" class="form-label">
@lang('translation.password')
<span class="text-danger">*</span>
</label>
<input type="password" class="form-control @error('password') is-invalid @enderror"
name="password" id="userpassword" placeholder="@lang('translation.enter-password')"
required>
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="invalid-feedback">
@lang('translation.enter-password')
</div>
</div>
<div class=" mb-4">
<label for="input-password">@lang('translation.confirm-password')</label>
<input type="password"
class="form-control @error('password_confirmation') is-invalid @enderror"
name="password_confirmation" id="input-password"
placeholder="@lang('translation.enter-confirm-password')"
required>
@error('password_confirmation')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="form-floating-icon">
<i data-feather="lock"></i>
</div>
</div>
<div class=" mb-4">
<input type="file" class="form-control @error('avatar') is-invalid @enderror"
name="avatar" id="edit-input-avatar" required>
@error('avatar')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="">
<i data-feather="file"></i>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="w-auto btn btn-block btn-light" data-bs-dismiss="modal">
@lang('translation.cancel')
</button>
<button type="submit" class="btn btn-block btn-success w-auto">
@lang('translation.save')
</button>
</div>
</form>
</div>
</div>
</div>
<!-- Varying modal content -->
<div class="modal fade" id="userUpdateModal" tabindex="-1" aria-labelledby="userUpdateModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="userUpdateModalLabel"> {{ __('translation.update') }} </h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form name="user-update-modal" action="{{ route('user.update') }}" method="post"
enctype="multipart/form-data" needs-validation>
@csrf
@method('put')
<div class="modal-body">
<input type="hidden" name="user_id" id="edit-user-id">
<div class="mb-3">
<label for="cleave-phone1" class="form-label"> {{ __('translation.phone') }} <span
class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text" id="basic-phone">
<i class="ri-file-user-line"></i>
</span>
<input type="text"
class=" form-control @error('phone') is-invalid @enderror"
aria-label="Username" aria-describedby="basic-phone" name="phone"
id="cleave-phone1" value="" placeholder="@lang('translation.enter-phone')" required>
</div>
@error('phone')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="invalid-feedback">
Please enter phone
</div>
</div>
<div class="mb-3">
<label for="edit-user-name" class="form-label">
{{ __('translation.username') }}
<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text" id="basic-name">
<i class="ri-file-user-line"></i>
</span>
<input type="text" class="form-control @error('name') is-invalid @enderror"
name="name" id="edit-user-name" aria-label="Username"
aria-describedby="basic-name" placeholder="@lang('translation.enter-username')"
required>
</div>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="invalid-feedback">
Please enter username
</div>
</div>
<div class="mb-2">
<label for="edit-user-password" class="form-label">
{{ __('translation.password') }}
<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text" id="basic-password1">
<i class="ri-file-user-line"></i>
</span>
<input type="password" class="form-control @error('password') is-invalid @enderror"
aria-label="Username" aria-describedby="basic-password" name="password"
id="edit-user-password" placeholder="@lang('translation.enter-password')">
</div>
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="invalid-feedback">
Please enter password
</div>
</div>
<div class=" mb-4">
<label for="edit-input-password">
{{ __('translation.confirm-password') }}
</label>
<div class="input-group">
<span class="input-group-text" id="basic-confirmation">
<i class="ri-file-user-line"></i>
</span>
<input type="password"
class="form-control @error('password_confirmation') is-invalid @enderror"
name="password_confirmation" id="edit-input-password2" aria-label="Username"
aria-describedby="basic-confirmation"
placeholder="@lang('translation.enter-confirm-password')">
</div>
<div class="form-floating-icon">
<i data-feather="lock"></i>
</div>
</div>
<div class=" mb-4">
<input type="file" class="form-control @error('avatar') is-invalid @enderror"
name="avatar" id="input-avatar">
@error('avatar')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="">
<i data-feather="file"></i>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light"
data-bs-dismiss="modal">{{ __('translation.back') }}</button>
<button type="submit" class="btn btn-primary">{{ __('translation.save') }}</button>
</div>
</form>
</div>
</div>
</div>
@endsection
@section('script')
{{-- <script src="{{ URL::asset('assets/libs/prismjs/prismjs.min.js') }}"></script> --}}
<script src="{{ URL::asset('assets/libs/cleave.js/cleave.js.min.js') }}"></script>
<script src="{{ URL::asset('assets/js/pages/form-validation.init.js') }}"></script>
<script src="{{ URL::asset('/assets/js/pages/form-masks.js') }}"></script>
<script src="{{ URL::asset('/assets/js/app.min.js') }}"></script>
<script>
if (document.querySelector("#cleave-phone1")) {
new Cleave('#cleave-phone1', {
prefix: '+998',
delimiters: ['-', '-', '-', '-'],
blocks: [4, 2, 3, 2, 2]
});
}
</script>
<script>
var userUpdateModal = document.getElementById('userUpdateModal')
userUpdateModal.addEventListener('show.bs.modal', function (event) {
// Button that triggered the modal
var button = event.relatedTarget;
// Extract info from data-bs-* attributes
var userNameAttr = button.getAttribute('data-bs-user-name');
var userIdAttr = button.getAttribute('data-bs-user-id');
var userPhoneAttr = button.getAttribute('data-bs-user-phone');
console.log(userPhoneAttr);
// If necessary, you could initiate an AJAX request here
// and then do the updating in a callback.
//
// Update the modal's content.
var modalTitle = userUpdateModal.querySelector('.modal-title');
var modalBodyUserName = userUpdateModal.querySelector('.modal-body input#edit-user-name');
var modalBodyUserId = userUpdateModal.querySelector('.modal-body input#edit-user-id');
var modalBodyUserPhone = userUpdateModal.querySelector('.modal-body input#cleave-phone1');
modalTitle.textContent += userNameAttr;
modalBodyUserName.value = userNameAttr;
modalBodyUserId.value = userIdAttr;
modalBodyUserPhone.value = userPhoneAttr;
})
</script>
@endsection

View File

@@ -0,0 +1,343 @@
@extends('layouts.master')
@section('title')
@lang('translation.settings')
@endsection
@section('content')
<div class="position-relative mx-n4 mt-n4">
<div class="profile-wid-bg profile-setting-img">
<img src="{{ URL::asset('assets/images/profile-bg.jpg') }}" class="profile-wid-img" alt="">
<div class="overlay-content">
<div class="text-end p-3">
<div class="p-0 ms-auto rounded-circle profile-photo-edit">
<input id="profile-foreground-img-file-input" type="file" class="profile-foreground-img-file-input"
data-url="{{ route('profile.files') }}" data-id="{{ $user->id }}" data-type="COVER"
data-csrf="{{ csrf_token() }}">
<label for="profile-foreground-img-file-input" class="profile-photo-edit btn btn-light">
<i class="ri-image-edit-line align-bottom me-1"></i> Change Cover
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xxl-3">
<div class="card mt-n5">
<div class="card-body p-4">
<div class="text-center">
<div class="profile-user position-relative d-inline-block mx-auto mb-4">
<img
src="@if (Auth::user()->avatar != '') {{ URL::asset( Auth::user()->avatar) }}@else{{ URL::asset('assets/images/users/avatar-1.jpg') }} @endif"
class=" rounded-circle avatar-xl img-thumbnail user-profile-image"
alt="user-profile-image">
<div class="avatar-xs p-0 rounded-circle profile-photo-edit">
<input id="profile-img-file-input" type="file" class="profile-img-file-input"
data-url="{{ route('profile.files') }}" data-id="{{ $user->id }}"
data-type="AVATAR">
<label for="profile-img-file-input" class="profile-photo-edit avatar-xs">
<span class="avatar-title rounded-circle bg-light text-body">
<i class="ri-camera-fill"></i>
</span>
</label>
</div>
</div>
<h5 class="fs-16 mb-1">
{{ $user->name }}
</h5>
<p class="text-muted mb-0">
{{ $user->role }}
</p>
</div>
</div>
</div>
<!--end card-->
<div class="card">
<div class="card-body">
<div class="d-flex align-items-center mb-5">
<div class="flex-grow-1">
<h5 class="card-title mb-0">Complete Your Profile</h5>
</div>
<div class="flex-shrink-0">
<a href="javascript:void(0);" class="badge bg-light text-primary fs-12"><i
class="ri-edit-box-line align-bottom me-1"></i> Edit</a>
</div>
</div>
<div class="progress animated-progress custom-progress progress-label">
<div class="progress-bar bg-danger" role="progressbar" style="width: 30%" aria-valuenow="30"
aria-valuemin="0" aria-valuemax="100">
<div class="label">30%</div>
</div>
</div>
</div>
</div>
<!--end card-->
</div>
<!--end col-->
<div class="col-xxl-9">
<div class="card mt-xxl-n5">
<div class="card-header">
<ul class="nav nav-tabs-custom rounded card-header-tabs border-bottom-0" role="tablist">
<li class="nav-item">
<a class="nav-link " href="{{ route('profile.info.edit') }}">
<i class="fas fa-home"></i>
Personal Details
</a>
</li>
<li class="nav-item">
<a class="nav-link active" data-bs-toggle="tab" href="#changePassword" role="tab">
<i class="far fa-user"></i>
Change Password
</a>
</li>
</ul>
</div>
<div class="card-body p-4">
<div class="tab-content">
<div class="tab-pane " id="personalDetails" role="tabpanel">
<form action="javascript:void(0);">
<div class="row">
<div class="col-lg-6">
<div class="mb-3">
<label for="firstnameInput" class="form-label">First
Name</label>
<input type="text" class="form-control" id="firstnameInput"
placeholder="Enter your firstname"
value="{{ auth()->user()->firstName }}">
</div>
</div>
<!--end col-->
<div class="col-lg-6">
<div class="mb-3">
<label for="lastnameInput" class="form-label">Last
Name</label>
<input type="text" class="form-control" id="lastnameInput"
placeholder="Enter your lastname"
value="{{ auth()->user()->lastName }}">
</div>
</div>
<!--end col-->
<div class="col-lg-6">
<div class="mb-3">
<label for="cleave-phone" class="form-label">Phone
Number</label>
<input type="text" disabled class="form-control" id="cleave-phone"
value="{{ auth()->user()->phone }}">
</div>
</div>
<!--end col-->
<div class="col-lg-6">
<div class="mb-3">
<label for="emailInput" class="form-label">
Email Address
</label>
<input type="email" class="form-control" id="emailInput"
placeholder="Enter your email" value="daveadame@velzon.com">
</div>
</div>
<!--end col-->
<div class="col-lg-12">
<div class="mb-3 pb-2">
<label for="exampleFormControlTextarea"
class="form-label">Description</label>
<textarea class="form-control" id="exampleFormControlTextarea"
placeholder="Enter your description" rows="3">Hi I'm Anna Adame,It will be as simple as Occidental; in fact, it will be Occidental. To an English person, it will seem like simplified English, as a skeptical Cambridge friend of mine told me what Occidental is European languages are members of the same family.</textarea>
</div>
</div>
<!--end col-->
<div class="col-lg-12">
<div class="hstack gap-2 justify-content-end">
<button type="submit" class="btn btn-primary">Updates</button>
<button type="button" class="btn btn-soft-success">Cancel</button>
</div>
</div>
<!--end col-->
</div>
<!--end row-->
</form>
</div>
<!--end tab-pane-->
<div class="tab-pane active" id="changePassword" role="tabpanel">
<form action="{{ route('password.change') }}" method="post">
@csrf
@method('put')
<div class="row g-2">
<div class="col-lg-4">
<div>
<label for="oldpasswordInput" class="form-label">Old
Password*</label>
<input type="password" name="old_password"
class="form-control @error('old_password') is-invalid @enderror"
id="oldpasswordInput"
placeholder="Enter current password">
@error('old_password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<!--end col-->
<div class="col-lg-4">
<div>
<label for="newpasswordInput" class="form-label">New
Password*
</label>
<input type="password"
class="form-control @error('password') is-invalid @enderror"
id="newpasswordInput"
placeholder="Enter new password" name="password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<!--end col-->
<div class="col-lg-4">
<div>
<label for="confirmpasswordInput" class="form-label">Confirm
Password*</label>
<input type="password"
class="form-control @error('password_confirmation') is-invalid @enderror"
id="password_confirmedInput"
placeholder="Confirm password" name="password_confirmation">
@error('password_confirmation')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<!--end col-->
<div class="col-lg-12">
<div class="text-end">
<button type="submit" class="btn btn-success">Change
Password
</button>
</div>
</div>
<!--end col-->
</div>
<!--end row-->
</form>
<div class="mt-4 mb-3 border-bottom pb-2">
<div class="float-end">
<a href="javascript:void(0);" class="link-primary">All Logout</a>
</div>
<h5 class="card-title">Login History</h5>
</div>
<div class="d-flex align-items-center mb-3">
<div class="flex-shrink-0 avatar-sm">
<div class="avatar-title bg-light text-primary rounded-3 fs-18">
<i class="ri-smartphone-line"></i>
</div>
</div>
<div class="flex-grow-1 ms-3">
<h6>iPhone 12 Pro</h6>
<p class="text-muted mb-0">Los Angeles, United States - March 16 at
2:47PM</p>
</div>
<div>
<a href="javascript:void(0);">Logout</a>
</div>
</div>
<div class="d-flex align-items-center mb-3">
<div class="flex-shrink-0 avatar-sm">
<div class="avatar-title bg-light text-primary rounded-3 fs-18">
<i class="ri-tablet-line"></i>
</div>
</div>
<div class="flex-grow-1 ms-3">
<h6>Apple iPad Pro</h6>
<p class="text-muted mb-0">Washington, United States - November 06
at 10:43AM</p>
</div>
<div>
<a href="javascript:void(0);">Logout</a>
</div>
</div>
<div class="d-flex align-items-center mb-3">
<div class="flex-shrink-0 avatar-sm">
<div class="avatar-title bg-light text-primary rounded-3 fs-18">
<i class="ri-smartphone-line"></i>
</div>
</div>
<div class="flex-grow-1 ms-3">
<h6>Galaxy S21 Ultra 5G</h6>
<p class="text-muted mb-0">Conneticut, United States - June 12 at
3:24PM</p>
</div>
<div>
<a href="javascript:void(0);">Logout</a>
</div>
</div>
<div class="d-flex align-items-center">
<div class="flex-shrink-0 avatar-sm">
<div class="avatar-title bg-light text-primary rounded-3 fs-18">
<i class="ri-macbook-line"></i>
</div>
</div>
<div class="flex-grow-1 ms-3">
<h6>Dell Inspiron 14</h6>
<p class="text-muted mb-0">Phoenix, United States - July 26 at
8:10AM</p>
</div>
<div>
<a href="javascript:void(0);">Logout</a>
</div>
</div>
</div>
<!--end tab-pane-->
</div>
</div>
</div>
</div>
<!--end col-->
</div>
<!--end row-->
@endsection
@section('script')
<script src="{{ URL::asset('assets/js/pages/profile-setting.init.js') }}"></script>
<script src="{{ URL::asset('/assets/js/app.min.js') }}"></script>
<script>
// if (document.querySelector("#profile-foreground-img-file-input")) {
// var foreground = document.querySelector("#profile-foreground-img-file-input");
// foreground.addEventListener("change", function(data, value) {
// var preview = document.querySelector(".profile-wid-img");
// var file = document.querySelector(".profile-foreground-img-file-input").files[0];
// var reader = new FileReader();
// reader.addEventListener("load", function() {
// preview.src = reader.result;
// var formData = new FormData();
// formData.append("file_type", foreground.dataset.type);
// formData.append("user_id", foreground.dataset.id);
// formData.append("file", reader.result);
// console.table(formData);
// var xhttp = new XMLHttpRequest();
// xhttp.onreadystatechange = function(response) {
// if (this.readyState == 4 && this.status == 200) {
// // Typical action to be performed when the document is ready:
// preview.src = reader.result;
// console.log(response);
// }
// };
// console.table(foreground.dataset);
// xhttp.open("POST", foreground.dataset.url, true);
// xhttp.setRequestHeader('X-CSRF-TOKEN', foreground.dataset.csrf);
// xhttp.send(formData);
// }, function(e) {
// console.log(e);
// });
// if (file) {
// reader.readAsDataURL(file);
// }
// });
//} // Profile Foreground Img
</script>
@endsection

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff