From e80c67c0e24c6b78f860dc7502dfec5bebb8c84c Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 17:02:39 +0545 Subject: [PATCH 01/21] fix: Adjust slidesPerView setting for better responsiveness in carousel --- resources/views/client/raffles/layouts/app.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/client/raffles/layouts/app.blade.php b/resources/views/client/raffles/layouts/app.blade.php index 66c5dce..718cacf 100644 --- a/resources/views/client/raffles/layouts/app.blade.php +++ b/resources/views/client/raffles/layouts/app.blade.php @@ -463,7 +463,7 @@ spaceBetween: 2, }, 1024: { - slidesPerView: 4, + slidesPerView: 2, spaceBetween: 3, }, }, From a504987ac1888c41395692922cf5b65ff74dd85c Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 17:03:49 +0545 Subject: [PATCH 02/21] fix: Update slidesPerView setting for improved carousel display on larger screens --- resources/views/client/raffles/layouts/app.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/client/raffles/layouts/app.blade.php b/resources/views/client/raffles/layouts/app.blade.php index 718cacf..f08779a 100644 --- a/resources/views/client/raffles/layouts/app.blade.php +++ b/resources/views/client/raffles/layouts/app.blade.php @@ -463,7 +463,7 @@ spaceBetween: 2, }, 1024: { - slidesPerView: 2, + slidesPerView: 3, spaceBetween: 3, }, }, From 50a2b09cfaf6af6a2d923dc983df141930f80dc5 Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 17:04:48 +0545 Subject: [PATCH 03/21] fix: Increase slidesPerView setting for enhanced carousel display on larger screens --- resources/views/client/raffles/layouts/app.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/client/raffles/layouts/app.blade.php b/resources/views/client/raffles/layouts/app.blade.php index f08779a..e6720aa 100644 --- a/resources/views/client/raffles/layouts/app.blade.php +++ b/resources/views/client/raffles/layouts/app.blade.php @@ -463,7 +463,7 @@ spaceBetween: 2, }, 1024: { - slidesPerView: 3, + slidesPerView: 5, spaceBetween: 3, }, }, From c77828de8c021e6f1bbc500555e163334196bf01 Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 17:06:44 +0545 Subject: [PATCH 04/21] fix: Update slidesPerView setting for improved carousel responsiveness --- app/Http/Controllers/WebsiteController.php | 2 +- resources/views/client/raffles/layouts/app.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/WebsiteController.php b/app/Http/Controllers/WebsiteController.php index 686971e..6836f89 100644 --- a/app/Http/Controllers/WebsiteController.php +++ b/app/Http/Controllers/WebsiteController.php @@ -57,7 +57,7 @@ class WebsiteController extends Controller $data['faqs'] = getFAQs(limit: null, order: 'desc'); $data['testimonials'] = getTestimonials(limit: null, order: 'desc'); $data['blogs'] = getBlogs(limit: 4, order: 'desc'); - $data['partners'] = getPartners(limit: 4, order: 'desc'); + $data['partners'] = getPartners(); $data['gallaries'] = getGalleries(limit: 6, order: 'asc'); $data['achievementGalleries'] = getGalleriesByCategory(limit: null, order: 'asc', category: 'achievement'); $data['visaGalleries'] = getGalleriesByCategory(limit: null, order: 'asc', category: 'visa-success'); diff --git a/resources/views/client/raffles/layouts/app.blade.php b/resources/views/client/raffles/layouts/app.blade.php index e6720aa..66c5dce 100644 --- a/resources/views/client/raffles/layouts/app.blade.php +++ b/resources/views/client/raffles/layouts/app.blade.php @@ -463,7 +463,7 @@ spaceBetween: 2, }, 1024: { - slidesPerView: 5, + slidesPerView: 4, spaceBetween: 3, }, }, From a57e00191a1cc31f016f767224aeefd83c8bd71d Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 17:25:31 +0545 Subject: [PATCH 05/21] fix: Update franchise template to use dynamic content for images and contact details --- .../pages/franchise-template.blade.php | 33 ++++++++----------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/resources/views/client/raffles/pages/franchise-template.blade.php b/resources/views/client/raffles/pages/franchise-template.blade.php index 0270f5b..fefb57b 100644 --- a/resources/views/client/raffles/pages/franchise-template.blade.php +++ b/resources/views/client/raffles/pages/franchise-template.blade.php @@ -9,27 +9,20 @@
- +
-

