modified course status

Cette révision appartient à :
Ibrahim Khail Shakil 2024-01-03 12:34:38 +06:00
Parent 967f247f77
révision ff3bb16191
8 fichiers modifiés avec 449 ajouts et 11 suppressions

Voir le fichier

@ -25,6 +25,12 @@ public function index()
return view('backend.course.courses.index', compact('course'));
}
public function indexForAdmin()
{
$course = Course::paginate(10);
return view('backend.course.courses.indexForAdmin', compact('course'));
}
/**
* Show the form for creating a new resource.
*/
@ -138,7 +144,6 @@ public function update(UpdateRequest $request, $id)
$course->prerequisites_bn = $request->prerequisites_bn;
$course->thumbnail_video = $request->thumbnail_video;
$course->tag = $request->tag;
$course->status = $request->status;
$course->language = 'en';
if ($request->hasFile('image')) {
@ -161,6 +166,52 @@ public function update(UpdateRequest $request, $id)
}
}
public function updateforAdmin(UpdateRequest $request, $id)
{
try {
$course = Course::findOrFail(encryptor('decrypt', $id));
$course->title_en = $request->courseTitle_en;
$course->title_bn = $request->courseTitle_bn;
$course->description_en = $request->courseDescription_en;
$course->description_bn = $request->courseDescription_bn;
$course->course_category_id = $request->categoryId;
$course->instructor_id = $request->instructorId;
$course->type = $request->courseType;
$course->price = $request->coursePrice;
$course->old_price = $request->courseOldPrice;
$course->subscription_price = $request->subscriptionPrice;
$course->start_from = $request->start_from;
$course->duration = $request->duration;
$course->lesson = $request->lesson;
$course->difficulty = $request->courseDifficulty;
$course->course_code = $request->course_code;
$course->prerequisites_en = $request->prerequisites_en;
$course->prerequisites_bn = $request->prerequisites_bn;
$course->thumbnail_video = $request->thumbnail_video;
$course->tag = $request->tag;
$course->status = $request->status;
$course->language = 'en';
if ($request->hasFile('image')) {
$imageName = rand(111, 999) . time() . '.' . $request->image->extension();
$request->image->move(public_path('uploads/courses'), $imageName);
$course->image = $imageName;
}
if ($request->hasFile('thumbnail_image')) {
$thumbnailImageName = rand(111, 999) . time() . '.' . $request->thumbnail_image->extension();
$request->thumbnail_image->move(public_path('uploads/courses/thumbnails'), $thumbnailImageName);
$course->thumbnail_image = $thumbnailImageName;
}
if ($course->save())
return redirect()->route('courseList')->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');
}
}
/**
* Remove the specified resource from storage.
*/

Voir le fichier

@ -33,7 +33,7 @@ public function up(): void
$table->string('image')->nullable();
$table->string('thumbnail_image')->nullable();
$table->string('thumbnail_video')->nullable();
$table->boolean('status')->default(1)->comment('1 active, 0 inactive');
$table->integer('status')->default(0)->comment('0 pending, 1 inactive, 2 active');
$table->string('language')->default('en');
$table->timestamps();
$table->softDeletes();

Voir le fichier

@ -246,7 +246,7 @@
</select>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
{{-- <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">
@ -254,7 +254,7 @@
<option value="0" @if(old('status')==0) selected @endif>Inactive</option>
</select>
</div>
</div>
</div> --}}
<div class="col-lg-6 col-md-6 col-sm-12">
<label class="form-label">Image</label>
<div class="form-group fallback w-100">

Voir le fichier

