u 18nov2023
Cette révision appartient à :
Parent
35c30daf2c
révision
c5cda879cf
@ -4,6 +4,12 @@
|
|||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use App\Models\Role;
|
||||||
|
use App\Http\Requests\Backend\User\AddNewRequest;
|
||||||
|
use App\Http\Requests\Backend\User\UpdateRequest;
|
||||||
|
use Exception;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
class UserController extends Controller
|
class UserController extends Controller
|
||||||
{
|
{
|
||||||
@ -12,7 +18,8 @@ class UserController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
//
|
$data = User::paginate(10);
|
||||||
|
return view('backend.user.index', compact('data'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,15 +27,41 @@ public function index()
|
|||||||
*/
|
*/
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
//
|
$role = Role::get();
|
||||||
|
return view('backend.user.create', compact('role'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store a newly created resource in storage.
|
* Store a newly created resource in storage.
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(AddNewRequest $request)
|
||||||
{
|
{
|
||||||
//
|
try {
|
||||||
|
$data = new User();
|
||||||
|
$data->name_en = $request->userName_en;
|
||||||
|
$data->name_bn = $request->userName_bn;
|
||||||
|
$data->email = $request->emailAddress;
|
||||||
|
$data->contact_en = $request->contactNumber_en;
|
||||||
|
$data->contact_bn = $request->contactNumber_bn;
|
||||||
|
$data->role_id = $request->roleId;
|
||||||
|
$data->language = 'en';
|
||||||
|
$data->full_access = $request->fullAccess;
|
||||||
|
$data->status = $request->status;
|
||||||
|
$data->password = Hash::make($request->password);
|
||||||
|
|
||||||
|
if ($request->hasFile('image')) {
|
||||||
|
$imageName = rand(111, 999) . time() . '.' . $request->image->extension();
|
||||||
|
$request->image->move(public_path('uploads/users'), $imageName);
|
||||||
|
$data->image = $imageName;
|
||||||
|
}
|
||||||
|
if ($data->save())
|
||||||
|
return redirect()->route('user.index')->with('success', 'Data SAVED');
|
||||||
|
else
|
||||||
|
return redirect()->back()->withInput()->with('error', 'Please Try again');
|
||||||
|
} catch (Exception $e) {
|
||||||
|
dd($e);
|
||||||
|
return redirect()->back()->withInput()->with('error', 'Please try again');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,17 +75,46 @@ public function show(string $id)
|
|||||||
/**
|
/**
|
||||||
* Show the form for editing the specified resource.
|
* Show the form for editing the specified resource.
|
||||||
*/
|
*/
|
||||||
public function edit(string $id)
|
public function edit($id)
|
||||||
{
|
{
|
||||||
//
|
$role=Role::get();
|
||||||
|
$user=User::findOrFail(encryptor('decrypt',$id));
|
||||||
|
return view('backend.user.edit',compact('role','user'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*/
|
*/
|
||||||
public function update(Request $request, string $id)
|
public function update(UpdateRequest $request, $id)
|
||||||
{
|
{
|
||||||
//
|
try {
|
||||||
|
$data = User::findOrFail(encryptor('decrypt',$id));
|
||||||
|
$data->name_en = $request->userName_en;
|
||||||
|
$data->name_bn = $request->userName_bn;
|
||||||
|
$data->email = $request->emailAddress;
|
||||||
|
$data->contact_en = $request->contactNumber_en;
|
||||||
|
$data->contact_bn = $request->contactNumber_bn;
|
||||||
|
$data->role_id = $request->roleId;
|
||||||
|
$data->language = 'en';
|
||||||
|
$data->full_access = $request->fullAccess;
|
||||||
|
$data->status = $request->status;
|
||||||
|
|
||||||
|
if($request->password)
|
||||||
|
$data->password = Hash::make($request->password);
|
||||||
|
|
||||||
|
if ($request->hasFile('image')) {
|
||||||
|
$imageName = rand(111, 999) . time() . '.' . $request->image->extension();
|
||||||
|
$request->image->move(public_path('uploads/users'), $imageName);
|
||||||
|
$data->image = $imageName;
|
||||||
|
}
|
||||||
|
if ($data->save())
|
||||||
|
return redirect()->route('user.index')->with('success', 'Data SAVED');
|
||||||
|
else
|
||||||
|
return redirect()->back()->withInput()->with('error', 'Please Try again');
|
||||||
|
} catch (Exception $e) {
|
||||||
|
dd($e);
|
||||||
|
return redirect()->back()->withInput()->with('error', 'Please try again');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -20,7 +20,7 @@ public function handle(Request $request, Closure $next): Response
|
|||||||
if (!Session::has('userId') || Session::has('userId') == null) {
|
if (!Session::has('userId') || Session::has('userId') == null) {
|
||||||
return redirect()->route('logOut');
|
return redirect()->route('logOut');
|
||||||
} else {
|
} else {
|
||||||
$user = User::findorFail(currentUserId());
|
$user = User::find(currentUserId());
|
||||||
if (!$user) {
|
if (!$user) {
|
||||||
return redirecty()->route('logOut');
|
return redirecty()->route('logOut');
|
||||||
} else if ($user->full_access == "1") {
|
} else if ($user->full_access == "1") {
|
||||||
|
|||||||
32
app/Http/Requests/Backend/User/AddNewRequest.php
Fichier normal
32
app/Http/Requests/Backend/User/AddNewRequest.php
Fichier normal
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests\Backend\User;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
class AddNewRequest extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*/
|
||||||
|
public function authorize(): bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||||
|
*/
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'userName_en' => 'required|max:255',
|
||||||
|
'roleId' => 'required|max:2',
|
||||||
|
'contactNumber_en' => 'required|unique:users,contact_en',
|
||||||
|
'emailAddress' => 'required|unique:users,email',
|
||||||
|
'password' => 'required'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
32
app/Http/Requests/Backend/User/UpdateRequest.php
Fichier normal
32
app/Http/Requests/Backend/User/UpdateRequest.php
Fichier normal
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests\Backend\User;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class UpdateRequest extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*/
|
||||||
|
public function authorize(): bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||||
|
*/
|
||||||
|
public function rules(Request $r): array
|
||||||
|
{
|
||||||
|
$id = encryptor('decrypt', $r->uptoken);
|
||||||
|
return [
|
||||||
|
'userName_en' => 'required',
|
||||||
|
'contactNumber_en' => 'required|unique:users,contact_en,' . $id,
|
||||||
|
'emailAddress' => 'required|unique:users,email,' . $id,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
public/uploads/users/1501700288480.jpg
Fichier normal
BIN
public/uploads/users/1501700288480.jpg
Fichier normal
Fichier binaire non affiché.
|
Après Largeur: | Hauteur: | Taille: 18 KiB |
@ -2,7 +2,6 @@
|
|||||||
@section('title', 'Dashboard')
|
@section('title', 'Dashboard')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div id="main-wrapper">
|
|
||||||
<!--**********************************
|
<!--**********************************
|
||||||
Content body start
|
Content body start
|
||||||
***********************************-->
|
***********************************-->
|
||||||
@ -530,7 +529,6 @@ class="la la-trash-o"></i></a>
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<!--**********************************
|
<!--**********************************
|
||||||
Content body end
|
Content body end
|
||||||
***********************************-->
|
***********************************-->
|
||||||
|
|||||||
@ -15,6 +15,8 @@
|
|||||||
<link rel="stylesheet" href="{{asset('public/css/style.css')}}">
|
<link rel="stylesheet" href="{{asset('public/css/style.css')}}">
|
||||||
<link rel="stylesheet" href="{{asset('public/css/skin-2.css')}}">
|
<link rel="stylesheet" href="{{asset('public/css/skin-2.css')}}">
|
||||||
|
|
||||||
|
@stack('styles')
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -23,7 +25,7 @@
|
|||||||
<!--**********************************
|
<!--**********************************
|
||||||
Main wrapper start
|
Main wrapper start
|
||||||
***********************************-->
|
***********************************-->
|
||||||
|
<div id="main-wrapper">
|
||||||
|
|
||||||
<!--**********************************
|
<!--**********************************
|
||||||
Nav header start
|
Nav header start
|
||||||
@ -59,7 +61,8 @@
|
|||||||
</span>
|
</span>
|
||||||
<div class="dropdown-menu p-0 m-0">
|
<div class="dropdown-menu p-0 m-0">
|
||||||
<form>
|
<form>
|
||||||
<input class="form-control" type="search" placeholder="Search" aria-label="Search">
|
<input class="form-control" type="search" placeholder="Search"
|
||||||
|
aria-label="Search">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -162,7 +165,8 @@ class="ti-arrow-right"></i></a>
|
|||||||
<a href="{{route('logOut')}}" class="dropdown-item ai-icon">
|
<a href="{{route('logOut')}}" class="dropdown-item ai-icon">
|
||||||
<svg id="icon-logout" xmlns="http://www.w3.org/2000/svg" width="18" height="18"
|
<svg id="icon-logout" xmlns="http://www.w3.org/2000/svg" width="18" height="18"
|
||||||
viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||||
stroke-linecap="round" stroke-linejoin="round" class="feather feather-log-out">
|
stroke-linecap="round" stroke-linejoin="round"
|
||||||
|
class="feather feather-log-out">
|
||||||
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path>
|
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path>
|
||||||
<polyline points="16 17 21 12 16 7"></polyline>
|
<polyline points="16 17 21 12 16 7"></polyline>
|
||||||
<line x1="21" y1="12" x2="9" y2="12"></line>
|
<line x1="21" y1="12" x2="9" y2="12"></line>
|
||||||
@ -443,6 +447,8 @@ class="ti-arrow-right"></i></a>
|
|||||||
<!--**********************************
|
<!--**********************************
|
||||||
Support ticket button end
|
Support ticket button end
|
||||||
***********************************-->
|
***********************************-->
|
||||||
|
|
||||||
|
</div>
|
||||||
<!--**********************************
|
<!--**********************************
|
||||||
Main wrapper end
|
Main wrapper end
|
||||||
***********************************-->
|
***********************************-->
|
||||||
@ -456,6 +462,8 @@ class="ti-arrow-right"></i></a>
|
|||||||
<script src="{{asset('public/js/custom.min.js')}}"></script>
|
<script src="{{asset('public/js/custom.min.js')}}"></script>
|
||||||
<script src="{{asset('public/js/dlabnav-init.js')}}"></script>
|
<script src="{{asset('public/js/dlabnav-init.js')}}"></script>
|
||||||
|
|
||||||
|
@stack('scripts')
|
||||||
|
|
||||||
<!-- Chart ChartJS plugin files -->
|
<!-- Chart ChartJS plugin files -->
|
||||||
<script src="{{asset('public/vendor/chart.js/Chart.bundle.min.js')}}"></script>
|
<script src="{{asset('public/vendor/chart.js/Chart.bundle.min.js')}}"></script>
|
||||||
|
|
||||||
|
|||||||
143
resources/views/backend/user/create.blade.php
Fichier normal
143
resources/views/backend/user/create.blade.php
Fichier normal
@ -0,0 +1,143 @@
|
|||||||
|
@extends('backend.layouts.app')
|
||||||
|
@section('title', 'Add User')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<!--**********************************
|
||||||
|
Content body start
|
||||||
|
***********************************-->
|
||||||
|
<div class="content-body">
|
||||||
|
<!-- row -->
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<div class="row page-titles mx-0">
|
||||||
|
<div class="col-sm-6 p-md-0">
|
||||||
|
<div class="welcome-text">
|
||||||
|
<h4>Add User</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
|
||||||
|
<li class="breadcrumb-item active"><a href="javascript:void(0);">User</a></li>
|
||||||
|
<li class="breadcrumb-item active"><a href="javascript:void(0);">Add User</a></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xl-12 col-xxl-12 col-sm-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h5 class="card-title">Basic Info</h5>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<form action="{{route('user.store')}}" method="post" enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Name</label>
|
||||||
|
<input type="text" class="form-control" name="userName_en" value="{{old('userName_en')}}">
|
||||||
|
</div>
|
||||||
|
@if($errors->has('userName_en'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('userName_en') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">নাম (বাংলায়)</label>
|
||||||
|
<input type="text" class="form-control" name="userName_bn" value="{{old('userName_bn')}}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Phone Number</label>
|
||||||
|
<input type="tel" class="form-control" name="contactNumber_en" value="{{old('contactNumber_en')}}">
|
||||||
|
</div>
|
||||||
|
@if($errors->has('contactNumber_en'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('contactNumber_en') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">ফোন নাম্বার (বাংলায়)</label>
|
||||||
|
<input type="tel" class="form-control" name="contactNumber_bn" value="{{old('contactNumber_bn')}}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Email</label>
|
||||||
|
<input type="email" class="form-control" name="emailAddress" value="{{old('emailAddress')}}">
|
||||||
|
</div>
|
||||||
|
@if($errors->has('emailAddress'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('emailAddress') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Role</label>
|
||||||
|
<select class="form-control" name="roleId">
|
||||||
|
@forelse ($role as $r)
|
||||||
|
<option value="{{$r->id}} {{old('roleId')==$r->id?selected:''}}">
|
||||||
|
{{$r->type}}</option>
|
||||||
|
@empty
|
||||||
|
<option value="">No Role Found</option>
|
||||||
|
@endforelse
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
@if($errors->has('roleId'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('roleId') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Full Access</label>
|
||||||
|
<select class="form-control" name="fullAccess">
|
||||||
|
<option value="0" @if(old('fullAccess')==0) selected @endif>No</option>
|
||||||
|
<option value="1" @if(old('fullAccess')==1) selected @endif>Yes</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Status</label>
|
||||||
|
<select class="form-control" name="status">
|
||||||
|
<option value="1" @if(old('status')==1) selected @endif>Active</option>
|
||||||
|
<option value="0" @if(old('status')==0) selected @endif>Inactive</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||||
|
<label class="form-label">Image</label>
|
||||||
|
<div class="form-group fallback w-100">
|
||||||
|
<input type="file" class="dropify" data-default-file="" name="image">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Password</label>
|
||||||
|
<input type="password" class="form-control" name="password">
|
||||||
|
</div>
|
||||||
|
@if($errors->has('password'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('password') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||||
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
|
<button type="submit" class="btn btn-light">Cencel</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--**********************************
|
||||||
|
Content body end
|
||||||
|
***********************************-->
|
||||||
|
|
||||||
|
@endsection
|
||||||
149
resources/views/backend/user/edit.blade.php
Fichier normal
149
resources/views/backend/user/edit.blade.php
Fichier normal
@ -0,0 +1,149 @@
|
|||||||
|
@extends('backend.layouts.app')
|
||||||
|
@section('title', 'Edit User')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<!--**********************************
|
||||||
|
Content body start
|
||||||
|
***********************************-->
|
||||||
|
<div class="content-body">
|
||||||
|
<!-- row -->
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<div class="row page-titles mx-0">
|
||||||
|
<div class="col-sm-6 p-md-0">
|
||||||
|
<div class="welcome-text">
|
||||||
|
<h4>Add User</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
|
||||||
|
<li class="breadcrumb-item active"><a href="javascript:void(0);">User</a></li>
|
||||||
|
<li class="breadcrumb-item active"><a href="javascript:void(0);">Edit User</a></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xl-12 col-xxl-12 col-sm-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h5 class="card-title">Basic Info</h5>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<form action="{{route('user.update', encryptor('encrypt', $user->id))}}" method="post" enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
@method('PATCH')
|
||||||
|
<input type="hidden" name="uptoken" value="{{encryptor('encrypt',$user->id)}}">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Name</label>
|
||||||
|
<input type="text" class="form-control" name="userName_en"
|
||||||
|
value="{{old('userName_en', $user->name_en)}}">
|
||||||
|
</div>
|
||||||
|
@if($errors->has('userName_en'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('userName_en') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">নাম (বাংলায়)</label>
|
||||||
|
<input type="text" class="form-control" name="userName_bn"
|
||||||
|
value="{{old('userName_bn', $user->name_bn)}}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Phone Number</label>
|
||||||
|
<input type="tel" class="form-control" name="contactNumber_en"
|
||||||
|
value="{{old('contactNumber_en', $user->contact_en)}}">
|
||||||
|
</div>
|
||||||
|
@if($errors->has('contactNumber_en'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('contactNumber_en') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">ফোন নাম্বার (বাংলায়)</label>
|
||||||
|
<input type="tel" class="form-control" name="contactNumber_bn"
|
||||||
|
value="{{old('contactNumber_bn', $user->contact_bn)}}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Email</label>
|
||||||
|
<input type="email" class="form-control" name="emailAddress" value="{{old('emailAddress', $user->email)}}">
|
||||||
|
</div>
|
||||||
|
@if($errors->has('emailAddress'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('emailAddress') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Role</label>
|
||||||
|
<select class="form-control" name="roleId">
|
||||||
|
@forelse ($role as $r)
|
||||||
|
<option value="{{$r->id}} {{old('roleId', $user->role_id)==$r->id?'selected':''}}">
|
||||||
|
{{$r->type}}</option>
|
||||||
|
@empty
|
||||||
|
<option value="">No Role Found</option>
|
||||||
|
@endforelse
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
@if($errors->has('roleId'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('roleId') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Full Access</label>
|
||||||
|
<select class="form-control" name="fullAccess">
|
||||||
|
<option value="0" @if(old('fullAccess', $user->full_access)==0) selected @endif>No</option>
|
||||||
|
<option value="1" @if(old('fullAccess', $user->full_access)==1) selected @endif>Yes</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Status</label>
|
||||||
|
<select class="form-control" name="status">
|
||||||
|
<option value="1" @if(old('status', $user->status)==1) selected @endif>Active</option>
|
||||||
|
<option value="0" @if(old('status', $user->status)==0) selected @endif>Inactive</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||||
|
<label class="form-label">Image</label>
|
||||||
|
<div class="form-group fallback w-100">
|
||||||
|
<input type="file" class="dropify" data-default-file="" name="image">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">Password</label>
|
||||||
|
<input type="password" class="form-control" name="password">
|
||||||
|
</div>
|
||||||
|
@if($errors->has('password'))
|
||||||
|
<span class="text-danger"> {{ $errors->first('password') }}</span>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||||
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
|
<button type="submit" class="btn btn-light">Cencel</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--**********************************
|
||||||
|
Content body end
|
||||||
|
***********************************-->
|
||||||
|
|
||||||
|
@endsection
|
||||||
170
resources/views/backend/user/index.blade.php
Fichier normal
170
resources/views/backend/user/index.blade.php
Fichier normal
@ -0,0 +1,170 @@
|
|||||||
|
@extends('backend.layouts.app')
|
||||||
|
@section('title', 'User List')
|
||||||
|
|
||||||
|
@push('styles')
|
||||||
|
<!-- Datatable -->
|
||||||
|
<link href="{{asset('public/vendor/datatables/css/jquery.dataTables.min.css')}}" rel="stylesheet">
|
||||||
|
<link rel="{{asset('public/stylesheet" href="css/style.css')}}">
|
||||||
|
@endpush
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<!--**********************************
|
||||||
|
Content body start
|
||||||
|
***********************************-->
|
||||||
|
<div class="content-body">
|
||||||
|
<!-- row -->
|
||||||
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<div class="row page-titles mx-0">
|
||||||
|
<div class="col-sm-6 p-md-0">
|
||||||
|
<div class="welcome-text">
|
||||||
|
<h4>User List</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6 p-md-0 justify-content-sm-end mt-2 mt-sm-0 d-flex">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
|
||||||
|
<li class="breadcrumb-item active"><a href="javascript:void(0);">Users</a></li>
|
||||||
|
<li class="breadcrumb-item active"><a href="javascript:void(0);">All User</a></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<ul class="nav nav-pills mb-3">
|
||||||
|
<li class="nav-item"><a href="#list-view" data-toggle="tab"
|
||||||
|
class="nav-link btn-primary mr-1 show active">List View</a></li>
|
||||||
|
<li class="nav-item"><a href="#grid-view" data-toggle="tab" class="nav-link btn-primary">Grid
|
||||||
|
View</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="row tab-content">
|
||||||
|
<div id="list-view" class="tab-pane fade active show col-lg-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h4 class="card-title">All Students List </h4>
|
||||||
|
<a href="add-student.html" class="btn btn-primary">+ Add new</a>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table id="example3" class="display" style="min-width: 845px">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>{{__('#')}}</th>
|
||||||
|
<th>{{__('Name')}}</th>
|
||||||
|
<th>{{__('Email')}}</th>
|
||||||
|
<th>{{__('Contact')}}</th>
|
||||||
|
<th>{{__('Role')}}</th>
|
||||||
|
<th>{{__('Status')}}</th>
|
||||||
|
<th>{{__('Action')}}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@forelse ($data as $d)
|
||||||
|
<tr>
|
||||||
|
<td><img class="rounded-circle" width="35" height="35"
|
||||||
|
src="{{asset('public/uploads/users/'.$d->image)}}" alt=""></td>
|
||||||
|
<td><strong>{{$d->name_en}}</strong></td>
|
||||||
|
<td>{{$d->email}}</td>
|
||||||
|
<td>{{$d->contact_en}}</td>
|
||||||
|
<td>{{$d->role?->type}}</td>
|
||||||
|
<td>@if($d->status==1){{__('Active')}} @else{{__('Inactive')}} @endif
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="{{route('user.edit', encryptor('encrypt',$d->id))}}" class="btn btn-sm btn-primary"><i
|
||||||
|
class="la la-pencil"></i></a>
|
||||||
|
<a href="javascript:void(0);" class="btn btn-sm btn-danger"><i
|
||||||
|
class="la la-trash-o"></i></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@empty
|
||||||
|
<tr>
|
||||||
|
<th colspan="7" class="text-center">No User Found</th>
|
||||||
|
</tr>
|
||||||
|
@endforelse
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="grid-view" class="tab-pane fade col-lg-12">
|
||||||
|
<div class="row">
|
||||||
|
@forelse ($data as $d)
|
||||||
|
<div class="col-lg-4 col-md-6 col-sm-6 col-12">
|
||||||
|
<div class="card card-profile">
|
||||||
|
<div class="card-header justify-content-end pb-0">
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-link" type="button" data-toggle="dropdown">
|
||||||
|
<span class="dropdown-dots fs--1"></span>
|
||||||
|
</button>
|
||||||
|
<div class="dropdown-menu dropdown-menu-right border py-0">
|
||||||
|
<div class="py-2">
|
||||||
|
<a class="dropdown-item" href="javascript:void(0);">Edit</a>
|
||||||
|
<a class="dropdown-item text-danger"
|
||||||
|
href="javascript:void(0);">Delete</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-body pt-2">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="profile-photo">
|
||||||
|
<img src="{{asset('public/uploads/users/'.$d->image)}}" width="100" height="100" class="rounded-circle" alt="">
|
||||||
|
</div>
|
||||||
|
<h3 class="mt-4 mb-1">{{$d->name_en}}</h3>
|
||||||
|
<p class="text-muted">{{$d->role?->type}}</p>
|
||||||
|
<ul class="list-group mb-3 list-group-flush">
|
||||||
|
<li class="list-group-item px-0 d-flex justify-content-between">
|
||||||
|
<span>#Sl.</span><strong>{{$d->id}}</strong>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item px-0 d-flex justify-content-between">
|
||||||
|
<span class="mb-0">Phone No.
|
||||||
|
:</span><strong>{{$d->contact_en}}</strong>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item px-0 d-flex justify-content-between">
|
||||||
|
<span class="mb-0">Email:</span><strong>{{$d->email}}</strong>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item px-0 d-flex justify-content-between">
|
||||||
|
<span class="mb-0">Created At.
|
||||||
|
:</span><strong>{{$d->created_at}}</strong>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<a class="btn btn-outline-primary btn-rounded mt-3 px-4"
|
||||||
|
href="about-student.html">Read More</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@empty
|
||||||
|
<div class="col-lg-4 col-md-6 col-sm-6 col-12">
|
||||||
|
<div class="card card-profile">
|
||||||
|
<div class="card-body pt-2">
|
||||||
|
<div class="text-center">
|
||||||
|
<p class="mt-3 px-4">User Not Found</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforelse
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--**********************************
|
||||||
|
Content body end
|
||||||
|
***********************************-->
|
||||||
|
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@push('scripts')
|
||||||
|
<!-- Datatable -->
|
||||||
|
<script src="{{asset('public/vendor/datatables/js/jquery.dataTables.min.js')}}"></script>
|
||||||
|
<script src="{{asset('public/js/plugins-init/datatables.init.js')}}"></script>
|
||||||
|
@endpush
|
||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
Route::middleware(['checkrole'])->group(function () {
|
Route::middleware(['checkrole'])->group(function () {
|
||||||
Route::get('/dashboard', [dashboard::class, 'index'])->name('dashboard');
|
Route::get('/dashboard', [dashboard::class, 'index'])->name('dashboard');
|
||||||
Route::resource('/user', user::class)->except(['update', 'store']);
|
Route::resource('/user', user::class);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Chargement…
Référencer dans un nouveau ticket
Block a user