Franchise

+

{{ $page->title }}

Raffles EduCare

-

Raffles Educare Associates Pvt. Ltd., established in 2005, is one of the best educational - consultancy - with a successful track record in the overseas education.Over the 15 years of excellence we have - 97% - visa success rate along with highest student satisfaction, fulfilling the career dreams of many - students. Since the year of inception, we have been providing educational services of - international - standards and escalated to be one of the leading institutions.

+ {!! $page->description !!}
Have any questions? Call/Whatsapp
- +977 9801086208 + +977 {{ setting('mobile') }}
@@ -176,9 +169,9 @@ + + + -->
@@ -216,9 +209,9 @@ + + + --> @@ -250,15 +243,15 @@ From 3bfb3f2b20d672aae2510bbab01a8725b6a0726c Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 17:37:05 +0545 Subject: [PATCH 06/21] event changes --- .../raffles/pages/events-template.blade.php | 71 ++++++++----------- 1 file changed, 30 insertions(+), 41 deletions(-) diff --git a/resources/views/client/raffles/pages/events-template.blade.php b/resources/views/client/raffles/pages/events-template.blade.php index e237243..64f892b 100644 --- a/resources/views/client/raffles/pages/events-template.blade.php +++ b/resources/views/client/raffles/pages/events-template.blade.php @@ -1,8 +1,7 @@ @extends('client.raffles.layouts.app') @section('content')
- events + events
@@ -18,16 +17,7 @@

Upcoming Events

- +
@@ -35,27 +25,7 @@
- -
-
-
-

Apr

-

14

-
-
-

Free ilets Class: Raffles Educare Associates

-

Join the free ilets Classes

-

Starting from 5 pm - 7 pm

-
-
-
- -
- - -
-
- +
@@ -74,7 +44,7 @@
- +
@@ -93,7 +63,7 @@
- +
@@ -112,7 +82,26 @@
- + +
+
+
+

Apr

+

14

+
+
+

Free ilets Class: Raffles Educare Associates

+

Join the free ilets Classes

+

Starting from 5 pm - 7 pm

+
+
+
+ +
+ +
+
+
@@ -151,7 +140,7 @@
- +
@@ -171,7 +160,7 @@
- +
@@ -190,7 +179,7 @@
- +
@@ -209,7 +198,7 @@
- +
@@ -228,7 +217,7 @@
- +
From badfdc4c709e12b5b33488ec079d0c6c83731e96 Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 17:41:22 +0545 Subject: [PATCH 07/21] change in event --- .../raffles/pages/events-template.blade.php | 120 +++--------------- 1 file changed, 21 insertions(+), 99 deletions(-) diff --git a/resources/views/client/raffles/pages/events-template.blade.php b/resources/views/client/raffles/pages/events-template.blade.php index 64f892b..2df53df 100644 --- a/resources/views/client/raffles/pages/events-template.blade.php +++ b/resources/views/client/raffles/pages/events-template.blade.php @@ -248,109 +248,31 @@

Blog

-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptate, assumenda. +

Our blog + features articles written by experts in the field, providing valuable information to help you achieve + your goals.

- -
- -
-
- 20 min read -

How Successfully Used Paid Marketing to Drive Incremental - Ticket Sales

-
-
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. - Inventore reprehenderit, dolor ad quis dignissimos aliquid nesciunt distinctio suscipit - ipsam voluptatum.

-

12 Mar - Jhon Doe

- -
- -
- - -
- -
-
- 20 min read -

How Successfully Used Paid Marketing to Drive Incremental - Ticket Sales

-
-
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. - Inventore reprehenderit, dolor ad quis dignissimos aliquid nesciunt distinctio suscipit - ipsam voluptatum.

-

12 Mar - Jhon Doe

- -
- -
- -
- -
-
- 20 min read -

How Successfully Used Paid Marketing to Drive Incremental - Ticket Sales

-
-
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. - Inventore reprehenderit, dolor ad quis dignissimos aliquid nesciunt distinctio suscipit - ipsam voluptatum.

-

12 Mar - Jhon Doe

- -
- -
- -
- -
-
- 20 min read -

