Compare commits

...

101 Commits

Author SHA1 Message Date
3666b749ea changes in email template for enquiries and form submittion, other all minor error fixed. 2025-08-28 13:11:34 +05:45
086395a0a4 feat: Implement vacancy management features including listing, creating, and editing vacancies 2025-08-27 17:53:32 +05:45
2ca99f9dbc fixes 2025-08-27 12:06:10 +05:45
3f503c2d38 fix 2025-08-27 12:05:11 +05:45
032e8405ca fix: Update gallery form to change label from 'Video Link' to 'Description' and adjust placeholder text 2025-08-27 12:01:42 +05:45
f22a60fef4 fixes 2025-08-26 17:46:25 +05:45
5299aa268f Remove unused class column from enquiries data table and enhance form validation 2025-08-26 17:36:15 +05:45
40d34a7692 fix: Adjust cost calculation based on service status in cost result view 2025-08-25 17:22:42 +05:45
658d3600a2 maintained filteration in stay type in cost calculator 2025-08-25 16:20:07 +05:45
dc32ac8f91 fix 2025-08-24 18:03:00 +05:45
9d371a8d0f fix 2025-08-24 17:58:58 +05:45
0c9adf1c7a fix 2025-08-24 17:49:47 +05:45
087c19dc4a fix: Correct column title from 'Contact' to 'Mobile' in enquiry index 2025-08-24 17:46:26 +05:45
0c92a6f518 fix 2025-08-24 17:42:15 +05:45
2d8c43691f feat: Enhance contact form with required fields for name, email, mobile, and message 2025-08-24 17:40:28 +05:45
27f371955c feat: Update contact form with proper action and input names for enquiry submission 2025-08-24 17:39:13 +05:45
1ee87559da fix: replace hardcoded map iframe with dynamic setting 2025-08-24 13:20:28 +05:45
6ef55240a0 Enhance 404 error page with custom layout and image, add admin login routes 2025-08-24 12:47:48 +05:45
6d71fe4b4a feat: Add Vacancy management functionality with controller, model, migration, and form 2025-08-22 17:03:00 +05:45
52732b0f09 feat: Implement Career Management Module
- Created CareerController for handling career-related CRUD operations.
- Added Career model with necessary attributes and relationships.
- Created migration for careers table with relevant fields.
- Developed views for creating, editing, and listing careers.
- Implemented DataTables for career listing with action buttons.
- Added routes for career management and integrated with sidebar.
- Created client-side career detail template and updated career listing page.
- Added helper functions to fetch active careers for display.
2025-08-22 13:52:06 +05:45
a11de7be9e Merge branch 'alika' of http://bibgit.com/Subash/new_raffles 2025-08-22 12:22:54 +05:45
faa2e77a46 uni size 2025-08-22 12:25:20 +05:45
f55aeec8e8 flex footer 2025-08-22 11:53:59 +05:45
b24e6a9c66 Merge branch 'alika' of http://bibgit.com/Subash/new_raffles 2025-08-22 11:51:25 +05:45
5f8c1aed38 Merge branch 'main' of ssh://bibgit.com:22022/Bibhuti-Solutions/new_raffles into alika 2025-08-22 11:51:18 +05:45
10b549315f social platform link 2025-08-22 11:51:06 +05:45
4c272e0e67 fix: Correct data attributes for first and last name fields in franchise index 2025-08-22 11:48:23 +05:45
724f46a82c fixes 2025-08-22 11:45:38 +05:45
1a744e1e2f fix 2025-08-22 11:36:34 +05:45
0652a07452 feat: Add galleries data to page views and update templates for dynamic content 2025-08-22 11:35:47 +05:45
d966b75f56 fix: Update image asset paths and modify event loop to display previous events 2025-08-22 11:26:50 +05:45
bce7ec8d3a error fix 2025-08-22 11:17:01 +05:45
31bea937c4 feat: Add functions to retrieve previous and upcoming events; update events template to display dynamic event data 2025-08-22 11:15:13 +05:45
711ae9caf9 feat: Implement Event management features including CRUD operations and routing 2025-08-22 11:03:10 +05:45
ce09f98c55 feat: Add franchise and newsletter routes; update CSR template layout 2025-08-22 10:14:26 +05:45
d29b3ba489 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.
2025-08-21 23:23:38 +05:45
7f9d6bc8ec Merge branch 'alika' of http://bibgit.com/Subash/new_raffles 2025-08-21 22:15:42 +05:45
7155c1a6fc fix: Update image sources to use dynamic asset paths and implement blog loop in CSR template 2025-08-21 18:08:59 +05:45
6e9b6291d3 changes 2025-08-21 18:04:02 +05:45
622b9e9445 fix: Update service icon background color to blue in header 2025-08-21 18:01:48 +05:45
3148715b73 terms and condition changes 2025-08-21 17:55:44 +05:45
6ff22bc02d gallary changes 2025-08-21 17:50:39 +05:45
badfdc4c70 change in event 2025-08-21 17:41:22 +05:45
3bfb3f2b20 event changes 2025-08-21 17:37:05 +05:45
2a2222d0c6 social platform route 2025-08-21 17:29:08 +05:45
a57e00191a fix: Update franchise template to use dynamic content for images and contact details 2025-08-21 17:25:31 +05:45
c77828de8c fix: Update slidesPerView setting for improved carousel responsiveness 2025-08-21 17:06:44 +05:45
50a2b09cfa fix: Increase slidesPerView setting for enhanced carousel display on larger screens 2025-08-21 17:04:48 +05:45
a504987ac1 fix: Update slidesPerView setting for improved carousel display on larger screens 2025-08-21 17:03:49 +05:45
e80c67c0e2 fix: Adjust slidesPerView setting for better responsiveness in carousel 2025-08-21 17:02:39 +05:45
a145943bd1 Merge branch 'main' of ssh://bibgit.com:22022/Bibhuti-Solutions/new_raffles into alika 2025-08-21 17:00:41 +05:45
3ca3681513 text edited 2025-08-21 17:00:31 +05:45
fb52c42208 fix: Correct data-target attribute and format image tag in universities section 2025-08-21 16:35:18 +05:45
d5de6658f0 image object fit 2025-08-21 15:58:32 +05:45
f2bd2dd1c1 refactor: Update study destination template to improve FAQ section and comment out blog section 2025-08-21 15:53:49 +05:45
d357125961 Merge branch 'alika' of http://bibgit.com/Subash/new_raffles 2025-08-21 15:50:19 +05:45
8c6719e6c3 Add new pages for gallery, sitemap, social platforms, terms, and update study destination template
- Created gallery-template.blade.php for displaying a gallery of images.
- Added sitemap.blade.php to outline the structure of the website.
- Introduced social-platform-template.blade.php for showcasing social media links.
- Implemented terms-template.blade.php to present terms and conditions.
- Updated study-destination-template.blade.php to remove redundant code and improve structure.
- Commented out dashboard toggle switch in navbar for future reference.
2025-08-21 15:40:47 +05:45
df97f3c842 footer column 2025-08-21 15:34:15 +05:45
efd675d576 footer column 2025-08-21 15:33:46 +05:45
7c25b17de9 fix: Remove duplicate '@extends' directive in study destination template 2025-08-21 12:45:36 +05:45
54a662b973 fix: Correct image path for partner background in universities slider 2025-08-21 12:40:56 +05:45
f6339f909e fix: Update FAQ rendering to allow HTML content and correct numbering in tab buttons 2025-08-21 12:35:06 +05:45
3bda70472d Merge branch 'alika' of http://bibgit.com/Subash/new_raffles 2025-08-21 12:29:02 +05:45
d15949d9c2 feat: Add FAQs field to Country model and update form for extra FAQs input 2025-08-21 12:28:07 +05:45
73c20015a8 swiper 2025-08-21 12:25:54 +05:45
8953fa8d19 contact form 2025-08-21 12:19:44 +05:45
9b45e88f27 Merge branch 'main' of ssh://bibgit.com:22022/Bibhuti-Solutions/new_raffles into alika 2025-08-21 12:10:25 +05:45
e1902c9acb cost calculator radio 2025-08-21 12:06:16 +05:45
421b6ee809 Merge branch 'alika' of http://bibgit.com/Subash/new_raffles 2025-08-21 12:02:59 +05:45
7d80e01711 feat: Add required fields to forms for improved validation in contact and cost calculator pages 2025-08-21 11:57:20 +05:45
4848ef5b41 feat: Implement dynamic accordion for study resources and enhance layout for better user experience 2025-08-21 11:46:15 +05:45
b6e9806bba js removed, cost calculator edited 2025-08-21 10:38:40 +05:45
8245d1b07f Merge branch 'main' of ssh://bibgit.com:22022/Bibhuti-Solutions/new_raffles into alika 2025-08-21 10:32:31 +05:45
5db4976955 cost calculator edited 2025-08-21 10:32:25 +05:45
dce861fe89 asd 2025-08-20 17:59:45 +05:45
8641ea590d fix: Update image asset path in footer and correct radio button IDs in cost calculator 2025-08-20 17:55:59 +05:45
87ca5311dd feat: Add 'Free Resources' tab to study destination templates for improved navigation 2025-08-20 17:44:45 +05:45
55be0fe012 popup 2025-08-20 17:26:40 +05:45
54c1fc4679 refactor: Update card title from 'Custom Fields' to 'FAQ's Section' for clarity 2025-08-20 17:13:56 +05:45
3248b18efe refactor: Adjust layout of custom form fields and update placeholder text for clarity 2025-08-20 17:13:28 +05:45
75604fd205 changes 2025-08-20 16:51:12 +05:45
6fd5d31018 changes 2025-08-20 16:42:17 +05:45
adf293bd15 chnages 2025-08-20 16:41:52 +05:45
74a1ec0c6d changes 2025-08-20 16:37:50 +05:45
76fff2effc changes 2025-08-20 16:33:36 +05:45
b22d8b0705 refactor: Update sidebar text to 'Testimonial Videos', remove unused Swiper CSS, and enhance dynamic page title in study destination template 2025-08-20 15:47:52 +05:45
55c420e32f Merge branch 'main' of ssh://bibgit.com:22022/Bibhuti-Solutions/new_raffles into alika 2025-08-20 13:11:50 +05:45
a59c9a46db destination design 2025-08-20 13:11:38 +05:45
a55383ec9b refactor: Update 'Counsellor' text to 'Counsellor Request' in sidebar and clean up action links in counselor datatable 2025-08-20 12:56:14 +05:45
dc4a1cdc0b Merge branch 'main' of ssh://bibgit.com:22022/Bibhuti-Solutions/new_raffles into alika 2025-08-20 12:01:34 +05:45
32e75b387c homepage 2025-08-20 12:01:26 +05:45
ec8d3505f8 feat: Add Counsellor link to sidebar and implement call request section in study destination template 2025-08-20 11:41:26 +05:45
2759758394 Merge branch 'main' of ssh://bibgit.com:22022/Bibhuti-Solutions/new_raffles into alika 2025-08-20 11:18:27 +05:45
2243b91dbf banner header 2025-08-20 11:18:15 +05:45
f422cba1ac changes 2025-08-19 18:04:13 +05:45
93d2016ef1 Merge branch 'alika' of http://bibgit.com/Subash/new_raffles 2025-08-19 17:58:25 +05:45
b84b62a321 refactor: Simplify cost calculator form structure and enhance layout 2025-08-19 17:57:38 +05:45
a15d8f3b66 Merge branch 'alika' of http://bibgit.com/Subash/new_raffles 2025-08-19 17:40:33 +05:45
cf8a6c7bcf fix: Update contact form IDs to match counselor form structure 2025-08-19 17:36:59 +05:45
6f16c1230f feat: Implement Counselor management with CRUD functionality and associated views 2025-08-19 17:28:23 +05:45
3262e279a8 Clean up unused variables and improve sidebar label for clarity 2025-08-19 13:44:14 +05:45
113 changed files with 8977 additions and 2523 deletions

View File

