diff --git a/Modules/CCMS/app/Http/Controllers/CounselorController.php b/Modules/CCMS/app/Http/Controllers/CounselorController.php
new file mode 100644
index 0000000..9d8b588
--- /dev/null
+++ b/Modules/CCMS/app/Http/Controllers/CounselorController.php
@@ -0,0 +1,117 @@
+ajax()) {
+ $model = Counselor::query()->latest();
+ return DataTables::eloquent($model)
+ ->addIndexColumn()
+ ->addColumn('action', 'ccms::counselor.datatable.action')
+ ->rawColumns(['action'])
+ ->toJson();
+ }
+ return view('ccms::counselor.index', [
+ 'title' => 'Counselor List',
+ ]);
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ */
+ public function create()
+ {
+ return view('ccms::create');
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ */
+ public function store(Request $request)
+ {
+ try {
+ $rules = [
+ 'name' => 'required|string',
+ 'email' => 'required|email',
+ 'address' => 'required|string',
+ 'contact' => 'required|string',
+ 'test_score' => 'required|string',
+ 'qualification' => 'required|string',
+ ];
+
+ if (setting('enable_reCaptcha') == 1) {
+ $rules['g-recaptcha-response'] = ['required', new Recaptcha];
+ }
+
+ $messages = [
+ 'email.email' => 'Must be a valid email address.',
+ 'g-recaptcha-response.required' => 'Please complete reCAPTCHA validation.',
+ 'g-recaptcha-response' => 'Invalid reCAPTCHA.',
+ ];
+
+ $validator = Validator::make($request->all(), $rules, $messages);
+ if ($validator->fails()) {
+ return response()->json(['errors' => $validator->errors()], 422);
+ }
+
+ Counselor::create($validator->validated());
+
+ return response()->json(['status' => 200, 'message' => "Thank you for reaching out! Your message has been received and we'll get back to you shortly."], 200);
+ } catch (\Exception $e) {
+ return response()->json(['status' => 500, 'message' => 'Internal server error', 'error' => $e->getMessage()], 500);
+ }
+ }
+
+ /**
+ * Show the specified resource.
+ */
+ public function show($id)
+ {
+ return view('ccms::show');
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ */
+ public function edit($id)
+ {
+ return view('ccms::edit');
+ }
+
+ /**
+ * Update the specified resource in storage.
+ */
+ public function update(Request $request, $id)
+ {
+ //
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ */
+ public function destroy($id)
+ {
+ try {
+ $enquiry = Counselor::whereId($id)->first();
+ if ($enquiry) {
+ $enquiry->delete();
+ }
+ return response()->json(['status' => 200, 'message' => 'Counselor has been deleted!'], 200);
+ } catch (\Throwable $th) {
+ return redirect()->back()->with('error', $th->getMessage());
+ }
+ }
+}
diff --git a/Modules/CCMS/app/Models/Counselor.php b/Modules/CCMS/app/Models/Counselor.php
new file mode 100644
index 0000000..e917b76
--- /dev/null
+++ b/Modules/CCMS/app/Models/Counselor.php
@@ -0,0 +1,22 @@
+id();
+ $table->string('name')->nullable();
+ $table->text('address')->nullable();
+ $table->string('email')->nullable();
+ $table->string('contact')->nullable();
+ $table->string('test_score')->nullable();
+ $table->string('qualification')->nullable();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('counselors');
+ }
+};
diff --git a/Modules/CCMS/resources/views/counselor/create.blade.php b/Modules/CCMS/resources/views/counselor/create.blade.php
new file mode 100644
index 0000000..b386130
--- /dev/null
+++ b/Modules/CCMS/resources/views/counselor/create.blade.php
@@ -0,0 +1,14 @@
+@extends('layouts.app')
+@section('content')
+
+
+
+
+ {{ html()->form('POST')->route('testimonial.store')->class(['needs-validation'])->attributes(['enctype' => 'multipart/form-data', 'novalidate'])->open() }}
+
+ @include('ccms::testimonial.partials._form')
+
+ {{ html()->form()->close() }}
+
+
+@endsection
diff --git a/Modules/CCMS/resources/views/counselor/datatable/action.blade.php b/Modules/CCMS/resources/views/counselor/datatable/action.blade.php
new file mode 100644
index 0000000..f8d5412
--- /dev/null
+++ b/Modules/CCMS/resources/views/counselor/datatable/action.blade.php
@@ -0,0 +1,10 @@
+
diff --git a/Modules/CCMS/resources/views/counselor/edit.blade.php b/Modules/CCMS/resources/views/counselor/edit.blade.php
new file mode 100644
index 0000000..5d96439
--- /dev/null
+++ b/Modules/CCMS/resources/views/counselor/edit.blade.php
@@ -0,0 +1,14 @@
+@extends('layouts.app')
+@section('content')
+
+
+
+
+ {{ html()->modelForm($testimonial, 'PUT')->route('testimonial.update', $testimonial->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
+
+ @include('ccms::testimonial.partials._form')
+
+ {{ html()->form()->close() }}
+
+
+@endsection
diff --git a/Modules/CCMS/resources/views/counselor/index.blade.php b/Modules/CCMS/resources/views/counselor/index.blade.php
new file mode 100644
index 0000000..c6f1b0e
--- /dev/null
+++ b/Modules/CCMS/resources/views/counselor/index.blade.php
@@ -0,0 +1,37 @@
+@extends('layouts.app')
+@section('content')
+
+
+
+
+
+ @php
+ $columns = [
+ [
+ 'title' => 'S.N',
+ 'data' => 'DT_RowIndex',
+ 'name' => 'DT_RowIndex',
+ 'orderable' => false,
+ 'searchable' => false,
+ 'sortable' => false,
+ ],
+ ['title' => 'Name', 'data' => 'name', 'name' => 'name'],
+ ['title' => 'Email', 'data' => 'email', 'name' => 'email'],
+ ['title' => 'Contact', 'data' => 'contact', 'name' => 'contact'],
+ ['title' => 'Test Score', 'data' => 'test_score', 'name' => 'test_score'],
+ ['title' => 'Qualification', 'data' => 'qualification', 'name' => 'qualification'],
+ [
+ 'title' => 'Action',
+ 'data' => 'action',
+ 'orderable' => false,
+ 'searchable' => false,
+ ],
+ ];
+ @endphp
+
+
+
+
+@endsection
diff --git a/Modules/CCMS/resources/views/counselor/partials/_form.blade.php b/Modules/CCMS/resources/views/counselor/partials/_form.blade.php
new file mode 100644
index 0000000..d2b7a04
--- /dev/null
+++ b/Modules/CCMS/resources/views/counselor/partials/_form.blade.php
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ {{ html()->label('Name')->class('form-label') }}
+ {{ html()->span('*')->class('text-danger') }}
+ {{ html()->text('title')->class('form-control')->placeholder('Enter Name')->required() }}
+ {{ html()->div('Name is required')->class('invalid-feedback') }}
+
+
+
+ {{ html()->label('Designation')->class('form-label') }}
+ {{ html()->text('designation')->class('form-control')->placeholder('Enter Designation') }}
+
+
+
+ {{ html()->label('Company')->class('form-label') }}
+ {{ html()->text('company')->class('form-control')->placeholder('Enter Company') }}
+
+
+
+ {{ html()->label('Branch')->class('form-label')->for('branch_id') }}
+ {{ html()->select('branch_id', $branchOptions)->class('form-select choices-select')->placeholder('Select') }}
+
+
+
+ {{ html()->label('Comment')->class('form-label')->for('description') }}
+ {{ html()->span('*')->class('text-danger') }}
+ {{ html()->textarea('description')->class('form-control')->rows(10) }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ html()->select('status', config('constants.page_status_options'))->class('form-select choices-select ') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ html()->label('Image')->class('form-label')->for('image') }}
+
+
+
+
+
+
+
diff --git a/Modules/CCMS/routes/web.php b/Modules/CCMS/routes/web.php
index b2125e5..bf7bfe3 100644
--- a/Modules/CCMS/routes/web.php
+++ b/Modules/CCMS/routes/web.php
@@ -4,6 +4,7 @@ use Illuminate\Support\Facades\Route;
use Modules\CCMS\Http\Controllers\BlogController;
use Modules\CCMS\Http\Controllers\BranchController;
use Modules\CCMS\Http\Controllers\CategoryController;
+use Modules\CCMS\Http\Controllers\CounselorController;
use Modules\CCMS\Http\Controllers\CounterController;
use Modules\CCMS\Http\Controllers\CountryController;
use Modules\CCMS\Http\Controllers\EnquiryController;
@@ -33,7 +34,7 @@ use Modules\CCMS\Http\Controllers\TestimonialController;
|
*/
-Route::group(['middleware' => ['web', 'auth', 'permission'],'prefix' => 'admin/'], function () {
+Route::group(['middleware' => ['web', 'auth', 'permission'], 'prefix' => 'admin/'], function () {
Route::post('page/reorder', [PageController::class, 'reorder'])->name('page.reorder');
Route::get('page/toggle/{id}', [PageController::class, 'toggle'])->name('page.toggle');
@@ -122,6 +123,6 @@ Route::group(['middleware' => ['web', 'auth', 'permission'],'prefix' => 'admin/'
Route::get('enquiry/mark-as-read/{id}', [EnquiryController::class, 'markAsRead'])->name('enquiry.markAsRead');
Route::resource('enquiry', EnquiryController::class)->names('enquiry')->only(['index', 'store', 'destroy']);
+
+ Route::resource('counselor', CounselorController::class)->names('counselor')->only(['index', 'store', 'destroy']);
});
-
-
diff --git a/resources/views/client/raffles/layouts/app.blade.php b/resources/views/client/raffles/layouts/app.blade.php
index e546a73..400ab45 100644
--- a/resources/views/client/raffles/layouts/app.blade.php
+++ b/resources/views/client/raffles/layouts/app.blade.php
@@ -219,7 +219,45 @@
});
-
+
+