How Successfully Used Paid Marketing to Drive Incremental - Ticket Sales

-
-
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. - Inventore reprehenderit, dolor ad quis dignissimos aliquid nesciunt distinctio suscipit - ipsam voluptatum.

-

12 Mar - Jhon Doe

- -
- -
- -
- -
-
- 20 min read -

How Successfully Used Paid Marketing to Drive Incremental - Ticket Sales

-
-
-

Lorem ipsum dolor sit amet consectetur adipisicing elit. - Inventore reprehenderit, dolor ad quis dignissimos aliquid nesciunt distinctio suscipit - ipsam voluptatum.

-

12 Mar - Jhon Doe

- -
- -
+ @foreach ($blogs as $blog) + +
+ +
+
+ 20 min read +

{{ $blog->title }}

+
+
+

{{ $blog->short_description }}

+
+
+ @endforeach
@@ -358,11 +280,11 @@
-
+ {{--
-
+
--}}
From 6ff22bc02d9aacf8d523bce7b480f010d799ed77 Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 17:50:39 +0545 Subject: [PATCH 08/21] gallary changes --- .../raffles/pages/gallery-template.blade.php | 27 +++---------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/resources/views/client/raffles/pages/gallery-template.blade.php b/resources/views/client/raffles/pages/gallery-template.blade.php index 10ef930..76c8a40 100644 --- a/resources/views/client/raffles/pages/gallery-template.blade.php +++ b/resources/views/client/raffles/pages/gallery-template.blade.php @@ -1,7 +1,7 @@ @extends('client.raffles.layouts.app') @section('content')
- Gallery + Gallery
@@ -17,28 +17,9 @@
From 3148715b734839205579aae667740c8b32fcbeee Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 17:55:44 +0545 Subject: [PATCH 09/21] terms and condition changes --- .../raffles/pages/terms-template.blade.php | 50 +------------------ 1 file changed, 2 insertions(+), 48 deletions(-) diff --git a/resources/views/client/raffles/pages/terms-template.blade.php b/resources/views/client/raffles/pages/terms-template.blade.php index a1384a2..af48ef4 100644 --- a/resources/views/client/raffles/pages/terms-template.blade.php +++ b/resources/views/client/raffles/pages/terms-template.blade.php @@ -3,7 +3,7 @@
- +
@@ -21,53 +21,7 @@
-
-
-
Last updated: April 17, 2025
-
- -
-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta.

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta.

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta.

-
-
-

Accounts

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta. - Lorem ipsum dolor, sit amet consectetur adipisicing elit. Nemo, assumenda!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta.

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta.

-
-
-

Links To Other Web Sites

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta. - Lorem ipsum dolor, sit amet consectetur adipisicing elit. Nemo, assumenda!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta.

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta.

-
-
-

Termination

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta. - Lorem ipsum dolor, sit amet consectetur adipisicing elit. Nemo, assumenda!

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta.

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Molestiae - sed vitae explicabo unde veritatis? Assumenda dignissimos atque consectetur facilis soluta.

-
- - - -
+ {!! $page->description !!} From 622b9e94455c56d9895c836cb46a930fea296e0b Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 18:01:48 +0545 Subject: [PATCH 10/21] fix: Update service icon background color to blue in header --- .../views/client/raffles/layouts/partials/header.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/client/raffles/layouts/partials/header.blade.php b/resources/views/client/raffles/layouts/partials/header.blade.php index 0d7ef73..e3b9feb 100644 --- a/resources/views/client/raffles/layouts/partials/header.blade.php +++ b/resources/views/client/raffles/layouts/partials/header.blade.php @@ -68,7 +68,7 @@ @foreach ($tests as $test) -
+
From 6e9b6291d3562e018f2c00090d758c9ca3896861 Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 18:04:02 +0545 Subject: [PATCH 11/21] changes --- .../pages/achievement-template.blade.php | 120 +----------------- 1 file changed, 6 insertions(+), 114 deletions(-) diff --git a/resources/views/client/raffles/pages/achievement-template.blade.php b/resources/views/client/raffles/pages/achievement-template.blade.php index 8667e65..7be622e 100644 --- a/resources/views/client/raffles/pages/achievement-template.blade.php +++ b/resources/views/client/raffles/pages/achievement-template.blade.php @@ -21,8 +21,8 @@
From 7155c1a6fc61522d6ebe4ac1bd037e5925944d96 Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 18:08:59 +0545 Subject: [PATCH 12/21] fix: Update image sources to use dynamic asset paths and implement blog loop in CSR template --- .../raffles/pages/csr-template.blade.php | 150 ++++++------------ 1 file changed, 48 insertions(+), 102 deletions(-) diff --git a/resources/views/client/raffles/pages/csr-template.blade.php b/resources/views/client/raffles/pages/csr-template.blade.php index 6bc2bc4..9771172 100644 --- a/resources/views/client/raffles/pages/csr-template.blade.php +++ b/resources/views/client/raffles/pages/csr-template.blade.php @@ -3,12 +3,7 @@
- - +
@@ -29,7 +24,7 @@
- +
@@ -50,46 +45,46 @@
+
+
+
+ text box image +
+
+
+
+
+
+
-->
@@ -99,8 +94,6 @@