@@ -0,0 +1,137 @@
<?php
namespace Modules\CCMS\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Modules\CCMS\Models\Career;
use Yajra\DataTables\Facades\DataTables;
class CareerController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
if (request()->ajax()) {
$model = Career::query()->orderBy('order');
return DataTables::eloquent($model)
->addIndexColumn()
->setRowClass('tableRow')
->editColumn('status', function (Career $career) {
$status = $career->status ? 'Published' : 'Draft';
$color = $career->status ? 'text-success' : 'text-danger';
return "<p class='{$color}'>{$status}</p>";
})
->addColumn('action', 'ccms::career.datatable.action')
->rawColumns(['status', 'action'])
->toJson();
}
return view('ccms::career.index', [
'title' => 'Career List',
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
$careerOptions = Career::where('status', 1)->pluck('job_title', 'id');
return view('ccms::career.create', [
'title' => 'Create Career',
'editable' => false,
'careerOptions' => $careerOptions
]);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$maxOrder = Career::max('order');
$order = $maxOrder ? ++$maxOrder : 1;
$request->mergeIfMissing([
'slug' => Str::slug($request->title),
// 'order' => $order,
]);
Career::create($request->all());
flash()->success("Career has been created!");
return redirect()->route('career.index');
}
/**
* Show the specified resource.
*/
public function show($id)
{
return view('ccms::show');
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$careerOptions = Career::where('status', 1)->pluck('job_title', 'id');
$career = Career::findOrFail($id);
return view('ccms::career.edit', [
'title' => 'Edit Career',
'editable' => true,
'career' => $career,
'careerOptions' => $careerOptions
]);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
{
$request->merge([
'slug' => Str::slug($request->title),
]);
$validated = $request->validate([]);
$career = Career::findOrFail($id);
$career->update($request->all());
flash()->success("Career has been updated.");
return redirect()->back();
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
$career = Career::findOrFail($id);
$career->delete();
return response()->json(['status' => 200, 'message' => "Career has been deleted."], 200);
}
public function reorder(Request $request)
{
$careers = Career::all();
foreach ($careers as $career) {
foreach ($request->order as $order) {
if ($order['id'] == $career->id) {
$career->update(['order' => $order['position']]);
}
}
}
return response(['status' => true, 'message' => 'Reordered successfully'], 200);
}
public function toggle($id)
{
$career = Career::findOrFail($id);
$career->update(['status' => !$career->status]);
return response(['status' => 200, 'message' => 'Toggled successfully'], 200);
}
}

View File

@@ -0,0 +1,120 @@
<?php
namespace Modules\CCMS\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Modules\CCMS\Models\Counselor;
use Yajra\DataTables\Facades\DataTables;
use App\Rules\Recaptcha;
use Illuminate\Support\Facades\Validator;
class CounselorController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
if (request()->ajax()) {
$model = Counselor::query()->latest();
return DataTables::eloquent($model)
->addIndexColumn()
->addColumn('checkbox', function (Counselor $enquiry) {
return '<input type="checkbox" class="enquiry-select" value="' . $enquiry->id . '" data-name="' . $enquiry->name . '">';
})
->addColumn('action', 'ccms::counselor.datatable.action')
->rawColumns(['checkbox', '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());
}
}
}

View File

@@ -18,10 +18,14 @@ class EnquiryController extends Controller
public function index()
{
$is_enrolled = request()->get('is_enrolled', null);
if (request()->ajax()) {
$model = Enquiry::query()->latest();
return DataTables::eloquent($model)
->addIndexColumn()
->addColumn('checkbox', function (Enquiry $enquiry) {
return '<input type="checkbox" class="enquiry-select" value="' . $enquiry->id . '" data-name="' . $enquiry->name . '">';
})
->setRowClass(function (Enquiry $enquiry) {
return $enquiry->is_read ? 'text-muted' : 'text-dark';
})
@@ -35,7 +39,7 @@ class EnquiryController extends Controller
return $enquiry->message ?? '-';
})
->addColumn('action', 'ccms::enquiry.datatable.action')
->rawColumns(['action'])
->rawColumns(['checkbox', 'action'])
->toJson();
}
return view('ccms::enquiry.index', [
@@ -60,6 +64,7 @@ class EnquiryController extends Controller
$rules = [
'name' => 'required|string',
'email' => 'required|email',
'mobile' => 'required|string',
'digits:10',
'subject' => 'nullable',
'message' => 'nullable|max:250',

View File

@@ -0,0 +1,147 @@
<?php
namespace Modules\CCMS\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Modules\CCMS\Models\Event;
use Yajra\DataTables\Facades\DataTables;
class EventController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
if (request()->ajax()) {
$model = Event::query()->orderBy('order');
return DataTables::eloquent($model)
->addIndexColumn()
->setRowClass('tableRow')
->editColumn('image', function (Event $event) {
return $event->getRawOriginal('image') ? "<img src='{$event->image}' alt='{$event->title}' class='rounded avatar-sm material-shadow ms-2 img-thumbnail'>" : '-';
})
->editColumn('parent_id', function (Event $event) {
return $event->parent ? "<span class='badge bg-primary p-1'>{$event->parent?->title}</span>" : '-';
})
->editColumn('status', function (Event $event) {
$status = $event->status ? 'Published' : 'Draft';
$color = $event->status ? 'text-success' : 'text-danger';
return "<p class='{$color}'>{$status}</p>";
})
->addColumn('action', 'ccms::event.datatable.action')
->rawColumns(['parent_id', 'image', 'status', 'action'])
->toJson();
}
return view('ccms::event.index', [
'title' => 'Event List',
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
$eventOptions = Event::where('status', 1)->pluck('title', 'id');
return view('ccms::event.create', [
'title' => 'Create Event',
'editable' => false,
'eventOptions' => $eventOptions
]);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$maxOrder = Event::max('order');
$order = $maxOrder ? ++$maxOrder : 1;
$request->mergeIfMissing([
'slug' => Str::slug($request->title),
'order' => $order,
]);
$validated = $request->validate([
'title' => 'required',
]);
Event::create($request->all());
flash()->success("Event has been created!");
return redirect()->route('event.index');
}
/**
* Show the specified resource.
*/
public function show($id)
{
return view('ccms::show');
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$eventOptions = Event::where('status', 1)->pluck('title', 'id');
$event = Event::findOrFail($id);
return view('ccms::event.edit', [
'title' => 'Edit Event',
'editable' => true,
'event' => $event,
'eventOptions' => $eventOptions
]);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
{
$request->merge([
'slug' => Str::slug($request->title),
]);
$validated = $request->validate([]);
$event = Event::findOrFail($id);
$event->update($request->all());
flash()->success("Event has been updated.");
return redirect()->back();
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
$event = Event::findOrFail($id);
$event->delete();
return response()->json(['status' => 200, 'message' => "Event has been deleted."], 200);
}
public function reorder(Request $request)
{
$events = Event::all();
foreach ($events as $event) {
foreach ($request->order as $order) {
if ($order['id'] == $event->id) {
$event->update(['order' => $order['position']]);
}
}
}
return response(['status' => true, 'message' => 'Reordered successfully'], 200);
}
public function toggle($id)
{
$event = Event::findOrFail($id);
$event->update(['status' => !$event->status]);
return response(['status' => 200, 'message' => 'Toggled successfully'], 200);
}
}

View File

@@ -0,0 +1,118 @@
<?php
namespace Modules\CCMS\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Rules\Recaptcha;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Validator;
use Modules\CCMS\Models\Franchise;
use Yajra\DataTables\Facades\DataTables;
class FranchiseController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
if (request()->ajax()) {
$model = Franchise::query()->latest();
return DataTables::eloquent($model)
->addIndexColumn()
->addColumn('checkbox', function (Franchise $enquiry) {
return '<input type="checkbox" class="enquiry-select" value="' . $enquiry->id . '" data-name="' . $enquiry->name . '">';
})
->addColumn('action', 'ccms::franchise.datatable.action')
->rawColumns(['checkbox', '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($request->all());
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());
}
}
}

View File

@@ -0,0 +1,117 @@
<?php
namespace Modules\CCMS\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Rules\Recaptcha;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Validator;
use Modules\CCMS\Models\Newsletter;
use Yajra\DataTables\Facades\DataTables;
class NewsletterController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
if (request()->ajax()) {
$model = Newsletter::query()->latest();
return DataTables::eloquent($model)
->addIndexColumn()
->addColumn('checkbox', function (Newsletter $enquiry) {
return '<input type="checkbox" class="enquiry-select" value="' . $enquiry->id . '" data-name="' . $enquiry->name . '">';
})
->addColumn('action', 'ccms::newsletter.datatable.action')
->rawColumns(['checkbox', '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());
}
}
}

View File

@@ -16,59 +16,59 @@ class PageController extends Controller
* Display a listing of the resource.
*/
public function index(Request $request)
{
$parentPages = Page::where(['status' => 1, 'type' => 'page'])->with("children")->get();
{
$parentPages = Page::where(['status' => 1, 'type' => 'page'])->with("children")->get();
if ($request->ajax()) {
if ($request->filled("page_id")) {
$parentPage = Page::with('children')->find($request->get('page_id'));
$pages = collect([]);
if ($parentPage) {
$pages = collect([$parentPage])->merge($parentPage->children);
if ($request->ajax()) {
if ($request->filled("page_id")) {
$parentPage = Page::with('children')->find($request->get('page_id'));
$pages = collect([]);
if ($parentPage) {
$pages = collect([$parentPage])->merge($parentPage->children);
}
} else {
$pages = Page::orderBy('order')->get();
}
} else {
$pages = Page::orderBy('order')->get();
return DataTables::collection($pages)
->addIndexColumn()
->setRowClass('tableRow')
->editColumn('type', function ($page) {
return config("constants.page_type_options")[$page->type] ?? '-';
})
->editColumn('date', function ($page) {
return getFormatted(date: $page->date) ?? '-';
})
->editColumn('image', function (Page $page) {
return $page->getRawOriginal('image')
? "<img src='{$page->image}' alt='{$page->title}' class='rounded avatar-sm material-shadow ms-2 img-thumbnail'>"
: '-';
})
->addColumn('parents', function (Page $page) {
if ($page->parents->isEmpty()) {
return '-';
}
return $page->parents->map(function ($parent) {
return "<span class='badge bg-primary p-1'>{$parent->title}</span>";
})->implode(' ');
})
->editColumn('status', function (Page $page) {
$status = $page->status ? 'Published' : 'Draft';
$color = $page->status ? 'text-success' : 'text-danger';
return "<p class='{$color}'>{$status}</p>";
})
->addColumn('action', 'ccms::page.datatable.action')
->rawColumns(['parents', 'image', 'status', 'action'])
->toJson();
}
return DataTables::collection($pages)
->addIndexColumn()
->setRowClass('tableRow')
->editColumn('type', function ($page) {
return config("constants.page_type_options")[$page->type] ?? '-';
})
->editColumn('date', function ($page) {
return getFormatted(date: $page->date) ?? '-';
})
->editColumn('image', function (Page $page) {
return $page->getRawOriginal('image')
? "<img src='{$page->image}' alt='{$page->title}' class='rounded avatar-sm material-shadow ms-2 img-thumbnail'>"
: '-';
})
->addColumn('parents', function (Page $page) {
if ($page->parents->isEmpty()) {
return '-';
}
return $page->parents->map(function ($parent) {
return "<span class='badge bg-primary p-1'>{$parent->title}</span>";
})->implode(' ');
})
->editColumn('status', function (Page $page) {
$status = $page->status ? 'Published' : 'Draft';
$color = $page->status ? 'text-success' : 'text-danger';
return "<p class='{$color}'>{$status}</p>";
})
->addColumn('action', 'ccms::page.datatable.action')
->rawColumns(['parents', 'image', 'status', 'action'])
->toJson();
return view('ccms::page.index', [
'title' => 'Page List',
'parentPages' => $parentPages,
]);
}
return view('ccms::page.index', [
'title' => 'Page List',
'parentPages' => $parentPages,
]);
}
/**
* Show the form for creating a new resource.
@@ -92,7 +92,7 @@ class PageController extends Controller
$order = $maxOrder ? ++$maxOrder : 1;
$request->merge([
'order' => $order,
'status' => 0,
'status' => 1,
'slug' => $request->title == 'Homepage' ? '/' : Str::slug($request->title),
]);
}

View File

@@ -0,0 +1,138 @@
<?php
namespace Modules\CCMS\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Rules\Recaptcha;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Validator;
use Modules\CCMS\Models\Vacancy;
use Yajra\DataTables\Facades\DataTables;
class VacancyController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
if (request()->ajax()) {
$model = Vacancy::query()->latest();
return DataTables::eloquent($model)
->addIndexColumn()
->addColumn('checkbox', function (Vacancy $enquiry) {
return '<input type="checkbox" class="enquiry-select" value="' . $enquiry->id . '" data-name="' . $enquiry->name . '">';
})
->addColumn('action', 'ccms::vacancy.datatable.action')
->rawColumns(['checkbox', 'action'])
->toJson();
}
return view('ccms::vacancy.index', [
'title' => 'Vacancy 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 = [
// ];
// 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());
// if ($validator->fails()) {
// return response()->json(['errors' => $validator->errors()], 422);
// }
$modelClass = "Modules\\CCMS\\Models\\Career";
$model = $modelClass::findOrFail($request->career_id);
foreach ($request->document as $file) {
$model->addToDocumentCollection(collectionName: 'uploads/document', file: $file, documentName: $request->first_name, referenceDocumentId: null);
}
Vacancy::create($request->all());
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 {
$vacancy = Vacancy::whereId($id)->first();
if ($vacancy) {
$vacancy->delete();
}
return response()->json(['status' => 200, 'message' => 'Vacancy has been deleted!'], 200);
} catch (\Throwable $th) {
return redirect()->back()->with('error', $th->getMessage());
}
}
public function markAsRead($id)
{
try {
$vacancy = Vacancy::whereId($id)->first();
if ($vacancy) {
$vacancy->update(['is_read' => 1]);
}
return response()->json(['status' => 200, 'message' => 'Vacancy has been marked as read!'], 200);
} catch (\Throwable $th) {
return redirect()->back()->with('error', $th->getMessage());
}
}
}

View File

@@ -0,0 +1,97 @@
<?php
namespace Modules\CCMS\Models;
use App\Traits\CreatedUpdatedBy;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Modules\CCMS\Traits\UpdateCustomFields;
use Modules\Document\Models\Document;
use App\Traits\AddToDocumentCollection;
class Career extends Model
{
use HasFactory, UpdateCustomFields, AddToDocumentCollection, CreatedUpdatedBy;
protected $fillable = [
'department',
'job_title',
'job_description',
'job_requirements',
'salary_range',
'location',
'position',
'start_date',
'end_date',
'status',
'createdby',
'updatedby',
'order',
];
protected function casts(): array
{
return [
'custom' => 'array',
];
}
protected function images(): Attribute
{
return Attribute::make(
get: function ($value) {
if (empty($value)) {
return [];
}
$parts = explode(',', $value);
return array_map(fn($part) => asset(trim($part)), $parts);
}
);
}
protected function image(): Attribute
{
return Attribute::make(
get: fn($value) => asset($value),
);
}
protected function banner(): Attribute
{
return Attribute::make(
get: fn($value) => asset($value),
);
}
protected function sidebarImage(): Attribute
{
return Attribute::make(
get: fn($value) => asset($value),
);
}
protected function iconImage(): Attribute
{
return Attribute::make(
get: fn($value) => asset($value),
);
}
public function children()
{
return $this->hasMany(Career::class, 'parent_id');
}
public function parent()
{
return $this->belongsTo(Career::class, 'parent_id');
}
public function documents()
{
return $this->morphMany(Document::class, 'documentable');
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace Modules\CCMS\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
// use Modules\CCMS\Database\Factories\CounselorFactory;
class Counselor extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*/
protected $guarded = [];
// protected static function newFactory(): CounselorFactory
// {
// // return CounselorFactory::new();
// }
}

View File

@@ -23,6 +23,7 @@ class Country extends Model
'slug',
'short_description',
'description',
'faqs',
'image',
'parent_id',
'images',
@@ -104,5 +105,4 @@ class Country extends Model
{
return $this->morphMany(Document::class, 'documentable');
}
}

View File

@@ -0,0 +1,113 @@
<?php
namespace Modules\CCMS\Models;
use App\Traits\CreatedUpdatedBy;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Modules\CCMS\Traits\UpdateCustomFields;
use Modules\Document\Models\Document;
use App\Traits\AddToDocumentCollection;
class Event extends Model
{
use HasFactory, UpdateCustomFields, AddToDocumentCollection, CreatedUpdatedBy;
/**
* The attributes that are mass assignable.
*/
protected $fillable = [
'title',
'slug',
'short_description',
'description',
'parent_id',
'icon_class',
'icon_image',
'image',
'images',
'start_date',
'end_date',
'custom',
'banner',
'meta_title',
'meta_description',
'meta_keywords',
'sidebar_title',
'sidebar_content',
'sidebar_image',
'button_text',
'button_url',
'button_target',
'status',
'createdby',
'updatedby',
'order',
];
protected function casts(): array
{
return [
'custom' => 'array',
];
}
protected function images(): Attribute
{
return Attribute::make(
get: function ($value) {
if (empty($value)) {
return [];
}
$parts = explode(',', $value);
return array_map(fn($part) => asset(trim($part)), $parts);
}
);
}
protected function image(): Attribute
{
return Attribute::make(
get: fn($value) => asset($value),
);
}
protected function banner(): Attribute
{
return Attribute::make(
get: fn($value) => asset($value),
);
}
protected function sidebarImage(): Attribute
{
return Attribute::make(
get: fn($value) => asset($value),
);
}
protected function iconImage(): Attribute
{
return Attribute::make(
get: fn($value) => asset($value),
);
}
public function children()
{
return $this->hasMany(Event::class, 'parent_id');
}
public function parent()
{
return $this->belongsTo(Event::class, 'parent_id');
}
public function documents()
{
return $this->morphMany(Document::class, 'documentable');
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace Modules\CCMS\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
// use Modules\CCMS\Database\Factories\FranchiseFactory;
class Franchise extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*/
protected $fillable = [
'first_name',
'last_name',
'email',
'phone',
'address',
'city',
'state',
'invest_level',
'own_business',
'yes_own_des',
'franchise_location',
'start_time_frame',
'office_setup',
'website'
];
// protected static function newFactory(): FranchiseFactory
// {
// // return FranchiseFactory::new();
// }
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Modules\CCMS\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
// use Modules\CCMS\Database\Factories\NewsletterFactory;
class Newsletter extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*/
protected $fillable = ['email'];
}

View File

@@ -0,0 +1,21 @@
<?php
namespace Modules\CCMS\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
// use Modules\CCMS\Database\Factories\VacancyFactory;
class vacancy extends Model
{
use HasFactory;
protected $fillable = [
'first_name',
'last_name',
'email',
'phone',
'qualification',
'description',
];
}

View File

@@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('counselors', function (Blueprint $table) {
$table->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');
}
};

View File

@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('countries', function (Blueprint $table) {
$table->longText('faqs')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('countries', function (Blueprint $table) {
$table->dropColumn('faqs');
});
}
};

View File

@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('newsletters', function (Blueprint $table) {
$table->id();
$table->string('email')->unique();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('newsletters');
}
};

View File

@@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('franchises', function (Blueprint $table) {
$table->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');
}
};

View File

@@ -0,0 +1,58 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('events', function (Blueprint $table) {
$table->id();
$table->text('title');
$table->text('slug')->nullable();
$table->text('short_description')->nullable();
$table->longText('description')->nullable();
$table->json('custom')->nullable();
$table->integer('parent_id')->unsigned()->nullable();
$table->string('image')->nullable();
$table->string('banner')->nullable();
$table->text('images')->nullable();
$table->date('start_date')->nullable();
$table->date('end_date')->nullable();
$table->text('meta_title')->nullable();
$table->text('meta_description')->nullable();
$table->text('meta_keywords')->nullable();
$table->text('sidebar_title')->nullable();
$table->mediumText('sidebar_content')->nullable();
$table->string('sidebar_image')->nullable();
$table->string('button_text')->nullable();
$table->string('button_url')->nullable();
$table->string('button_target')->nullable();
$table->integer('status')->default(1);
$table->string('icon_class')->nullable();
$table->string('icon_image')->nullable();
$table->integer('createdby')->unsigned()->nullable();
$table->integer('updatedby')->unsigned()->nullable();
$table->integer('order')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('events');
}
};

View File

@@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('careers', function (Blueprint $table) {
$table->id();
$table->string('department')->nullable();
$table->string('job_title')->nullable();
$table->text('job_description')->nullable();
$table->text('job_requirements')->nullable();
$table->string('salary_range')->nullable();
$table->string('location')->nullable();
$table->string('position')->nullable();
$table->date('start_date')->nullable();
$table->date('end_date')->nullable();
$table->integer('status')->default(1);
$table->integer('createdby')->unsigned()->nullable();
$table->integer('updatedby')->unsigned()->nullable();
$table->integer('order')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('careers');
}
};

View File

@@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('vacancies', function (Blueprint $table) {
$table->id();
$table->string('first_name')->nullable();
$table->string('last_name')->nullable();
$table->string('email')->nullable();
$table->string('phone')->nullable();
$table->string('qualification')->nullable();
$table->text('description')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('vacancies');
}
};

View File

@@ -0,0 +1,16 @@
@extends('layouts.app')
@section('content')
<x-dashboard.breadcumb :title="$title" />
<div class="container-fluid">
@if ($errors->any())
<x-flash-message type="danger" :messages="$errors->all()" />
@endif
<div class="row">
<div class="col-xl-12">
{{ html()->form('POST')->route('career.store')->class('needs-validation')->attributes(['novalidate'])->open() }}
@include('ccms::career.partials._form')
{{ html()->form()->close() }}
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,12 @@
<div class="hstack flex-wrap gap-3">
<a href="{{ route('career.edit', $id) }}" data-bs-toggle="tooltip"
data-bs-placement="bottom" data-bs-title="Edit" class="link-success fs-15 edit-item-btn"><i
class=" ri-edit-2-line"></i></a>
<a data-link="{{ route('career.toggle', $id) }}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Toggle" data-status="{{ $status == 1 ? 'Draft' : 'Published' }}"
class="link-info fs-15 toggle-item"><i class="{{ $status == 1 ? 'ri-toggle-line' : 'ri-toggle-fill' }}"></i></a>
<a href="javascript:void(0);" data-link="{{ route('career.destroy', $id) }}" class="link-danger fs-15 remove-item"
data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Delete"><i class="ri-delete-bin-6-line"></i>
</a>
</div>

View File

@@ -0,0 +1,16 @@
@extends('layouts.app')
@section('content')
<x-dashboard.breadcumb :title="$title" />
<div class="container-fluid">
@if ($errors->any())
<x-flash-message type="danger" :messages="$errors->all()" />
@endif
<div class="row">
<div class="col-xl-12">
{{ html()->modelForm($career, 'PUT')->route('career.update', $career->id)->class('needs-validation')->attributes(['novalidate'])->open() }}
@include('ccms::career.partials._form')
{{ html()->closeModelForm() }}
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,51 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
@if ($errors->any())
<x-flash-message type="danger" :messages="$errors->all()" />
@endif
<div class="row">
<div class="col-xl-12">
<div class="card">
<div class="card-header d-flex align-items-center justify-content-between">
<h5 class="card-title mb-0">{{ $title }}</h5>
<a href="{{ route('career.create') }}" class="btn btn-primary waves-effect waves-light text-white"><i
class="ri-add-line align-middle"></i> Create</a>
</div>
<div class="card-body">
@php
$columns = [
[
'title' => 'S.N',
'data' => 'DT_RowIndex',
'name' => 'DT_RowIndex',
'orderable' => false,
'searchable' => false,
'sortable' => false,
],
['title' => 'Job Title', 'data' => 'job_title', 'name' => 'job_title'],
['title' => 'Start Date', 'data' => 'start_date', 'name' => 'start_date'],
['title' => 'End Date', 'data' => 'end_date', 'name' => 'end_date'],
['title' => 'Department', 'data' => 'department', 'name' => 'department'],
['title' => 'Location', 'data' => 'location', 'name' => 'location'],
['title' => 'Position', 'data' => 'position', 'name' => 'position'],
['title' => 'Salary', 'data' => 'salary_range', 'name' => 'salary_range'],
['title' => 'Status', 'data' => 'status', 'name' => 'status'],
[
'title' => 'Action',
'data' => 'action',
'orderable' => false,
'searchable' => false,
],
];
@endphp
<x-data-table-script :route="route('career.index')" :reorder="route('career.reorder')" :columns="$columns" />
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,220 @@
<div class="row">
<div class="col-xl-8">
<div class="card h-auto">
<div class="card-body">
<div class="row gy-3">
<div class="col-md-6">
{{ html()->label('Job Title')->class('form-label')->for('job_title') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->text('job_title')->class('form-control')->placeholder('Enter Job Title')->required(true) }}
</div>
<div class="col-md-6">
{{ html()->label('Department')->class('form-label')->for('department') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->text('department')->class('form-control')->placeholder('Enter Department')->required(true) }}
</div>
<div class="col-md-6">
{{ html()->label('Vacancy Start Date')->class('form-label') }}
<div class="input-group">
{{ html()->text('start_date')->class('form-control')->id('career-start-date')->placeholder('Vacancy Start Date')->attributes([
'data-provider' => 'flatpickr',
'data-date-format' => 'Y-m-d',
'data-enable-time' => '',
])->required() }}
<span class="input-group-text"><i class="ri-calendar-career-line"></i></span>
</div>
</div>
<div class="col-md-6">
{{ html()->label('Vacancy End Date')->class('form-label') }}
<div class="input-group">
{{ html()->text('end_date')->class('form-control')->id('career-end-date')->placeholder('Vacancy End Date')->attributes([
'data-provider' => 'flatpickr',
'data-date-format' => 'Y-m-d',
'data-enable-time' => '',
]) }}
<span class="input-group-text"><i class="ri-calendar-career-line"></i></span>
</div>
</div>
<div class="col-md-6">
{{ html()->label('Salary Range')->class('form-label')->for('salary_range') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->text('salary_range')->class('form-control')->placeholder('Enter Salary Range')->required(true) }}
</div>
<div class="col-md-6">
{{ html()->label('Location')->class('form-label')->for('location') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->text('location')->class('form-control')->placeholder('Enter location')->required(true) }}
</div>
<div class="col-12">
{{ html()->label('Position')->class('form-label')->for('position') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->text('position')->class('form-control')->placeholder('Enter Position (e.g. Fresher, Intermidiate, Senior)')->required(true) }}
</div>
<div class="col-12">
{{ html()->label('Job Description')->class('form-label')->for('job_description') }}
{{ html()->textarea('job_description')->class('form-control')->placeholder('Enter Job Description (JD)')->rows(5) }}
</div>
<div class="col-12">
{{ html()->label('Job Requirements')->class('form-label')->for('job_requirements') }}
{{ html()->textarea('job_requirements')->class('form-control ckeditor-classic')->placeholder('Enter Job Requirements') }}
</div>
</div>
</div>
</div>
{{-- <x-ccms::custom-form-field :data="$career->custom ?? []" /> --}}
<div class="card meta-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">Meta</h6>
</div>
<div class="card-body">
<div class="row">
<div class="col-xl-12 col-sm-12">
{{ html()->label('Meta Title')->class('form-label')->for('meta_title') }}
{{ html()->text('meta_title')->class('form-control mb-3')->placeholder('Meta Title') }}
</div>
<div class="col-xl-12 col-sm-12">
{{ html()->label('Meta Keywords')->class('form-label')->for('meta_keywords') }}
{{ html()->textarea('meta_keywords')->class('form-control mb-3')->placeholder('Meta Keywords') }}
</div>
<div class="col-xl-12 col-sm-12">
{{ html()->label('Meta Description')->class('form-label')->for('meta_description') }}
{{ html()->textarea('meta_description')->class('form-control mb-3')->placeholder('Meta wire:Description')->rows(3) }}
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4">
<div class="card">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Published
</h6>
</div>
<div class="card-body">
{{ html()->label('Status')->class('form-label visually-hidden')->for('status') }}
{{ html()->select('status', config('constants.page_status_options'))->class('form-select choices-select') }}
</div>
<x-form-buttons :href="route('career.index')" :label="isset($career) ? 'Update' : 'Create'" />
</div>
<div class="card">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Page Attributes
</h6>
</div>
<div class="card-body">
{{ html()->label('Parent Event')->class('form-label')->for('parent_id') }}
{{ html()->select('parent_id', $careerOptions ?? [])->value($career->parent_id ?? old('parent_id'))->class('form-select choices-select')->placeholder('Select') }}
</div>
</div>
<div class="card media-gallery-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Icon
</h6>
</div>
<div class="card-body">
<div class="mb-3">
{{ html()->label('Icon')->class('form-label')->for('icon_class') }}
{{ html()->text('icon_class')->class('form-control')->placeholder('Icon class') }}
</div>
{{ html()->label('Icon Image')->class('form-label')->for('icon_image') }}
<x-image-input :data="$editable ? $career->getRawOriginal('icon_image') : null" id="icon_image" name="icon_image" :editable="$editable" :multiple=false />
</div>
</div>
<div class="card featured-image-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Featured Image
</h6>
</div>
<div class="card-body">
<div class="mb-3">
{{ html()->label('Featured')->class('form-label')->for('image') }}
<x-image-input :data="$editable ? $career->getRawOriginal('image') : null" id="image" name="image" :editable="$editable" :multiple=false />
</div>
{{ html()->label('Banner')->class('form-label')->for('banner') }}
<x-image-input :data="$editable ? $career->getRawOriginal('banner') : null" id="banner" name="banner" :editable="$editable" :multiple=false />
</div>
</div>
<div class="card media-gallery-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Media Gallery
</h6>
</div>
<div class="card-body">
<x-image-input :editable="$editable" id="images" name="images" :data="$editable ? $career->getRawOriginal('images') : null" :multiple="true"
label="Select Images" />
</div>
</div>
<div class="card sidebar-section">
<div class="card-header d-flex jusitfy-content-between align-items-center">
<h6 class="card-title mb-0 fs-14">Sidebar</h6>
</div>
<div class="card-body">
<div class="row gy-3">
<div class="col-lg-12">
{{ html()->label('Title')->class('form-label')->for('sidebar_title') }}
{{ html()->text('sidebar_title')->class('form-control') }}
</div>
<div class="col-lg-12">
{{ html()->label('Content')->class('form-label')->for('sidebar_content') }}
{{ html()->textarea('sidebar_content')->class('form-control')->placeholder('Short Content (optional)')->rows(3) }}
</div>
<div class="col-lg-12">
{{ html()->label('Image')->class('form-label')->for('sidebar_content') }}
<x-image-input :data="$editable ? $career->getRawOriginal('sidebar_image') : null" id="sidebar_image" name="sidebar_image" :editable="$editable"
:multiple=false />
</div>
</div>
</div>
</div>
<div class="card button-section">
<div class="card-header d-flex jusitfy-content-between align-items-center">
<h6 class="card-title mb-0 fs-14">Button</h6>
</div>
<div class="card-body">
<div class="row gy-3">
<div class="col-lg-12">
{{ html()->label('Text')->class('form-label')->for('button_text') }}
{{ html()->text('button_text')->class('form-control') }}
</div>
<div class="col-lg-12">
{{ html()->label('Link')->class('form-label')->for('button_url') }}
{{ html()->text('button_url')->class('form-control')->placeholder('Button Link') }}
</div>
<div class="col-lg-12">
{{ html()->label('Target')->class('form-label')->for('button_target') }}
{{ html()->select('button_target', config('constants.redirect_options'))->class('form-select choices-select') }}
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -5,7 +5,7 @@
<div class="card custom-field-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Custom Fields
FAQ's Section
</h6>
</div>
<div class="card-body">
@@ -13,31 +13,28 @@
<div class="col-lg-12 clone-container">
@for ($i = 0; $i < $loopCount; $i++)
<div class="row clone-section mt-2">
<div class="col-lg-2">
@if ($i == 0)
{{ html()->label('Icon')->class('form-label')->for('icon[]') }}
@endif
{{ html()->text('icon[]')->value($data[$i]['icon'] ?? old('icon[]'))->class('form-control')->placeholder('Icon class') }}
<div class="col-lg-10 mb-2">
{{-- @if ($i == 0)
{{ html()->label('Questions')->class('form-label')->for('icon[]') }}
@endif --}}
{{ html()->text('icon[]')->value($data[$i]['icon'] ?? old('icon[]'))->class('form-control')->placeholder('Enter Question') }}
</div>
<div class="col-lg-4">
@if ($i == 0)
{{ html()->label('Title')->class('form-label')->for('key[]') }}
@endif
{{ html()->text('key[]')->value($data[$i]['key'] ?? old('key[]'))->class('form-control')->placeholder('Enter Title') }}
<div class="col-lg-10">
{{-- @if ($i == 0)
{{ html()->label('Answer')->class('form-label')->for('key[]') }}
@endif --}}
{{ html()->text('key[]')->value($data[$i]['key'] ?? old('key[]'))->class('form-control')->placeholder('Enter Answer') }}
</div>
<div class="col-lg-4">
{{-- <div class="col-lg-2">
@if ($i == 0)
{{ html()->label('Content')->class('form-label')->for('value[]') }}
@endif
{{ html()->textarea('value[]')->value($data[$i]['value'] ?? old('value[]'))->class('form-control')->placeholder('Enter Content')->rows(1) }}
</div>
</div> --}}
<div class="col-lg-2">
@if ($i == 0)
<label class="form-label">Action</label>
@endif
<div class="col-lg-2 mt-0">
<div class="d-flex gap-2">
<a href="javascript:void(0)" class="btn btn-secondary btn-sm fs-6 clone">
<i class="ri-add-line align-middle"></i>
@@ -47,6 +44,10 @@
</a>
</div>
</div>
<div class="col-lg-12">
<hr>
</div>
</div>
@endfor
</div>

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->form('POST')->route('testimonial.store')->class(['needs-validation'])->attributes(['enctype' => 'multipart/form-data', 'novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -0,0 +1,11 @@
<div class="hstack flex-wrap gap-3">
{{-- <a data-link="{{ route('enquiry.markAsRead', $id) }}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Mark as {{ $is_read == 1 ? 'unread' : 'read' }}" data-status="{{ $is_read == 1 ? 'read' : 'unread' }}"
class="fs-15 mark-item"><i class="{{ $is_read == 1 ? ' ri-mail-close-line link-secondary' : ' ri-mail-check-line link-success' }}"></i></a> --}}
<a href="javascript:void(0);" data-link="{{ route('counselor.destroy', $id) }}" class="link-danger fs-15 remove-item"
data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Delete">
<i class="ri-delete-bin-6-line"></i>
</a>
</div>

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->modelForm($testimonial, 'PUT')->route('testimonial.update', $testimonial->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -0,0 +1,52 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
<div class="card">
<div class="card-header align-items-center d-flex">
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
</div>
<div class="card-body">
@php
$columns = [
[
'title' => '<input type="checkbox" id="select-all">',
'data' => 'checkbox',
'name' => 'checkbox',
'orderable' => false,
'searchable' => false,
'className' => 'align-middle',
'width' => '1%',
],
['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
<x-data-table-script :route="route('counselor.index')" :reorder="null" :columns="$columns" />
</div>
<div class="card" id="customerList">
<div class="card-body p-2">
{{-- <div class="table-responsive">
{{ $dataTable->table(['class' => 'table table-sm w-100', 'data-is_enrolled' => $is_enrolled], true) }}
</div> --}}
<div class="row mt-3">
<div class="col-md-3">
{{ html()->select('action', [2 => 'Send News Letter', 3 => 'Send Mail'])->placeholder('Bulk Actions')->class('form-select bulk-select') }}
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,71 @@
<div class="row">
<div class="col-lg-8 col-xl-9">
<div class="card">
<div class="card-body">
<div class="row gy-3">
<div class="col-md-6">
{{ 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') }}
</div>
<div class="col-md-6">
{{ html()->label('Designation')->class('form-label') }}
{{ html()->text('designation')->class('form-control')->placeholder('Enter Designation') }}
</div>
<div class="col-md-6">
{{ html()->label('Company')->class('form-label') }}
{{ html()->text('company')->class('form-control')->placeholder('Enter Company') }}
</div>
<div class="col-lg-6">
{{ html()->label('Branch')->class('form-label')->for('branch_id') }}
{{ html()->select('branch_id', $branchOptions)->class('form-select choices-select')->placeholder('Select') }}
</div>
<div class="col-12">
{{ html()->label('Comment')->class('form-label')->for('description') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->textarea('description')->class('form-control')->rows(10) }}
</div>
</div>
</div>
</div>
</div>
<!-- end col -->
<div class="col-lg-4 col-xl-3">
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Publish</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->select('status', config('constants.page_status_options'))->class('form-select choices-select ') }}
</div>
</div>
</div>
<!-- end card body -->
<x-form-buttons :editable="$editable" label="Save" href="{{ route('team.index') }}" />
</div>
<div class="card featured-image-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Featured
</h6>
</div>
<div class="card-body">
<div class="mb-3">
{{ html()->label('Image')->class('form-label')->for('image') }}
<x-image-input :editable="$editable" id="image" name="image" :data="$editable ? $testimonial->getRawOriginal('image') : null"
:multiple="false" />
</div>
</div>
</div>
</div>
<!-- end col -->
</div>

View File

@@ -19,6 +19,11 @@
{{ html()->span('*')->class('text-danger') }}
{{ html()->textarea('description')->class('form-control ckeditor-classic')->placeholder('Enter Country Description')->required() }}
</div>
<div class="col-12">
{{ html()->label('Extra FAQs')->class('form-label')->for('faqs') }}
{{ html()->textarea('faqs')->class('form-control ckeditor-classic')->placeholder('Enter Extra FAQs')->required() }}
</div>
</div>
</div>
</div>
@@ -87,13 +92,11 @@
<div class="card-body">
<div class="mb-3">
{{ html()->label('Featured')->class('form-label')->for('image') }}
<x-image-input :data="$editable ? $country->getRawOriginal('image') : null" id="image" name="image" :editable="$editable"
:multiple=false />
<x-image-input :data="$editable ? $country->getRawOriginal('image') : null" id="image" name="image" :editable="$editable" :multiple=false />
</div>
{{ html()->label('Banner')->class('form-label')->for('banner') }}
<x-image-input :data="$editable ? $country->getRawOriginal('banner') : null" id="banner" name="banner" :editable="$editable"
:multiple=false />
<x-image-input :data="$editable ? $country->getRawOriginal('banner') : null" id="banner" name="banner" :editable="$editable" :multiple=false />
</div>
</div>

View File

@@ -10,16 +10,17 @@
@php
$columns = [
[
'title' => 'S.N',
'data' => 'DT_RowIndex',
'name' => 'DT_RowIndex',
'title' => '<input type="checkbox" id="select-all">',
'data' => 'checkbox',
'name' => 'checkbox',
'orderable' => false,
'searchable' => false,
'sortable' => false,
'className' => 'align-middle',
'width' => '1%',
],
['title' => 'Name', 'data' => 'name', 'name' => 'name'],
['title' => 'Email', 'data' => 'email', 'name' => 'email'],
['title' => 'Contact', 'data' => 'mobile', 'name' => 'mobile'],
['title' => 'Mobile', 'data' => 'mobile', 'name' => 'mobile'],
['title' => 'Class', 'data' => 'class', 'name' => 'class'],
['title' => 'Subject', 'data' => 'subject', 'name' => 'subject'],
['title' => 'Message', 'data' => 'message', 'name' => 'message'],
@@ -31,8 +32,23 @@
],
];
@endphp
<x-data-table-script :route="route('enquiry.index')" :reorder="null" :columns="$columns" />
</div>
<div class="card" id="customerList">
<div class="card-body p-2">
{{-- <div class="table-responsive">
{{ $dataTable->table(['class' => 'table table-sm w-100', 'data-is_enrolled' => $is_enrolled], true) }}
</div> --}}
<div class="row mt-3">
<div class="col-md-3">
{{ html()->select('action', [2 => 'Send News Letter', 3 => 'Send Mail'])->placeholder('Bulk Actions')->class('form-select bulk-select') }}
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,16 @@
@extends('layouts.app')
@section('content')
<x-dashboard.breadcumb :title="$title" />
<div class="container-fluid">
@if ($errors->any())
<x-flash-message type="danger" :messages="$errors->all()" />
@endif
<div class="row">
<div class="col-xl-12">
{{ html()->form('POST')->route('event.store')->class('needs-validation')->attributes(['novalidate'])->open() }}
@include('ccms::event.partials._form')
{{ html()->form()->close() }}
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,12 @@
<div class="hstack flex-wrap gap-3">
<a href="{{ route('event.edit', $id) }}" data-bs-toggle="tooltip"
data-bs-placement="bottom" data-bs-title="Edit" class="link-success fs-15 edit-item-btn"><i
class=" ri-edit-2-line"></i></a>
<a data-link="{{ route('event.toggle', $id) }}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Toggle" data-status="{{ $status == 1 ? 'Draft' : 'Published' }}"
class="link-info fs-15 toggle-item"><i class="{{ $status == 1 ? 'ri-toggle-line' : 'ri-toggle-fill' }}"></i></a>
<a href="javascript:void(0);" data-link="{{ route('event.destroy', $id) }}" class="link-danger fs-15 remove-item"
data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Delete"><i class="ri-delete-bin-6-line"></i>
</a>
</div>

View File

@@ -0,0 +1,16 @@
@extends('layouts.app')
@section('content')
<x-dashboard.breadcumb :title="$title" />
<div class="container-fluid">
@if ($errors->any())
<x-flash-message type="danger" :messages="$errors->all()" />
@endif
<div class="row">
<div class="col-xl-12">
{{ html()->modelForm($event, 'PUT')->route('event.update', $event->id)->class('needs-validation')->attributes(['novalidate'])->open() }}
@include('ccms::event.partials._form')
{{ html()->closeModelForm() }}
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,49 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
@if ($errors->any())
<x-flash-message type="danger" :messages="$errors->all()" />
@endif
<div class="row">
<div class="col-xl-12">
<div class="card">
<div class="card-header d-flex align-items-center justify-content-between">
<h5 class="card-title mb-0">{{ $title }}</h5>
<a href="{{ route('event.create') }}" class="btn btn-primary waves-effect waves-light text-white"><i
class="ri-add-line align-middle"></i> Create</a>
</div>
<div class="card-body">
@php
$columns = [
[
'title' => 'S.N',
'data' => 'DT_RowIndex',
'name' => 'DT_RowIndex',
'orderable' => false,
'searchable' => false,
'sortable' => false,
],
['title' => 'Image', 'data' => 'image', 'name' => 'image'],
['title' => 'Title', 'data' => 'title', 'name' => 'title'],
['title' => 'Start Date', 'data' => 'start_date', 'name' => 'start_date'],
['title' => 'End Date', 'data' => 'end_date', 'name' => 'end_date'],
['title' => 'Slug', 'data' => 'slug', 'name' => 'slug'],
['title' => 'Status', 'data' => 'status', 'name' => 'status'],
[
'title' => 'Action',
'data' => 'action',
'orderable' => false,
'searchable' => false,
],
];
@endphp
<x-data-table-script :route="route('event.index')" :reorder="route('event.reorder')" :columns="$columns" />
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,196 @@
<div class="row">
<div class="col-xl-8">
<div class="card h-auto">
<div class="card-body">
<div class="row gy-3">
<div class="col-12">
{{ html()->label('Title')->class('form-label')->for('title') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->text('title')->class('form-control')->placeholder('Enter Event Title')->required(true) }}
</div>
<div class="col-md-6">
{{ html()->label('Start Date')->class('form-label') }}
<div class="input-group">
{{ html()->text('start_date')->class('form-control')->id('event-start-date')->placeholder('Event Start Date')->attributes([
'data-provider' => 'flatpickr',
'data-date-format' => 'Y-m-d',
'data-enable-time' => '',
])->required() }}
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
</div>
</div>
<div class="col-md-6">
{{ html()->label('End Date')->class('form-label') }}
<div class="input-group">
{{ html()->text('end_date')->class('form-control')->id('event-end-date')->placeholder('Event End Date')->attributes([
'data-provider' => 'flatpickr',
'data-date-format' => 'Y-m-d',
'data-enable-time' => '',
]) }}
<span class="input-group-text"><i class="ri-calendar-event-line"></i></span>
</div>
</div>
<div class="col-12">
{{ html()->label('Description (Short)')->class('form-label')->for('short_description') }}
{{ html()->textarea('short_description')->class('form-control')->placeholder('Enter Description (Short)')->rows(5) }}
</div>
<div class="col-12">
{{ html()->label('Description')->class('form-label')->for('description') }}
{{ html()->textarea('description')->class('form-control ckeditor-classic')->placeholder('Enter Description') }}
</div>
</div>
</div>
</div>
<x-ccms::custom-form-field :data="$event->custom ?? []" />
<div class="card meta-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">Meta</h6>
</div>
<div class="card-body">
<div class="row">
<div class="col-xl-12 col-sm-12">
{{ html()->label('Meta Title')->class('form-label')->for('meta_title') }}
{{ html()->text('meta_title')->class('form-control mb-3')->placeholder('Meta Title') }}
</div>
<div class="col-xl-12 col-sm-12">
{{ html()->label('Meta Keywords')->class('form-label')->for('meta_keywords') }}
{{ html()->textarea('meta_keywords')->class('form-control mb-3')->placeholder('Meta Keywords') }}
</div>
<div class="col-xl-12 col-sm-12">
{{ html()->label('Meta Description')->class('form-label')->for('meta_description') }}
{{ html()->textarea('meta_description')->class('form-control mb-3')->placeholder('Meta wire:Description')->rows(3) }}
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4">
<div class="card">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Published
</h6>
</div>
<div class="card-body">
{{ html()->label('Status')->class('form-label visually-hidden')->for('status') }}
{{ html()->select('status', config('constants.page_status_options'))->class('form-select choices-select') }}
</div>
<x-form-buttons :href="route('event.index')" :label="isset($event) ? 'Update' : 'Create'" />
</div>
<div class="card">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Page Attributes
</h6>
</div>
<div class="card-body">
{{ html()->label('Parent Event')->class('form-label')->for('parent_id') }}
{{ html()->select('parent_id', $eventOptions ?? [])->value($event->parent_id ?? old('parent_id'))->class('form-select choices-select')->placeholder('Select') }}
</div>
</div>
<div class="card media-gallery-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Icon
</h6>
</div>
<div class="card-body">
<div class="mb-3">
{{ html()->label('Icon')->class('form-label')->for('icon_class') }}
{{ html()->text('icon_class')->class('form-control')->placeholder('Icon class') }}
</div>
{{ html()->label('Icon Image')->class('form-label')->for('icon_image') }}
<x-image-input :data="$editable ? $event->getRawOriginal('icon_image') : null" id="icon_image" name="icon_image" :editable="$editable" :multiple=false />
</div>
</div>
<div class="card featured-image-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Featured Image
</h6>
</div>
<div class="card-body">
<div class="mb-3">
{{ html()->label('Featured')->class('form-label')->for('image') }}
<x-image-input :data="$editable ? $event->getRawOriginal('image') : null" id="image" name="image" :editable="$editable" :multiple=false />
</div>
{{ html()->label('Banner')->class('form-label')->for('banner') }}
<x-image-input :data="$editable ? $event->getRawOriginal('banner') : null" id="banner" name="banner" :editable="$editable" :multiple=false />
</div>
</div>
<div class="card media-gallery-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Media Gallery
</h6>
</div>
<div class="card-body">
<x-image-input :editable="$editable" id="images" name="images" :data="$editable ? $event->getRawOriginal('images') : null" :multiple="true"
label="Select Images" />
</div>
</div>
<div class="card sidebar-section">
<div class="card-header d-flex jusitfy-content-between align-items-center">
<h6 class="card-title mb-0 fs-14">Sidebar</h6>
</div>
<div class="card-body">
<div class="row gy-3">
<div class="col-lg-12">
{{ html()->label('Title')->class('form-label')->for('sidebar_title') }}
{{ html()->text('sidebar_title')->class('form-control') }}
</div>
<div class="col-lg-12">
{{ html()->label('Content')->class('form-label')->for('sidebar_content') }}
{{ html()->textarea('sidebar_content')->class('form-control')->placeholder('Short Content (optional)')->rows(3) }}
</div>
<div class="col-lg-12">
{{ html()->label('Image')->class('form-label')->for('sidebar_content') }}
<x-image-input :data="$editable ? $event->getRawOriginal('sidebar_image') : null" id="sidebar_image" name="sidebar_image" :editable="$editable"
:multiple=false />
</div>
</div>
</div>
</div>
<div class="card button-section">
<div class="card-header d-flex jusitfy-content-between align-items-center">
<h6 class="card-title mb-0 fs-14">Button</h6>
</div>
<div class="card-body">
<div class="row gy-3">
<div class="col-lg-12">
{{ html()->label('Text')->class('form-label')->for('button_text') }}
{{ html()->text('button_text')->class('form-control') }}
</div>
<div class="col-lg-12">
{{ html()->label('Link')->class('form-label')->for('button_url') }}
{{ html()->text('button_url')->class('form-control')->placeholder('Button Link') }}
</div>
<div class="col-lg-12">
{{ html()->label('Target')->class('form-label')->for('button_target') }}
{{ html()->select('button_target', config('constants.redirect_options'))->class('form-select choices-select') }}
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->form('POST')->route('testimonial.store')->class(['needs-validation'])->attributes(['enctype' => 'multipart/form-data', 'novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -0,0 +1,10 @@
<div class="hstack flex-wrap gap-3">
{{-- <a data-link="{{ route('franchise.markAsRead', $id) }}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Mark as {{ $is_read == 1 ? 'unread' : 'read' }}" data-status="{{ $is_read == 1 ? 'read' : 'unread' }}" --}}
{{-- class="fs-15 mark-item"><i class="{{ $is_read == 1 ? ' ri-mail-close-line link-secondary' : ' ri-mail-check-line link-success' }}"></i></a> --}}
<a href="javascript:void(0);" data-link="{{ route('franchise.destroy', $id) }}" class="link-danger fs-15 remove-item" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Delete">
<i class="ri-delete-bin-6-line"></i>
</a>
</div>

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->modelForm($testimonial, 'PUT')->route('testimonial.update', $testimonial->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -0,0 +1,60 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
<div class="card">
<div class="card-header align-items-center d-flex">
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
</div>
<div class="card-body">
@php
$columns = [
[
'title' => '<input type="checkbox" id="select-all">',
'data' => 'checkbox',
'name' => 'checkbox',
'orderable' => false,
'searchable' => false,
'className' => 'align-middle',
'width' => '1%',
],
['title' => 'First Name', 'data' => 'first_name', 'name' => 'first_name'],
['title' => 'Last Name', 'data' => 'last_name', '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
<x-data-table-script :route="route('franchise.index')" :reorder="null" :columns="$columns" />
</div>
<div class="card" id="customerList">
<div class="card-body p-2">
{{-- <div class="table-responsive">
{{ $dataTable->table(['class' => 'table table-sm w-100', 'data-is_enrolled' => $is_enrolled], true) }}
</div> --}}
<div class="row mt-3">
<div class="col-md-3">
{{ html()->select('action', [2 => 'Send News Letter', 3 => 'Send Mail'])->placeholder('Bulk Actions')->class('form-select bulk-select') }}
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,71 @@
<div class="row">
<div class="col-lg-8 col-xl-9">
<div class="card">
<div class="card-body">
<div class="row gy-3">
<div class="col-md-6">
{{ 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') }}
</div>
<div class="col-md-6">
{{ html()->label('Designation')->class('form-label') }}
{{ html()->text('designation')->class('form-control')->placeholder('Enter Designation') }}
</div>
<div class="col-md-6">
{{ html()->label('Company')->class('form-label') }}
{{ html()->text('company')->class('form-control')->placeholder('Enter Company') }}
</div>
<div class="col-lg-6">
{{ html()->label('Branch')->class('form-label')->for('branch_id') }}
{{ html()->select('branch_id', $branchOptions)->class('form-select choices-select')->placeholder('Select') }}
</div>
<div class="col-12">
{{ html()->label('Comment')->class('form-label')->for('description') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->textarea('description')->class('form-control')->rows(10) }}
</div>
</div>
</div>
</div>
</div>
<!-- end col -->
<div class="col-lg-4 col-xl-3">
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Publish</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->select('status', config('constants.page_status_options'))->class('form-select choices-select ') }}
</div>
</div>
</div>
<!-- end card body -->
<x-form-buttons :editable="$editable" label="Save" href="{{ route('team.index') }}" />
</div>
<div class="card featured-image-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Featured
</h6>
</div>
<div class="card-body">
<div class="mb-3">
{{ html()->label('Image')->class('form-label')->for('image') }}
<x-image-input :editable="$editable" id="image" name="image" :data="$editable ? $testimonial->getRawOriginal('image') : null"
:multiple="false" />
</div>
</div>
</div>
</div>
<!-- end col -->
</div>

View File

@@ -26,9 +26,9 @@
</div>
<div class="mb-3">
{{ html()->label('Video Link')->for('slug') }}
{{ html()->text('link')->value($gallery->link ?? old('link'))->class('form-control')->placeholder('Enter Youtube video link') }}
<div class="d-flex flex-wrap mt-1" id="video-preview">
{{ html()->label('Description')->for('slug') }}
{{ html()->text('link')->value($gallery->link ?? old('link'))->class('form-control')->placeholder('Enter Video Description') }}
<div class="d-flex flex-wrap mt-1">
</div>
</div>

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->form('POST')->route('testimonial.store')->class(['needs-validation'])->attributes(['enctype' => 'multipart/form-data', 'novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -0,0 +1,8 @@
<div class="hstack flex-wrap gap-3">
<a href="javascript:void(0);" data-link="{{ route('newsletter.destroy', $id) }}" class="link-danger fs-15 remove-item"
data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Delete">
<i class="ri-delete-bin-6-line"></i>
</a>
</div>

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->modelForm($testimonial, 'PUT')->route('testimonial.update', $testimonial->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -0,0 +1,48 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
<div class="card">
<div class="card-header align-items-center d-flex">
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
</div>
<div class="card-body">
@php
$columns = [
[
'title' => '<input type="checkbox" id="select-all">',
'data' => 'checkbox',
'name' => 'checkbox',
'orderable' => false,
'searchable' => false,
'className' => 'align-middle',
'width' => '1%',
],
['title' => 'Email', 'data' => 'email', 'name' => 'email'],
[
'title' => 'Action',
'data' => 'action',
'orderable' => false,
'searchable' => false,
],
];
@endphp
<x-data-table-script :route="route('newsletter.index')" :reorder="null" :columns="$columns" />
</div>
<div class="card" id="customerList">
<div class="card-body p-2">
{{-- <div class="table-responsive">
{{ $dataTable->table(['class' => 'table table-sm w-100', 'data-is_enrolled' => $is_enrolled], true) }}
</div> --}}
<div class="row mt-3">
<div class="col-md-3">
{{ html()->select('action', [2 => 'Send News Letter', 3 => 'Send Mail'])->placeholder('Bulk Actions')->class('form-select bulk-select') }}
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,71 @@
<div class="row">
<div class="col-lg-8 col-xl-9">
<div class="card">
<div class="card-body">
<div class="row gy-3">
<div class="col-md-6">
{{ 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') }}
</div>
<div class="col-md-6">
{{ html()->label('Designation')->class('form-label') }}
{{ html()->text('designation')->class('form-control')->placeholder('Enter Designation') }}
</div>
<div class="col-md-6">
{{ html()->label('Company')->class('form-label') }}
{{ html()->text('company')->class('form-control')->placeholder('Enter Company') }}
</div>
<div class="col-lg-6">
{{ html()->label('Branch')->class('form-label')->for('branch_id') }}
{{ html()->select('branch_id', $branchOptions)->class('form-select choices-select')->placeholder('Select') }}
</div>
<div class="col-12">
{{ html()->label('Comment')->class('form-label')->for('description') }}
{{ html()->span('*')->class('text-danger') }}
{{ html()->textarea('description')->class('form-control')->rows(10) }}
</div>
</div>
</div>
</div>
</div>
<!-- end col -->
<div class="col-lg-4 col-xl-3">
<div class="card">
<div class="card-header">
<h5 class="card-title mb-0">Publish</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
{{ html()->select('status', config('constants.page_status_options'))->class('form-select choices-select ') }}
</div>
</div>
</div>
<!-- end card body -->
<x-form-buttons :editable="$editable" label="Save" href="{{ route('team.index') }}" />
</div>
<div class="card featured-image-section">
<div class="card-header">
<h6 class="card-title mb-0 fs-14">
Featured
</h6>
</div>
<div class="card-body">
<div class="mb-3">
{{ html()->label('Image')->class('form-label')->for('image') }}
<x-image-input :editable="$editable" id="image" name="image" :data="$editable ? $testimonial->getRawOriginal('image') : null"
:multiple="false" />
</div>
</div>
</div>
</div>
<!-- end col -->
</div>

View File

@@ -0,0 +1,8 @@
<div class="hstack flex-wrap gap-3">
<a href="javascript:void(0);" data-link="{{ route('vacancy.destroy', $id) }}" class="link-danger fs-15 remove-item"
data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Delete">
<i class="ri-delete-bin-6-line"></i>
</a>
</div>

View File

@@ -0,0 +1,52 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
<div class="card">
<div class="card-header align-items-center d-flex">
<h5 class="card-title flex-grow-1 mb-0">{{ $title }}</h5>
</div>
<div class="card-body">
@php
$columns = [
[
'title' => '<input type="checkbox" id="select-all">',
'data' => 'checkbox',
'name' => 'checkbox',
'orderable' => false,
'searchable' => false,
'className' => 'align-middle',
'width' => '1%',
],
['title' => 'First Name', 'data' => 'first_name', 'name' => 'first_name'],
['title' => 'Last Name', 'data' => 'last_name', 'name' => 'last_name'],
['title' => 'Email', 'data' => 'email', 'name' => 'email'],
['title' => 'Phone', 'data' => 'phone', 'name' => 'phone'],
['title' => 'Qualification', 'data' => 'qualification', 'name' => 'qualification'],
[
'title' => 'Action',
'data' => 'action',
'orderable' => false,
'searchable' => false,
],
];
@endphp
<x-data-table-script :route="route('vacancy.index')" :reorder="null" :columns="$columns" />
</div>
<div class="card" id="customerList">
<div class="card-body p-2">
{{-- <div class="table-responsive">
{{ $dataTable->table(['class' => 'table table-sm w-100', 'data-is_enrolled' => $is_enrolled], true) }}
</div> --}}
<div class="row mt-3">
<div class="col-md-3">
{{ html()->select('action', [2 => 'Send News Letter', 3 => 'Send Mail'])->placeholder('Bulk Actions')->class('form-select bulk-select') }}
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->form('POST')->route('testimonial.store')->class(['needs-validation'])->attributes(['enctype' => 'multipart/form-data', 'novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -0,0 +1,14 @@
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<x-dashboard.breadcumb :title="$title" />
{{ html()->modelForm($testimonial, 'PUT')->route('testimonial.update', $testimonial->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
@include('ccms::testimonial.partials._form')
{{ html()->form()->close() }}
</div>
@endsection

View File

@@ -3,15 +3,20 @@
use Illuminate\Support\Facades\Route;
use Modules\CCMS\Http\Controllers\BlogController;
use Modules\CCMS\Http\Controllers\BranchController;
use Modules\CCMS\Http\Controllers\CareerController;
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;
use Modules\CCMS\Http\Controllers\EventController;
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;
@@ -21,6 +26,7 @@ use Modules\CCMS\Http\Controllers\SliderController;
use Modules\CCMS\Http\Controllers\TeamController;
use Modules\CCMS\Http\Controllers\TestController;
use Modules\CCMS\Http\Controllers\TestimonialController;
use Modules\CCMS\Http\Controllers\VacancyController;
/*
|--------------------------------------------------------------------------
@@ -30,10 +36,10 @@ use Modules\CCMS\Http\Controllers\TestimonialController;
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
|Eventcontr
*/
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');
@@ -82,6 +88,14 @@ Route::group(['middleware' => ['web', 'auth', 'permission'],'prefix' => 'admin/'
Route::get('service/toggle/{id}', [ServiceController::class, 'toggle'])->name('service.toggle');
Route::resource('service', ServiceController::class)->names('service');
Route::post('event/reorder', [EventController::class, 'reorder'])->name('event.reorder');
Route::get('event/toggle/{id}', [EventController::class, 'toggle'])->name('event.toggle');
Route::resource('event', EventController::class)->names('event');
Route::post('career/reorder', [CareerController::class, 'reorder'])->name('career.reorder');
Route::get('career/toggle/{id}', [CareerController::class, 'toggle'])->name('career.toggle');
Route::resource('career', CareerController::class)->names('career');
Route::post('branch/reorder', [BranchController::class, 'reorder'])->name('branch.reorder');
Route::get('branch/toggle/{id}', [BranchController::class, 'toggle'])->name('branch.toggle');
Route::resource('branch', BranchController::class)->names('branch');
@@ -122,6 +136,10 @@ 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('vacancy', VacancyController::class)->names('vacancy')->only(['index', 'store', 'destroy']);
Route::resource('counselor', CounselorController::class)->names('counselor')->only(['index', 'store', 'destroy']);
});

View File

@@ -14,10 +14,9 @@ class CostCalculatorService
$query->where('country_id', $request->country_id);
}
if ($request->filled('stay_type_id')) {
$query->where("stay_type_id", $request->stay_type_id);
}
// if ($request->filled('stay_type_id')) {
// $query->where("stay_type_id", $request->stay_type_id);
// }
})->latest()->paginate(10)->withQueryString();
}

View File

@@ -16,10 +16,9 @@ use Modules\Meeting\Http\Controllers\MeetingController;
*/
Route::group(['middleware' => ['web', 'auth', 'permission'], 'prefix' => 'admin/'], function () {
Route::resource('event', EventController::class)->names('event');
// Route::resource('event', EventController::class)->names('event');
Route::post('meeting/sub-task', [MeetingController::class, 'storeSubTask'])->name('meeting.storeSubTask');
Route::resource('meeting', MeetingController::class)->names('meeting');
Route::get('meeting/{id}/send-email', [MeetingController::class, 'sendEmail'])->name('meeting.sendmail');
});

View File

@@ -29,7 +29,7 @@ class UserService
'name' => $userData['name'],
'email' => $userData['email'],
'password' => Hash::make($userData['password'] ?? "password"),
'can_login' => $userData['can_login'] ?? false,
'can_login' => $userData['can_login'] ?? true,
'order' => $userData['order'],
]);

View File

@@ -3,6 +3,10 @@
use App\Http\Controllers\WebsiteController;
use Illuminate\Support\Facades\Route;
use Modules\CCMS\Http\Controllers\EnquiryController;
use Modules\CCMS\Http\Controllers\FranchiseController;
use Modules\CCMS\Http\Controllers\NewsletterController;
use Modules\CCMS\Http\Controllers\VacancyController;
use Modules\CCMS\Models\Franchise;
use Modules\CourseFinder\Http\Controllers\CoopController;
use Modules\CourseFinder\Http\Controllers\ProgramController;
use Modules\CourseFinder\Http\Controllers\ProgramLevelController;
@@ -19,6 +23,12 @@ Route::get('destination/{alias}', [WebsiteController::class, 'countrySingle'])->
Route::get('/home/resources', [WebsiteController::class, 'resources']);
Route::get('getCoursesList', [ProgramController::class, 'getCoursesList'])->name('program.getCoursesList');
Route::post('enquiry', [EnquiryController::class, 'store'])->name('enquiry.store');
Route::post('franchise', [FranchiseController::class, 'store'])->name('franchise.store');
Route::post('newsletter', [NewsletterController::class, 'store'])->name('newsletter.store');
Route::post('vacancy', [VacancyController::class, 'store'])->name('vacancy.store');
Route::get('career/{id}', [WebsiteController::class, 'careerSingle'])->name('career.single');
Route::get('getCost', [WebsiteController::class, 'getCost'])->name('cost.getCost');
Route::get('/thankyou', [WebsiteController::class, 'thankyouPage'])->name('thankyou');

View File

@@ -1,9 +1,11 @@
<?php
use Modules\CCMS\Models\Blog;
use Modules\CCMS\Models\Career;
use Modules\CCMS\Models\Category;
use Modules\CCMS\Models\Counter;
use Modules\CCMS\Models\Country;
use Modules\CCMS\Models\Event;
use Modules\CCMS\Models\Faq;
use Modules\CCMS\Models\FaqCategory;
use Modules\CCMS\Models\Gallery;
@@ -150,6 +152,44 @@ function getServices($limit = null, $order = 'desc')
->get();
}
function getCareers($limit = null, $order = 'desc')
{
return Career::query()
->where('status', 1)
->orderBy('order', $order)
->when($limit, function ($query) use ($limit) {
$query->limit($limit);
})
->get();
}
function previousEvents($limit = null, $order = 'desc')
{
return Event::query()
->where('status', 1)
->where('parent_id', null)
->where('start_date', '<=', now())
->orderBy('order', $order)
->when($limit, function ($query) use ($limit) {
$query->limit($limit);
})
->get();
}
function upcomingEvents($limit = null, $order = 'desc')
{
return Event::query()
->where('status', 1)
->where('parent_id', null)
->where('start_date', '>=', now())
->orderBy('order', $order)
->when($limit, function ($query) use ($limit) {
$query->limit($limit);
})
->get();
}
function getInstitutions($limit = null, $order = 'desc')
{
return Institution::query()

View File

@@ -30,9 +30,6 @@ class DashboardController extends Controller
$model = Enquiry::query()->where('is_read', 0)->latest();
return DataTables::eloquent($model)
->addIndexColumn()
->editColumn('class', function (Enquiry $enquiry) {
return $enquiry->class ?? '-';
})
->editColumn('subject', function (Enquiry $enquiry) {
return $enquiry->subject ?? '-';
})

View File

@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View;
use Modules\CCMS\Models\Blog;
use Modules\CCMS\Models\Career;
use Modules\CCMS\Models\Country;
use Modules\CCMS\Models\Institution;
use Modules\CCMS\Models\Page;
@@ -17,6 +18,7 @@ use Modules\CourseFinder\Models\Coop;
use Modules\CourseFinder\Models\Program;
use Modules\CourseFinder\Models\ProgramLevel;
use Modules\CourseFinder\Services\ProgramService;
use Illuminate\Support\Str;
class WebsiteController extends Controller
{
@@ -33,6 +35,8 @@ class WebsiteController extends Controller
$countries = Country::where('status', 1)->where('parent_id', null)->get();
$interviews = Service::where('status', 1)->where('parent_id', null)->get();
$services = Service::where('status', 1)->where('parent_id', null)->get();
$data['previousEvents'] = previousEvents(limit: null, order: 'asc');
$data['upcomingEvents'] = upcomingEvents(limit: null, order: 'asc');
$this->path = config('app.client');
view()->share([
@@ -42,6 +46,8 @@ class WebsiteController extends Controller
'countries' => $countries,
'services' => $services,
'interviews' => $interviews,
'previousEvents' => $data['previousEvents'],
'upcomingEvents' => $data['upcomingEvents'],
]);
}
@@ -57,7 +63,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');
@@ -126,6 +132,13 @@ class WebsiteController extends Controller
}
public function careerSingle($id)
{
$data['career'] = Career::findorFail($id);
return view("client.$this->path.pages.career-detail-template", $data);
}
public function testSingle($alias)
{
$testPreparations = $data["page"] = Test::where('status', 1)
@@ -148,23 +161,20 @@ class WebsiteController extends Controller
{
$country = $data["page"] = Country::where('status', 1)
->where('slug', $alias)
->with('institutions', function ($query) {
$query->where('status', 1);
})
->first();
if (!$country) {
return view("client.$this->path.errors.404");
}
$data['countryFAQs'] = getFAQsByCategory(limit: null, order: 'desc', category: $country->slug);
$data['countryInstitutions'] = $country->institutions;
// $data['countryFAQs'] = getFAQsByCategory(limit: null, order: 'desc', category: $country->slug);
// $data['countryInstitutions'] = $country->institutions;
$data['recentCountries'] = Country::where('status', 1)
->where('id', '!=', $country->id)
->inRandomOrder()
->orderBy('created_at', 'desc')
->take(5)->get();
// $data['recentCountries'] = Country::where('status', 1)
// ->where('id', '!=', $country->id)
// ->inRandomOrder()
// ->orderBy('created_at', 'desc')
// ->take(5)->get();
return view("client.$this->path.pages.study-destination-template", $data);
}
@@ -179,7 +189,8 @@ class WebsiteController extends Controller
$page = getPageWithChildrenBySlug(parent: $parent, slug: $slug, limit: null, order: 'asc');
$teams = getTeams(limit: null, order: 'asc');
$blogs = getBlogs(limit: null, order: 'asc');
$galleriesCSR = getPageWithChildrenBySlug(parent: $parent, slug: 'gallery', limit: null, order: 'asc');
$careers = getCareers(limit: null, order: 'asc');
if (!$page) {
return view('client.raffles.errors.404');
}
@@ -190,7 +201,7 @@ class WebsiteController extends Controller
return view('client.raffles.errors.404');
}
return view($path, ['page' => $page, 'teams' => $teams, 'blogs' => $blogs]);
return view($path, ['page' => $page, 'teams' => $teams, 'blogs' => $blogs, 'galleriesCSR' => $galleriesCSR], ['careers' => $careers]);
}
public function fallback()
@@ -262,61 +273,80 @@ class WebsiteController extends Controller
public function getCost(Request $request)
{
$data['costss'] = $this->costCalculatorService->findAll($request);
foreach ($data['costss'] as $value) {
$id = $value->id;
$costs = $this->costCalculatorService->findAll($request);
if ($costs->isEmpty()) {
return view("client.raffles.errors.404");
}
$id = $costs->last()->id;
$cost = CostCalculator::with([
'stayTypeLiving',
'stayTypeAccomodation',
'stayTypeOnetime',
'stayTypeService'
])->findOrFail($id);
$data['fee'] = Program::where('id', $request->program_id)->first();
$data['title'] = 'View Cost Calculation';
$data['cost'] = $cost;
])->find($id);
if (!$cost) {
return view("client.raffles.errors.404");
}
$program = Program::find($request->program_id);
if (!$program) {
return view("client.raffles.errors.404");
}
$getBreakdown = function ($stayTypeTitle) use ($cost) {
$living = optional($cost->stayTypeLiving->firstWhere('title', $stayTypeTitle))->pivot;
$living = optional($cost->stayTypeLiving->firstWhere('title', $stayTypeTitle))->pivot;
$accomodation = optional($cost->stayTypeAccomodation->firstWhere('title', $stayTypeTitle))->pivot;
$onetime = optional($cost->stayTypeOnetime->firstWhere('title', $stayTypeTitle))->pivot;
$service = optional($cost->stayTypeService->firstWhere('title', $stayTypeTitle))->pivot;
$onetime = optional($cost->stayTypeOnetime->firstWhere('title', $stayTypeTitle))->pivot;
$service = optional($cost->stayTypeService->firstWhere('title', $stayTypeTitle))->pivot;
return [
'living' => [
'monthly' => $living->monthly ?? 0,
'yearly' => $living->yearly ?? 0,
'yearly' => $living->yearly ?? 0,
],
'accomodation' => [
'monthly' => $accomodation->monthly ?? 0,
'yearly' => $accomodation->yearly ?? 0,
'yearly' => $accomodation->yearly ?? 0,
],
'onetime' => [
'visa' => $onetime->visa ?? 0,
'biometrics' => $onetime->biometrics ?? 0,
'sevis' => $onetime->sevis ?? 0,
'visa' => $onetime->visa ?? 0,
'biometrics' => $onetime->biometrics ?? 0,
'sevis' => $onetime->sevis ?? 0,
'application' => $onetime->application ?? 0,
'total' => ($onetime->visa ?? 0) + ($onetime->biometrics ?? 0) + ($onetime->sevis ?? 0) + ($onetime->application ?? 0),
'total' => ($onetime->visa ?? 0) + ($onetime->biometrics ?? 0) + ($onetime->sevis ?? 0) + ($onetime->application ?? 0),
],
'service' => [
'flight_ticket' => $service->flight_ticket ?? 0,
'insurance' => $service->insurance ?? 0,
'extra' => $service->extra ?? 0,
'total' => ($service->flight_ticket ?? 0) + ($service->insurance ?? 0) + ($service->extra ?? 0),
'insurance' => $service->insurance ?? 0,
'extra' => $service->extra ?? 0,
'total' => ($service->flight_ticket ?? 0) + ($service->insurance ?? 0) + ($service->extra ?? 0),
]
];
};
$data['breakdowns'] = [
'alone' => $getBreakdown('Alone'),
'with_spouse' => $getBreakdown('With Spouse'),
'with_spouse_and_child' => $getBreakdown('With Spouse and Child'),
$data = [
'serviceStatus' => $request->services,
'costs' => $costs,
'fee' => $program,
'title' => 'View Cost Calculation',
'cost' => $cost,
'type' => Str::slug($request->status_type_id),
'breakdowns' => [
'alone' => $getBreakdown('Alone'),
'with-spouse' => $getBreakdown('With Spouse'),
'with-spouse-and-child' => $getBreakdown('With Spouse and Child'),
],
];
return view('client.raffles.pages.cost-result', $data);
}
public function thankyouPage(Request $r)
{
$data = new \stdClass();

View File

@@ -24,7 +24,7 @@ class AppServiceProvider extends ServiceProvider
*/
public function boot(): void
{
Module::macro('sidebarMenu', function ($activeSidebar) {
Module::macro('sidebarMenu', function ($activeSidebar) {
return view('components.dashboard.sidebar-menu', [
'menus' => config($activeSidebar),
]);

View File

@@ -11,6 +11,7 @@ trait AddToDocumentCollection
{
public function addToDocumentCollection(string $collectionName = 'uploads', string $file, ?string $documentName = null, ?int $referenceDocumentId = null)
{
dd($documentName);
if (!Storage::disk('public')->exists($collectionName)) {
Storage::disk('public')->makeDirectory($collectionName);
}

View File

@@ -125,7 +125,7 @@ return [
],
'sidebar' => [
'default' => env('DEFAULT_SIDEBAR', 'cpm-sidebar'),
'default' => env('DEFAULT_SIDEBAR', 'sidebar'),
'other' => env('OTHER_SIDEBAR', 'sidebar'),
],
];

View File

@@ -3,12 +3,12 @@ return [
[
'text' => 'Dashboard',
'url' => 'admin/dashboard',
'icon' => 'ri-home-4-line',
'icon' => 'ri-home-fill text-primary',
],
[
'text' => 'Authorization',
'icon' => 'ri-user-settings-line',
'icon' => 'ri-group-fill text-info',
'module' => 'User',
'submenu' => [
[
@@ -32,7 +32,7 @@ return [
[
'text' => 'Setting',
'url' => 'admin/setting',
'icon' => 'ri-settings-4-line',
'icon' => 'ri-settings-2-fill text-danger',
'module' => 'CCMS',
'can' => ['setting.index'],
],
@@ -40,23 +40,53 @@ return [
[
'text' => 'Menu',
'url' => 'admin/menu',
'icon' => 'ri-menu-line',
'icon' => 'ri-menu-fill text-dark',
'module' => 'CCMS',
'can' => ['menu.index'],
],
[
'text' => 'Offer Popup',
'url' => 'admin/popup',
'icon' => 'ri-gift-2-line',
'text' => 'Enquiries',
'icon' => 'ri-cellphone-fill text-success',
'module' => 'CCMS',
'can' => ['popup.index'],
'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' => 'Vacancy Application',
'url' => 'admin/vacancy',
'can' => ['vacancy.index'],
],
],
],
[
'text' => 'Counter',
'url' => 'admin/counter',
'icon' => 'ri-add-circle-line',
'icon' => 'ri-add-circle-fill text-info',
'module' => 'CCMS',
'can' => ['counter.index'],
],
@@ -64,7 +94,7 @@ return [
[
'text' => 'Page',
'url' => 'admin/page',
'icon' => 'ri-pages-line',
'icon' => 'ri-pages-fill text-warning',
'module' => 'CCMS',
'can' => ['page.index'],
],
@@ -72,7 +102,7 @@ return [
[
'text' => 'Slider',
'url' => 'admin/slider',
'icon' => 'ri-slideshow-3-line',
'icon' => 'ri-slideshow-3-fill text-dark',
'module' => 'CCMS',
'can' => ['slider.index'],
],
@@ -80,7 +110,7 @@ return [
[
'text' => 'Testimonial',
'url' => 'admin/testimonial',
'icon' => 'ri-feedback-line',
'icon' => 'ri-feedback-fill text-success',
'module' => 'CCMS',
'can' => ['testimonial.index'],
],
@@ -88,7 +118,7 @@ return [
[
'text' => 'Partner',
'url' => 'admin/partner',
'icon' => 'ri-hand-heart-line',
'icon' => 'ri-hand-heart-fill text-danger',
'module' => 'CCMS',
'can' => ['partner.index'],
],
@@ -96,40 +126,46 @@ return [
[
'text' => 'Service',
'url' => 'admin/service',
'icon' => 'ri-customer-service-2-line',
'icon' => 'ri-customer-service-2-fill text-success',
'module' => 'CCMS',
'can' => ['service.index'],
],
[
'text' => 'Events',
'url' => 'admin/event',
'icon' => 'ri-calendar-todo-fill text-primary',
'module' => 'CCMS',
'can' => ['event.index'],
],
[
'text' => 'Team',
'url' => 'admin/team',
'icon' => 'ri-team-line',
'icon' => 'ri-team-fill text-primary',
'module' => 'CCMS',
'can' => ['team.index'],
],
[
'text' => 'Blog',
'icon' => 'ri-newspaper-line',
'text' => 'Career',
'url' => 'admin/career',
'icon' => 'ri-feedback-fill text-info',
'module' => 'CCMS',
'submenu' => [
[
'url' => 'admin/category',
'text' => 'Blog Category',
'can' => ['category.index'],
],
[
'url' => 'admin/blog',
'text' => 'Blog',
'can' => ['blog.index'],
],
],
'can' => ['career.index'],
],
[
'text' => 'Blog',
'url' => 'admin/blog',
'icon' => 'ri-newspaper-fill text-dark',
'module' => 'CCMS',
'can' => ['blog.index'],
],
[
'text' => 'Study Abroad',
'icon' => 'ri-earth-line',
'icon' => 'ri-earth-fill text-success',
'module' => 'CCMS',
'submenu' => [
[
@@ -146,8 +182,8 @@ return [
],
[
'text' => 'Gallery',
'icon' => ' ri-camera-line',
'text' => 'Testimonial Videos',
'icon' => ' ri-camera-fill text-dark',
'module' => 'CCMS',
'submenu' => [
[
@@ -165,7 +201,7 @@ return [
[
'text' => 'FAQ',
'icon' => 'ri-questionnaire-line',
'icon' => 'ri-questionnaire-fill text-danger',
'module' => 'CCMS',
'submenu' => [
[
@@ -181,17 +217,11 @@ return [
],
],
[
'text' => 'Enquiry',
'url' => 'admin/enquiry',
'icon' => ' ri-cellphone-line',
'module' => 'CCMS',
'can' => ['enquiry.index'],
],
[
'text' => 'Course Finder',
'icon' => 'ri-book-2-line',
'icon' => 'ri-book-2-fill text-primary',
'module' => 'CourseFinder',
'submenu' => [
@@ -228,7 +258,7 @@ return [
[
'text' => 'Cost Calculator',
'icon' => 'ri-newspaper-line',
'icon' => 'ri-newspaper-fill text-info',
'module' => 'CostCalculator',
'submenu' => [
[
@@ -245,17 +275,18 @@ return [
],
[
'text' => 'Documents',
'text' => 'Free Resources',
'url' => 'admin/documents',
'icon' => 'ri-file-text-line',
'icon' => 'ri-file-text-fill text-dark',
'module' => 'Document',
'can' => ['documents.index'],
],
[
'text' => 'Resume Builder',
'url' => 'admin/resume',
'icon' => 'ri-pages-line',
'module' => 'CCMS',
'can' => ['resume.index'],
],
'text' => 'Template',
'url' => 'admin/template',
'icon' => 'ri-mail-send-fill text-info',
'module' => 'Template',
'can' => ['template.index'],
]
];

File diff suppressed because it is too large Load Diff

View File

@@ -20,6 +20,8 @@
}
.bibhuti{
font-family: 'pacifico', cursive;
font-weight: bold;
font-size: 16px;
}
/* @font-face {
@@ -35,6 +37,10 @@ body {
font-family: 'Outfit', sans-serif;
/* font-weight: normal; */
}
p{
font-size: 16px;
color: black;
}
.text-brand{
@@ -611,6 +617,15 @@ z-index: 10000;
box-shadow: 0 5px 15px rgba(128, 128, 128, 0.377);
transition: .3s all ease-in-out;
}
.col.col-md-3:nth-child(1) .course-box img, .col.col-md-3:nth-child(2) .course-box img{
width: 100px;
}
.col.col-md-3:nth-child(3) .course-box img {
width: 125px;
}
.col.col-md-3:nth-child(4) .course-box img {
width: 110px;
}
.how-it-work input, .how-it-work textarea {
border: 1px solid #E3E3E3;
@@ -1190,6 +1205,15 @@ font-weight: bold;
padding: 40px 0;
}
.numbering{
background-color: white;
padding: 0px 20px;
border-radius: 100%;
font-size: 32px;
color: #CE171F;
font-weight: 400;
margin: 0;
}
.free-resources-content .first-row{
border: 1px solid #E5E5E5;
display: flex;
@@ -1294,6 +1318,38 @@ margin: 10px 0;
display: none;
}
.tab-container .title-small{
font-size: 20px;
font-weight: 600;
padding-bottom: 10px;
color: black;
}
.tab-container .para{
font-size: 16px;
font-weight: 400;
padding-bottom: 10px;
color: black;
}
.tab-container .paraa{
color: black;
}
.tab-container .para-slant{
font-size: 16px;
font-weight: 400;
padding-bottom: 10px;
color: black;
font-style: italic;
}
.tab-container ul.list-disc li{
list-style: disc;
}
.tab-container ol.list-alpha li{
list-style: lower-alpha;
}
.tab-content.active {
display: block;
}
@@ -2542,6 +2598,11 @@ border-collapse: separate;
position: relative;
z-index: 2;
}
.cost-select{
border-radius: 30px;
border: 1px solid rgb(190, 189, 189);
}
canvas { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: auto; }
@@ -2941,6 +3002,9 @@ justify-content: space-between;
gap: 0.5rem;
}
.service-items .service-item.country:nth-child(1){
background-color: rgba(110, 127, 153, 0.15);
}
.service-item {
cursor: pointer;
border-radius: 0.75rem;
@@ -3437,6 +3501,22 @@ justify-content: space-between;
}
}
.tabs-table{
border: 1px solid gray;
padding: 20px;
}
.tabs-table td{
border-right: 1px solid gray;
padding: 10px;
}
.tabs-table thead td{
font-weight: bold;
font-size: 16px;
}
.tabs-table tbody td{
font-weight: 400;
font-size: 14px;
}

View File

@@ -424,6 +424,9 @@ color: white;
margin: 20px 0;
}
.mySwiper-text .swiper-slide .box img{
object-fit: cover;
}
.mySwiper-text .swiper-button-next::after, .mySwiper-text .swiper-button-prev::after{

View File

@@ -7519,6 +7519,9 @@
.object-cover {
object-fit: cover;
}
.object-contain {
object-fit: contain;
}
.objpos-center {
object-position: center;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

@@ -743,6 +743,7 @@ doneBtn.addEventListener("click", () => {
}
});
// Final monkey image
// document.addEventListener("DOMContentLoaded", function () {

View File

@@ -1,12 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>404</h1>
</body>
</html>
@extends('client.raffles.layouts.app')
@section('content')
<div
class="min-h-screen flex flex-col items-center justify-center bg-gradient-to-b from-yellow-100 via-white to-yellow-50 px-6">
<!-- Monkey Illustration -->
<div class="relative">
<img src="{{ asset('raffles/assets/images/404/404.png') }}" alt="Monkey" class="animate-bounce" height="500px"
width="700px">
</div>
<!-- Button -->
<a href="{{ url('/') }}"
class="mt-6 inline-block bg-yellow-400 text-gray-900 font-semibold px-6 py-3 rounded-2xl shadow-md hover:bg-yellow-500 transition duration-300">
🏠 Back to Home
</a>
</div>
@endsection

View File

@@ -46,7 +46,6 @@
<!-- for select2 -->
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css" rel="stylesheet" />
@stack('css')
@@ -202,11 +201,12 @@
const data = await res.json();
if (res.ok) {
form.reset();
toastr.success(data.message || 'Contact Submitted successful!');
window.location.href =
"{{ route('thankyou') }}"; // ✅ redirect instead of toastr
} else if (data.errors && data.errors.email) {
data.errors.email.forEach(msg => toastr.error(msg));
} else {
toastr.error('Submittion failed. Please try again.');
toastr.error('Submission failed. Please try again.');
}
} catch (err) {
console.error(err);
@@ -219,6 +219,165 @@
});
</script>
<script>
document.addEventListener('DOMContentLoaded', () => {
const form = document.getElementById('franchise-form');
const submitBtn = document.getElementById('franchise-submit');
const url = form.action;
form.addEventListener('submit', async (e) => {
e.preventDefault();
submitBtn.disabled = true;
submitBtn.textContent = 'Submitting…';
const formData = new FormData(form);
try {
const res = await fetch(url, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')
.content
},
body: formData
});
const data = await res.json();
if (res.ok) {
form.reset();
window.location.href =
"{{ route('thankyou') }}"; // ✅ redirect instead of toastr
} else if (data.errors && data.errors.email) {
data.errors.email.forEach(msg => toastr.error(msg));
} else {
toastr.error('Submission failed. Please try again.');
}
} catch (err) {
console.error(err);
toastr.error('Something went wrong. Please try again.');
} finally {
submitBtn.disabled = false;
submitBtn.textContent = 'Submit';
}
});
});
</script>
<script>
document.addEventListener('DOMContentLoaded', () => {
const form = document.getElementById('newsletter-form');
const submitBtn = document.getElementById('newsletter-submit');
const url = form.action;
form.addEventListener('submit', async (e) => {
e.preventDefault();
submitBtn.disabled = true;
submitBtn.textContent = 'Submitting…';
const formData = new FormData(form);
try {
const res = await fetch(url, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')
.content
},
body: formData
});
const data = await res.json();
if (res.ok) {
form.reset();
window.location.href =
"{{ route('thankyou') }}"; // ✅ redirect instead of toastr
} else if (data.errors && data.errors.email) {
data.errors.email.forEach(msg => toastr.error(msg));
} else {
toastr.error('Submission failed. Please try again.');
}
} catch (err) {
console.error(err);
toastr.error('Something went wrong. Please try again.');
} finally {
submitBtn.disabled = false;
submitBtn.textContent = 'Submit';
}
});
});
</script>
<script>
document.addEventListener('DOMContentLoaded', () => {
const form = document.getElementById('counselor-form');
const submitBtn = document.getElementById('counselor-submit-btn');
const url = form.action;
form.addEventListener('submit', async (e) => {
e.preventDefault();
submitBtn.disabled = true;
submitBtn.textContent = 'Submitting…';
const formData = new FormData(form);
try {
const res = await fetch(url, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')
.content
},
body: formData
});
const data = await res.json();
if (res.ok) {
form.reset();
window.location.href =
"{{ route('thankyou') }}"; // ✅ redirect instead of toastr
} else if (data.errors && data.errors.email) {
data.errors.email.forEach(msg => toastr.error(msg));
} else {
toastr.error('Submission failed. Please try again.');
}
} catch (err) {
console.error(err);
toastr.error('Something went wrong. Please try again.');
} finally {
submitBtn.disabled = false;
submitBtn.textContent = 'Submit';
}
});
});
</script>
<script>
document.addEventListener('DOMContentLoaded', () => {
const form = document.getElementById('vacancy-form');
const submitBtn = document.getElementById('vacancy-submit-btn');
const url = form.action;
form.addEventListener('submit', async (e) => {
e.preventDefault();
submitBtn.disabled = true;
submitBtn.textContent = 'Submitting…';
const formData = new FormData(form);
try {
const res = await fetch(url, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')
.content
},
body: formData
});
const data = await res.json();
if (res.ok) {
form.reset();
window.location.href =
"{{ route('thankyou') }}"; // ✅ redirect instead of toastr
} else if (data.errors && data.errors.email) {
data.errors.email.forEach(msg => toastr.error(msg));
} else {
toastr.error('Submission failed. Please try again.');
}
} catch (err) {
console.error(err);
toastr.error('Something went wrong. Please try again.');
} finally {
submitBtn.disabled = false;
submitBtn.textContent = 'Submit';
}
});
});
</script>
<script>
$(document).ready(function() {
@@ -329,8 +488,8 @@
});
var swiper = new Swiper(".swiper-universities", {
slidesPerView: "auto", // Adjusts based on available space
centeredSlides: true, // Ensures the center slide is the active one
slidesPerView: 1,
spaceBetween: 10,
loop: true,
autoplay: {
delay: 2000,
@@ -407,7 +566,7 @@
spaceBetween: 10,
loop: true,
autoplay: {
delay: 3000, // 3 seconds between slides
delay: 500, // 3 seconds between slides
disableOnInteraction: false, // keeps autoplay running after user interacts
},
// navigation: {
@@ -564,6 +723,21 @@
},
});
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const tabs = document.querySelectorAll('.accordion-content.resource');
tabs.forEach(tab => {
tab.addEventListener('click', function() {
// Remove highlight from all
tabs.forEach(t => t.classList.remove('highlight-tab'));
// Add highlight to clicked one
this.classList.add('highlight-tab');
});
});
});
</script>
</div>

View File

@@ -4,7 +4,7 @@
<section class="lqd-section footer-content text-black" data-section-luminosity="dark">
<div class="container footer-inside">
<div class="row pb-10 ">
<div class="col col-6 col-md-3 flex flex-col text-start mb-20 p-10">
<div class="col col-12 col-sm-6 col-md-4 flex flex-col text-start mb-20 p-10">
<div class=" mb-25 lqd-imggrp-single block relative">
<div class=" lqd-imggrp-img-container inline-flex relative items-center justify-center">
<h2 class="text-black text-24">{{ setting('title') }}</h2>
@@ -20,7 +20,7 @@
</div>
@foreach ($footerMenus as $menu)
<div class="col col-6 col-md-3 flex flex-col items-center">
<div class="col col-6 col-sm-3 col-md-2 flex flex-col items-center">
<div>
<div class="mb-20 ld-fancy-heading relative module-title">
<h3
@@ -35,11 +35,15 @@
@foreach ($menu->children as $subMenu)
<li>
<a class="text-black btn btn-naked btn-icon-right btn-hover-swp animation-element"
data-localscroll="true" href="{{ $subMenu->route_name }}"><span
data-localscroll="true" href="{{ $subMenu->route_name }}"
target="{{ $subMenu->target }}">
<span
class="link-icon inline-flex hide-if-empty left-icon icon-next-to-label"></span>
<span class="btn-txt"
data-text="Franchise">{{ $subMenu->title }}</span>
data-text="{{ $subMenu->title }}">{{ $subMenu->title }}</span>
</a>
</li>
@endforeach
@endif
@@ -51,20 +55,7 @@
<div class="col col-12 col-md-4 flex flex-col p-10">
<div class="mb-20 ld-fancy-heading relative module-title">
<h3
class="ld-fh-element inline-block relative font-title text-15 font-bold leading-20 mb-1em text-black">
Subscribe for Newsletter
</h3>
</div>
<div class="lqd-fancy-menu lqd-custom-menu flex flex-col gap-5 relative left lqd-menu-td-none">
<form class="flex" action="">
<input class=" border-0 w-80percent px-20 text-14 py-10 text-black" type="email"
name="email" id="email" placeholder="Enter your Email">
<button class="border-0 text-white p-10 text-12 ">Subscribe</button>
</form>
<div class="flex gap-15 mt-10 flex-wrap social-icons-footer">
<a href="{{ setting('facebook') }}" target="blank"><i class="fa-brands fa-facebook"></i></a>
<a href="{{ setting('youtube') }}" target="blank"> <i class="fa-brands fa-youtube"></i></a>
@@ -74,6 +65,19 @@
<a href="{{ setting('whatsapp') }}" target="blank"> <i
class="fa-brands fa-square-whatsapp"></i></a>
</div>
<form class="flex" action="{{ route('newsletter.store') }}" method="post"
id="newsletter-form">
@csrf
<input class=" border-0 w-80percent px-20 text-14 py-10 text-black" type="email"
name="email" id="email" placeholder="Enter your Email">
<button type="submit" id="newsletter-submit"
class="border-0 text-white p-10 text-12 newsletter-submit">Subscribe</button>
</form>
<div>
<iframe src="{{ setting('map') }}" width="100%" height="150" style="border:0;"
allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
</div>
</div>
</div>
</div>
@@ -83,7 +87,7 @@
<div class="container">
<div class="flex justify-center items-center">
<img src="{{ setting('other_image') }}" alt="">
<img src="{{ asset(setting('other_image')) }}" alt="">
</div>

View File

@@ -8,7 +8,7 @@
<div class="w-auto flex">
<div class="module-logo flex navbar-brand-plain py-20">
<a class="navbar-brand flex p-0 relative w-140" href="{{ url('/') }}" rel="home"><span
class="navbar-brand-inner post-rel"><img src="{{ setting('logo') }}"
class="navbar-brand-inner post-rel"><img src="{{ asset(setting('logo')) }}"
alt="raffle logo" /></span></a>
</div>
</div>
@@ -43,13 +43,14 @@
<div class="service-items">
@foreach ($countries as $country)
<a href="{{ route('country.single', $country->slug) }}"
class="service-item">
class="service-item country">
<div class="service-icon blue-bg">
<img src="{{ asset($country->image) }}"
alt="">
</div>
<div class="service-content">
<div class="service-name">{{ $country->title }}
<div class="service-name">Study in
{{ $country->title }}
</div>
<div class="service-description">
{{ $country->short_description }}</div>
@@ -67,8 +68,9 @@
@foreach ($tests as $test)
<a href="{{ route('test.single', $test->slug) }}"
class="service-item">
<div class="service-icon indigo-bg">
<i class="fa-solid fa-book-open"></i>
<div class="service-icon blue-bg">
<img src="{{ asset($test->image) }}"
alt="">
</div>
<div class="service-content">
<div class="service-name">Prepare
@@ -90,7 +92,7 @@
<a href="{{ route('service.single', $service->slug) }}"
class="service-item">
<div class="service-icon cyan-bg">
<i class="fa-solid fa-users"></i>
<i class="{{ $service->icon_class }}"></i>
</div>
<div class="service-content">
<div class="service-name">{{ $service->title }}
@@ -120,10 +122,9 @@
<li>
<div
class="btn btn-solid cursor-pointer text-14 font-bold rounded-30 leading-30 bg-yellow text-black module-btn-sm px-20 py-5">
<span class="btn-txt" id="get-in-touch">Book a Counsellor</span>
class="open-intouch btn btn-solid cursor-pointer text-14 font-bold rounded-30 leading-30 bg-yellow text-black module-btn-sm px-20 py-5">
<span class="btn-txt" id="">Book a Counsellor</span>
</div>
@include('client.raffles.parts.get-in-touch')
</li>
@@ -189,8 +190,8 @@
<span class="bar inline-block"></span>
<span class="bar inline-block"></span></span></span>
</button>
<a class="navbar-brand flex relative py-20 w-100" href="index.php"><span
class="navbar-brand-inner -mr-20"><img width="100" src="assets/images/logo/logo.png"
<a class="navbar-brand flex relative py-20 w-100" href="{{ url('/') }}"><span
class="navbar-brand-inner -mr-20"><img width="100" src="{{ setting('logo') }}"
alt="raffle logo" /></span></a>
</div>
<div class="lqd-mobile-sec-nav w-full absolute z-10">
@@ -199,7 +200,7 @@
<ul id="mobile-primary-nav" class="reset-ul lqd-mobile-main-nav main-nav nav"
data-localscroll="true"
data-localscroll-options='{"itemsSelector":"> li > a", "trackWindowScroll": true, "includeParentAsOffset": true}'>
<li><a href="about.php">About </a></li>
<li><a href="/about-us">About </a></li>
<li class="accordion " id="accordion-questions" role="tablist" aria-multiselectable="true">
<div class="accordion-item panel ">
<div class="accordion-heading" role="tab" id="service-menu-1">
@@ -216,38 +217,32 @@
<div id="collapse-service-menu-1" class="accordion-collapse collapse menu-dropdown"
data-bs-parent="#menu-dropdown" role="tabpanel" aria-labelledby="service-menu-1">
<ul>
<li><a class="hover:text-brand" href=" x ">Study in UK</a></li>
<li><a class="hover:text-brand" href="study-usa.php">Study in USA</a></li>
<li><a class="hover:text-brand" class="hover:text-brand"
href="study-canada.php">Study in Canada</a></li>
<li><a class="hover:text-brand" href="study-denmark.php">Study in Denmark</a>
</li>
<li><a class="hover:text-brand" href="study-australia.php">Study in Australia</a>
</li>
<li><a class="hover:text-brand" href="ielts.php">Prepare IELTS</a></li>
<li><a class="hover:text-brand" href="pte.php">Prepare PTE</a></li>
<li><a class="hover:text-brand" href="duolingo.php">Prepare Duolingo</a></li>
<li><a class="hover:text-brand" href="interview-preparation.php">Interview
Preparation</a></li>
<li><a class="hover:text-brand" href="visa-assistance.php">Visa Assistance</a>
</li>
<li><a class="hover:text-brand" href="financial-guidance.php">Financial
Guidance</a></li>
<li><a class="hover:text-brand" href="travel-assistance.php">Travel
Assistance</a></li>
@foreach ($countries as $country)
<li><a class="hover:text-brand"
href="{{ route('country.single', $country->slug) }}">Study
in {{ $country->title }}</a></li>
@endforeach
@foreach ($tests as $test)
<li><a class="hover:text-brand"
href="{{ route('test.single', $test->slug) }}">Prepare
{{ $test->title }}</a></li>
@endforeach
@foreach ($services as $service)
<li><a class="hover:text-brand"
href="{{ route('test.single', $test->slug) }}">{{ $service->title }}</a>
</li>
@endforeach
</ul>
</div>
</div>
</li>
<li><a href="contact-us.php">Contact</a></li>
<li><a href="blogs.php">Blog</a></li>
<li><a href="/contact-us">Contact</a></li>
<li><a href="/blog">Blog</a></li>
<li>
<a href="book-counsellor.php">Book a Counsellor</a>
<a href="">Book a Counsellor</a>
</li>
<li><a href="course-finder.php">Course Finder</a></li>
<li><a href="resources.php">Free Resources</a></li>
<li><a href="/course-finder">Course Finder</a></li>
<li><a href="/resources">Free Resources</a></li>
</ul>
</div>
</div>

View File

@@ -237,14 +237,14 @@
<div class="container section">
<section class="section">
<div class="flex flex-col gap-5 justify-center items-center text-center">
<h2 class="text-42 md:text-30 text-sec">{{ $fifthPage->title }}</h2>
<h2 class="text-42 md:text-30 text-sec ">{{ $fifthPage->title }}</h2>
</div>
</section>
<div class="row section">
@foreach ($fifthPage->custom as $child)
<div class="col col-md-4">
<div class="flex flex-col gap-10 ceo-container px-20 py-20">
<h3 class="text-brand text-26 md:text-18 font-bold leading-30">{{ $child['icon'] ?? '' }}
<h3 class="text-brand text-26 md:text-18 font-bold leading-30 text-center">{{ $child['icon'] ?? '' }}
</h3>
<p class="text-black text-14 text-center">{{ $child['key'] ?? '' }}</p>
</div>

View File

@@ -0,0 +1,41 @@
@extends('client.raffles.layouts.app')
@section('content')
<section class="about">
<div class="services-banner">
<img src="{{ asset('raffles/assets/images/backgrounds_general/achievements-banner.png') }}" width="1425"
height="356" alt="interview preparation">
</div>
<section class="section ">
<div class="flex flex-col gap-5 justify-center items-center text-center">
<h2 class="text-60 md:text-30 text-brand">Achievements</h2>
<img class="w-20percent" src="{{ asset('raffles/assets/images/icons/line.png') }}" alt="">
</div>
</section>
<!-- first row -->
<section class="lqd-section text-box-image pt-40 pb-30">
<div class="container">
<div class="row pb-20">
@foreach ($page->custom as $index => $data)
<div class="col col-sm-6 col-md-4">
<a href="" class="flex flex-col gap-20 p-20 blog-post">
<div class="w-100percent h-210 overflow-hidden rounded-16">
<img class="w-full h-full object-cover rounded-16"
src="{{ asset($page->images[$index]) }}" alt="">
</div>
<div>
<h2 class="text-20 text-ter text-center">{{ $data['key'] ?? '' }} </h2>
</div>
</a>
</div>
@endforeach
</div>
</div>
</section>
</section>
@endsection

View File

@@ -55,8 +55,8 @@
</div>
<div class="sidebar-widget cta-widget">
<h3 class="cta-title">Need Personalized Guidance?</h3>
<p class="cta-text">Our education consultants are here to help you find the perfect
university match.</p>
{{-- <p class="cta-text">Our education consultants are here to help you find the perfect
university match.</p> --}}
<a href="/contact-us" class="cta-button">Book a Free Consultation</a>
</div>
</div>

View File

@@ -0,0 +1,11 @@
<div class="cta-wrapper open-intouch">
<div class="phone-icon-top">
<svg viewBox="0 0 24 24">
<path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/>
</svg>
</div>
<a href="#" class="cta-button-call">
<span class="cta-text">Click here to book a Free Counselling</span>
<div class="cta-accent"></div>
</a>
</div>

View File

@@ -0,0 +1,143 @@
@extends('client.raffles.layouts.app')
@section('content')
<div class="p-20 ">
<div class="h-175 rounded-10 bg-after relative">
<img class="h-full w-full rounded-30 object-cover"
src="{{ asset('raffles/assets/images/general/about-banner.png') }}" alt="">
<div
class="flex justify-center flex-col text-center items-center w-70percent mx-auto absolute top-20percent left-15percent z-30">
<h2 class="md:text-40 text-94 text-white">Career-Details</h2>
</div>
</div>
</div>
<section class="pt-60 career-details ">
<div class="container">
<div class="row">
<div class="col col col-12">
<div class="relative line-through">
<div class="position ">
<h4 class="text-brand">Available Position</h4>
</div>
</div>
</div>
<div class="col col col-12 ">
<div class="d-flex gap-5 pt-5">
<div class="career-img">
<img class="w-full" src="{{ asset('raffles/assets/images/icons/team.svg') }}" alt="">
</div>
<div>
<h3 class="text-brand">{{ $career->job_title }}</h3>
<p>{{ setting('location') }}</p>
</div>
</div>
<div class="py-5 ">
<div class="flex gap-10">
<div class="text-12">
<i class="fa-solid fa-money-bill-wave"></i> {{ $career->salary_range }}
</div>
<div class="text-12">
<i class="fa-solid fa-location-dot"></i> {{ $career->location }}
</div>
<div class="text-12">
<i class="fa-solid fa-briefcase"></i> {{ $career->position }}
</div>
</div>
</div>
<div class="row justify-between">
<div class="col col-12 col-md-6 pt-5">
<h5>Job Description</h5>
<p>{{ $career->job_description }}
</p>
<h6 class="py-3">Key Responsibilities (JD):</h6>
{{-- <ul>
<li>1. Creative Design Development: Conceptualize and create high-quality designs for
digital and print media, including websites, social media, brochures, and promotional
materials.</li>
<li>2. BTL Marketing Designs: Design engaging visual materials for BTL marketing campaigns,
such as posters, banners, and standees, ensuring alignment with brand guidelines.</li>
<li>3. Layout and Page Design: Plan and design page layouts for print media such as
brochures, pamphlets, and magazines, ensuring an eye-catching yet functional structure.
</li>
<li>4. Brand Identity Development: Work on visual brand identity projects, creating logos,
color schemes, and overall brand guidelines that resonate with target audiences.</li>
<li>5. Client Collaboration: Collaborate with clients to understand their design
requirements and deliver solutions that meet their objectives.</li>
<li>6. Cross-Departmental Collaboration: Work closely with the marketing and production
teams to deliver cohesive and integrated creative projects.</li>
<li>7. Design for Digital Campaigns: Create digital assets for social media, websites, and
online campaigns, ensuring visual consistency across all platforms.</li>
<li>8. Quality Control: Ensure the highest standards of quality and consistency across all
creative outputs, adhering to timelines and project goals.</li>
<li>9. Software Proficiency: Utilize design tools such as Adobe Creative Suite (Photoshop,
Illustrator, InDesign, etc.) to produce creative assets with speed and precision.</li>
<li>10. Mentorship and Team Leadership: Guide and mentor junior designers, providing
feedback and support to ensure continuous growth and improvement within the team.</li>
</ul> --}}
{!! $career->job_requirements !!}
</div>
<div class="col col-12 col-md-5">
<div class=" form ">
<h2 class="text-26 mb-30 text-brand text-center">Quick Apply</h2>
<form action="{{ route('vacancy.store') }}" method="post" id="vacancy-form">
@csrf
<input type="hidden" name="career_id" value="{{ $career->id }}">
<div class="flex gap-20">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="text"
name="first_name" id="" placeholder="First Name">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="text"
name="last_name" id="" placeholder="Last Name">
</div>
<div class="flex gap-20">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="email"
name="email" id="" placeholder="Email">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="tel"
name="phone" id="" placeholder="Phone Number">
</div>
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="text"
name="qualification" id="" placeholder="Your Qualification">
<textarea class="w-full mb-10 rounded-6 py-15 text-14 px-10" name="description" id=""
placeholder="Short description about you"></textarea>
<label class="text-16" for="">Please Upload Your CV</label>
<input class="mb-20" type="file" name="document" id="">
<button type="submit" id="vacancy-submit-btn"
class="button-hover px-30 py-10 bg-sec text-white rounded-30 text-14 border-0 mt-20 ">Submit</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection

View File

@@ -0,0 +1,45 @@
@extends('client.raffles.layouts.app')
@section('content')
<section class="career">
<div class="services-banner">
<img src="{{ asset('raffles/assets/images/backgrounds_general/career-banner.png') }}" width="1425" height="356"
alt="interview preparation">
</div>
<section class="section ">
<div class="flex flex-col gap-5 justify-center items-center text-center">
<h2 class="text-60 md:text-30 text-sec">Career Opportunities</h2>
<div class="title-line mx-auto"></div>
</div>
</section>
<section class="lqd-section pt-40 pb-30">
<div class="container">
<div class="row pb-20">
@foreach ($careers as $career)
<div class="col col-sm-6 col-md-4">
<a href="{{ route('career.single', $career->id) }}"
class="career-box flex flex-col gap-20 border">
<span>
<h5 class="text-white bg-sec px-20 py-10 rounded-10 text-18 mb-10 ml-0 inline-block">
{{ $career->department }}</h5>
</span>
<h6 class="text-16 font-bols mb-10">{{ $career->job_title }}</h6>
<div class="flex items-center gap-10 mb-10">
<i class="fa-solid fa-calendar-days text-20"></i>
<p class="font-bold text-16 text-black m-0 ">Post Date: {{ $career->created_At }}</p>
</div>
<div class="mb-10">
<h2 class="text-16 font-medium text-gray">
{{ \Illuminate\Support\Str::limit($career->job_description, 50) }}</h2>
</div>
<button>View Detail</button>
</a>
</div>
@endforeach
</div>
</div>
</section>
</section>
@endsection

View File

@@ -5,68 +5,86 @@
<img src="{{ $page->banner }}" alt="">
</div>
<section class="lqd-section pt-40 pb-30">
<div class="container">
<div class="w-80percent mx-auto">
<h2 class="md:text-30 text-60 text-sec text-center">Our Details</h2>
<div class="title-line mx-auto"></div>
</div>
<div class="row">
<div class="col col-md-4">
<div class="flex flex-col gap-30 justify-center items-center contact-box">
<i class="fa-solid fa-mobile-screen-button text-sec text-50"></i>
<h4 class="text-24 text-sec">Call Us</h4>
<div class="flex flex-col gap-5">
<a class="text-16 text-grey" href="tel:+977-1234567890">{{ setting('mobile') }}</a>
<a class="text-16 text-grey" href="tel:+977-1234567890">{{ setting('phone') }}</a>
</div>
</div>
</div>
<div class="col col-md-4">
<div class="flex flex-col gap-30 justify-center items-center contact-box">
<i class="fa-solid fa-envelope text-brand text-50"></i>
<h4 class="text-24 text-sec">Drop Us a Line</h4>
<div class="flex flex-col gap-5">
<a class="text-16 text-grey" href="mailto:info@raffles.com">{{ setting('email') }}</a>
<a class="text-16 text-sec" href="https://www.raffleseducare.com/"
target="blank">raffleseducare.com</a>
</div>
</div>
</div>
<div class="col col-md-4">
<div class="flex flex-col gap-30 justify-center items-center contact-box">
<i class="fa-solid fa-location-dot text-50"></i>
<h4 class="text-24 text-sec">Visit Us</h4>
<div class="flex flex-col gap-5">
<h4 class="text-16 text-grey font-medium">{{ setting('location') }}</h4>
<h4 class="text-16 text-grey font-medium">Way to putalisadak</h4>
</div>
</div>
</div>
</div>
</section>
<section class="lqd-section pt-40 pb-40">
<div class="container">
<h3 class="text-black text-36 md:text-24 text-center pb-10">Fill In The Form</h3>
<div class="contact-form">
<form action="{{ route('enquiry.store') }}" method="post" id="contact-form">
@csrf
<div class="flex gap-10">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="text" name="name"
id="name" placeholder=" Name">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="email" name="email"
id="email" placeholder="Email">
<div class="container">
<div class="row">
<div class="col col-md-6 order-2 md-order-1">
<section class="lqd-section pt-40 pb-30">
<div class="row">
<div class="col col-sm-6 col-md-6">
<div class="flex flex-col gap-30 justify-center items-center contact-box">
<i class="fa-solid fa-mobile-screen-button text-sec text-50"></i>
<h4 class="text-24 text-sec">Call Us</h4>
<div class="flex flex-col gap-5">
<a class="text-16 text-grey" href="tel:+977-1234567890">{{ setting('mobile') }}</a>
<a class="text-16 text-grey" href="tel:+977-1234567890">{{ setting('phone') }}</a>
</div>
</div>
</div>
<div class="col col-sm-6 col-md-6">
<div class="flex flex-col gap-30 justify-center items-center contact-box">
<i class="fa-solid fa-envelope text-brand text-50"></i>
<h4 class="text-24 text-sec">Drop Us a Line</h4>
<div class="flex flex-col gap-5">
<a class="text-16 text-grey"
href="mailto:info@raffles.com">{{ setting('email') }}</a>
<a class="text-16 text-sec" href="https://www.raffleseducare.com/"
target="blank">raffleseducare.com</a>
</div>
</div>
</div>
<div class="col col-sm-6 col-md-6">
<div class="flex flex-col gap-30 justify-center items-center contact-box">
<i class="fa-solid fa-location-dot text-50"></i>
<h4 class="text-24 text-sec">Visit Us</h4>
<div class="flex flex-col gap-5">
<h4 class="text-16 text-grey font-medium">{{ setting('location') }}</h4>
<h4 class="text-16 text-grey font-medium">Way to putalisadak</h4>
</div>
</div>
</div>
</div>
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="text" name="subject"
id="subject" placeholder="Subject">
<textarea class="w-full mb-20 rounded-6 py-15 text-14 px-10" name="message" id="message" placeholder="Message"></textarea>
<button type="submit" id="submit-btn"
class="button-hover px-20 py-10 bg-sec text-white text-16 border-0">Send
Message</button>
</form>
</section>
</div>
<div class="col col-md-6 order-1 md-order-2">
<section class="lqd-section pt-50 pb-40">
<div class="contact-form">
<h3 class="text-black text-36 md:text-24 text-center pb-10">Fill In The Form</h3>
<form action="{{ route('enquiry.store') }}" method="post" id="contact-form">
@csrf
<div class="flex gap-10">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="text" name="name"
id="name" placeholder=" Name" required>
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="text" name="mobile"
id="mobile" placeholder="Phone Number" required>
</div>
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="email" name="email"
id="email" placeholder="Email" required>
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="text" name="subject"
id="subject" placeholder="Subject" required>
<textarea class="w-full mb-20 rounded-6 py-15 text-14 px-10" name="message" id="message" placeholder="Message"
required></textarea>
<button type="submit" id="submit-btn"
class="button-hover px-20 py-10 bg-sec text-white text-16 border-0">Send
Message</button>
</form>
</div>
</section>
</div>
</div>
</section>
@endsection
</div>
</section>
@endsection

View File

@@ -132,127 +132,11 @@
<section class="lqd-section pb-160">
<div class="container">
<div class="row" id="interactiveSection">
<div class="row justify-center flex" id="interactiveSection">
{{-- <div class="col col-lg-7">
<div class="wizard-container">
<div class="nav" id="step-nav">
<button class="active" data-step="0">Country</button>
<button data-step="1">Stay Type</button>
<button data-step="2">Other Services</button>
<button data-step="3">Program Level</button>
<button data-step="4">Program</button>
</div>
<form id="multiStepForm" method="GET" action="{{ route('cost.getCost') }}">
<!-- Step 1: Select Country -->
<div class="tab-pane active" data-step="0">
<h2 class="step-title">Which country are you planning to study in?</h2>
<div class="form-group">
<div class="d-flex flex-wrap">
@foreach ($countries as $country)
<div class="form-check country-card me-3 mb-3">
<input class="form-check-input" type="radio" name="country_id"
value="{{ $country->id }}" id="{{ $country->id }}">
<label class="form-check-label" for="{{ $country->id }}">
{{ $country->title }}
</label>
</div>
@endforeach
</div>
</div>
<div style="text-align:right;">
<button type="button" class="btn btn-next">Next</button>
</div>
</div>
<!-- Step 2: Stay Type Status -->
<div class="tab-pane" data-step="1">
<h2 class="step-title">Are you going alone or with a dependent?</h2>
<div class="form-group">
<div class="d-flex flex-wrap">
@foreach ($livingStatusOptions as $key => $status)
<div class="form-check status-card me-3 mb-3">
<input class="form-check-input" type="radio" name="status_type_id"
value="{{ $key }}" id="status_type_{{ $key }}">
<label class="form-check-label" for="status_type_{{ $key }}">
{{ $status }}
</label>
</div>
@endforeach
</div>
</div>
<div style="display:flex; justify-content:space-between;">
<button type="button" class="btn btn-prev">Previous</button>
<button type="button" class="btn btn-next">Next</button>
</div>
</div>
<!-- Step 3: Proficiency -->
<div class="tab-pane" data-step="2">
<h2 class="step-title">Do you want to include other services?</h2>
<div class="form-group">
<input type="radio" name="services" id="yes" value="yes"> <label
for="yes">Yes</label>
<input type="radio" name="services" id="no" value="no"> <label
for="no">No</label>
</div>
<div style="display:flex; justify-content:space-between;">
<button type="button" class="btn btn-prev">Previous</button>
<button type="button" class="btn btn-next">Next</button>
</div>
</div>
<!-- Step 4: Basic -->
<div class="tab-pane" data-step="3">
<h2 class="step-title">Which Level are you applying for?</h2>
<div class="form-group">
@foreach ($programLevelOptions as $level)
<input type="radio" name="" id="" value=""> <label
for="program_level_id">{{ $level }}</label>
@endforeach
</div>
<div style="display:flex; justify-content:space-between;">
<button type="button" class="btn btn-prev">Previous</button>
<button type="button" class="btn btn-next">Next</button>
</div>
</div>
<!-- Step 5: Contact -->
<div class="tab-pane" data-step="4">
<h2 class="step-title">Which Program are you applying for?</h2>
<div class="form-group">
<div class="d-flex flex-wrap">
@foreach ($programss as $key => $program)
<select name="program_id" class="form-control" required>
<option value="">Select Program</option>
<option value="{{ $key }}">{{ $program }}</option>
</select>
@endforeach
</div>
</div>
<div style="display:flex; justify-content:space-between;">
<button type="button" class="btn btn-prev">Previous</button>
<button type="submit" class="btn btn-next">Finish</button>
</div>
</div>
</form>
</div>
</div> --}}
<div class="col col-lg-7">
<form id="cost-calculator">
<div class="col col-lg-12">
<form id="cost-calculator" method="GET" action="{{ route('cost.getCost') }}">
<div class="cost-choosing">
<div class="step-content active" id="step1">
@@ -260,42 +144,19 @@
<h5 class="text-ter text-18 font-medium pb-20">Where do you want to study</h5>
<div class="row flex flex-wrap py-20">
<div class="col col-sm-4">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="country" type="radio" id="country1">
<label class="text-20 text-ter p-0 m-0" for="country1">UK</label>
@foreach ($countries as $country)
<div class="col col-sm-4">
<div>
<label
class="text-20 text-ter p-0 m-0 flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs"
for="{{ $country->id }}"> <input type="radio" name="country_id"
value="{{ $country->id }}" id="{{ $country->id }}" required>
{{ $country->title }} </label>
</div>
</div>
</div>
<div class="col col-sm-4">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="country" type="radio" id="country2">
<label class="text-20 text-ter p-0 m-0" for="country2">Australia</label>
</div>
</div>
<div class="col col-sm-4">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="country" type="radio" id="country3">
<label class="text-20 text-ter p-0 m-0" for="country3">USA</label>
</div>
</div>
<div class="col col-sm-4">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="country" type="radio" id="country4">
<label class="text-20 text-ter p-0 m-0" for="country4">Newzealand</label>
</div>
</div>
@endforeach
</div>
</div>
<div class="step-content" id="step2">
@@ -304,34 +165,18 @@
</h5>
<div class="row flex flex-wrap py-20">
<div class="col col-sm-6">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="alone" type="radio" id="alone">
<label class="text-20 text-ter p-0 m-0" for="alone">Alone</label>
@foreach ($livingStatusOptions as $key => $status)
<div class="col col-sm-6">
<div class="">
<label
class="text-20 text-ter p-0 m-0 flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs"
for="{{ $status }}"> <input type="radio"
name="status_type_id" value="{{ $status }}"
id="{{ $status }}" required> {{ $status }}</label>
</div>
</div>
</div>
<div class="col col-sm-6">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="alone" type="radio" id="spouse">
<label class="text-20 text-ter p-0 m-0" for="spouse">With Spouse</label>
</div>
</div>
<div class="col col-sm-6">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="alone" type="radio" id="child">
<label class="text-20 text-ter p-0 m-0" for="child">With Spouse and
child</label>
</div>
</div>
@endforeach
</div>
</div>
<div class="step-content" id="step3">
@@ -341,19 +186,25 @@
<div class="row flex flex-wrap py-20">
<div class="col col-sm-4">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="services" type="radio" id="serviceYes">
<div>
<label class="text-20 text-ter p-0 m-0" for="serviceYes">Yes</label>
<label
class="text-20 text-ter p-0 m-0 flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs"
for="yes"> <input name="services" type="radio" id="yes"
value="yes" required> Yes</label>
</div>
</div>
<div class="col col-sm-4">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="services" type="radio" id="serviceNo">
<div>
<label class="text-20 text-ter p-0 m-0" for="serviceNo">No</label>
<label
class="text-20 text-ter p-0 m-0 flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs"
for="no"> <input name="services" type="radio" id="no"
value="no">No</label>
</div>
@@ -366,25 +217,19 @@
<h5 class="text-ter text-18 font-medium pb-20">Which Level are you applying for?</h5>
<div class="row flex flex-wrap py-20">
<div class="col col-sm-4">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="level" type="radio" id="bachelors">
<label class="text-20 text-ter p-0 m-0" for="bachelors">Bachelors</label>
@foreach ($programLevelOptions as $level)
<div class="col col-sm-4">
<div>
<label
class="text-20 text-ter p-0 m-0 flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs"
for="{{ $level }}"> <input type="radio" name=""
id="{{ $level }}" value="">
{{ $level }}</label>
</div>
</div>
</div>
<div class="col col-sm-4">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<input name="level" type="radio" id="masters">
<label class="text-20 text-ter p-0 m-0" for="masters">Masters</label>
</div>
</div>
@endforeach
</div>
</div>
<div class="step-content" id="step5">
@@ -394,13 +239,12 @@
<div class="row flex py-20">
<div class="col col-sm-12">
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
<select name="" id="">
<option value="">Select Program</option>
<option value="">Masters in Information Technology</option>
</select>
@foreach ($programss as $key => $program)
<select name="program_id" class="cost-select" id="" required>
<option value="">Select Program</option>
<option value="{{ $key }}">{{ $program }}</option>
</select>
@endforeach
</div>
</div>
@@ -457,7 +301,7 @@
</div>
<div class="col col-lg-1"></div>
{{-- <div class="col col-lg-1"></div>
<div class="col col-lg-4">
<div class="total-cost">
@@ -475,7 +319,7 @@
</tbody>
</table>
</div>
</div>
</div> --}}
</div>
@@ -485,75 +329,3 @@
</section>
@endsection
@push('js')
{{-- <script>
const form = document.getElementById('multiStepForm');
const tabs = document.querySelectorAll('.tab-pane');
const nextBtns = document.querySelectorAll('.btn-next');
const prevBtns = document.querySelectorAll('.btn-prev');
const navButtons = document.querySelectorAll('#step-nav button');
let currentStep = 0;
function showStep(step) {
tabs.forEach((tab, idx) => {
tab.classList.toggle('active', idx === step);
});
navButtons.forEach((btn, idx) => {
btn.classList.toggle('active', idx === step);
});
}
nextBtns.forEach(btn => {
btn.addEventListener('click', () => {
if (currentStep < tabs.length - 1) {
currentStep++;
showStep(currentStep);
}
});
});
prevBtns.forEach(btn => {
btn.addEventListener('click', () => {
if (currentStep > 0) {
currentStep--;
showStep(currentStep);
}
});
});
navButtons.forEach((btn, idx) => {
btn.addEventListener('click', () => {
currentStep = idx;
showStep(currentStep);
});
});
// Proficiency test toggle
const yesRadio = document.getElementById('yes');
const noRadio = document.getElementById('no');
const testDetailsGroup = document.getElementById('testDetailsGroup');
const testScoreGroup = document.getElementById('testScoreGroup');
const consideringGroup = document.getElementById('consideringGroup');
function toggleProficiencySections() {
if (yesRadio.checked) {
testDetailsGroup.classList.remove('d-none');
testScoreGroup.classList.remove('d-none');
consideringGroup.classList.add('d-none');
} else if (noRadio.checked) {
testDetailsGroup.classList.add('d-none');
testScoreGroup.classList.add('d-none');
consideringGroup.classList.remove('d-none');
} else {
testDetailsGroup.classList.add('d-none');
testScoreGroup.classList.add('d-none');
consideringGroup.classList.add('d-none');
}
}
yesRadio.addEventListener('change', toggleProficiencySections);
noRadio.addEventListener('change', toggleProficiencySections);
toggleProficiencySections();
</script> --}}
@endpush

View File

@@ -53,129 +53,133 @@
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-lg-12">
@foreach ($breakdowns as $type => $breakdown)
<div class="a4-page">
{{-- <div class="card shadow-lg border-0 rounded-4"> --}}
<div class="bg-warning-subtle position-relative">
<div class="card-body text-center py-10">
<a class="navbar-brand p-0" href="{{ url('/') }}" rel="home">
<span class="navbar-brand-inner">
<img src="{{ asset(setting('logo')) }}" alt="raffle logo" width="150px"
height="150px" />
</span>
</a>
</div>
@php
$breakdown = $breakdowns[$type];
@endphp
<div class="a4-page">
{{-- <div class="card shadow-lg border-0 rounded-4"> --}}
<div class="bg-warning-subtle position-relative">
<div class="card-body text-center py-10">
<a class="navbar-brand p-0" href="{{ url('/') }}" rel="home">
<span class="navbar-brand-inner">
<img src="{{ asset(setting('logo')) }}" alt="raffle logo" width="150px"
height="150px" />
</span>
</a>
</div>
</div>
<div class="text-center">
<p class="mb-0 fs-5 test-muted"><i>Estimated Cost Calculation For
{{ $cost->country?->title ?? 'N/A' }}</i> (<strong
class="text-capitalize">{{ strtoupper(str_replace('_', ' ', $type)) }}</strong>)
</p>
</div>
<!-- Body -->
<div class="card-body p-4">
<!-- Tution Fee -->
<h6 class="fw-bold mt-4 text-primary">Tution Fee</h6>
<div class="table-responsive">
<table
class="table table-sm table-bordered table-striped shadow-sm rounded align-middle text-center small">
<thead>
<tr class="fw-bold text-uppercase text-end small">
<th></th>
<th>Yearly</th>
</tr>
</thead>
<tbody>
<tr>
<td class="fw-semibold text-muted">{{ $fee['title'] }}</td>
<td class="text-end">
{{ $fee['fee'] }}
</td>
</tr>
</tbody>
</table>
</div>
<!-- Tution Fee -->
<!-- Living & Accommodation -->
<h6 class="fw-bold mt-30 text-primary">Recurring Costs</h6>
<div class="table-responsive">
<table
class="table table-sm table-bordered table-striped shadow-sm rounded align-middle text-center small">
<thead>
<tr class="fw-bold text-uppercase text-end small">
<th></th>
<th>Monthly</th>
<th>Yearly</th>
</tr>
</thead>
<tbody>
<tr>
<td class="fw-semibold text-muted">Living Cost</td>
<td class="text-end">{{ $breakdown['living']['monthly'] }}</td>
<td class="text-end">{{ $breakdown['living']['yearly'] }}</td>
</tr>
<tr>
<td class="fw-semibold text-muted">Accommodation Cost</td>
<td class="text-end">{{ $breakdown['accomodation']['monthly'] }}</td>
<td class="text-end">{{ $breakdown['accomodation']['yearly'] }}</td>
</tr>
<tr class="table-success">
<td class="fw-bold text-uppercase">Total Recurring</td>
<td class="fw-bold text-end">
<span class="badge bg-success fs-6 px-2 py-1">
{{ $breakdown['living']['monthly'] + $breakdown['accomodation']['monthly'] }}
</span>
</td>
<td class="fw-bold text-end">
<span class="badge bg-success fs-6 px-2 py-1">
{{ $breakdown['living']['yearly'] + $breakdown['accomodation']['yearly'] }}
</span>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Living & Accommodation -->
<!-- One-time Costs -->
<h6 class="fw-bold mt-30 text-primary">One-time Costs</h6>
<div class="table-responsive">
<table
class="table table-sm table-hover table-striped border rounded shadow-sm align-middle small">
<tbody>
<tr>
<td class="fw-semibold text-muted">Visa</td>
<td class="text-end">{{ $breakdown['onetime']['visa'] }}</td>
</tr>
<tr>
<td class="fw-semibold text-muted">Biometrics</td>
<td class="text-end">{{ $breakdown['onetime']['biometrics'] }}</td>
</tr>
<tr>
<td class="fw-semibold text-muted">SEVIS</td>
<td class="text-end">{{ $breakdown['onetime']['sevis'] }}</td>
</tr>
<tr>
<td class="fw-semibold text-muted">Application</td>
<td class="text-end">{{ $breakdown['onetime']['application'] }}</td>
</tr>
<tr class="table-success">
<td class="fw-bold text-uppercase">Total One-time</td>
<td class="fw-bold text-end">
<span class="badge bg-success fs-6 px-2 py-1">
{{ $breakdown['onetime']['total'] }}
</span>
</td>
</tr>
</tbody>
</table>
</div>
<div class="text-center">
<p class="mb-0 fs-5 test-muted"><i>Estimated Cost Calculation For
{{ $cost->country?->title ?? 'N/A' }}</i> (<strong
class="text-capitalize">{{ strtoupper(str_replace('_', ' ', $type)) }}</strong>)
</p>
</div>
<!-- Body -->
<div class="card-body p-4">
<!-- Tution Fee -->
<h6 class="fw-bold mt-4 text-primary">Tution Fee</h6>
<div class="table-responsive">
<table
class="table table-sm table-bordered table-striped shadow-sm rounded align-middle text-center small">
<thead>
<tr class="fw-bold text-uppercase text-end small">
<th></th>
<th>Yearly</th>
</tr>
</thead>
<tbody>
<tr>
<td class="fw-semibold text-muted">{{ $fee['title'] }}</td>
<td class="text-end">
{{ $fee['fee'] }}
</td>
</tr>
</tbody>
</table>
</div>
<!-- Tution Fee -->
<!-- Living & Accommodation -->
<h6 class="fw-bold mt-30 text-primary">Recurring Costs</h6>
<div class="table-responsive">
<table
class="table table-sm table-bordered table-striped shadow-sm rounded align-middle text-center small">
<thead>
<tr class="fw-bold text-uppercase text-end small">
<th></th>
<th>Monthly</th>
<th>Yearly</th>
</tr>
</thead>
<tbody>
<tr>
<td class="fw-semibold text-muted">Living Cost</td>
<td class="text-end">{{ $breakdown['living']['monthly'] }}</td>
<td class="text-end">{{ $breakdown['living']['yearly'] }}</td>
</tr>
<tr>
<td class="fw-semibold text-muted">Accommodation Cost</td>
<td class="text-end">{{ $breakdown['accomodation']['monthly'] }}</td>
<td class="text-end">{{ $breakdown['accomodation']['yearly'] }}</td>
</tr>
<tr class="table-success">
<td class="fw-bold text-uppercase">Total Recurring</td>
<td class="fw-bold text-end">
<span class="badge bg-success fs-6 px-2 py-1">
{{ $breakdown['living']['monthly'] + $breakdown['accomodation']['monthly'] }}
</span>
</td>
<td class="fw-bold text-end">
<span class="badge bg-success fs-6 px-2 py-1">
{{ $breakdown['living']['yearly'] + $breakdown['accomodation']['yearly'] }}
</span>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Living & Accommodation -->
<!-- One-time Costs -->
<h6 class="fw-bold mt-30 text-primary">One-time Costs</h6>
<div class="table-responsive">
<table
class="table table-sm table-hover table-striped border rounded shadow-sm align-middle small">
<tbody>
<tr>
<td class="fw-semibold text-muted">Visa</td>
<td class="text-end">{{ $breakdown['onetime']['visa'] }}</td>
</tr>
<tr>
<td class="fw-semibold text-muted">Biometrics</td>
<td class="text-end">{{ $breakdown['onetime']['biometrics'] }}</td>
</tr>
<tr>
<td class="fw-semibold text-muted">SEVIS</td>
<td class="text-end">{{ $breakdown['onetime']['sevis'] }}</td>
</tr>
<tr>
<td class="fw-semibold text-muted">Application</td>
<td class="text-end">{{ $breakdown['onetime']['application'] }}</td>
</tr>
<tr class="table-success">
<td class="fw-bold text-uppercase">Total One-time</td>
<td class="fw-bold text-end">
<span class="badge bg-success fs-6 px-2 py-1">
{{ $breakdown['onetime']['total'] }}
</span>
</td>
</tr>
</tbody>
</table>
</div>
@if ($serviceStatus === 'yes')
<!-- Service Costs -->
<h6 class="fw-bold mt-30 text-primary">Service Costs</h6>
<div class="table-responsive">
@@ -205,32 +209,35 @@
</tbody>
</table>
</div>
@endif
<!-- Overall -->
<div class="table-responsive mt-4">
<table
class="table table-sm table-bordered shadow-sm rounded-4 text-center align-middle small">
<tbody>
<tr class="table-warning align-middle">
<td class="fw-bold text-uppercase">
<strong>Overall Estimated Cost</strong>
<div class="small fst-italic text-muted">
(Excluding Recurring Costs)
</div>
</td>
<td class="text-end">
<strong>{{ $breakdown['service']['total'] + $breakdown['onetime']['total'] + $fee['fee'] }}</strong>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Overall -->
<div class="table-responsive mt-4">
<table
class="table table-sm table-bordered shadow-sm rounded-4 text-center align-middle small">
<tbody>
<tr class="table-warning align-middle">
<td class="fw-bold text-uppercase">
<strong>Overall Estimated Cost</strong>
<div class="small fst-italic text-muted">
(Excluding Recurring Costs)
</div>
</td>
<td class="text-end">
<strong>
{{ $serviceStatus === 'yes'
? $breakdown['service']['total'] + $breakdown['onetime']['total'] + $fee['fee']
: $breakdown['onetime']['total'] + $fee['fee'] }}
</strong>
</td>
</tr>
</tbody>
</table>
</div>
</div>
{{-- </div> --}}
@endforeach
</div>
</div>
</div>
</div>

View File

@@ -96,7 +96,7 @@
<div class="row">
<div class="col col-md-2">
<div class="sm:w-50percent w-full h-70">
<img class="w-full h-full" src="{{ $item->institution?->image }}"
<img class="w-full h-full object-contain" src="{{ $item->institution?->image }}"
alt="">
</div>
</div>
@@ -218,7 +218,7 @@
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10 bg-light-blue border-light-grey"
type="text" name="name" id="" placeholder="Full Name">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10 bg-light-blue border-light-grey"
type="text" name="phone" id="" placeholder="Phone">
type="text" name="mobile" id="" placeholder="Phone">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10 bg-light-blue border-light-grey"
type="email" name="email" id="" placeholder="Email">
<textarea class="w-full mb-20 rounded-6 py-15 text-14 px-10 bg-light-blue border-light-grey" name="subject"

View File

@@ -0,0 +1,153 @@
@extends('client.raffles.layouts.app')
@section('content')
<section class="career">
<div class="p-20 ">
<div class="h-175 rounded-10 bg-after relative">
<img class="h-full w-full rounded-30 object-cover" src="{{ asset($page->banner) }}" alt="">
</div>
</div>
<section class="section ">
<div class="flex flex-col gap-5 justify-center items-center text-center">
<h2 class="text-60 md:text-30 text-sec">CSR</h2>
<div class="title-line mx-auto"></div>
</div>
</section>
<section class=" about-page">
<div class="container">
<div class="ceo-container">
<div class="content-wrapper">
<div class="image-section">
<div class="image-frame">
<img src="{{ asset($page->image) }}" alt="" class="ceo-image">
</div>
</div>
<div class="message-section">
<div class="accent-line"></div>
<div class="quote-mark">"</div>
<h2 class="heading">{{ $page->short_description }}</h2>
<p class="message">
{!! $page->description !!}
</p>
</div>
</div>
</div>
<!-- <div class="row items-center">
<div class="col col-12 col-md-6">
<div class="flex flex-wrap mr-120 ml-40 lg:m-0">
<div class="mb-20 relative">
<h2 class="ld-fh-element inline-block relative lqd-highlight-classic lqd-highlight-grow-left mt-0/5em mb-0 md:text-20 font-bold w-full"
data-inview="true" data-transition-delay="true"
data-delay-options='{"elements": ".lqd-highlight-inner", "delayType": "transition"}'>
<span>Your Trusted Study Abroad
</span>
<mark class="lqd-highlight"><span class="lqd-highlight-txt">Partner.</span>
<span class="left-0 bottom-10 lqd-highlight-inner"></span></mark>
</h2>
</div>
<div class="mb-20 ld-fancy-heading relative">
<p class="leading-25 ld-fh-element inline-block relative mb-0/5em">
Were more than just a consultancy—were your ultimate study abroad ally! With years of
experience and a passion for helping students succeed, weve guided thousands of
students to their dream universities across the globe. Your dreams are our mission
</p>
</div>
</div>
</div>
<div class="col col-12 col-md-6 p-0">
<div class="module-section flex items-center justify-center transition-all p-20 lg:p-0">
<div class="flex items-center justify-center bg-center bg-no-repeat bg-contain" style="
background-image: url('assets/images/demo/start-hub-1/shape-ellipse.png');
">
<div class="lqd-imggrp-single block relative " data-float="ease-in-out">
<div class="lqd-imggrp-img-container inline-flex relative items-center justify-center">
<figure class="w-full relative">
<img width="450" height="450" src="assets/images/general/about-banner.png"
alt="text box image" />
</figure>
</div>
</div>
</div>
</div>
</div>
</div> -->
</div>
</section>
<section class="section ">
<div class="container">
<h2 class="text-60 md:text-30 text-brand text-center">Blogs</h2>
</div>
</section>
<section class="lqd-section pt-40 pb-30">
<div class="container">
<div class="swiper mySwiper-img">
<div class="swiper-wrapper">
@foreach ($blogs as $blog)
<div class="swiper-slide ">
<a class="h-full w-full relative bg-dark-before"
href="{{ route('blog.single', $blog->slug) }}"> <img class="rounded-30"
src="{{ asset($blog->image) }}" alt="">
<div class="absolute left-5percent bottom-20">
<h3 class="text-white text-20">{{ $blog->title }}</h3>
</div>
</a>
</div>
@endforeach
</div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
</section>
<section class="section ">
<div class="container">
<h2 class="text-60 md:text-30 text-brand text-center">Gallery</h2>
<!-- <img class="w-20percent" src="assets/images/icons/line.png" alt=""> -->
</div>
</section>
<section class="lqd-section pt-40 pb-30">
<div class="container">
<div class="swiper mySwiper-img">
<div class="swiper-wrapper">
@foreach ($galleriesCSR->images as $gallery)
<div class="swiper-slide"> <img class="rounded-10" src="{{ asset($gallery) }}" alt="">
</div>
@endforeach
</div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
</section>
</section>
@endsection

View File

@@ -0,0 +1,134 @@
@extends('client.raffles.layouts.app')
@section('content')
<div class="services-banner">
<img src="{{ asset($page->banner) }}" width="1425" height="356" alt="events ">
</div>
<section class="section ">
<div class="flex flex-col gap-5 justify-center items-center text-center">
<h2 class="text-60 md:text-30 text-sec">Events</h2>
<div class="title-line mx-auto"></div>
</div>
</section>
<div class="py-20 container events">
<div class="sm:block flex justify-between items-center mb-40 mt-40">
<h2 class="ld-fh-element inline-block relative mt-10 mb-0 section-heading-sec">
Upcoming Events
</h2>
</div>
<div class="swiper swiper-events mt-40 mb-40">
<div class="swiper-wrapper">
@foreach ($upcomingEvents as $event)
<a href="" class="swiper-slide">
<div class="event-block relative w-full">
<div class="w-full rounded-30">
<img src="{{ asset($event->image) }}" alt="">
</div>
<div class="flex items-center gap-20 py-20 px-20 bg-white rounded-30">
<div>
<h4 class="text-16 text-ter">Start</h4>
<h4 class="text-18 font-bold text-black">{{ $event->start_date }}</h4>
</div>
<div>
<h3 class="text-16 text-black">{{ $event->title }}</h3>
<p class="text-14 p-0 m-0 text-grey">{{ $event->short_description }} </p>
</div>
</div>
</div>
</a>
@endforeach
</div>
<!-- Pagination -->
<!-- <div class="swiper-pagination"></div> -->
<!-- Navigation Buttons -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<!-- past events -->
<div class="sm:block flex justify-between items-center mb-40 mt-40">
<h2 class="ld-fh-element inline-block relative mt-10 mb-0 section-heading-sec">
Past Events
</h2>
</div>
<div class="swiper swiper-events mt-40">
<div class="swiper-wrapper">
@foreach ($previousEvents as $event)
<a href="" class="swiper-slide">
<div class="event-block relative w-full">
<div class="w-full rounded-30">
<img src="{{ asset($event->image) }}" alt="">
</div>
<div class="flex items-center gap-20 py-20 px-20 bg-white rounded-30">
<div>
<h4 class="text-16 text-ter">Start</h4>
<h4 class="text-18 font-bold text-black">{{ $event->start_date }}</h4>
</div>
<div>
<h3 class="text-16 text-black">{{ $event->title }}</h3>
<p class="text-14 p-0 m-0 text-grey">{{ $event->short_description }} </p>
</div>
</div>
</div>
</a>
@endforeach
</div>
<!-- Pagination -->
<!-- <div class="swiper-pagination"></div> -->
<!-- Navigation Buttons -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
<!-- Blog -->
<div class=" flex flex-col gap-20 justify-center items-center mb-40 mt-40">
<h2 class="ld-fh-element inline-block relative mt-10 mb-0 section-heading-sec">
Blog
</h2>
<p class="text-18 text-center">Our blog
features articles written by experts in the field, providing valuable information to help you achieve
your goals.</p>
</p>
</div>
<div class="swiper swiper-events mt-40 mb-20">
<div class="swiper-wrapper">
@foreach ($blogs as $blog)
<a href="{{ route('blog.single', $blog->slug) }}"
class="swiper-slide flex flex-col gap-20 p-10 blog-post">
<div class="w-100percent h-210 overflow-hidden rounded-16">
<img class="w-full h-full object-cover rounded-16" src="{{ asset($blog->image) }}"
alt="">
</div>
<div>
<span class="bg-gray text-sec rounded-30 text-10 py-5 px-10 mt-10">20 min read</span>
<h2 class="text-20 text-ter pt-10">{{ $blog->title }}</h2>
</div>
<div class="flex flex-col gap-10">
<p class="text-14 text-black">{{ $blog->short_description }}</p>
</div>
</a>
@endforeach
</div>
<!-- Pagination -->
<!-- <div class="swiper-pagination"></div> -->
<!-- Navigation Buttons -->
<div class="swiper-button-next"></div>
<div class="swiper-button-prev"></div>
</div>
</div>
@endsection

View File

@@ -1,108 +1,267 @@
@extends('client.raffles.layouts.app')
@section('content')
@include('client.raffles.pages.partials.breadcumb')
<div class="study-destinations-banner">
<img src="{{ asset('raffles/assets/images/backgrounds_general/franchise-banner.png') }}" alt="">
</div>
<!-- Intro Section-->
<section class="p-0 ipad-top-space-margin page-title-big-typography cover-background md-background-position-left-center"
style="background-image: url('{{ asset('raffles/assets/images/demo-elder-care-title-bg.jpg') }}')">
<div class="container">
<div class="down-section text-center"
data-anime="{ &quot;translateY&quot;: [-50, 0], &quot;opacity&quot;: [0,1], &quot;duration&quot;: 600, &quot;delay&quot;: 0, &quot;staggervalue&quot;: 300, &quot;easing&quot;: &quot;easeOutQuad&quot; }">
<a href="#down-section" class="section-link">
<div class="text-dark-gray">
<i class="feather icon-feather-chevron-down icon-very-medium"></i>
</div>
</a>
</div>
</div>
</div>
</section>
<section id="down-section">
<div class="container">
<div class="row">
<div class="col-lg-4 pe-5 order-2 order-lg-1 lg-pe-3 md-pe-15px"
data-anime="{ &quot;el&quot;: &quot;childs&quot;, &quot;translateY&quot;: [50, 0], &quot;opacity&quot;: [0,1], &quot;duration&quot;: 1200, &quot;delay&quot;: 0, &quot;staggervalue&quot;: 150, &quot;easing&quot;: &quot;easeOutQuad&quot; }">
<div class="bg-dark-gray border-radius-6px ps-35px pb-25px pt-25px lg-ps-25px mb-25px">
<div class="feature-box feature-box-left-icon-middle">
<div
class="feature-box-icon feature-box-icon-rounded w-65px h-65px me-20px lg-me-15px rounded-circle bg-base-color rounded-box">
<i class="bi bi-telephone-outbound icon-extra-medium text-white"></i>
</div>
<div class="feature-box-content last-paragraph-no-margin">
<span class="mb-5px d-block text-white opacity-6 fw-300">Connect with us?</span>
<a href="tel:{{ setting('mobile') }}"
class="text-white fs-20 fw-500 lh-22">{{ setting('mobile') }}</a>
</div>
</div>
</div>
<div class="bg-very-light-gray border-radius-6px p-40px lg-p-25px md-p-35px">
<span class="fs-22 alt-font text-dark-gray fw-600 mb-25px d-inline-block">Contact Us?</span>
<div class="contact-form-style-01 mt-0">
<form action="email-templates/contact-form.php" method="post">
<div class="position-relative form-group mb-20px">
<span class="form-icon"><i class="bi bi-emoji-smile"></i></span>
<input type="text" name="name"
class="form-control border-white box-shadow-large required"
placeholder="Your name*" />
</div>
<div class="position-relative form-group mb-20px">
<span class="form-icon"><i class="bi bi-envelope"></i></span>
<input type="email" name="email"
class="form-control border-white box-shadow-large required"
placeholder="Your email address*" />
</div>
<div class="position-relative form-group form-textarea">
<span class="form-icon"><i class="bi bi-chat-square-dots"></i></span>
<textarea placeholder="Your message" name="comment" class="form-control border-white box-shadow-large" rows="3"></textarea>
<input type="hidden" name="redirect" value>
<button
class="btn btn-large btn-round-edge btn-base-color btn-box-shadow mt-20px submit w-100"
type="submit">Send message</button>
<div class="mt-20px form-results d-none"></div>
</div>
</form>
</div>
<div class="pt-40 why-us">
<div class="container-fluid">
<div class="row sm:px-20 pr-30 first-row pt-20 pb-30">
<div class="col col-xl-6">
<div class="franchise-model">
<img src="{{ asset($page->image) }}" alt="">
</div>
</div>
<div class="col-lg-8 order-1 order-lg-2 md-mb-50px"
data-anime="{ &quot;el&quot;: &quot;childs&quot;, &quot;translateY&quot;: [50, 0], &quot;opacity&quot;: [0,1], &quot;duration&quot;: 1200, &quot;delay&quot;: 0, &quot;staggervalue&quot;: 150, &quot;easing&quot;: &quot;easeOutQuad&quot; }">
<h4 class="text-dark-gray fw-700 ls-minus-1px alt-font mb-20px d-block">
{{ $page->short_description }}</h4>
{!! $page->description !!}
<img src="{{ $page->image }}" class="mt-30px md-mt-15px mb-60px md-mb-40px border-radius-6px" alt>
<div class="row row-cols-1 row-cols-md-2 mb-30px md-mb-15px">
@isset($page->custom)
@foreach ($page->custom as $item)
<div class="col">
<span
class="fs-24 alt-font text-dark-gray ls-minus-05px fw-700 mb-10px d-block">{{ $item['key'] }}</span>
<p class="w-90 sm-w-100">{{ $item['value'] }}</p>
</div>
@endforeach
@endisset
<div class="col col-xl-6">
<div class="flex flex-col gap-10 pb-30 border-bottom">
<h2 class="md:text-20 text-50 text-sec">{{ $page->title }}</h2>
<h3 class="md:text-20 text-50 text-brand">Raffles EduCare</h3>
{!! $page->description !!}
</div>
<div class="cover-background p-7 border-radius-6px mb-60px md-mb-40px d-flex justify-content-end align-items-end sm-h-500px"
style="background-image: url('{{ $page->sidebar_image }}')">
<div
class="bg-white box-shadow-quadruple-large border-radius-4px w-50 lg-w-55 sm-w-100 overflow-hidden">
<div class="p-40px lg-p-25px last-paragraph-no-margin">
<span
class="fs-24 alt-font text-dark-gray ls-minus-05px fw-700 mb-10px d-block">{{ $page->sidebar_title }}</span>
<p class="w-95 lg-w-100">{{ $page->sidebar_content }}</p>
</div>
<div class="bg-dark-gray p-15px text-center">
<a href="{{ url('/contact') }}" class="text-white fw-600"><i
class="feather icon-feather-mail me-10px"></i>Connect with Our Team</a>
</div>
</div>
<div class="flex flex-col gap-20 pt-20">
<h5 class="text-20 text-black">Have any questions?
Call/Whatsapp</h5>
<a class="text-26 text-black" href="tel:9801086208">+977 {{ setting('mobile') }}</a>
</div>
</div>
</div>
</div>
</section>
<div class="become-member">
<div class="container">
<div class="row sm:p-20 mt-20 p-60 ">
<div class="col-sm-12">
<div class="flex flex-col gap-20 justify-center text-center">
<h4 class="text-white text-20">Become one of us!</h4>
<h3 class="text-white md:text-24 text-40">Members Benefit</h3>
</div>
</div>
<div class="row py-20">
<div class="col col-sm-6 col-md-4">
<div class="flex gap-20 items-start pt-20">
<h4 class="md:text-30 text-80 text-white font-bold">1</h4>
<h3 class="md:text-20 text-28 text-white font-bold">Brand value Exposure</h3>
</div>
</div>
<div class="col col-sm-6 col-md-4">
<div class="flex gap-10 items-start pt-20">
<h4 class="md:text-30 text-80 text-white font-bold">2</h4>
<h3 class="md:text-20 text-28 text-white font-bold">Leads generation & Referral</h3>
</div>
</div>
<div class="col col-sm-6 col-md-4">
<div class="flex gap-10 items-start pt-20">
<h4 class="md:text-30 text-80 text-white font-bold">3</h4>
<h3 class="md:text-20 text-28 text-white font-bold">Business Expertise support</h3>
</div>
</div>
<div class="col col-sm-6 col-md-4">
<div class="flex gap-10 items-start pt-20">
<h4 class="md:text-30 text-80 text-white font-bold">4</h4>
<h3 class="md:text-20 text-28 text-white font-bold">Be Part of a Global Legacy</h3>
</div>
</div>
<div class="col col-sm-6 col-md-4">
<div class="flex gap-10 items-start pt-20">
<h4 class="md:text-30 text-80 text-white font-bold">5</h4>
<h3 class="md:text-20 text-28 text-white font-bold">Revenue sharing opportunities</h3>
</div>
</div>
<div class="col col-sm-6 col-md-4">
<div class="flex gap-10 items-start pt-20">
<h4 class="md:text-30 text-80 text-white font-bold">6</h4>
<h3 class="md:text-20 text-28 text-white font-bold">Dedicated partnerships Manager</h3>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row sm:p-20 p-60 bg-sec">
<div class="col col-12">
<div class=" py-20 ">
<div class="py-10">
<h3 class="text-white md:text-24 text-44 text-center">Lets discuss
on something <span class="text-brand">cool</span> together</h3>
</div>
<div class="franchise-form bg-white">
<form action="{{ route('franchise.store') }}" method="post" id="franchise-form">
@csrf
<label class="text-16 pb-5" for="">Your Name <span
class="text-brand">(Required)</span></label>
<div class="flex gap-10 ">
<div class="w-full">
<label class="text-14 pb-5" for="">First</label>
<input class="w-full mb-30 rounded-6 py-10 text-14 px-10" type="text"
name="first_name" id="">
</div>
<div class="w-full">
<label class="text-14 pb-5" for="">Last</label>
<input class="w-full mb-30 rounded-6 py-10 text-14 px-10" type="text"
name="last_name" id="">
</div>
</div>
<label class="text-16 pb-5" for="">Your Email Address <span
class="text-brand">(Required)</span></label>
<input class="w-full mb-20 rounded-6 py-10 text-14 px-10" type="email" name="email"
id="">
<label class="text-16 pb-5" for="">Your Phone <span
class="text-brand">(Required)</span></label>
<input class="w-full mb-20 rounded-6 py-10 text-14 px-10" type="text" name="phone"
id="">
<label class="text-16 pb-5" for="">Your Address <span
class="text-brand">(Required)</span></label>
<input class="w-full mb-20 rounded-6 py-10 text-14 px-10" type="text" name="address"
id="">
<div class="flex gap-10 ">
<div class="w-full">
<label class="text-14 pb-5" for="">City</label>
<input class="w-full mb-30 rounded-6 py-10 text-14 px-10" type="text"
name="city" id="">
</div>
<div class="w-full">
<label class="text-14 pb-5" for="">State/Region/Province</label>
<input class="w-full mb-30 rounded-6 py-10 text-14 px-10" type="text"
name="state" id="">
</div>
</div>
<div class="sm:block flex gap-10 ">
<div class="w-full">
<label class="text-14 pb-5" for="">Level to Invest</label>
<select class="w-full py-5" name="invest_level" id="">
<option value="">Less than $20,000</option>
<option value="">Less than $30,000</option>
<option value="">Less than $40,000</option>
<option value="">Less than $50,000</option>
</select>
<!-- <select name="" id="franchise-invest">
<option value="" selected hidden> Less than $10,000</option>
<option value=""></option>
</select> -->
</div>
<div class="w-full">
<label class="text-14 pb-5" for="">Do you currently own a business?
(Yes/No)</label>
<input class="w-full mb-30 rounded-6 py-10 text-14 px-10" type="text"
name="own_business" id="">
</div>
</div>
<label class="text-14 pb-5" for=""> If yes, please describe your current
business</label>
<textarea class="w-full mb-20 rounded-6 py-10 text-14 px-10" name="yes_own_des" id=""></textarea>
<div class="sm:block flex gap-10 ">
<div class="w-full">
<label class="text-14 pb-5" for="">Preferred Franchise Location</label>
<input class="w-full mb-30 rounded-6 py-10 text-14 px-10" type="text"
name="franchise_location" id="">
</div>
<div class="w-full">
<label class="text-14 pb-5" for="">Timeframe to Start</label>
<select class="w-full py-5" name="start_time_frame" id="">
<option value="">within 1 year</option>
<option value="">After 1 year</option>
</select>
<!-- <select name="" id="franchise-timeframe">
<option value="" selected hidden> within 6 months</option>
<option value=""></option>
</select> -->
</div>
</div>
<div class="sm:w-full w-50percent">
<label class="text-14 pb-5" for="">Do u already have an office setup ?</label>
<input class="w-full mb-30 rounded-6 py-10 text-14 px-10" type="text"
name="office_setup" id="">
</div>
<label class="text-14 pb-5" for=""> Please add your bussiness portfolio website ,and
let us know
if you have any questions?</label>
<textarea class="w-full mb-20 rounded-6 py-10 text-14 px-10" name="website" id=""></textarea>
<button type="submit" id="franchise-submit"
class="button-hover px-20 py-10 bg-sec text-white text-16 border-0 franchise-submit">Send
Message</button>
</form>
</div>
<div class="flex justify-center gap-30 pt-30 flex-wrap">
<a class="flex items-center gap-10 border px-10 py-20" href="mailto:info@raffleseducare.com">
<i class="fa-solid fa-envelope text-brand text-18"></i>
<p class="text-white text-18 m-0 p-0">{{ setting('email') }}</p>
</a>
<a class="flex items-center gap-10 border px-10 py-20" href="tel:info@+977-1234567890">
<i class="fa-solid fa-phone text-brand text-18"></i>
<p class="text-white text-18 m-0 p-0">+977-{{ setting('mobile') }}</p>
</a>
<div class="flex items-center gap-10 border px-10 py-20">
<i class="fa-solid fa-location-dot text-brand text-18"></i>
<p class="text-white text-18 m-0 p-0">{{ setting('location') }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,36 @@
@extends('client.raffles.layouts.app')
@section('content')
<div class="services-banner">
<img src="{{ $page->banner }}" width="1425" height="356" alt="Gallery ">
</div>
<section class="section ">
<div class="flex flex-col gap-5 justify-center items-center text-center">
<h2 class="text-60 md:text-30 text-sec">Gallery</h2>
<div class="title-line mx-auto"></div>
</div>
</section>
<section class="pt-40 pb-40 ">
<div class="container">
<div class="gallery" id="gallery">
@foreach ($page->images as $image)
<img src="{{ asset($image) }}" alt="img1">
@endforeach
</div>
</div>
<div class="lightbox" id="lightbox">
<span class="close-btn" onclick="closeLightbox()"></span>
<button class="nav-button prev" onclick="changeSlide(-1)"></button>
<img id="lightbox-img" src="" alt="fullscreen">
<button class="nav-button next" onclick="changeSlide(1)"></button>
</div>
</section>
@endsection

View File

@@ -37,7 +37,7 @@
aria-labelledby="heading-question-1">
@foreach ($countries as $country)
<div class="accordion-content text-16 leading-20 text-black bg-white px-10 flex items-center gap-10"
<div class="accordion-content resource text-16 leading-20 text-black bg-white px-10 flex items-center gap-10 "
onclick="showTab('tab{{ $country->title }}')">
<i class="fa-solid fa-angles-right text-18 text-brand"></i>
<p>{{ $country->title }}</p>
@@ -313,18 +313,19 @@
<h3 class="text-brand text-20">Let's Connect Quick</h3>
<div class="divider"></div>
<form class="pt-20" action="">
<form action="{{ route('enquiry.store') }}" method="post" id="contact-form">
@csrf
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10 border-bottom" type="text"
name="" id="" placeholder="Your Name">
name="name" id="" placeholder="Your Name" required>
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="email" name=""
id="" placeholder="Your Email">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="email" name=""
id="" placeholder="Phone">
<textarea class="w-full mb-40 rounded-6 text-14 px-10" name="" id="" placeholder="Your Message"></textarea>
<button class="px-10 py-10 bg-brand text-white rounded-10 text-16 border-0 button-hover">
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="email" name="email"
id="email" placeholder="Your Email" required>
<input class="w-full mb-30 rounded-6 py-15 text-14 px-10" type="text" name="mobile"
id="mobile" placeholder="Phone" required>
<textarea class="w-full mb-40 rounded-6 text-14 px-10" name="message" id="" placeholder="Your Message"
required></textarea>
<button type="submit" id="submit-btn"
class="px-10 py-10 bg-brand text-white rounded-10 text-16 border-0 button-hover">
<i class="fa-solid fa-paper-plane text-white text-16 pr-5"></i>
Send Message</button>
</form>

View File

@@ -0,0 +1,133 @@
@extends('client.raffles.layouts.app')
@section('content')
<section class="py-40">
<div class="container">
<div class="flex justify-center flex-col text-center items-center w-80percent mx-auto top-20percent ">
<h2 class="md:text-30 text-60 text-sec">SiteMap</h2>
<div class="title-line mx-auto"></div>
</div>
<div class="stats-section">
<div class="stats-grid">
<div class="stat-item">
<div class="stat-number">30+</div>
<div class="stat-label">Total Pages</div>
</div>
<div class="stat-item">
<div class="stat-number">5</div>
<div class="stat-label">Main Categories</div>
</div>
<div class="stat-item">
<div class="stat-number">5</div>
<div class="stat-label">Study Destinations</div>
</div>
<div class="stat-item">
<div class="stat-number">8</div>
<div class="stat-label">Student Services</div>
</div>
</div>
</div>
<div class="sitemap-grid">
<div class="sitemap-category core-pages">
<h2>
<div class="category-icon"><img src="{{ asset('raffles/assets/images/icons/house.svg') }}"
alt=""></div>
Core Pages
</h2>
<ul>
<li><a href="{{ url('/') }}">Home</a></li>
<li><a href="{{ url('/about-us') }}">About Us</a></li>
<li><a href="{{ url('/contact-us') }}">Contact Us</a></li>
<li><a href="{{ url('/sitemap') }}">Sitemap</a></li>
<li><a href="{{ url('/terms') }}">Terms & Conditions</a>
</li>
</ul>
</div>
<div class="sitemap-category study-abroad">
<h2>
<div class="category-icon"><img src="{{ asset('raffles/assets/images/icons/earth.svg') }}"
alt=""></div>
Study Abroad
</h2>
<ul>
<li><a href="{{ url('/destination/uk') }}">Study in UK</a></li>
<li><a href="{{ url('/destination/usa') }}">Study in USA</a></li>
<li><a href="{{ url('/destination/canada') }}">Study in Canada</a></li>
<li><a href="{{ url('/destination/denmark') }}">Study in Denmark</a></li>
<li><a href="{{ url('/destination/australia') }}">Study in Australia</a></li>
</ul>
</div>
<div class="sitemap-category student-support">
<h2>
<div class="category-icon"><img src="{{ asset('raffles/assets/images/icons/cap.svg') }}"
alt=""></div>
Student Support
</h2>
<ul>
<li><a href="{{ url('/service/interview-preparation') }}">Interview Preparation</a>
</li>
<li><a href="{{ url('/service/visa-assistance') }}">Visa Assistance</a></li>
<li><a href="{{ url('/service/financial-guidance') }}">Financial Guidance</a></li>
<li><a href="{{ url('travel-assistance') }}">Travel Assistance</a></li>
<li><a href="{{ url('/course-finder') }}">Course Finder</a></li>
<li><a href="{{ url('/cost-calculator') }}">Cost Calculator</a></li>
<li><a href="{{ url('/resources') }}">Free Resources</a></li>
<li><a href="{{ url('/book-counsellor') }}">Book a Counsellor</a></li>
</ul>
</div>
<div class="sitemap-category more-info">
<h2>
<div class="category-icon"><img src="{{ asset('raffles/assets/images/icons/books.svg') }}"
alt=""></div>
More Information
</h2>
<ul>
<li><a href="{{ url('/blog') }}">Blogs</a></li>
<li><a href="{{ url('/events') }}">Events</a></li>
<li><a href="{{ url('/gallery') }}">Gallery</a></li>
<li><a href="{{ url('/social-platform') }}">Social Platform</a></li>
<li><a href="{{ url('/achievements') }}">Achievements</a></li>
<li><a href="{{ url('/csr') }}">CSR</a></li>
<li><a href="{{ url('/franchise') }}">Franchise</a></li>
</ul>
</div>
<div class="sitemap-category study-abroad">
<h2>
<div class="category-icon"><img src="{{ asset('raffles/assets/images/icons/earth.svg') }}"
alt=""></div>
Test Preparation
</h2>
<ul>
<li><a href="{{ url('test/ielts') }}">IELTS Preparation</a></li>
<li><a href="{{ url('test/pte') }}">PTE Preparation</a></li>
<li><a href="{{ url('test/duolingo') }}">Duolingo Preparation</a></li>
</ul>
</div>
<div class="sitemap-category careers">
<h2>
<div class="category-icon"><img src="{{ asset('raffles/assets/images/icons/case.svg') }}"
alt=""></div>
Careers
</h2>
<ul>
<li><a href="{{ url('/career') }}">Career Opportunities</a></li>
<li><a href="https://www.raffleseducare.my-urls.com/career-detail">Career Details</a></li>
</ul>
</div>
</div>
</div>
</section>
@endsection

View File

@@ -0,0 +1,428 @@
@extends('client.raffles.layouts.app')
@section('content')
<section class="">
<div class="services-banner">
<img src="{{ asset('raffles/assets/images/backgrounds_general/social-banner.png') }}" width="1425" height="356"
alt="Social Platform">
</div>
<section class="lqd-section about social-platform pt- pb-40">
<div class="container">
<!-- <div class="section-break mt-0"></div> -->
<h2 class="text-36 md:text-24 text-brand text-center pt-40">Lets Connect</h2>
<div class="section-break "></div>
<div class="social-facebook pb-30">
<h3 class="text-sec2 text-46 md:text-24 pb-30 text-center">Facebook </h3>
<div class="row">
<div class="col col-12 p-0">
<div class="w-full flex flex-wrap justify-center module-icon-box">
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('facebook') }}">
<div class="lqd-iconbox-scale transition-all mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-blue-100 text-30">
<i class="fa-brands fa-facebook text-sec"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles<br />Educare
</h3>
</div>
</div>
</a>
</div>
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('facebook') }}">
<div class="lqd-iconbox-scale transition-all mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-blue-100 text-30">
<i class="fa-brands fa-facebook text-sec"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles Study in<br />UK
</h3>
</div>
</div>
</a>
</div>
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('facebook') }}">
<div class="lqd-iconbox-scale transition-all mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-blue-100 text-30">
<i class="fa-brands fa-facebook text-sec"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles Study in<br />USA
</h3>
</div>
</div>
</a>
</div>
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('facebook') }}">
<div class="lqd-iconbox-scale transition-all mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-blue-100 text-30">
<i class="fa-brands fa-facebook text-sec"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles Learning<br />Center
</h3>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="social-instagram pb-30">
<h3 class="text-sec2 text-46 md:text-24 pb-30 text-center">Instagram </h3>
<div class="row">
<div class="col col-12 p-0">
<div class="w-full flex flex-wrap justify-center module-icon-box">
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('instagram') }}">
<div class="lqd-iconbox-scale transition-all pr-60 mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-red-100 text-50">
<i class="fa-brands fa-instagram text-brand"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles<br />Educare
</h3>
</div>
</div>
</a>
</div>
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('instagram') }}">
<div class="lqd-iconbox-scale transition-all pr-60 mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-red-100 text-50">
<i class="fa-brands fa-instagram text-brand"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles Educare<br /> USA
</h3>
</div>
</div>
</a>
</div>
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('instagram') }}">
<div class="lqd-iconbox-scale transition-all pr-60 mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-red-100 text-50">
<i class="fa-brands fa-instagram text-brand"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles Learning<br />Center
</h3>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="social-tiktok pb-30">
<h3 class="text-sec2 text-46 md:text-24 pb-30 text-center">Tiktok & Google </h3>
<div class="row">
<div class="col col-12 p-0">
<div class="w-full flex flex-wrap justify-center module-icon-box">
<div class="w-25percent sm:w-50percent ">
<a href="{{ setting('tiktok') }}">
<div
class="flex justify-center items-center text-center lqd-iconbox-scale transition-all pl-60 mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col justify-center iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-gray-100 text-30">
<i class="fa-brands fa-tiktok text-black"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles<br />Educare
</h3>
</div>
</div>
</a>
</div>
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('tiktok') }}">
<div class="lqd-iconbox-scale transition-all pl-60 mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-gray-100 text-30">
<i class="fa-brands fa-tiktok text-black"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles Study<br />Abroad
</h3>
</div>
</div>
</a>
</div>
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('google') }}">
<div class="lqd-iconbox-scale transition-all pr-60 mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-green-100 text-30">
<i class="fa-brands fa-google"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles<br />Educare
</h3>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="mad:block flex flex-wrap justify-center gap-90 items-center">
<div class="social-pinterest pb-30">
<h3 class="text-sec2 text-46 md:text-24 pb-30 text-center">Pinterest </h3>
<div class="row">
<div class="col col-12 p-0">
<div class="w-full flex flex-wrap justify-center module-icon-box">
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('pinterest') }}">
<div
class="lqd-iconbox-scale transition-all pr-60 mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-red-100 text-50">
<i class="fa-brands fa-pinterest text-brand"></i>
</div>
</div>
<h3
class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles<br />Educare
</h3>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="social-linkedin pb-30">
<h3 class="text-sec2 text-46 md:text-24 pb-30 text-center">Linkedin </h3>
<div class="row">
<div class="col col-12 p-0">
<div class="w-full flex flex-wrap justify-center module-icon-box">
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('linkedin') }}">
<div class="lqd-iconbox-scale transition-all mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-blue-100 text-30">
<i class="fa-brands fa-linkedin text-sec"></i>
</div>
</div>
<h3
class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles<br />Educare
</h3>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="social-youtube pb-30">
<h3 class="text-sec2 text-46 md:text-24 pb-30 text-center">Youtube </h3>
<div class="row">
<div class="col col-12 p-0">
<div class="w-full flex flex-wrap justify-center module-icon-box">
<div class="w-25percent sm:w-50percent">
<a href="{{ setting('youtube') }}">
<div
class="lqd-iconbox-scale transition-all pr-60 mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-red-100 text-50">
<i class="fa-brands fa-youtube text-brand"></i>
</div>
</div>
<h3
class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles<br />Educare
</h3>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="social-google pb-30">
<h3 class="text-sec2 text-46 md:text-24 pb-30 text-center">Google Business </h3>
<div class="row">
<div class="col col-12 p-0">
<div class="w-full flex flex-wrap justify-center module-icon-box">
<div class="w-25percent sm:w-50percent">
<div class="lqd-iconbox-scale transition-all pr-60 mb-30 sm:mb-0 hover:scale-1/1">
<div
class="iconbox flex items-center flex-grow-1 relative flex-col iconbox-default iconbox-circle">
<div class="iconbox-icon-wrap">
<div
class="iconbox-icon-container inline-flex relative z-1 rounded-full mb-20 w-75 h-75 bg-green-100 text-30">
<i class="fa-brands fa-google"></i>
</div>
</div>
<h3 class="lqd-iconbox-heading text-16 font-bold text-center leading-1em">
Raffles<br />Educare
</h3>
</div>
</div>
</div>
</div>
</div>
</div>
</div> -->
</div>
</div>
</section>
@endsection

View File

@@ -1,8 +1,7 @@
@extends('client.raffles.layouts.app')
@section('content')
@php
$firstAcc = $page->children[0];
@endphp
<div class="study-destinations-banner">
<img src="{{ asset($page->banner) }}" width="1425" height="356" alt="study uk">
</div>
@@ -12,7 +11,8 @@
<h2 class="md:text-30 text-60 text-sec">Study in {{ $page->title }}</h2>
<div class="title-line mx-auto"></div>
</div>
@if ($page->children->count() > 0)
@if ($page->children)
<section class="free-resources-content tab-container">
<div class="row">
<div class="col col-md-3">
@@ -21,11 +21,21 @@
<li class="px-20 tab-btn cursor-pointer fade {{ $loop->first ? 'show active' : '' }} "
role="tabpanel" onclick="showTab('tabs_{{ $index + 1 }}')">
<div class="text-17 font-bold flex gap-10 items-center">
<img class="w-40" src="assets/images/icons/one.svg" alt="">
<p class="numbering">{{ $index + 1 }}</p>
{{-- <img class="w-40" src="assets/images/icons/one.svg" alt=""> --}}
<h5 class="text-16 p-0 m-0">{{ $child->title }}</h5>
</div>
</li>
@endforeach
<a href="{{ route('resources') }}">
<li class="px-20 tab-btn cursor-pointer fade " role="tabpanel" onclick="showTab('tabs_7')">
<div class="text-17 font-bold flex gap-10 items-center">
<img class="w-40" src="{{ asset('raffles/assets/images/icons/question.png') }}"
alt="">
<h5 class="text-16 p-0 m-0">Free Resources </h5>
</div>
</li>
</a>
</ul>
</div>
@@ -46,7 +56,7 @@
<img class="w-full h-full rounded-10"
src="{{ asset($child->image) }}" alt="">
</div>
<div class="lqd-particles-bg-wrap lqd-overlay flex pointer-events-none">
{{-- <div class="lqd-particles-bg-wrap lqd-overlay flex pointer-events-none">
<div
class="ld-particles-container relative w-full lqd-particles-as-bg lqd-overlay flex h-450">
<div class="ld-particles-inner lqd-overlay flex pointer-events-none"
@@ -54,105 +64,124 @@
data-particles-options='{"particles":{"number":{"value":4} , "color":{"value": "random"} , "shape":{"type":["circle"]} , "opacity":{"value":1} , "size":{"value":4} , "move":{"enable": true, "direction": "none", "out_mode": "out"}} , "interactivity":[], "retina_detect": true}'>
</div>
</div>
</div>
</div> --}}
</div>
</div>
@php
$accordionId = "accordion-questions-{$index}";
@endphp
<div class="py-40">
<h3 class="text-20 text-brand">
Why Study in UK
Frequently Asked Questions
</h3>
<div class="accordion accordion-title-underlined accordion-sm pt-20"
id="accordion-questions" role="tablist" aria-multiselectable="true">
@foreach ($page->custom as $key => $value)
<div class="accordion accordion-title-underlined accordion-sm pt-20"
id="{{ $accordionId }}" role="tablist" aria-multiselectable="true">
@foreach ($child->custom as $key => $item)
@php
$headingId = "heading-{$index}-{$key}";
$collapseId = "collapse-{$index}-{$key}";
@endphp
<div class="accordion-item panel mb-10">
<div class="accordion-heading" role="tab"
id="heading-question-{{ $key + 1 }}">
id="{{ $headingId }}">
<h4 class="accordion-title">
<a class="collapsed text-17 font-bold" role="button"
data-bs-toggle="collapse"
data-bs-parent="#accordion-questions"
href="index.php#collapse-question-item-{{ $key + 1 }}"
aria-expanded="false"
aria-controls="collapse-question-item-{{ $key + 1 }}">
<span
class="accordion-expander text-16 text-black"><i
href="#{{ $collapseId }}"
aria-expanded="{{ $loop->first ? 'true' : 'false' }}"
aria-controls="{{ $collapseId }}">
<span class="accordion-expander text-16 text-black">
<i
class="lqd-icn-ess icon-ion-ios-arrow-forward"></i>
<i
class="lqd-icn-ess icon-ion-ios-arrow-forward"></i></span><span
class="accordion-title-txt">{{ $value['icon'] ?? '' }}</span>
class="lqd-icn-ess icon-ion-ios-arrow-forward"></i>
</span>
<span
class="accordion-title-txt">{{ $item['icon'] ?? '' }}</span>
</a>
</h4>
</div>
<div id="collapse-question-item-{{ $key + 1 }}"
class="accordion-collapse collapse"
data-bs-parent="#accordion-questions" role="tabpanel"
aria-labelledby="heading-question-{{ $key + 1 }}">
<div id="{{ $collapseId }}"
class="accordion-collapse collapse {{ $loop->first ? 'show' : '' }}"
data-bs-parent="#{{ $accordionId }}" role="tabpanel"
aria-labelledby="{{ $headingId }}">
<div
class="accordion-content text-14 leading-20 text-black">
<p>{{ $value['key'] ?? '' }}</p>
<p>{{ $item['key'] ?? '' }}</p>
</div>
</div>
</div>
@endforeach
</div>
</div>
<!-- blog -->
<div class="lqd-section blog pt-20" id="blog" data-custom-animations="true"
data-ca-options='{"animationTarget": ".btn, .animation-element", "ease": "power4.out", "initValues":{"x": "-10px", "y": "10px", "opacity":0} , "animations":{"x": "0px", "y": "0px", "opacity":1}}'>
<div class="container">
<div class="row">
<div class="col col-12">
<div class="w-full flex mb-20 justify-start">
<div class="btn btn-solid bg-sec text-white rounded-20 text-15 module-btn-xs"
data-localscroll="true"><span class="btn-txt"
data-text="Office Blog">Office Blog</span></div>
</div>
@if ($page->custom)
<!-- blog -->
<div class="lqd-section blog pt-20" id="blog"
data-custom-animations="true"
data-ca-options='{"animationTarget": ".btn, .animation-element", "ease": "power4.out", "initValues":{"x": "-10px", "y": "10px", "opacity":0} , "animations":{"x": "0px", "y": "0px", "opacity":1}}'>
<div class="container">
<div class="row">
<div class="col col-12">
<div class="w-full flex mb-20 justify-start">
<div class="btn btn-solid bg-sec text-white rounded-20 text-15 module-btn-xs"
data-localscroll="true"><span class="btn-txt"
data-text="Office Blog">Blogs</span></div>
</div>
<div class="flex flex-wrap -mr-15 -ml-15 animation-element">
@foreach ($child->custom as $index => $item)
<div
class="module-blog w-50percent sm:w-full px-15 mb-0">
<article
class="lqd-lp relative lqd-lp-style-9 flex flex-wrap text-start format-standard has-post-thumbnail hentry category-blog-single">
<div class="lqd-lp-img w-full">
<figure
class="relative overflow-hidden rounded-8">
<img width="370" height="470"
src="{{ asset('raffles/assets/images/demo/start-hub-1/blog-1.png') }}"
alt="blog" />
<div
class="lqd-overlay flex items-center justify-center">
<i
class="lqd-icn-ess icon-md-arrow-forward"></i>
<div class="flex flex-wrap -mr-15 -ml-15 animation-element">
@foreach (collect($page->custom)->take(2) as $index => $item)
<div
class="module-blog w-50percent sm:w-full px-15 mb-0">
<article
class="lqd-lp relative lqd-lp-style-9 flex flex-wrap text-start format-standard has-post-thumbnail hentry category-blog-single">
<div class="lqd-lp-img w-full">
<figure
class="relative overflow-hidden rounded-8">
<img width="370" height="470"
src="{{ asset('raffles/assets/images/demo/start-hub-1/blog-1.png') }}"
alt="blog" />
<div
class="lqd-overlay flex items-center justify-center">
<i
class="lqd-icn-ess icon-md-arrow-forward"></i>
</div>
</figure>
</div>
<div class="lqd-lp-contents w-full">
<div class="lqd-lp-header">
<h2
class="entry-title lqd-lp-title mt-0/75em mb-0/85em text-20 font-bold leading-25 font-title text-slate-700">
{{ $item['icon'] ?? '' }}
</h2>
</div>
<div class="lqd-lp-excerpt">
<p>
{{ \Illuminate\Support\Str::limit($item['key'] ?? '', 50) }}
</p>
</div>
</figure>
</div>
<div class="lqd-lp-contents w-full">
<div class="lqd-lp-header">
<h2
class="entry-title lqd-lp-title mt-0/75em mb-0/85em text-20 font-bold leading-25 font-title text-slate-700">
{{ $item['key'] ?? '' }}
</h2>
</div>
<div class="lqd-lp-excerpt">
<p>
{{ $item['value'] ?? '' }}
</p>
</div>
</div>
</article>
</div>
@endforeach
</article>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
@endif
<div class="py-40">
{!! $child->faqs ?? '' !!}
</div>
</div>
</div>
</div>
@@ -162,5 +191,6 @@
</div>
</section>
@endif
@include('client.raffles.pages.call-request')
</section>
@endsection

View File

@@ -0,0 +1,31 @@
@extends('client.raffles.layouts.app')
@section('content')
<section class="career">
<div class="p-20 ">
<div class="h-175 rounded-10 bg-after relative">
<img class="h-full w-full rounded-30 object-cover" src="{{ asset($page->banner) }}" alt="">
</div>
</div>
<section class="section ">
<div class="flex flex-col gap-5 justify-center items-center text-center">
<h2 class="text-60 md:text-30 text-sec">Terms and Conditions</h2>
<div class="title-line mx-auto"></div>
</div>
</section>
<section class="lqd-section pt-40 pb-30">
<div class="container">
{!! $page->description !!}
</section>
@endsection

View File

@@ -1,18 +1,33 @@
@extends('client.raffles.layouts.app')
@section('content')
@php
$firstAcc = $page->children[0];
@endphp
<div class="study-destinations-banner">
<img src="{{ $page->banner }}" width="1425" height="356" alt="study uk">
<img src="{{ asset($page->banner) }}" width="1425" height="356" alt="study uk">
</div>
<section class="container py-30 free-resources">
<div class="flex justify-center flex-col text-center items-center w-80percent mx-auto top-20percent ">
<h2 class="md:text-30 text-60 text-sec">{{ $page->title }}</h2>
<div class="title-line mx-auto"></div>
<div class="row">
<div class="col col-md-3"></div>
<div class="col col-md-9">
<div class="flex justify-between items-center ">
<div>
<h2 class="md:text-30 text-60 text-sec"> {{ $page->title }}</h2>
<div class="title-line "></div>
</div>
<button class="review-button">
<p>Review</p>
</button>
</div>
</div>
</div>
@if ($page->children->count() > 0)
@if ($page->children)
<section class="free-resources-content tab-container">
<div class="row">
<div class="col col-md-3">
@@ -21,11 +36,20 @@
<li class="px-20 tab-btn cursor-pointer fade {{ $loop->first ? 'show active' : '' }} "
role="tabpanel" onclick="showTab('tabs_{{ $index + 1 }}')">
<div class="text-17 font-bold flex gap-10 items-center">
<img class="w-40" src="assets/images/icons/one.svg" alt="">
<p class="numbering">{{ $index + 1 }}</p>
{{-- <img class="w-40" src="assets/images/icons/one.svg" alt=""> --}}
<h5 class="text-16 p-0 m-0">{{ $child->title }}</h5>
</div>
</li>
@endforeach
<a href="{{ route('resources') }}">
<li class="px-20 tab-btn cursor-pointer fade " role="tabpanel" onclick="showTab('tabs_7')">
<div class="text-17 font-bold flex gap-10 items-center">
<img class="w-40" src="assets/images/icons/question.png" alt="">
<h5 class="text-16 p-0 m-0">Free Resources </h5>
</div>
</li>
</a>
</ul>
</div>
@@ -44,7 +68,7 @@
<div class="col col-md-6" data-float="ease-in-out">
<div class="">
<img class="w-full h-full rounded-10"
src="{{ $child->image }}" alt="">
src="{{ asset($child->image) }}" alt="">
</div>
<div class="lqd-particles-bg-wrap lqd-overlay flex pointer-events-none">
<div
@@ -60,49 +84,61 @@
@php
$accordionId = "accordion-questions-{$index}";
@endphp
<div class="py-40">
<h3 class="text-20 text-brand">
Why {{ $page->title }}?
Frequently Asked Questions
</h3>
<div class="accordion accordion-title-underlined accordion-sm pt-20"
id="accordion-questions" role="tablist" aria-multiselectable="true">
@foreach ($page->custom as $key => $value)
<div class="accordion accordion-title-underlined accordion-sm pt-20"
id="{{ $accordionId }}" role="tablist" aria-multiselectable="true">
@foreach ($child->custom as $key => $item)
@php
$headingId = "heading-{$index}-{$key}";
$collapseId = "collapse-{$index}-{$key}";
@endphp
<div class="accordion-item panel mb-10">
<div class="accordion-heading" role="tab"
id="heading-question-{{ $key + 1 }}">
id="{{ $headingId }}">
<h4 class="accordion-title">
<a class="collapsed text-17 font-bold" role="button"
data-bs-toggle="collapse"
data-bs-parent="#accordion-questions"
href="index.php#collapse-question-item-{{ $key + 1 }}"
aria-expanded="false"
aria-controls="collapse-question-item-{{ $key + 1 }}">
<span
class="accordion-expander text-16 text-black"><i
href="#{{ $collapseId }}"
aria-expanded="{{ $loop->first ? 'true' : 'false' }}"
aria-controls="{{ $collapseId }}">
<span class="accordion-expander text-16 text-black">
<i
class="lqd-icn-ess icon-ion-ios-arrow-forward"></i>
<i
class="lqd-icn-ess icon-ion-ios-arrow-forward"></i></span><span
class="accordion-title-txt">{{ $value['icon'] ?? '' }}</span>
class="lqd-icn-ess icon-ion-ios-arrow-forward"></i>
</span>
<span
class="accordion-title-txt">{{ $item['icon'] ?? '' }}</span>
</a>
</h4>
</div>
<div id="collapse-question-item-{{ $key + 1 }}"
class="accordion-collapse collapse"
data-bs-parent="#accordion-questions" role="tabpanel"
aria-labelledby="heading-question-{{ $key + 1 }}">
<div id="{{ $collapseId }}"
class="accordion-collapse collapse {{ $loop->first ? 'show' : '' }}"
data-bs-parent="#{{ $accordionId }}" role="tabpanel"
aria-labelledby="{{ $headingId }}">
<div
class="accordion-content text-14 leading-20 text-black">
<p>{{ $value['key'] ?? '' }}</p>
<p>{{ $item['key'] ?? '' }}</p>
</div>
</div>
</div>
@endforeach
</div>
</div>
<!-- blog -->
<div class="lqd-section blog pt-20" id="blog" data-custom-animations="true"
{{-- <div class="lqd-section blog pt-20" id="blog" data-custom-animations="true"
data-ca-options='{"animationTarget": ".btn, .animation-element", "ease": "power4.out", "initValues":{"x": "-10px", "y": "10px", "opacity":0} , "animations":{"x": "0px", "y": "0px", "opacity":1}}'>
<div class="container">
<div class="row">
@@ -152,7 +188,7 @@
</div>
</div>
</div>
</div>
</div> --}}
</div>
</div>
</div>
@@ -162,5 +198,6 @@
</div>
</section>
@endif
@include('client.raffles.pages.call-request')
</section>
@endsection

View File

@@ -5,7 +5,7 @@
$last_word = array_pop($words);
$new_title = implode(' ', $words);
@endphp
<div class="container py- scroll-section" id="achievement" data-name="Achievement">
<div class="container py- scroll-section" id="Achievement" data-name="Achievement">
<div class="w-full block section">
<div class="w-500 sm:w-full flex flex-col mx-auto text-center p-10">
<div class="ld-fancy-heading relative mb-20 animation-element">

View File

@@ -1,5 +1,5 @@
<div id="lqd-contents-wrap">
<section class="lqd-section banner pt-140 pb-80 scroll-section" id="banner" data-name="Banner">
<section class="lqd-section banner pt-140 pb-80 scroll-section" id="Banner" data-name="Banner">
<div class="lqd-particles-bg-wrap lqd-overlay flex pointer-events-none">
<div class="ld-particles-container relative w-full lqd-particles-as-bg lqd-overlay flex h-450">
<div class="ld-particles-inner lqd-overlay flex pointer-events-none" id="lqd-particle-banner"
@@ -53,92 +53,91 @@
<div class="w-full flex flex-wrap flex-xl-nowrap">
<div class="w-100percent lg:w-full flex animation-element">
<a href="study-usa.php"
<a href="{{ $slider->button_url }}"
class="btn btn-solid btn-hover-txt-marquee btn-hover-txt-marquee-y btn-icon-right lg:text-12 text-18 font-light rounded-20 leading-5 bg-brand module-btn-sm">
<span class="btn-txt " data-text="Find my dream university"
data-split-text="true"
data-split-options='{"type": "chars, words"}'>Find my dream
university</span>
data-split-options='{"type": "chars, words"}'>{{ $slider->button_text }}</span>
<span class="btn-icon mt-3"><i
class="fa-solid fa-arrow-right text-11 bg-white rounded-full text-brand banner-arrow"></i></span></a>
</div>
</div>
<section class="lqd-section social-media pt-40 w-85percent">
<div class="">
<div class="row py-25 px-5 rounded-20 bg-yellow">
<div class="col col-6 col-md-3 text-center p-0">
<div
class=" iconbox flex flex-grow-1 relative flex-col iconbox-default border-right border-white">
<div>
<section class="lqd-section social-media pt-40 w-85percent">
<div class="">
<div class="row py-25 px-5 rounded-20 bg-yellow">
<div class="col col-6 col-md-3 text-center p-0">
<div
class=" iconbox flex flex-grow-1 relative flex-col iconbox-default border-right border-white">
<div>
<h3 class=" text-ter text-22 font-light m-0"><span
class="counter" data-target="4">0</span> k</h3>
</div>
<div class="contents">
<h3
class="font-title text-11 font-light leading-20 m-0 text-gray-700 lqd-iconbox-heading text-ter">
Universities
</h3>
</div>
<h3 class=" text-ter text-22 font-light m-0"><span
class="counter" data-target="100">0</span> +</h3>
</div>
<div class="contents">
<h3
class="font-title text-11 font-light leading-20 m-0 text-gray-700 lqd-iconbox-heading text-ter">
Universities
</h3>
</div>
</div>
<div class="col col-6 col-md-3 text-center p-0 ">
<div
class="iconbox flex flex-grow-1 relative flex-col iconbox-default border-right border-white">
<div>
<h3 class=" text-ter text-22 font-light m-0"><span
class="counter" data-target="3">0</span> k</h3>
</div>
<div class="contents">
<h3
class="font-title text-11 font-light leading-20 m-0 text-gray-700 lqd-iconbox-heading text-ter">
mentors
</h3>
</div>
</div>
<div class="col col-6 col-md-3 text-center p-0 ">
<div
class="iconbox flex flex-grow-1 relative flex-col iconbox-default border-right border-white">
<div>
<h3 class=" text-ter text-22 font-light m-0"><span
class="counter" data-target="500">0</span> +</h3>
</div>
<div class="contents">
<h3
class="font-title text-11 font-light leading-20 m-0 text-gray-700 lqd-iconbox-heading text-ter">
Courses
</h3>
</div>
</div>
<div class="col col-6 col-md-3 text-center p-0">
<div
class="iconbox flex flex-grow-1 relative flex-col iconbox-default border-right border-white">
<div>
<h3 class=" text-ter text-22 font-light m-0"><span
class="counter" data-target="40">0</span> </h3>
</div>
<div class="contents">
<h3
class="font-title text-11 font-light leading-20 m-0 text-gray-700 lqd-iconbox-heading text-ter">
countries
</h3>
</div>
</div>
<div class="col col-6 col-md-3 text-center p-0">
<div
class="iconbox flex flex-grow-1 relative flex-col iconbox-default border-right border-white">
<div>
<h3 class=" text-ter text-22 font-light m-0"><span
class="counter" data-target="600">0</span> +</h3>
</div>
<div class="contents">
<h3
class="font-title text-11 font-light leading-20 m-0 text-gray-700 lqd-iconbox-heading text-ter">
Accomodation
</h3>
</div>
</div>
<div class="col col-6 col-md-3 text-center p-0">
<div
class=" iconbox flex flex-grow-1 relative flex-col iconbox-default ">
<div>
<h3 class=" text-ter text-22 font-light m-0"><span
class="counter" data-target="90">0</span> k</h3>
</div>
<div class="contents">
<h3
class="font-title text-11 font-light leading-20 m-0 text-gray-700 lqd-iconbox-heading text-ter">
success stories
</h3>
</div>
</div>
<div class="col col-6 col-md-3 text-center p-0">
<div
class=" iconbox flex flex-grow-1 relative flex-col iconbox-default ">
<div>
<h3 class=" text-ter text-22 font-light m-0"><span
class="counter" data-target="3000">0</span> +</h3>
</div>
<div class="contents">
<h3
class="font-title text-11 font-light leading-20 m-0 text-gray-700 lqd-iconbox-heading text-ter">
Success stories
</h3>
</div>
</div>
</div>
</div>
</section>
</div>
</section>
</div>
</div>
<div class="col col-12 col-md-5 col-xl-6">

Some files were not shown because too many files have changed in this diff Show More