@ -35,12 +35,26 @@
<h5 class="card-title">Basic Info</h5>
</div>
<div class="card-body">
<form action="{{route('course.update',encryptor('encrypt', $course->id))}}" method="post"
@if(fullAccess())
<form action="{{route('course.updateforAdmin',encryptor('encrypt', $course->id))}}" method="post"
enctype="multipart/form-data">
@csrf
@method('PATCH')
<input type="hidden" name="uptoken" value="{{encryptor('encrypt',$course->id)}}">
<div class="row">
<div class="col-12">
<div class="form-group">
<label class="form-label">Status</label>
<select class="form-control" name="status">
<option value="0" @if(old('status',$course->status)==0) selected
@endif>Pending</option>
<option value="1" @if(old('status',$course->status)==1) selected
@endif>Inactive</option>
<option value="2" @if(old('status',$course->status)==2) selected
@endif>Active</option>
</select>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Title</label>
@ -270,16 +284,257 @@
<span class="text-danger"> {{ $errors->first('tag') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 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">
<label class="form-label">Thumbnail Image</label>
<div class="form-group fallback w-100">
<input type="file" class="dropify" data-default-file="" name="thumbnail_image">
</div>
</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">Cancel</button>
</div>
</div>
</form>
@endif
@if(!fullAccess())
<form action="{{route('course.update',encryptor('encrypt', $course->id))}}" method="post" enctype="multipart/form-data">
@csrf
@method('PATCH')
<input type="hidden" name="uptoken" value="{{encryptor('encrypt',$course->id)}}">
<div class="row">
<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',$course->status)==1) selected
@endif>Active</option>
<option value="0" @if(old('status',$course->status)==0) selected
@endif>Inactive</option>
<label class="form-label">Title</label>
<input type="text" class="form-control" name="courseTitle_en"
value="{{old('courseTitle_en',$course->title_en)}}">
</div>
@if($errors->has('courseTitle_en'))
<span class="text-danger"> {{ $errors->first('courseTitle_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="courseTitle_bn"
value="{{old('courseTitle_bn',$course->title_bn)}}">
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Description</label>
<textarea class="form-control"
name="courseDescription_en">{{old('courseDescription_en',$course->description_en)}}</textarea>
</div>
@if($errors->has('courseDescription_en'))
<span class="text-danger"> {{ $errors->first('courseDescription_en') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">বিস্তারিত (বাংলায়)</label>
<textarea class="form-control"
name="courseDescription_bn">{{old('courseDescription_bn',$course->description_bn)}}</textarea>
</div>
@if($errors->has('courseDescription_bn'))
<span class="text-danger"> {{ $errors->first('courseDescription_bn') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Category</label>
<select class="form-control" name="categoryId">
@forelse ($courseCategory as $c)
<option value="{{$c->id}}" {{old('categoryId', $course->category_id) ==
$c->id?'selected':''}}>
{{$c->category_name}}</option>
@empty
<option value="">No Category Found</option>
@endforelse
</select>
</div>
@if($errors->has('categoryId'))
<span class="text-danger"> {{ $errors->first('categoryId') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Instructor</label>
<select class="form-control" name="instructorId">
@forelse ($instructor as $i)
<option value="{{$i->id}}" {{old('instructorId', $course->instructor_id) ==
$i->id?'selected':''}}>
{{$i->name_en}}</option>
@empty
<option value="">No Instructor Found</option>
@endforelse
</select>
</div>
@if($errors->has('instructorId'))
<span class="text-danger"> {{ $errors->first('instructorId') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Type</label>
<select class="form-control" name="courseType">
<option value="free" @if(old('courseType', $course->type)=='free' ) selected
@endif>Free
</option>
<option value="paid" @if(old('courseType', $course->type)=='paid' ) selected
@endif>Paid
</option>
<option value="subscription" @if(old('courseType', $course->type)
=='subscription' )
selected @endif>Subscription-based</option>
</select>
</div>
@if($errors->has('courseType'))
<span class="text-danger"> {{ $errors->first('courseType') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Difficulty</label>
<select class="form-control" name="courseDifficulty">
<option value="beginner" @if(old('courseDifficulty', $course->
difficulty)=='beginner' ) selected @endif>Beginner
</option>
<option value="intermediate" @if(old('courseDifficulty', $course->
difficulty)=='intermediate' ) selected @endif>Intermediate
</option>
<option value="advanced" @if(old('courseDifficulty', $course->
difficulty)=='advanced' )
selected @endif>Advanced</option>
</select>
</div>
@if($errors->has('courseDifficulty'))
<span class="text-danger"> {{ $errors->first('courseDifficulty') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Price</label>
<input type="number" class="form-control" name="coursePrice"
value="{{old('coursePrice', $course->price)}}">
</div>
@if($errors->has('coursePrice'))
<span class="text-danger"> {{ $errors->first('coursePrice') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Old Price</label>
<input type="number" class="form-control" name="courseOldPrice"
value="{{old('courseOldPrice', $course->old_price)}}">
</div>
@if($errors->has('courseOldPrice'))
<span class="text-danger"> {{ $errors->first('courseOldPrice') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Subscription Price</label>
<input type="number" class="form-control" name="subscription_price"
value="{{old('subscription_price')}}">
</div>
@if($errors->has('subscription_price'))
<span class="text-danger"> {{ $errors->first('subscription_price',
$course->subscription_price) }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Start From</label>
<input type="date" class="form-control" name="start_from" value="{{old('start_from')}}">
</div>
@if($errors->has('start_from'))
<span class="text-danger"> {{ $errors->first('start_from',
$course->start_from) }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Duration</label>
<input type="number" class="form-control" name="duration" value="{{old('duration',$course->duration)}}">
</div>
@if($errors->has('duration'))
<span class="text-danger"> {{ $errors->first('duration') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Number of Lesson</label>
<input type="number" class="form-control" name="lesson" value="{{old('lesson',$course->lesson)}}">
</div>
@if($errors->has('lesson'))
<span class="text-danger"> {{ $errors->first('lesson') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Prerequisites</label>
<textarea class="form-control"
name="prerequisites_en">{{old('prerequisites_en',$course->prerequisites_en)}}</textarea>
</div>
@if($errors->has('prerequisites_en'))
<span class="text-danger"> {{ $errors->first('prerequisites_en') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">পূর্বশর্ত (বাংলায়)</label>
<textarea class="form-control"
name="prerequisites_bn">{{old('prerequisites_bn',$course->prerequisites_bn)}}</textarea>
</div>
@if($errors->has('prerequisites_bn'))
<span class="text-danger"> {{ $errors->first('prerequisites_bn') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Course Code</label>
<input type="number" class="form-control" name="course_code"
value="{{old('course_code', $course->course_code)}}">
</div>
@if($errors->has('course_code'))
<span class="text-danger"> {{ $errors->first('course_code') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Thumbnail Video URL</label>
<input type="text" class="form-control" name="thumbnail_video"
value="{{old('thumbnail_video',$course->thumbnail_video)}}">
</div>
@if($errors->has('thumbnail_video'))
<span class="text-danger"> {{ $errors->first('thumbnail_video') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group">
<label class="form-label">Course Tag</label>
<select class="form-control" name="tag">
<option value="popular" @if(old('tag', $course->tag)=='popular' ) selected
@endif>Popular
</option>
<option value="featured" @if(old('tag', $course->tag)=='featured' ) selected
@endif>Featured
</option>tag
<option value="upcoming" @if(old('tag', $course->tag)=='upcoming' ) selected
@endif>Upcoming</option>
</select>
</div>
@if($errors->has('tag'))
<span class="text-danger"> {{ $errors->first('tag') }}</span>
@endif
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<label class="form-label">Image</label>
@ -299,6 +554,7 @@
</div>
</div>
</form>
@endif
</div>
</div>
</div>

Voir le fichier

@ -85,6 +85,19 @@
<span class="mb-0">Price :</span>
<strong>{{$d->price?'৳'.$d->price:'Free'}}</strong>
</li>
<li class="list-group-item px-0 d-flex justify-content-between">
<span class="mb-0">Status :</span>
<span class="badge
@if($d->status == 0) badge-warning
@elseif($d->status == 1) badge-danger
@elseif($d->status == 2) badge-success
@endif">
@if($d->status == 0) {{__('Pending')}}
@elseif($d->status == 1) {{__('Inactive')}}
@elseif($d->status == 2) {{__('Active')}}
@endif
</span>
</li>
</ul>
<a class="btn btn-outline-primary btn-rounded mt-3 px-4"
href="about-student.html">Read More</a>

Voir le fichier

@ -0,0 +1,115 @@
@extends('backend.layouts.app')
@section('title', 'Course List')
@push('styles')
<!-- Datatable -->
<link href="{{asset('public/vendor/datatables/css/jquery.dataTables.min.css')}}" rel="stylesheet">
@endpush
@section('content')
<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>Course 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="{{route('dashboard')}}">Home</a></li>
<li class="breadcrumb-item active"><a href="{{route('course.index')}}">Instructors</a></li>
<li class="breadcrumb-item active"><a href="{{route('course.index')}}">All Course</a></li>
</ol>
</div>
</div>
<div class="row">
<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 Course List </h4>
<a href="{{route('enrollment.create')}}" 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>{{__('Course Name')}}</th>
<th>{{__('Instructor')}}</th>
<th>{{__('Category')}}</th>
<th>{{__('Price')}}</th>
<th>{{__('Status')}}</th>
<th>{{__('Action')}}</th>
</tr>
</thead>
<tbody>
@forelse ($course as $d)
<tr>
<td><img class="img fluid" width="100" src="{{asset('public/uploads/courses/'.$d->image)}}" alt="">
</td>
<td><strong>{{$d->title_en}}</strong></td>
<td><strong>{{$d->instructor?->name_en}}</strong></td>
<td><strong>{{$d->courseCategory?->category_name}}</strong>
</td>
<td><strong>{{$d->price?'৳'.$d->price:'Free'}}</strong></td>
<td>
<span class="badge
@if($d->status == 0) badge-warning
@elseif($d->status == 1) badge-danger
@elseif($d->status == 2) badge-success
@endif">
@if($d->status == 0) {{__('Pending')}}
@elseif($d->status == 1) {{__('Inactive')}}
@elseif($d->status == 2) {{__('Active')}}
@endif
</span>
</td>
<td>
<a href="{{route('course.edit', encryptor('encrypt',$d->id))}}"
class="btn btn-sm btn-primary" title="Edit"><i
class="la la-pencil"></i></a>
<a href="javascript:void(0);" class="btn btn-sm btn-danger"
title="Delete" onclick="$('#form{{$d->id}}').submit()"><i
class="la la-trash-o"></i></a>
<form id="form{{$d->id}}"
action="{{route('course.destroy', encryptor('encrypt',$d->id))}}"
method="post">
@csrf
@method('DELETE')
</form>
</td>
</tr>
@empty
<tr>
<th colspan="6" class="text-center">No Enrollment Found</th>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@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

Voir le fichier

@ -227,6 +227,7 @@ class="las la-chalkboard-teacher"></i>Instructors</a>
<li><a href="{{route('courseCategory.index')}}"><i class="la la-list"></i>Course
Category</a>
</li>
<li><a href="{{route('courseList')}}"><i class="las la-school"></i>Courses List</a></li>
<li><a href="{{route('course.index')}}"><i class="las la-book-open"></i>All Courses</a></li>
<li><a href="{{route('lesson.index')}}"><i class="las la-chalkboard"></i>Lessons</a></li>
<li><a href="{{route('material.index')}}"><i class="las la-atom"></i></i>Materials</a></li>

Voir le fichier

@ -62,6 +62,8 @@
Route::resource('instructor', instructor::class);
Route::resource('courseCategory', courseCategory::class);
Route::resource('course', course::class);
Route::get('/courseList', [course::class, 'indexForAdmin'])->name('courseList');
Route::patch('/courseList/{update}', [course::class, 'updateforAdmin'])->name('course.updateforAdmin');
Route::resource('material', material::class);
Route::resource('lesson', lesson::class);
Route::resource('quiz', quiz::class);