Blogs

- -
@@ -108,63 +101,16 @@
From d29b3ba48949cbb744135f08ca2eaaee1b1e6cae Mon Sep 17 00:00:00 2001 From: Subash Date: Thu, 21 Aug 2025 23:23:38 +0545 Subject: [PATCH 13/21] Add Franchise and Newsletter management features - Implemented FranchiseController with CRUD operations and data handling. - Created NewsletterController for managing newsletter subscriptions. - Added routes for Franchise and Newsletter resources in web.php. - Developed views for Franchise and Newsletter management including index, create, edit, and datatable actions. - Introduced form handling and validation for Franchise and Newsletter submissions. - Created database migrations for franchises and newsletters tables. - Updated sidebar configuration to include Franchise and Newsletter sections. - Enhanced client-side forms with AJAX submission for Franchise and Newsletter. --- .../Http/Controllers/FranchiseController.php | 116 ++++++++++++++++++ .../Http/Controllers/NewsletterController.php | 115 +++++++++++++++++ Modules/CCMS/app/Models/Franchise.php | 37 ++++++ Modules/CCMS/app/Models/Newsletter.php | 19 +++ ..._08_21_165811_create_newsletters_table.php | 28 +++++ ...5_08_21_165829_create_franchises_table.php | 40 ++++++ .../views/franchise/create.blade.php | 14 +++ .../franchise/datatable/action.blade.php | 10 ++ .../resources/views/franchise/edit.blade.php | 14 +++ .../resources/views/franchise/index.blade.php | 41 +++++++ .../views/franchise/partials/_form.blade.php | 71 +++++++++++ .../views/newsletter/create.blade.php | 14 +++ .../newsletter/datatable/action.blade.php | 8 ++ .../resources/views/newsletter/edit.blade.php | 14 +++ .../views/newsletter/index.blade.php | 33 +++++ .../views/newsletter/partials/_form.blade.php | 71 +++++++++++ Modules/CCMS/routes/web.php | 5 + config/sidebar.php | 46 ++++--- .../client/raffles/layouts/app.blade.php | 80 ++++++++++++ .../raffles/layouts/partials/footer.blade.php | 6 +- .../raffles/pages/csr-template.blade.php | 6 +- .../pages/franchise-template.blade.php | 52 ++++---- .../pages/test-single-template.blade.php | 82 ++++++++----- 23 files changed, 843 insertions(+), 79 deletions(-) create mode 100644 Modules/CCMS/app/Http/Controllers/FranchiseController.php create mode 100644 Modules/CCMS/app/Http/Controllers/NewsletterController.php create mode 100644 Modules/CCMS/app/Models/Franchise.php create mode 100644 Modules/CCMS/app/Models/Newsletter.php create mode 100644 Modules/CCMS/database/migrations/2025_08_21_165811_create_newsletters_table.php create mode 100644 Modules/CCMS/database/migrations/2025_08_21_165829_create_franchises_table.php create mode 100644 Modules/CCMS/resources/views/franchise/create.blade.php create mode 100644 Modules/CCMS/resources/views/franchise/datatable/action.blade.php create mode 100644 Modules/CCMS/resources/views/franchise/edit.blade.php create mode 100644 Modules/CCMS/resources/views/franchise/index.blade.php create mode 100644 Modules/CCMS/resources/views/franchise/partials/_form.blade.php create mode 100644 Modules/CCMS/resources/views/newsletter/create.blade.php create mode 100644 Modules/CCMS/resources/views/newsletter/datatable/action.blade.php create mode 100644 Modules/CCMS/resources/views/newsletter/edit.blade.php create mode 100644 Modules/CCMS/resources/views/newsletter/index.blade.php create mode 100644 Modules/CCMS/resources/views/newsletter/partials/_form.blade.php diff --git a/Modules/CCMS/app/Http/Controllers/FranchiseController.php b/Modules/CCMS/app/Http/Controllers/FranchiseController.php new file mode 100644 index 0000000..a6c5191 --- /dev/null +++ b/Modules/CCMS/app/Http/Controllers/FranchiseController.php @@ -0,0 +1,116 @@ +ajax()) { + $model = Franchise::query()->latest(); + return DataTables::eloquent($model) + ->addIndexColumn() + ->addColumn('action', 'ccms::franchise.datatable.action') + ->rawColumns(['action']) + ->toJson(); + } + return view('ccms::franchise.index', [ + 'title' => 'Franchise List', + ]); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + try { + $rules = [ + 'first_name' => 'required|string', + 'email' => 'required|email', + ]; + + 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); + } + + Franchise::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) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + try { + $franchise = Franchise::whereId($id)->first(); + if ($franchise) { + $franchise->delete(); + } + return response()->json(['status' => 200, 'message' => 'Franchise has been deleted!'], 200); + } catch (\Throwable $th) { + return redirect()->back()->with('error', $th->getMessage()); + } + } + +} diff --git a/Modules/CCMS/app/Http/Controllers/NewsletterController.php b/Modules/CCMS/app/Http/Controllers/NewsletterController.php new file mode 100644 index 0000000..db7f764 --- /dev/null +++ b/Modules/CCMS/app/Http/Controllers/NewsletterController.php @@ -0,0 +1,115 @@ +ajax()) { + $model = Newsletter::query()->latest(); + return DataTables::eloquent($model) + ->addIndexColumn() + ->addColumn('action', 'ccms::newsletter.datatable.action') + ->rawColumns(['action']) + ->toJson(); + } + return view('ccms::newsletter.index', [ + 'title' => 'Newsletter List', + ]); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + try { + $rules = [ + 'email' => 'required|email', + ]; + + 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); + } + + Newsletter::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) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + try { + $newsletter = Newsletter::whereId($id)->first(); + if ($newsletter) { + $newsletter->delete(); + } + return response()->json(['status' => 200, 'message' => 'Newsletter has been deleted!'], 200); + } catch (\Throwable $th) { + return redirect()->back()->with('error', $th->getMessage()); + } + } + +} diff --git a/Modules/CCMS/app/Models/Franchise.php b/Modules/CCMS/app/Models/Franchise.php new file mode 100644 index 0000000..f7d7d3c --- /dev/null +++ b/Modules/CCMS/app/Models/Franchise.php @@ -0,0 +1,37 @@ +id(); + $table->string('email')->unique(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('newsletters'); + } +}; diff --git a/Modules/CCMS/database/migrations/2025_08_21_165829_create_franchises_table.php b/Modules/CCMS/database/migrations/2025_08_21_165829_create_franchises_table.php new file mode 100644 index 0000000..757e355 --- /dev/null +++ b/Modules/CCMS/database/migrations/2025_08_21_165829_create_franchises_table.php @@ -0,0 +1,40 @@ +id(); + $table->string('first_name')->nullable(); + $table->string('last_name')->nullable(); + $table->string('email')->nullable(); + $table->string('phone')->nullable(); + $table->string('address')->nullable(); + $table->string('city')->nullable(); + $table->string('state')->nullable(); + $table->string('invest_level')->nullable(); + $table->string('own_business')->nullable(); + $table->text('yes_own_des')->nullable(); + $table->string('franchise_location')->nullable(); + $table->string('start_time_frame')->nullable(); + $table->string('office_setup')->nullable(); + $table->string('website')->nullable(); + $table->timestamps(); + }); + } + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('franchises'); + } +}; diff --git a/Modules/CCMS/resources/views/franchise/create.blade.php b/Modules/CCMS/resources/views/franchise/create.blade.php new file mode 100644 index 0000000..b386130 --- /dev/null +++ b/Modules/CCMS/resources/views/franchise/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/franchise/datatable/action.blade.php b/Modules/CCMS/resources/views/franchise/datatable/action.blade.php new file mode 100644 index 0000000..e220d39 --- /dev/null +++ b/Modules/CCMS/resources/views/franchise/datatable/action.blade.php @@ -0,0 +1,10 @@ +
+ + {{-- --}} + + + + + +
diff --git a/Modules/CCMS/resources/views/franchise/edit.blade.php b/Modules/CCMS/resources/views/franchise/edit.blade.php new file mode 100644 index 0000000..5d96439 --- /dev/null +++ b/Modules/CCMS/resources/views/franchise/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/franchise/index.blade.php b/Modules/CCMS/resources/views/franchise/index.blade.php new file mode 100644 index 0000000..18a4159 --- /dev/null +++ b/Modules/CCMS/resources/views/franchise/index.blade.php @@ -0,0 +1,41 @@ +@extends('layouts.app') +@section('content') +
+ +
+
+
{{ $title }}
+
+
+ @php + $columns = [ + [ + 'title' => 'S.N', + 'data' => 'DT_RowIndex', + 'name' => 'DT_RowIndex', + 'orderable' => false, + 'searchable' => false, + 'sortable' => false, + ], + ['title' => 'First Name', 'data' => 'name', 'first_name' => 'first_name'], + ['title' => 'Last Name', 'data' => 'name', 'first_name' => 'first_name'], + ['title' => 'Email', 'data' => 'email', 'name' => 'email'], + ['title' => 'Phone', 'data' => 'phone', 'name' => 'phone'], + ['title' => 'Address', 'data' => 'address', 'name' => 'address'], + ['title' => 'City', 'data' => 'city', 'name' => 'city'], + ['title' => 'State', 'data' => 'state', 'name' => 'state'], + ['title' => 'Invest Level', 'data' => 'invest_level', 'name' => 'invest_level'], + ['title' => 'Franchise Location', 'data' => 'franchise_location', 'name' => 'franchise_location'], + [ + 'title' => 'Action', + 'data' => 'action', + 'orderable' => false, + 'searchable' => false, + ], + ]; + @endphp + +
+
+
+@endsection diff --git a/Modules/CCMS/resources/views/franchise/partials/_form.blade.php b/Modules/CCMS/resources/views/franchise/partials/_form.blade.php new file mode 100644 index 0000000..d2b7a04 --- /dev/null +++ b/Modules/CCMS/resources/views/franchise/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) }} +
+
+
+
+
+ +
+
+
+
Publish
+
+
+
+
+ {{ html()->select('status', config('constants.page_status_options'))->class('form-select choices-select ') }} +
+
+
+ + + +
+ + +
+ +
diff --git a/Modules/CCMS/resources/views/newsletter/create.blade.php b/Modules/CCMS/resources/views/newsletter/create.blade.php new file mode 100644 index 0000000..b386130 --- /dev/null +++ b/Modules/CCMS/resources/views/newsletter/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/newsletter/datatable/action.blade.php b/Modules/CCMS/resources/views/newsletter/datatable/action.blade.php new file mode 100644 index 0000000..ab5049c --- /dev/null +++ b/Modules/CCMS/resources/views/newsletter/datatable/action.blade.php @@ -0,0 +1,8 @@ +
+ + + + + +
diff --git a/Modules/CCMS/resources/views/newsletter/edit.blade.php b/Modules/CCMS/resources/views/newsletter/edit.blade.php new file mode 100644 index 0000000..5d96439 --- /dev/null +++ b/Modules/CCMS/resources/views/newsletter/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/newsletter/index.blade.php b/Modules/CCMS/resources/views/newsletter/index.blade.php new file mode 100644 index 0000000..9f7a0a3 --- /dev/null +++ b/Modules/CCMS/resources/views/newsletter/index.blade.php @@ -0,0 +1,33 @@ +@extends('layouts.app') +@section('content') +
+ +
+
+
{{ $title }}
+
+
+ @php + $columns = [ + [ + 'title' => 'S.N', + 'data' => 'DT_RowIndex', + 'name' => 'DT_RowIndex', + 'orderable' => false, + 'searchable' => false, + 'sortable' => false, + ], + ['title' => 'Email', 'data' => 'email', 'name' => 'email'], + [ + 'title' => 'Action', + 'data' => 'action', + 'orderable' => false, + 'searchable' => false, + ], + ]; + @endphp + +
+
+
+@endsection diff --git a/Modules/CCMS/resources/views/newsletter/partials/_form.blade.php b/Modules/CCMS/resources/views/newsletter/partials/_form.blade.php new file mode 100644 index 0000000..d2b7a04 --- /dev/null +++ b/Modules/CCMS/resources/views/newsletter/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) }} +
+
+
+
+
+ +
+
+
+
Publish
+
+
+
+
+ {{ html()->select('status', config('constants.page_status_options'))->class('form-select choices-select ') }} +
+
+
+ + + +
+ + +
+ +
diff --git a/Modules/CCMS/routes/web.php b/Modules/CCMS/routes/web.php index bf7bfe3..e25e4f3 100644 --- a/Modules/CCMS/routes/web.php +++ b/Modules/CCMS/routes/web.php @@ -10,9 +10,11 @@ use Modules\CCMS\Http\Controllers\CountryController; use Modules\CCMS\Http\Controllers\EnquiryController; use Modules\CCMS\Http\Controllers\FaqCategoryController; use Modules\CCMS\Http\Controllers\FaqController; +use Modules\CCMS\Http\Controllers\FranchiseController; use Modules\CCMS\Http\Controllers\GalleryCategoryController; use Modules\CCMS\Http\Controllers\GalleryController; use Modules\CCMS\Http\Controllers\InstitutionController; +use Modules\CCMS\Http\Controllers\NewsletterController; use Modules\CCMS\Http\Controllers\PageController; use Modules\CCMS\Http\Controllers\PartnerController; use Modules\CCMS\Http\Controllers\PopupController; @@ -124,5 +126,8 @@ 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('franchise', FranchiseController::class)->names('franchise')->only(['index', 'store', 'destroy']); + Route::resource('newsletter', NewsletterController::class)->names('newsletter')->only(['index', 'store', 'destroy']); + Route::resource('counselor', CounselorController::class)->names('counselor')->only(['index', 'store', 'destroy']); }); diff --git a/config/sidebar.php b/config/sidebar.php index 7f6bf0c..3afc673 100644 --- a/config/sidebar.php +++ b/config/sidebar.php @@ -45,6 +45,38 @@ return [ 'can' => ['menu.index'], ], + [ + 'text' => 'Enquiries', + 'icon' => 'ri-cellphone-line', + 'module' => 'CCMS', + 'submenu' => [ + + [ + 'text' => 'Enquiry', + 'url' => 'admin/enquiry', + 'can' => ['enquiry.index'], + ], + + [ + 'text' => 'Counsellor Request', + 'url' => 'admin/counselor', + 'can' => ['counselor.index'], + ], + + [ + 'text' => 'Franchise Request', + 'url' => 'admin/franchise', + // 'can' => ['franchise.index'], + ], + + [ + 'text' => 'Newsletter', + 'url' => 'admin/newsletter', + // 'can' => ['newsletter.index'], + ], + ], + ], + [ 'text' => 'Offer Popup', 'url' => 'admin/popup', @@ -181,21 +213,7 @@ return [ ], ], - [ - 'text' => 'Enquiry', - 'url' => 'admin/enquiry', - 'icon' => ' ri-cellphone-line', - 'module' => 'CCMS', - 'can' => ['enquiry.index'], - ], - [ - 'text' => 'Counsellor Request', - 'url' => 'admin/counselor', - 'icon' => ' ri-cellphone-line', - 'module' => 'CCMS', - 'can' => ['counselor.index'], - ], [ 'text' => 'Course Finder', diff --git a/resources/views/client/raffles/layouts/app.blade.php b/resources/views/client/raffles/layouts/app.blade.php index 66c5dce..b6a868a 100644 --- a/resources/views/client/raffles/layouts/app.blade.php +++ b/resources/views/client/raffles/layouts/app.blade.php @@ -219,6 +219,86 @@ }); + + + +