Compare commits

..

6 Commits
master ... et#3

  1. 36
      app/Console/Commands/CheckQueue.php
  2. 33
      app/Console/Commands/ProcessQueue.php
  3. 2
      app/Console/Kernel.php
  4. 15
      app/Http/Controllers/AboutUsController.php
  5. 46
      app/Http/Controllers/Admin/AboutUsController.php
  6. 278
      app/Http/Controllers/Admin/AccomodationController.php
  7. 155
      app/Http/Controllers/Admin/AppointmentController.php
  8. 11
      app/Http/Controllers/Admin/HomeController.php
  9. 26
      app/Http/Controllers/Admin/ImageUploadController.php
  10. 4
      app/Http/Controllers/Admin/NewsAndUpdateController.php
  11. 61
      app/Http/Controllers/Admin/PartnerController.php
  12. 2
      app/Http/Controllers/Admin/ServiceController.php
  13. 31
      app/Http/Controllers/Admin/ServiceFaqController.php
  14. 72
      app/Http/Controllers/Admin/ServiceSectionController.php
  15. 2
      app/Http/Controllers/Admin/TestimonialController.php
  16. 2
      app/Http/Controllers/Admin/VisaServiceController.php
  17. 116
      app/Http/Controllers/Admin/VisaServiceSectionController.php
  18. 145
      app/Http/Controllers/AppointmentController.php
  19. 21
      app/Http/Controllers/BlogController.php
  20. 64
      app/Http/Controllers/ContactController.php
  21. 76
      app/Http/Controllers/EnquiryController.php
  22. 16
      app/Http/Controllers/FaqController.php
  23. 47
      app/Http/Controllers/HomeController.php
  24. 26
      app/Http/Controllers/ImageUploadController.php
  25. 21
      app/Http/Controllers/StudyAbroadController.php
  26. 25
      app/Http/Controllers/VisaController.php
  27. 41
      app/Jobs/SendEnquiryMailJob.php
  28. 65
      app/Mail/EnquiryMail.php
  29. 3
      app/Models/AboutUs.php
  30. 3
      app/Models/AboutUsPoint.php
  31. 17
      app/Models/Appointment.php
  32. 15
      app/Models/AppointmentBookingDetail.php
  33. 4
      app/Models/Contact.php
  34. 11
      app/Models/Country.php
  35. 13
      app/Models/Enquiry.php
  36. 12
      app/Models/Faq.php
  37. 2
      app/Models/NewsAndUpdate.php
  38. 2
      app/Models/Partner.php
  39. 1
      composer.json
  40. 50
      composer.lock
  41. 2
      config/app.php
  42. 6
      config/custom.php
  43. 4
      config/database.php
  44. 2
      database/migrations/2022_07_06_091450_create_services_table.php
  45. 2
      database/migrations/2022_12_12_093112_create_visa_services_table.php
  46. 13
      database/migrations/2022_12_13_035944_create_visa_service_sections_table.php
  47. 1
      database/migrations/2022_12_13_043238_create_visa_service_section_points_table.php
  48. 32
      database/migrations/2023_01_27_102353_add_nationality_to_contacts_table.php
  49. 32
      database/migrations/2023_01_28_112013_add_bottom_description_to_about_us_table.php
  50. 37
      database/migrations/2023_01_30_094030_create_pages_table.php
  51. 36
      database/migrations/2023_02_01_060849_create_faqs_table.php
  52. 37
      database/migrations/2023_02_06_080253_create_appointments_table.php
  53. 32
      database/migrations/2023_02_07_044441_add_service_type_id_to_appointments_table.php
  54. 32
      database/migrations/2023_02_08_105304_add_is_booked_to_appointments_table.php
  55. 37
      database/migrations/2023_02_08_105817_create_appointment_booking_details_table.php
  56. 59
      database/migrations/2023_02_16_171148_create_enquiries_table.php
  57. 49
      database/seeders/AppointmentTableSeeder.php
  58. BIN
      public/265f9b86f1f2173dfba9df0c640c375f.png
  59. BIN
      public/30a732a08c6dc9216fff30a50d88ced1.jpg
  60. BIN
      public/32bdf53ff6fb74f9f0281dca72148679.png
  61. BIN
      public/444e7c4daeb60e097b604ecd0b82e72e.png
  62. BIN
      public/617de07568e91a7e61ab6cbe607aa8cf.png
  63. BIN
      public/6258765774afe8ab2415e5132328ceb8.png
  64. BIN
      public/66585abb06791217e1b88ae85417004b.png
  65. BIN
      public/a3b1cd88df18c6961bedd6566eeb3b2e.png
  66. 50
      public/admin/css/custom-admin.css
  67. BIN
      public/cd3ab551b8ba7b6b297a2aa9b7535059.png
  68. BIN
      public/e4b194be57f9f8535ef5e9458c78224b.jpg
  69. BIN
      public/f7f3ee09c49b9166801b81a4c76b0160.png
  70. BIN
      public/fac5889d788c0726512ab7c5cdbd646b.png
  71. BIN
      public/frontend/.DS_Store
  72. 1827
      public/frontend/css/style.css
  73. BIN
      public/frontend/icons/Icons/24-houes.png
  74. BIN
      public/frontend/icons/Icons/Institutions.png
  75. BIN
      public/frontend/icons/Icons/rating.png
  76. BIN
      public/frontend/icons/Icons/teams.png
  77. BIN
      public/frontend/icons/account-student.png
  78. BIN
      public/frontend/icons/business-visa.png
  79. BIN
      public/frontend/icons/career-counselling.png
  80. BIN
      public/frontend/icons/close.png
  81. 17
      public/frontend/icons/coin.svg
  82. BIN
      public/frontend/icons/email.png
  83. 3
      public/frontend/icons/email.svg
  84. 5
      public/frontend/icons/exclusive.svg
  85. BIN
      public/frontend/icons/hamburger.png
  86. BIN
      public/frontend/icons/jrp.png
  87. BIN
      public/frontend/icons/menu.png
  88. BIN
      public/frontend/icons/noto_graduation-cap.png
  89. 12
      public/frontend/icons/noto_graduation-cap.svg
  90. BIN
      public/frontend/icons/phone.png
  91. BIN
      public/frontend/icons/student-visa-icon.png
  92. BIN
      public/frontend/images/about/Commitment.jpg
  93. BIN
      public/frontend/images/about/Integrity.jpg
  94. BIN
      public/frontend/images/about/professionlaiosn-1.jpg
  95. BIN
      public/frontend/images/about/professionlaiosn.jpg
  96. BIN
      public/frontend/images/about/realiability.jpg
  97. BIN
      public/frontend/images/about/tranprancy.jpg
  98. BIN
      public/frontend/images/about/trusthworthy.jpg
  99. BIN
      public/frontend/images/attractive-man.png
  100. BIN
      public/frontend/images/blank.png
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,36 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Queue;
class CheckQueue extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'queue:check';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Check if there is a job in the queue';
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$count = Queue::size(); // Get the number of jobs in the queue
if ($count > 0) {
$this->call('queue:process'); // Call the ProcessQueue command if there is a job in the queue
}
}
}

@ -1,33 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Queue;
class ProcessQueue extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'queue:process';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Process the tasks in the queue';
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
Queue::daemon(); // Process the tasks in the queue
}
}

@ -15,7 +15,7 @@ class Kernel extends ConsoleKernel
*/ */
protected function schedule(Schedule $schedule) protected function schedule(Schedule $schedule)
{ {
$schedule->command('queue:check')->everyMinute(); // $schedule->command('inspire')->hourly();
} }
/** /**

@ -1,15 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\AboutUs;
class AboutUsController extends Controller
{
public function index()
{
$about = AboutUs::where('status', true)->first();
return view('about', compact('about'));
}
}

@ -54,22 +54,19 @@ class AboutUsController extends Controller
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$this->validate(\request(),[ $this->validate(\request(),[
'description' => 'required', 'description' => 'required',
'sub_description' => 'required', 'sub_description' => 'required',
'bottom_description' => 'required', 'image' => 'required|file|mimes:jpeg,png,jpg',
// 'image' => 'required|file|mimes:jpeg,png,jpg', 'keyword' => 'required'
// 'keyword' => 'required'
]); ]);
$setting = new AboutUs(); $setting = new AboutUs();
$setting->description = (\request('description')); $setting->description = strip_tags(\request('description'));
$setting->sub_description = (\request('sub_description')); $setting->sub_description = strip_tags(\request('sub_description'));
$setting->bottom_description = \request('bottom_description');
$setting->status = \request('status'); $setting->status = \request('status');
$setting->title = \request('title'); $setting->title = \request('title');
$setting->bottom_title = \request('bottom_title'); $setting->bottom_title = \request('bottom_title');
@ -148,22 +145,19 @@ class AboutUsController extends Controller
*/ */
public function update(Request $request, $id) public function update(Request $request, $id)
{ {
// dd($request->all());
$setting=AboutUs::findorfail($id); $setting=AboutUs::findorfail($id);
$this->validate(\request(),[ $this->validate(\request(),[
// 'keyword' => 'required', 'keyword' => 'required',
'description' => 'required', 'description' => 'required',
'sub_description' => 'required', 'image' => 'file|mimes:jpeg,png,jpg',
// 'image' => 'file|mimes:jpeg,png,jpg',
'status' => 'required' 'status' => 'required'
]); ]);
$setting->description = (\request('description')); $setting->description = strip_tags(\request('description'));
$setting->sub_description = (\request('sub_description')); $setting->sub_description = strip_tags(\request('sub_description'));
$setting->bottom_description = \request('bottom_description');
$setting->status = \request('status'); $setting->status = \request('status');
$setting->title = \request('title'); $setting->title = \request('title');
$setting->bottom_title = \request('bottom_title'); $setting->bottom_title = \request('bottom_title');
@ -185,18 +179,18 @@ class AboutUsController extends Controller
// $requestData = $request->all(); // $requestData = $request->all();
// $setting->fill($requestData); // $setting->fill($requestData);
if($setting->update()){ if($setting->update()){
// $points = $request->points; $points = $request->points;
// if((!empty($points)) && ($points[0] != null)){ if((!empty($points)) && ($points[0] != null)){
// $about_us_point = $setting->about_us_points(); $about_us_point = $setting->about_us_points();
// $about_us_point->delete(); $about_us_point->delete();
// foreach($points as $point){ foreach($points as $point){
// $about_us_point = new AboutUsPoint(); $about_us_point = new AboutUsPoint();
// $about_us_point->about_us_id = $id; $about_us_point->about_us_id = $id;
// $about_us_point->point = $point; $about_us_point->point = $point;
// $about_us_point->save(); $about_us_point->save();
// } }
// } }
Session::flash('success','About Us has been Updated!'); Session::flash('success','About Us has been Updated!');
return redirect($this->redirect); return redirect($this->redirect);
} }

@ -0,0 +1,278 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Accomodation;
use App\Models\BlogPoint;
use App\Models\NewsAndUpdatePoint;
use App\Models\Setting;
use App\Models\User;
use App\Models\AccomodationFeature;
use App\Models\AccomodationInformation;
use App\Models\AccomodationSliderTitle;
use App\Models\AccomodationImage;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
// use function GuzzleHttp\Promise\all;
class AccomodationController extends Controller
{
protected $view = 'admin.accomodation.';
protected $redirect = 'admin/accomodations';
public function index()
{
$settings = Accomodation::orderBy('id','DESC');
if(\request('name')){
$key = \request('name');
$settings = $settings->where('title','like','%'.$key.'%');
}
if(\request('status')){
$key = \request('status');
$settings = $settings->where('status',$key);
}
$settings = $settings->paginate(config('custom.per_page'));
return view($this->view.'index',compact('settings'));
}
public function create()
{
return view($this->view . 'create');
}
public function store(Request $request)
{
$this->validate(\request(), [
'title' => 'required',
'phone' => 'required',
'address' => 'required',
'status' => 'required',
'images' => 'required',
'slider_image' => 'required|file|mimes:jpeg,png,jpg'
]);
if($request->has('slider_image')){
$extension = \request()->file('slider_image')->getClientOriginalExtension();
$image_folder_type = array_search('accomodation',config('custom.image_folders')); //for image saved in folder
$count = rand(100,999);
$out_put_path = User::save_image(\request()->file('slider_image'),$extension,$count,$image_folder_type);
$image_path1 = $out_put_path[0];
}
$requestData = $request->all();
if(isset($image_path1)){
$requestData['slider_image'] = $image_path1;
}
// $requestData['slug'] = Setting::create_slug($requestData['keyword']);
$accomodation = Accomodation::create($requestData);
if($request->hasFile('images')){
foreach($request->file('images') as $imagefile) {
$extension = $imagefile->getClientOriginalExtension();
$image_folder_type = array_search('accomodation',config('custom.image_folders')); //for image saved in folder
$count = rand(100,999);
$out_put_path = User::save_image($imagefile,$extension,$count,$image_folder_type);
$image_path1 = $out_put_path[0];
$accomodation_image = new AccomodationImage();
$accomodation_image->accomodation_id = $accomodation->id;
$accomodation_image->image = $image_path1;
$accomodation_image->save();
}
}
if(\request('feature_name')){
foreach (\request('feature_name') as $index => $value){
$setting_point = new AccomodationFeature();
$setting_point->accomodation_id = $accomodation->id;
$setting_point->feature_name = $value;
$setting_point->save();
}
}
if(\request('information_name')){
foreach (\request('information_name') as $index => $value){
$setting_point = new AccomodationInformation();
$setting_point->accomodation_id = $accomodation->id;
$setting_point->information_name = $value;
$setting_point->save();
}
}
if(\request('title_name')){
foreach (\request('title_name') as $index => $value){
$setting_point = new AccomodationSliderTitle();
$setting_point->accomodation_id = $accomodation->id;
$setting_point->title_name = $value;
$setting_point->save();
}
}
Session::flash('success','Accomodation successfully created');
return redirect($this->redirect);
}
public function show($id)
{
$setting =Accomodation::findorfail($id);
return view($this->view.'show',compact('setting'));
}
public function edit($id){
$setting =Accomodation::findorfail($id);
return view($this->view.'edit',compact('setting'));
}
public function update(Request $request, $id){
// dd(\request()->all());
$setting =Accomodation::findorfail($id);
$this->validate(\request(), [
'title' => 'required',
'phone' => 'required',
'address' => 'required',
'status' => 'required'
// 'images' => 'required',
// 'slider_image' => 'required|file|mimes:jpeg,png,jpg'
]);
if(\request('slider_image')){
$this->validate(\request(),[
'image' => 'file|mimes:jpeg,png,jpg'
]);
if($request->hasFile('slider_image')){
$extension = $request->file('slider_image')->getClientOriginalExtension();
$image_folder_type = array_search('accomodation',config('custom.image_folders')); //for image saved in folder
$count = rand(100,999);
$out_put_path = User::save_image($request->file('slider_image'),$extension,$count,$image_folder_type);
$image_path1 = $out_put_path[0];
if (is_file(public_path().'/'.$setting->slider_image) && file_exists(public_path().'/'.$setting->slider_image)){
unlink(public_path().'/'.$setting->slider_image);
}
}
}
$requestData = $request->all();
// $requestData['slug'] = Setting::create_slug($requestData['keyword']);
if(isset($image_path1)){
$requestData['slider_image'] = $image_path1;
}
$setting->fill($requestData);
if($setting->save()){
if($request->hasFile('images')){
$accommodation_image = $setting->accommodation_images();
$accommodation_image->delete();
foreach($request->file('images') as $imagefile) {
$extension = $imagefile->getClientOriginalExtension();
$image_folder_type = array_search('accomodation',config('custom.image_folders')); //for image saved in folder
$count = rand(100,999);
$out_put_path = User::save_image($imagefile,$extension,$count,$image_folder_type);
$image_path1 = $out_put_path[0];
// if (is_file(public_path().'/'.$setting->slider_image) && file_exists(public_path().'/'.$setting->slider_image)){
// unlink(public_path().'/'.$setting->slider_image);
// }
$accomodation_image = new AccomodationImage();
$accomodation_image->accomodation_id = $id;
$accomodation_image->image = $image_path1;
$accomodation_image->save();
}
}
if(\request('feature_name') ){
$accommodation_feature = $setting->accommodation_features();
$accommodation_feature->delete();
foreach (\request('feature_name') as $index => $value){
$setting_point = new AccomodationFeature();
$setting_point->accomodation_id = $id;
$setting_point->feature_name = $value;
$setting_point->save();
}
}
if(\request('information_name') ){
$accommodation_information = $setting->accommodation_informations();
$accommodation_information->delete();
foreach (\request('information_name') as $index => $value){
$setting_point = new AccomodationInformation();
$setting_point->accomodation_id = $id;
$setting_point->information_name = $value;
$setting_point->save();
}
}
if(\request('title_name') ){
$accommodation_title = $setting->accommodation_slider_titles();
$accommodation_title->delete();
foreach (\request('title_name') as $index => $value){
$setting_point = new AccomodationSlidertitle();
$setting_point->accomodation_id = $id;
$setting_point->title_name = $value;
$setting_point->save();
}
}
}
Session::flash('success','Accomodation succesffuly edited.');
return redirect($this->redirect);
}
public function delete($id){
$setting=Accomodation::findorfail($id);
// if($setting->accommodation_features->count() > 0){
// $setting->accommodation_features()->delete();
// }
// if($setting->accommodation_informations->count() > 0){
// $setting->accommodation_informations()->delete();
// }
// if($setting->accommodation_slider_titles->count() > 0){
// $setting->accommodation_informations()->delete();
// }
if($setting->delete()){
if (is_file(public_path().'/'.$setting->slider_image) && file_exists(public_path().'/'.$setting->slider_image)){
unlink(public_path().'/'.$setting->slider_image);
}
}
Session::flash('success','Accomodation successfully is deleted !');
return redirect($this->redirect);
}
public function points_remove($id)
{
if(Auth::user()){
$setting = AccomodationFeature::findorfail($id);
$setting->delete();
return response()->json(['point_id' => $id]);
}
}
public function information_points_remove($id)
{
if(Auth::user()){
$setting = AccomodationInformation::findorfail($id);
$setting->delete();
return response()->json(['point_id' => $id]);
}
}
public function slider_points_remove($id)
{
if(Auth::user()){
$setting = AccomodationSliderTitle::findorfail($id);
$setting->delete();
return response()->json(['point_id' => $id]);
}
}
}

@ -1,155 +0,0 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Appointment;
use Illuminate\Http\Request;
use Carbon\Carbon;
class AppointmentController extends Controller
{
protected $view = 'admin.appointment.';
protected $redirect = 'admin/appointments';
// protected $service;
public function education_appointments()
{
$appointments = Appointment::where('service_type', '1')->orderBy('id', 'DESC');
if (\request('date')) {
$date = \request('date');
$appointments = $appointments->whereDate('date', $date);
}
if (\request('status')) {
$status = \request('status');
$appointments = $appointments->where('status', $status);
}
if (\request('is_booked')) {
$is_booked = (\request('is_booked')) == '1' ? true : false;
$appointments = $appointments->where('is_booked', $is_booked);
}
$appointments = $appointments->paginate(20);
$service = 'Education';
$is_booked = $is_booked ?? null;
$date = $date ?? null;
$status = $status ?? null;
return view($this->view . 'index', compact('appointments', 'service', 'is_booked', 'date', 'status'));
}
public function visa_appointments()
{
$appointments = Appointment::where('service_type', '2')->orderBy('id', 'DESC');
if (\request('date')) {
$date = \request('date');
$appointments = $appointments->whereDate('date', $date);
}
if (\request('status')) {
$status = \request('status');
$appointments = $appointments->where('status', $status);
}
if (\request('is_booked')) {
$is_booked = (\request('is_booked')) == '1' ? true : false;
$appointments = $appointments->where('is_booked', $is_booked);
}
$appointments = $appointments->paginate(20);
$is_booked = $is_booked ?? null;
$date = $date ?? null;
$status = $status ?? null;
$service = 'Migration|Visa';
return view($this->view . 'index', compact('appointments', 'service', 'is_booked', 'date', 'status'));
}
public function create()
{
return view($this->view . 'create');
}
public function store(Request $request)
{
$request->validate([
'date' => 'required|date',
'start_time' => 'required|date_format:H:i',
'end_time' => 'required|date_format:H:i',
]);
$start_time = Carbon::createFromFormat('H:i', $request->get('start_time'))->format('H:i A');
$end_time = Carbon::createFromFormat('H:i', $request->get('end_time'))->format('H:i A');
$appointment = new Appointment([
'date' => $request->get('date'),
'start_time' => $start_time,
'end_time' => $end_time,
'location' => $request->get('location'),
'description' => $request->get('description'),
'service_type' => $request->get('service_type'),
]);
$appointment->save();
if($request->get('service_type') == "1"){
$service = 'education';
}else{
$service = 'visa';
}
return redirect($this->redirect.'/'.$service)->with('success', 'Appointment has been added');
}
public function edit($id)
{
$appointment = Appointment::findorfail($id);
$start_time = explode(" ", $appointment->start_time);
$start_time = $start_time[0];
$end_time = explode(" ", $appointment->end_time);
$end_time = $end_time[0];
$appointment['start_time'] = $start_time;
$appointment['end_time'] = $end_time;
return view($this->view . 'edit', compact('appointment'));
}
public function update(Request $request, $id)
{
$request->validate([
'date' => 'required|date',
'start_time' => 'required|date_format:H:i',
'end_time' => 'required|date_format:H:i',
]);
$start_time = Carbon::createFromFormat('H:i', $request->get('start_time'))->format('H:i A');
$end_time = Carbon::createFromFormat('H:i', $request->get('end_time'))->format('H:i A');
$appointment = Appointment::find($id);
$appointment->date = $request->get('date');
$appointment->start_time = $start_time;
$appointment->end_time = $end_time;
$appointment->location = $request->get('location');
$appointment->description = $request->get('description');
$appointment->service_type = $request->get('service_type');
$appointment->status = $request->get('status');
$appointment->save();
if($request->get('service_type') == "1"){
$service = 'education';
}else{
$service = 'visa';
}
return redirect($this->redirect.'/'.$service)->with('success', 'Appointment has been updated');
}
public function show($id)
{
$appointment = Appointment::with('appointment_booking_detail')->findorfail($id);
return view($this->view . 'show', compact('appointment'));
}
public function destroy($id)
{
$appointment = Appointment::find($id);
$appointment->delete();
return redirect($this->redirect)->with('success', 'Appointment has been deleted');
}
}

@ -4,9 +4,8 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\Contact; use App\Models\Contact;
use App\Models\Enquiry; use App\Models\Referral;
use App\Models\Subscription; use App\Models\Subscription;
use App\Models\VisaService;
use App\Models\Service; use App\Models\Service;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Routing\Route; use Illuminate\Routing\Route;
@ -21,14 +20,12 @@ class HomeController extends Controller
public function indexAdmin() public function indexAdmin()
{ {
if(Auth::check()){ if(Auth::check()){
$visa_service= VisaService::where('status',true); $service= Service::where('status',true);
$education_service= Service::where('status',true);
$enquiry= Enquiry::all();
$contact= Contact::all(); $contact= Contact::all();
$subscription= Subscription::all(); $subscription= Contact::all();
$contacts = Contact::paginate(config('custom.per_page')); $contacts = Contact::paginate(config('custom.per_page'));
// $referrals=Referral::paginate(config('custom.per_page')); // $referrals=Referral::paginate(config('custom.per_page'));
return view('admin.index', compact( 'visa_service', 'education_service', 'enquiry', 'contacts','contact','subscription')); return view('admin.index', compact( 'service', 'contact', 'contacts','subscription'));
} }
return view('admin.login'); return view('admin.login');
} }

@ -1,26 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ImageUploadController extends Controller
{
public function storeImage(Request $request)
{
if ($request->hasFile('upload')) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); // Return MIME type a la the 'mimetype' extension
$mimeType = finfo_file($finfo, $request->file('upload'));
finfo_close($finfo);
if ($mimeType == 'image/jpeg' || $mimeType == 'image/png' || $mimeType == 'image/svg+xml' || $mimeType == 'image/gif' || $mimeType == 'image/webp') {
$originName = $request->file('upload')->getClientOriginalName();
$fileName = pathinfo($originName, PATHINFO_FILENAME);
$extension = $request->file('upload')->getClientOriginalExtension();
$fileName = $fileName . '_' . time() . '.' . $extension;
$request->file('upload')->move(public_path('images/media'), $fileName);
$url = asset('images/media/' . $fileName);
return response()->json(['fileName' => $fileName, 'uploaded'=> 1, 'url' => $url]);
}
}
}
}

@ -17,7 +17,7 @@ use function GuzzleHttp\Promise\all;
class NewsAndUpdateController extends Controller class NewsAndUpdateController extends Controller
{ {
protected $view = 'admin.news_and_update.'; protected $view = 'admin.news_and_update.';
protected $redirect = 'admin/blogs'; protected $redirect = 'admin/news_and_updates';
public function index() public function index()
{ {
@ -43,6 +43,7 @@ class NewsAndUpdateController extends Controller
public function store(Request $request) public function store(Request $request)
{ {
$this->validate(\request(), [ $this->validate(\request(), [
'description' => 'required', 'description' => 'required',
// 'bottom_description' => 'required', // 'bottom_description' => 'required',
@ -104,6 +105,7 @@ class NewsAndUpdateController extends Controller
} }
public function update(Request $request, $id){ public function update(Request $request, $id){
$setting =NewsAndUpdate::findorfail($id); $setting =NewsAndUpdate::findorfail($id);
$this->validate(\request(), [ $this->validate(\request(), [
'description' => 'required', 'description' => 'required',

@ -4,17 +4,17 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\Page; use App\Models\Partner;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Session;
class PageController extends Controller class PartnerController extends Controller
{ {
protected $view = 'admin.page.'; protected $view = 'admin.partner.';
protected $redirect = 'admin/pages'; protected $redirect = 'admin/partners';
public function index() public function index()
{ {
$settings = Page::orderBy('id','DESC'); $settings = Partner::orderBy('id','DESC');
// if(\request('title')){ // if(\request('title')){
// $key = \request('title1'); // $key = \request('title1');
// $settings = $settings->where('title1','like','%'.$key.'%'); // $settings = $settings->where('title1','like','%'.$key.'%');
@ -38,58 +38,57 @@ class PageController extends Controller
$this->validate(\request(), [ $this->validate(\request(), [
'title' => 'required', // 'title' => 'required',
'status' => 'required', 'status' => 'required',
'banner_image' => 'file|mimes:jpeg,png,jpg' 'image' => 'required|file|mimes:jpeg,png,jpg'
]); ]);
if($request->hasFile('banner_image')){ if($request->hasFile('image')){
$extension = \request()->file('banner_image')->getClientOriginalExtension(); $extension = \request()->file('image')->getClientOriginalExtension();
$image_folder_type = array_search('page',config('custom.image_folders')); //for image saved in folder $image_folder_type = array_search('partner',config('custom.image_folders')); //for image saved in folder
$count = rand(100,999); $count = rand(100,999);
$out_put_path = User::save_image(\request('banner_image'),$extension,$count,$image_folder_type); $out_put_path = User::save_image(\request('image'),$extension,$count,$image_folder_type);
$image_path1 = $out_put_path[0]; $image_path1 = $out_put_path[0];
} }
$requestData = $request->all(); $requestData = $request->all();
if(isset($image_path1)){ if(isset($image_path1)){
$requestData['banner_image'] = $image_path1; $requestData['image'] = $image_path1;
} }
// $requestData['slug'] = Setting::create_slug($requestData['keyword']); // $requestData['slug'] = Setting::create_slug($requestData['keyword']);
$setting = Page::create($requestData); $setting = Partner::create($requestData);
Session::flash('success','Page successfully created'); Session::flash('success','Partner successfully created');
return redirect($this->redirect); return redirect($this->redirect);
} }
public function edit($id) public function edit($id)
{ {
$setting = Page::findorfail($id); $setting = Partner::findorfail($id);
return view($this->view.'edit',compact('setting')); return view($this->view.'edit',compact('setting'));
} }
public function update(Request $request, $id){ public function update(Request $request, $id){
$setting =Page::findorfail($id); $setting =Partner::findorfail($id);
$this->validate(\request(), [ $this->validate(\request(), [
'title' => 'required', // 'name' => 'required',
'status' => 'required', 'status' => 'required',
'image' => 'file|mimes:jpeg,png,jpg,pdf'
]); ]);
if(\request('banner_image')){ if(\request('image')){
$this->validate(\request(),[ $this->validate(\request(),[
'banner_image' => 'file|mimes:jpeg,png,jpg' 'image' => 'file|mimes:jpeg,png,jpg,pdf'
]); ]);
if($request->hasFile('banner_image')){ if($request->hasFile('image')){
$extension = \request()->file('banner_image')->getClientOriginalExtension(); $extension = \request()->file('image')->getClientOriginalExtension();
$image_folder_type = array_search('page',config('custom.image_folders')); //for image saved in folder $image_folder_type = array_search('partner',config('custom.image_folders')); //for image saved in folder
$count = rand(100,999); $count = rand(100,999);
$out_put_path = User::save_image(\request('banner_image'),$extension,$count,$image_folder_type); $out_put_path = User::save_image(\request('image'),$extension,$count,$image_folder_type);
$image_path1 = $out_put_path[0]; $image_path1 = $out_put_path[0];
if (is_file(public_path().'/'.$setting->banner_image) && file_exists(public_path().'/'.$setting->banner_image)){ if (is_file(public_path().'/'.$setting->image) && file_exists(public_path().'/'.$setting->image)){
unlink(public_path().'/'.$setting->banner_image); unlink(public_path().'/'.$setting->image);
} }
} }
} }
@ -98,25 +97,25 @@ class PageController extends Controller
$requestData = $request->all(); $requestData = $request->all();
// $requestData['slug'] = Setting::create_slug($requestData['keyword']); // $requestData['slug'] = Setting::create_slug($requestData['keyword']);
if(isset($image_path1)){ if(isset($image_path1)){
$requestData['banner_image'] = $image_path1; $requestData['image'] = $image_path1;
} }
$setting->fill($requestData); $setting->fill($requestData);
$setting->save(); $setting->save();
Session::flash('success','Page succesffuly updated.'); Session::flash('success','Partner succesffuly updated.');
return redirect($this->redirect); return redirect($this->redirect);
} }
public function delete($id){ public function delete($id){
$setting=Page::findorfail($id); $setting=Partner::findorfail($id);
if($setting->delete()){ if($setting->delete()){
if (is_file(public_path().'/'.$setting->image) && file_exists(public_path().'/'.$setting->image)){ if (is_file(public_path().'/'.$setting->image) && file_exists(public_path().'/'.$setting->image)){
unlink(public_path().'/'.$setting->image); unlink(public_path().'/'.$setting->image);
} }
} }
Session::flash('success','Page is deleted !'); Session::flash('success','Partner is deleted !');
return redirect($this->redirect); return redirect($this->redirect);
} }
} }

@ -76,7 +76,7 @@ class ServiceController extends Controller
$service->keywords = \request('keywords'); $service->keywords = \request('keywords');
// $service->icon = \request('icon'); // $service->icon = \request('icon');
$service->meta_keywords = strip_tags(\request('meta_keywords')); $service->meta_keywords = strip_tags(\request('meta_keywords'));
$service->short_description = (\request('short_description')); $service->short_description = strip_tags(\request('short_description'));
// $service->point_title = \request('point_title'); // $service->point_title = \request('point_title');
// $service->description_title = \request('description_title'); // $service->description_title = \request('description_title');
$service->status = \request('status'); $service->status = \request('status');

@ -5,18 +5,18 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\Service; use App\Models\Service;
use App\Models\ServiceOld; use App\Models\ServiceOld;
use App\Models\Faq; use App\Models\ServiceFaq;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Session;
class FaqController extends Controller class ServiceFaqController extends Controller
{ {
protected $view= 'admin.faq.'; protected $view= 'admin.service_faq.';
protected $redirect = 'admin/faqs'; protected $redirect = 'admin/service_faqs';
public function index(){ public function index(){
$settings = Faq::paginate(config('custom.per_page')); $settings = ServiceFaq::paginate(config('custom.per_page'));
return view($this->view.'index',compact('settings')); return view($this->view.'index',compact('settings'));
} }
@ -34,21 +34,21 @@ class FaqController extends Controller
]); ]);
$requestData = $request->all(); $requestData = $request->all();
$setting = Faq::create($requestData); $setting = ServiceFaq::create($requestData);
Session::flash('success','FAQ is created'); Session::flash('success','ServiceFAQ is created');
return redirect($this->redirect); return redirect($this->redirect);
} }
public function edit($id){ public function edit($id){
$setting = Faq::findorfail($id); $setting = ServiceFaq::findorfail($id);
$services = Service::all(); $services = Service::all();
return view($this->view.'edit',compact('setting'),compact('services')); return view($this->view.'edit',compact('setting'),compact('services'));
} }
public function update(Request $request, $id){ public function update(Request $request, $id){
$setting =Faq::findorfail($id); $setting =ServiceFaq::findorfail($id);
$this->validate(\request(), [ $this->validate(\request(), [
'question' =>'required|string', 'question' =>'required|string',
'answer'=>'required', 'answer'=>'required',
@ -59,19 +59,8 @@ class FaqController extends Controller
$requestData = $request->all(); $requestData = $request->all();
$setting->fill($requestData); $setting->fill($requestData);
$setting->save(); $setting->save();
Session::flash('success','FAQ is Updated'); Session::flash('success','CourseFAQ is Updated');
return redirect($this->redirect); return redirect($this->redirect);
} }
public function show($id)
{
$faq = new Faq();
$setting = $faq->findorfail($id);
return view($this->view . 'show', compact('setting'));
}
} }

@ -73,8 +73,8 @@ class ServiceSectionController extends Controller
$service_section->title = \request('title'); $service_section->title = \request('title');
$service_section->sub_title = \request('sub_title'); $service_section->sub_title = \request('sub_title');
$service_section->description = (\request('description')); $service_section->description = strip_tags(\request('description'));
$service_section->sub_description = (\request('sub_description')); $service_section->sub_description = strip_tags(\request('sub_description'));
$service_section->service_id = $id; $service_section->service_id = $id;
$service_section->status = \request('status'); $service_section->status = \request('status');
$service_section->order_by = \request('order_by'); $service_section->order_by = \request('order_by');
@ -186,8 +186,8 @@ class ServiceSectionController extends Controller
$service_section = ServiceSection::findOrFail($secId); $service_section = ServiceSection::findOrFail($secId);
$service_section->title = \request('title'); $service_section->title = \request('title');
$service_section->sub_title = \request('sub_title'); $service_section->sub_title = \request('sub_title');
$service_section->description = (\request('description')); $service_section->description = strip_tags(\request('description'));
$service_section->sub_description = (\request('sub_description')); $service_section->sub_description = strip_tags(\request('sub_description'));
$service_section->service_id = $id; $service_section->service_id = $id;
$service_section->status = \request('status'); $service_section->status = \request('status');
$service_section->order_by = \request('order_by'); $service_section->order_by = \request('order_by');
@ -209,59 +209,39 @@ class ServiceSectionController extends Controller
$point_descriptions = $request->point_descriptions ?? []; $point_descriptions = $request->point_descriptions ?? [];
$icons = $request->icons ?? []; $icons = $request->icons ?? [];
if((!empty($points)) && ($points[0] != null)){
$service_section_point = $service_section->service_section_point();
$service_section_point->delete();
foreach($points as $point){
$service_section_point = new ServiceSectionPoint();
$service_section_point->service_section_id = $service_section->id;
$service_section_point->point = $point;
$service_section_point->save();
}
}
// if($points != null && $point_ids != null){ if($points != null && $point_ids != null){
// foreach($request['point_ids'] as $key => $pid){ foreach($request['point_ids'] as $key => $pid){
// $service_section_point = new ServiceSectionPoint(); $service_section_point = new ServiceSectionPoint();
// $service_section_point = $service_section_point->findorfail($pid); $service_section_point = $service_section_point->findorfail($pid);
// // $service_section_point = ServiceSectionPoint::find($id); // $service_section_point = ServiceSectionPoint::find($id);
// if(array_key_exists($key,$point_descriptions)){ if(array_key_exists($key,$point_descriptions)){
// $service_section_point->point_description = $point_descriptions[$key]; $service_section_point->point_description = $point_descriptions[$key];
// } }
// if(array_key_exists($key,$icons)){ if(array_key_exists($key,$icons)){
// $extension = $icons[$key]->getClientOriginalExtension(); $extension = $icons[$key]->getClientOriginalExtension();
// $image_folder_type = array_search('service',config('custom.image_folders')); //for image saved in folder $image_folder_type = array_search('service',config('custom.image_folders')); //for image saved in folder
// $count = rand(100,999); $count = rand(100,999);
// $out_put_path = User::save_image($icons[$key],$extension,$count,$image_folder_type); $out_put_path = User::save_image($icons[$key],$extension,$count,$image_folder_type);
// is_array($out_put_path) ? $service_section_point->icon = $out_put_path[0] : $service_section_point->icon = $out_put_path; is_array($out_put_path) ? $service_section_point->icon = $out_put_path[0] : $service_section_point->icon = $out_put_path;
// // $service_section_point->icon = $points_descriptions[$key]; // $service_section_point->icon = $points_descriptions[$key];
// } }
// $service_section_point->point = $points[$key]; $service_section_point->point = $points[$key];
// $service_section_point->update(); $service_section_point->update();
// } }
// } }
// else{ else{
// foreach($points as $key => $point){ // foreach($points as $key => $point){
// $service_section_point = new ServiceSectionPoint(); // $service_section_point = new ServiceSectionPoint();
// $service_section_point->service_section_id = $service_section->id; // $service_section_point->service_section_id = $service_section->id;
// $service_section_point->point = $point; // $service_section_point->point = $point;
// if(array_key_exists($key,$icons)){
// $extension = $icons[$key]->getClientOriginalExtension();
// $image_folder_type = array_search('service',config('custom.image_folders')); //for image saved in folder
// $count = rand(100,999);
// $out_put_path = User::save_image($icons[$key],$extension,$count,$image_folder_type);
// is_array($out_put_path) ? $service_section_point->icon = $out_put_path[0] : $service_section_point->icon = $out_put_path;
// // $service_section_point->icon = $points_descriptions[$key];
// }
// $service_section_point->save(); // $service_section_point->save();
// } // }
// } }
// $service_point = $service_section->service_section_point(); // $service_point = $service_section->service_section_point();
// $service_point->delete(); // $service_point->delete();
// foreach($points as $key => $point){ // foreach($points as $key => $point){

@ -31,7 +31,7 @@ class TestimonialController extends Controller
{ {
$this->validate(\request(),[ $this->validate(\request(),[
// 'heading' =>'required', 'heading' =>'required',
// 'title' =>'required', // 'title' =>'required',
'image' =>'required|file|mimes:jpeg,png,jpg,pdf', 'image' =>'required|file|mimes:jpeg,png,jpg,pdf',
'review' =>'required', 'review' =>'required',

@ -62,7 +62,6 @@ class VisaServiceController extends Controller
'seo_title' => 'required', 'seo_title' => 'required',
'short_description' => 'required', 'short_description' => 'required',
'keywords'=>'required', 'keywords'=>'required',
'image'=>'required|mimes:jpeg,png,jpg,svg',
'icon' => 'file|mimes:jpeg,png,jpg,svg,' 'icon' => 'file|mimes:jpeg,png,jpg,svg,'
]); ]);
$service = new VisaService(); $service = new VisaService();
@ -169,7 +168,6 @@ class VisaServiceController extends Controller
'short_description' => 'required', 'short_description' => 'required',
'seo_title' => 'required', 'seo_title' => 'required',
'keywords'=>'required', 'keywords'=>'required',
'image'=>'mimes:jpeg,png,jpg,svg',
]); ]);
$service = new VisaService(); $service = new VisaService();

@ -64,18 +64,22 @@ class VisaServiceSectionController extends Controller
$this->validate(\request(),[ $this->validate(\request(),[
// 'title' => 'required',
'description' => 'required',
'status' => 'required', 'status' => 'required',
'order_by' => 'required' 'order_by' => 'required'
]); ]);
$service_section = new VisaServiceSection(); $service_section = new VisaServiceSection();
$service_section->title = \request('title'); $service_section->right_title = \request('right_title');
$service_section->sub_title = \request('sub_title'); $service_section->right_sub_title = \request('right_sub_title');
$service_section->description = (\request('description')); $service_section->left_title = \request('left_title');
$service_section->sub_description = (\request('sub_description')); $service_section->left_sub_title = \request('left_sub_title');
$service_section->top_description = strip_tags(\request('top_description'));
$service_section->left_description = strip_tags(\request('left_description'));
$service_section->point_title = strip_tags(\request('point_title'));
$service_section->visa_length = strip_tags(\request('visa_length'));
$service_section->visa_service_id = $id; $service_section->visa_service_id = $id;
$service_section->status = \request('status'); $service_section->status = \request('status');
$service_section->order_by = \request('order_by'); $service_section->order_by = \request('order_by');
@ -95,22 +99,22 @@ class VisaServiceSectionController extends Controller
if($service_section->save()){ if($service_section->save()){
// $points = $request->points; $points = $request->points;
// $point_descriptions = $request->point_descriptions ?? []; // $point_descriptions = $request->point_descriptions ?? [];
// $icons = $request->icons ?? []; // $icons = $request->icons ?? [];
// if($points[0] != null){ if($points[0] != null){
// foreach($points as $key => $point){ foreach($points as $key => $point){
// $service_section_point = new VisaServiceSectionPoint(); $service_section_point = new VisaServiceSectionPoint();
// $service_section_point->visa_service_section_id = $service_section->id; $service_section_point->visa_service_section_id = $service_section->id;
// $service_section_point->point = $point; $service_section_point->point = $point;
// $service_section_point->save(); $service_section_point->save();
// } }
// } }
Session::flash('success','Visa Service Section has been created!'); Session::flash('success','Visa Service Section has been created!');
return redirect('admin/visa_services/'.$id.'/sections'); return redirect('admin/visa_services/'.$id.'/sections');
@ -168,33 +172,84 @@ class VisaServiceSectionController extends Controller
public function update(Request $request, $id, $secId) public function update(Request $request, $id, $secId)
{ {
$this->validate(\request(),[ $this->validate(\request(),[
'description' => 'required', 'top_description' => 'required',
'status' => 'required', 'status' => 'required',
'order_by' => 'required' 'order_by' => 'required'
]); ]);
$service_section = VisaServiceSection::findOrFail($secId); $service_section = VisaServiceSection::findOrFail($secId);
$service_section->title = \request('title'); $service_section->right_title = \request('right_title');
$service_section->sub_title = \request('sub_title'); $service_section->right_sub_title = \request('right_sub_title');
$service_section->description = (\request('description')); $service_section->left_title = \request('left_title');
$service_section->sub_description = (\request('sub_description')); $service_section->left_sub_title = \request('left_sub_title');
$service_section->top_description = strip_tags(\request('top_description'));
$service_section->left_description = strip_tags(\request('left_description'));
$service_section->point_title = strip_tags(\request('point_title'));
$service_section->visa_length = strip_tags(\request('visa_length'));
$service_section->visa_service_id = $id; $service_section->visa_service_id = $id;
$service_section->status = \request('status'); $service_section->status = \request('status');
$service_section->order_by = \request('order_by'); $service_section->order_by = \request('order_by');
if($request->hasFile('image')){ // if($request->hasFile('image')){
$extension = \request()->file('image')->getClientOriginalExtension(); // $extension = \request()->file('image')->getClientOriginalExtension();
$image_folder_type = array_search('service',config('custom.image_folders')); //for image saved in folder // $image_folder_type = array_search('service',config('custom.image_folders')); //for image saved in folder
$count = rand(100,999); // $count = rand(100,999);
$out_put_path = User::save_image(\request('image'),$extension,$count,$image_folder_type); // $out_put_path = User::save_image(\request('image'),$extension,$count,$image_folder_type);
$image_path = $out_put_path[0]; // $image_path = $out_put_path[0];
if (is_file(public_path().'/'.$service_section->image) && file_exists(public_path().'/'.$service_section->image)){ // if (is_file(public_path().'/'.$service_section->image) && file_exists(public_path().'/'.$service_section->image)){
unlink(public_path().'/'.$service_section->image); // unlink(public_path().'/'.$service_section->image);
// }
// $service_section->image = $image_path;
// }
if($service_section->update()){
$points = $request->points;
if($points[0] != null){
if($request['point_ids'] !== null){
foreach($request['point_ids'] as $key => $pid){
$service_section_point = new VisaServiceSectionPoint();
$service_section_point = $service_section_point->find($pid);
// $service_section_point = ServiceSectionPoint::find($id);
$service_section_point->point = $points[$key];
$service_section_point->update();
}
}else{
foreach($points as $key => $point){
$service_section_point = new VisaServiceSectionPoint();
$service_section_point->visa_service_section_id = $service_section->id;
$service_section_point->point = $point;
$service_section_point->save();
} }
$service_section->image = $image_path;
} }
if($service_section->update()){
}
// $service_point = $service_section->service_section_point();
// $service_point->delete();
// foreach($points as $key => $point){
// $service_section_point = new ServiceSectionPoint();
// $service_section_point->service_section_id = $service_section->id;
// if(array_key_exists($key,$point_descriptions)){
// $service_section_point->point_description = $point_descriptions[$key];
// }
// if(array_key_exists($key,$icons)){
// $extension = $icons[$key]->getClientOriginalExtension();
// $image_folder_type = array_search('service',config('custom.image_folders')); //for image saved in folder
// $count = rand(100,999);
// $out_put_path = User::save_image($icons[$key],$extension,$count,$image_folder_type);
// is_array($out_put_path) ? $service_section_point->icon = $out_put_path[0] : $service_section_point->icon = $out_put_path;
// // $service_section_point->icon = $points_descriptions[$key];
// }
// $service_section_point->point = $point;
// $service_section_point->update();
// }
Session::flash('success','Visa Service Section has been successfully updated!'); Session::flash('success','Visa Service Section has been successfully updated!');
return redirect('admin/visa_services/'.$id.'/sections'); return redirect('admin/visa_services/'.$id.'/sections');
@ -216,7 +271,6 @@ class VisaServiceSectionController extends Controller
} }
public function service_point($service_point_id){ public function service_point($service_point_id){
if(Auth::user()){ if(Auth::user()){
$setting = ServiceSectionPoint::findorfail($service_point_id); $setting = ServiceSectionPoint::findorfail($service_point_id);
$setting->delete(); $setting->delete();

@ -1,145 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Appointment;
use Carbon\Carbon;
use App\Models\AppointmentBookingDetail;
class AppointmentController extends Controller
{
public function index(){
$educationAppointments = Appointment::where('date', '>=', Carbon::today())->where('service_type', '1')->get();
$visaAppointments = Appointment::where('date', '>=', Carbon::today())->where('service_type', '2')->get();
// foreach($educationAppointments as $appointment){
// $startTime = Carbon::createFromFormat('H:i', $appointment->start_time);
// $date = Carbon::createFromFormat('H:i', $appointment->start_time);
// dd($date);
// }
return view('appointment', compact('educationAppointments', 'visaAppointments'));
}
public function get_appointment_by_date(Request $request){
$dateTime = $request->date;
$date_parts = explode(" ", $dateTime);
$month_number = date_parse($date_parts[1])['month'];
$carbon = Carbon::createFromDate($date_parts[3], $month_number, $date_parts[2]);
$date = $carbon->format('Y-m-d');
$type_id = $request->id;
$appointments_all = Appointment::whereDate('date',$date)->where(['service_type' => $type_id,'is_booked' => false,'status' => 1])->get();
$old_date = Carbon::createFromFormat('Y-m-d', $date);
$formated_date = $old_date->format('M d, Y');
$currentTime = Carbon::now();
$appointments = [];
foreach ($appointments_all as $appointment) {
$start_time = explode(" ", $appointment->start_time);
$start_time = $start_time[0];
$appointmentDate = Carbon::createFromFormat('Y-m-d H:i', $appointment->date.' '.$start_time);
if ($appointmentDate->gt($currentTime)) {
array_push($appointments, $appointment);
}
}
return response()->json(['appointment' => $appointments,'formated_date' => $formated_date]);
}
public function form_submit(Request $request){
$request->validate([
'name' => 'required',
'email' => 'required|email',
'phone' => 'required',
]);
$appointment_id = $request->get('appointment_id');
$appointment = Appointment::findorfail($appointment_id);
$appointment_detail = new AppointmentBookingDetail();
$appointment_detail->name = $request->get('name');
$appointment_detail->email = $request->get('email');
$appointment_detail->phone = $request->get('phone');
$appointment_detail->notes = $request->get('notes');
$appointment_detail->appointment_id = $appointment_id;
$email = $request['email'];
$name = $request['name'];
$phone = $request['phone'];
if($appointment_detail->save()){
$date = Carbon::createFromFormat('Y-m-d', $appointment->date);
$formated_date = $date->format('M d, Y');
$appointment->is_booked = true;
$appointment->save();
$subject = 'Appointment Booked Successfully.';
dispatch(function() use ($name,$email,$phone,$subject,$formated_date,$appointment) {
\Mail::send('appointment_confirmed', array(
'full_name' =>$name,
'email' =>$email,
'date' => $formated_date,
'start_time' => $appointment['start_time'],
'end_time' => $appointment['end_time'],
'phone' =>$phone,
'subject' =>$subject
), function($message) use ($subject,$email,$name){
// $subject=($service!= '') ? 'Enquiry for '.$service : 'Contact/Feedback';
$message->subject($subject);
// $message->from('admin@eteducation.com.au', 'Admin');
$message->to($email, $name)->subject($subject);
// $message->cc('extratechweb@gmail.com', 'Extratech')->subject($subject);
// $message->cc('admin@eteducation.com.au', 'Extratech')->subject($subject);
});
});
dispatch(function() use ($name,$email,$phone,$subject,$formated_date,$appointment) {
\Mail::send('appointment_confirmed_for_admin', array(
'full_name' =>$name,
'email' =>$email,
'date' => $formated_date,
'start_time' => $appointment['start_time'],
'end_time' => $appointment['end_time'],
'phone' =>$phone,
'subject' =>$subject
), function($message) use ($subject){
// $subject=($service!= '') ? 'Enquiry for '.$service : 'Contact/Feedback';
$message->subject($subject);
// $message->to($email, $name)->subject($subject);
$message->to('mahesh@extratechs.com.au', 'Extratech')->subject($subject);
// $message->cc('admin@eteducation.com.au', 'Extratech')->subject($subject);
});
});
}
return response()->json(['appointment_detail' => $appointment_detail,'appointment' => $appointment,'formated_date' => $formated_date],200);
}
}

@ -1,21 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\NewsAndUpdate;
use App\Models\Page;
class BlogController extends Controller
{
public function index(){
$page = Page::where(['title' => 'Blogs','status' => 1])->first();
$blogs = NewsAndUpdate::where('status',1)->get();
return view('blogs',compact('blogs','page'));
}
public function blog_detail($slug){
$blog = NewsAndUpdate::where(['slug' => $slug, 'status' => 1])->first();
return view('blog-detail',compact('blog'));
}
}

@ -1,64 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Contact;
use App\Models\Page;
class ContactController extends Controller
{
public function index(){
$page = Page::where(['title' => 'Contact Us','status' => 1])->first();
return view('contact',compact('page'));
}
public function post_contact(Request $request){
$contact = new Contact();
$subject = 'Contact Enquiry';
// $check = '';
// if(isset($request['firstname'])){
// $subject = 'Quick Enquiry';
// $check = '1';
// }
// $name = ($request['firstname'] != null) ? ($request['firstname'].' '.$request['lastname']) : $request['fullname'] ;
$contact->fullname = $request['full_name'];
$contact->email = $request['email'];
$contact->phone = $request['phone'];
$contact->message = $request['message'];
$contact->nationality = $request['nationality'];
$contact->save();
// dispatch(function() use ($check,$subject, $contact) {
\Mail::send('contact_mail', array(
'full_name' =>$request['full_name'],
'email' =>$request['email'],
'phone' =>$request['phone'],
'nationality' =>$request['nationality'],
'contact_message' =>$request['message'],
'subject' =>$subject
), function($message) use ($subject){
// $subject=($service!= '') ? 'Enquiry for '.$service : 'Contact/Feedback';
$message->subject($subject);
$message->to('admin@eteducation.com.au', 'Et-Visa')->subject($subject);
$message->cc('extratechweb@gmail.com', 'Extratech')->subject($subject);
$message->cc('suman@extratechs.com.au', 'Extratech')->subject($subject);
});
// });
// return redirect()->back()->with(['msg' => 'Successfully submitted.']);
return redirect()->back()->with(['msg' => 'Thank you for your interest. We will get back to you soon.','status' =>'Ok'],200);
}
}

@ -1,76 +0,0 @@
<?php
namespace App\Http\Controllers;
use App\Jobs\SendEnquiryMailJob;
use App\Models\Country;
use App\Models\Enquiry;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
class EnquiryController extends Controller
{
public function form()
{
$countries = Country::all();
return view('enquiry-form', compact('countries'));
}
public function submit(Request $request)
{
$work_experience = $request->get('work_experience');
if ($work_experience == 'no') {
$request['work_experience_details'] = null;
$request['salary_mode'] = null;
}
$marital_status = $request->get('marital_status');
if ($marital_status == 'Widow' || $marital_status == 'Single') {
$request['married_date'] = null;
$request['spouse_academics'] = null;
$request['spouse_work_experience'] = null;
$request['spouse_salary_mode'] = null;
}
DB::beginTransaction();
try {
$enquiry = Enquiry::create($request->all());
} catch (\Exception $e) {
DB::rollback();
return redirect()->back()->with(['msg' => 'Something went wrong. Please try again!', 'status' => false], 400);
}
DB::commit();
dispatch(new SendEnquiryMailJob($enquiry));
return redirect()->back()->with(['msg' => 'We have recieved your enquiry. You will be contacted soon!', 'status' => true], 200);
}
public function index()
{
$enquiries = Enquiry::orderBy('id', 'DESC');
if (\request('name')) {
$key = \request('name');
$enquiries = $enquiries->where('first_name', 'like', $key . '%');
}
if (\request('email')) {
$key = \request('email');
$enquiries = $enquiries->where('email', 'like', $key . '%');
}
$enquiries = $enquiries->paginate(30);
return view('admin.enquiry.index', compact('enquiries'));
}
public function show($id)
{
$enquiry = Enquiry::findorfail($id);
return view('admin.enquiry.show', compact('enquiry'));
}
public function delete($id)
{
$enquiry = Enquiry::findorfail($id);
$enquiry->delete();
Session::flash('success', 'Enquiry has been successfully deleted!');
return redirect('admin/enquiries');
}
}

@ -1,16 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Faq;
use App\Models\Page;
class FaqController extends Controller
{
public function index(){
$page = Page::where(['title' => 'FAQ','status' => 1])->first();
$faqs = Faq::where('status',true)->get();
return view('faq',compact('faqs','page'));
}
}

@ -4,56 +4,11 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\Slider; use App\Models\Slider;
use App\Models\Testimonial;
use App\Models\NewsAndUpdate;
use App\Models\Subscription;
use App\Models\AboutUs;
use Illuminate\Support\Facades\Artisan;
use Database\Seeders\AppointmentTableSeeder;
class HomeController extends Controller class HomeController extends Controller
{ {
public function runSeeder(){
Artisan::call('db:seed', ['--class' => AppointmentTableSeeder::class]);
}
public function runQueueJobs(){
Artisan::call('queue:listen');
}
public function index(){ public function index(){
$sliders = Slider::where('status',1)->get(); $sliders = Slider::where('status',1)->get();
$testimonials = Testimonial::where('status',1)->get(); return view('welcome',compact('sliders'));
$blogs = NewsAndUpdate::where('status',1)->get();
$about_us = AboutUs::where('status',1)->get();
return view('welcome',compact('sliders','testimonials','blogs','about_us'));
}
public function subscribe(Request $request)
{
$email = $request->email;
$subscription = new Subscription();
$subscription->email = $email;
$subscription->save();
\Mail::send('subscribe_mail', array(
'email' =>\request('email'),
'subject' => 'Subscription Notice',
), function($message) use ($request){
$subject = 'Subscription Notice';
$message->subject('Subscription Notice');
$message->to('admin@eteducation.com.au', 'Et-Visa')->subject($subject);
$message->cc('extratechweb@gmail.com', 'Extratech')->subject($subject);
$message->cc('suman@extratechs.com.au', 'Extratech')->subject($subject);
});
return response()->json(['success' => 'Thank You for Subscribing !','status' =>'Ok'],200);
} }
} }

@ -1,26 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ImageUploadController extends Controller
{
public function storeImage(Request $request)
{
if ($request->hasFile('upload')) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); // Return MIME type a la the 'mimetype' extension
$mimeType = finfo_file($finfo, $request->file('upload'));
finfo_close($finfo);
if ($mimeType == 'image/jpeg' || $mimeType == 'image/png' || $mimeType == 'image/svg+xml' || $mimeType == 'image/gif' || $mimeType == 'image/webp') {
$originName = $request->file('upload')->getClientOriginalName();
$fileName = pathinfo($originName, PATHINFO_FILENAME);
$extension = $request->file('upload')->getClientOriginalExtension();
$fileName = $fileName . '_' . time() . '.' . $extension;
$request->file('upload')->move(public_path('images/media'), $fileName);
$url = asset('images/media/' . $fileName);
return response()->json(['fileName' => $fileName, 'uploaded'=> 1, 'url' => $url]);
}
}
}
}

@ -1,21 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Service;
use App\Models\Page;
class StudyAbroadController extends Controller
{
public function study_abroad(){
$page = Page::where(['title' => 'Study Abroad','status' => 1])->first();
$services = Service::with('service_sections')->get();
return view('study-abroad',compact('services','page'));
}
public function details($slug){
$service = Service::where(['slug' => $slug,'status' => 1])->orderby('order_by','asc')->first();
return view('study-abroad-detail',compact('service'));
}
}

@ -1,25 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\VisaService;
use App\Models\Page;
class VisaController extends Controller
{
public function index()
{
$page = Page::where(['title' => 'Visa', 'status' => 1])->first();
$visas = VisaService::where('status', 1)->get();
return view('visa', compact('visas', 'pages'));
}
public function details($slug)
{
$page = Page::where(['title' => 'Visa', 'status' => 1])->first();
$visas = VisaService::where('status', 1)->get();
$service = VisaService::where(['slug' => $slug, 'status' => 1])->orderby('order_by', 'asc')->first();
return view('visa', compact('service', 'page', 'visas'));
}
}

@ -1,41 +0,0 @@
<?php
namespace App\Jobs;
use App\Mail\EnquiryMail;
use App\Models\Setting;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;
class SendEnquiryMailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
protected $enquiry;
public function __construct($enquiry)
{
$this->enquiry = $enquiry;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$email = Setting::where('key', 'email')->get('value')->first()->value;
Mail::to($email)->send(new EnquiryMail($this->enquiry));
}
}

@ -1,65 +0,0 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class EnquiryMail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*
*/
protected $enquiry;
public function __construct($enquiry)
{
$this->enquiry = $enquiry;
}
/**
* Get the message envelope.
*
* @return \Illuminate\Mail\Mailables\Envelope
*/
public function envelope()
{
return new Envelope(
subject: 'Enquiry Mail',
);
}
/**
* Get the message content definition.
*
* @return \Illuminate\Mail\Mailables\Content
*/
public function content()
{
return new Content(
view: 'enquiry_mail',
with: [
'enquiry' => $this->enquiry,
],
);
}
/**
* Get the attachments for the message.
*
* @return array
*/
public function attachments()
{
return [];
}
}

@ -10,8 +10,7 @@ class AboutUs extends Model
use HasFactory; use HasFactory;
protected $table = "about_us"; protected $table = "about_us";
public function about_us_points() public function about_us_points(){
{
return $this->hasMany(AboutUsPoint::class); return $this->hasMany(AboutUsPoint::class);
} }
} }

@ -10,8 +10,7 @@ class AboutUsPoint extends Model
use HasFactory; use HasFactory;
protected $table = "about_us_points"; protected $table = "about_us_points";
public function about_us() public function about_us(){
{
return $this->belongsto(AboutUs::class); return $this->belongsto(AboutUs::class);
} }
} }

@ -1,17 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Appointment extends Model
{
use HasFactory;
protected $guarded = ['id'];
public function appointment_booking_detail(){
return $this->hasOne(AppointmentBookingDetail::class);
}
}

@ -1,15 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AppointmentBookingDetail extends Model
{
use HasFactory;
public function appointment(){
return $this->belongsTo(Appointment::class);
}
}

@ -10,8 +10,8 @@ class Contact extends Model
use HasFactory; use HasFactory;
protected $fillable=['fullname','email','service_id','phone','message','status','created_at']; protected $fillable=['fullname','email','service_id','phone','message','status','created_at'];
public function service() public function service(){
{
return $this->belongsto(Service::class); return $this->belongsto(Service::class);
} }
} }

@ -1,11 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Country extends Model
{
use HasFactory;
}

@ -1,13 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Enquiry extends Model
{
use HasFactory;
protected $guarded = ['id'];
}

@ -1,12 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Faq extends Model
{
use HasFactory;
protected $guarded = ['id'];
}

@ -8,7 +8,7 @@ use Illuminate\Database\Eloquent\Model;
class NewsAndUpdate extends Model class NewsAndUpdate extends Model
{ {
use HasFactory; use HasFactory;
protected $fillable=['slug','type','point_title','blog_type','image','image_alt','description','seo_title','seo_description','middle_description','bottom_description','keyword','meta_keyword','status','publish_date','title','image_credit','author','image_caption','thumbnail']; protected $fillable=['slug','point_title','blog_type','image','image_alt','description','seo_title','seo_description','middle_description','bottom_description','keyword','meta_keyword','status','publish_date','title','image_credit','author','image_caption','thumbnail'];
public function news_and_update_points() public function news_and_update_points()
{ {

@ -5,7 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Page extends Model class Partner extends Model
{ {
use HasFactory; use HasFactory;

@ -6,7 +6,6 @@
"license": "MIT", "license": "MIT",
"require": { "require": {
"php": "^8.0.2", "php": "^8.0.2",
"ckeditor/ckeditor": "^4.20",
"guzzlehttp/guzzle": "^7.2", "guzzlehttp/guzzle": "^7.2",
"laravel/framework": "^9.19", "laravel/framework": "^9.19",
"laravel/sanctum": "^3.0", "laravel/sanctum": "^3.0",

50
composer.lock generated

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "dee6185e5e08740c0389af948f15bb03", "content-hash": "f70c81adf2990f185a8632535bd08631",
"packages": [ "packages": [
{ {
"name": "brick/math", "name": "brick/math",
@ -62,54 +62,6 @@
], ],
"time": "2022-08-10T22:54:19+00:00" "time": "2022-08-10T22:54:19+00:00"
}, },
{
"name": "ckeditor/ckeditor",
"version": "4.20.1",
"source": {
"type": "git",
"url": "https://github.com/ckeditor/ckeditor4-releases.git",
"reference": "d519387a9448cbb66a5091361ddf665fd8728743"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ckeditor/ckeditor4-releases/zipball/d519387a9448cbb66a5091361ddf665fd8728743",
"reference": "d519387a9448cbb66a5091361ddf665fd8728743",
"shasum": ""
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-2.0+",
"LGPL-2.1+",
"MPL-1.1+"
],
"authors": [
{
"name": "CKSource",
"homepage": "https://cksource.com"
}
],
"description": "JavaScript WYSIWYG web text editor.",
"homepage": "https://ckeditor.com/ckeditor-4/",
"keywords": [
"CKEditor",
"ckeditor4",
"editor",
"fckeditor",
"html",
"javascript",
"richtext",
"text",
"wysiwyg"
],
"support": {
"forum": "https://stackoverflow.com/tags/ckeditor",
"issues": "https://github.com/ckeditor/ckeditor4/issues",
"source": "https://github.com/ckeditor/ckeditor4",
"wiki": "https://ckeditor.com/docs/ckeditor4/latest/"
},
"time": "2022-11-30T15:28:41+00:00"
},
{ {
"name": "dflydev/dot-access-data", "name": "dflydev/dot-access-data",
"version": "v3.0.2", "version": "v3.0.2",

@ -69,7 +69,7 @@ return [
| |
*/ */
'timezone' => 'Australia/Sydney', 'timezone' => 'UTC',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

@ -50,13 +50,9 @@ return [
'9' => 'testimonial', '9' => 'testimonial',
'10' => 'visa_service', '10' => 'visa_service',
'11'=>'applicant', '11'=>'applicant',
'12'=>'page' '12'=>'partner'
], ],
'service_type' => [
'1' => 'Education',
'2' => 'Visa'
],
'course_types'=>[ 'course_types'=>[
'1' =>'Upcoming Courses', '1' =>'Upcoming Courses',
'2' =>'Recommended Courses', '2' =>'Recommended Courses',

@ -48,8 +48,8 @@ return [
'url' => env('DATABASE_URL'), 'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'), 'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'), 'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'eteducation'), 'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'root'), 'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''), 'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''), 'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4', 'charset' => 'utf8mb4',

@ -24,7 +24,7 @@ class CreateServicesTable extends Migration
// $table->longText('bottom_description'); // $table->longText('bottom_description');
// $table->string('point_title'); // $table->string('point_title');
$table->string('seo_title'); $table->string('seo_title');
$table->longText('seo_description')->nullable(); $table->longText('seo_description');
$table->string('keywords'); $table->string('keywords');
$table->longText('meta_keywords'); $table->longText('meta_keywords');
$table->enum('status',[1,2]); $table->enum('status',[1,2]);

@ -17,7 +17,7 @@ return new class extends Migration
$table->id(); $table->id();
$table->string('name'); $table->string('name');
$table->string('seo_title'); $table->string('seo_title');
$table->longText('seo_description')->nullable(); $table->longText('seo_description');
$table->string('keywords'); $table->string('keywords');
$table->longText('meta_keywords'); $table->longText('meta_keywords');
$table->enum('status',[1,2]); $table->enum('status',[1,2]);

@ -17,11 +17,16 @@ return new class extends Migration
$table->id(); $table->id();
$table->bigInteger('visa_service_id')->unsigned(); $table->bigInteger('visa_service_id')->unsigned();
$table->foreign('visa_service_id')->references('id')->on('visa_services')->onDelete('cascade'); $table->foreign('visa_service_id')->references('id')->on('visa_services')->onDelete('cascade');
$table->longText('top_description')->nullable();
$table->string('image')->nullable(); $table->string('image')->nullable();
$table->string('title'); $table->string('left_title');
$table->string('sub_title')->nullable(); $table->string('left_sub_title');
$table->longText('description'); $table->longText('left_description');
$table->longText('sub_description')->nullable(); $table->string('right_title')->nullable();
$table->string('right_sub_title')->nullable();
// $table->longText('sub_description')->nullable();
$table->longText('point_title')->nullable();
$table->string('visa_length')->nullable();
$table->enum('status',[1,2]); $table->enum('status',[1,2]);
$table->string('order_by'); $table->string('order_by');
$table->timestamps(); $table->timestamps();

@ -18,7 +18,6 @@ return new class extends Migration
$table->bigInteger('visa_service_section_id')->unsigned(); $table->bigInteger('visa_service_section_id')->unsigned();
$table->foreign('visa_service_section_id')->references('id')->on('visa_service_sections')->onDelete('cascade'); $table->foreign('visa_service_section_id')->references('id')->on('visa_service_sections')->onDelete('cascade');
$table->text('point'); $table->text('point');
$table->string('image')->nullable();
$table->timestamps(); $table->timestamps();
}); });
} }

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

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

@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('pages', function (Blueprint $table) {
$table->id();
$table->string('banner_image')->nullable();
$table->string('title');
$table->string('sub_title')->nullable();
$table->longText('description')->nullable();
$table->longText('sub_description')->nullable();
$table->enum('status',['1','2']);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('pages');
}
};

@ -1,36 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('faqs', function (Blueprint $table) {
$table->id();
$table->bigInteger('service_id')->unsigned()->nullable();
$table->foreign('service_id')->references('id')->on('services');
$table->longText('question');
$table->longText('answer');
$table->enum('status',[1,2]);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('faqs');
}
};

@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('appointments', function (Blueprint $table) {
$table->id();
$table->date('date');
$table->string('start_time');
$table->string('end_time');
$table->string('location')->nullable();
$table->string('description')->nullable();
$table->enum('status',[1,2]);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('appointments');
}
};

@ -1,32 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('appointments', function (Blueprint $table) {
$table->enum('service_type',[1,2]);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('appointments', function (Blueprint $table) {
//
});
}
};

@ -1,32 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('appointments', function (Blueprint $table) {
$table->boolean('is_booked')->default(false);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('appointments', function (Blueprint $table) {
//
});
}
};

@ -1,37 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('appointment_booking_details', function (Blueprint $table) {
$table->id();
$table->bigInteger('appointment_id')->unsigned();
$table->foreign('appointment_id')->references('id')->on('appointments')->onDelete('cascade');
$table->string('name');
$table->string('email')->nullable();
$table->string('phone');
$table->string('notes')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('appointment_booking_details');
}
};

@ -1,59 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('enquiries', function (Blueprint $table) {
$table->id();
$table->string('first_name');
$table->string('middle_name')->nullable();
$table->string('last_name');
$table->date('dob');
$table->string('cob');
$table->string('gender');
$table->string('email');
$table->string('phone');
$table->string('address');
$table->string('highest_qualification');
$table->string('stream')->nullable();
$table->string('gpa');
$table->string('graduate_year');
$table->string('gap')->nullable();
$table->string('current_status')->nullable();
$table->string('work_experience');
$table->text('work_experience_details')->nullable();
$table->string('salary_mode')->nullable();
$table->string('test_score')->nullable();
$table->string('marital_status');
$table->string('married_date')->nullable();
$table->string('spouse_academics')->nullable();
$table->string('spouse_work_experience')->nullable();
$table->string('spouse_salary_mode')->nullable();
$table->string('immigration_history')->nullable();
$table->string('desired_study_field')->nullable();
$table->string('desired_location')->nullable();
$table->boolean('status')->default(true);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('enquiries');
}
};

@ -1,49 +0,0 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\Appointment;
use Carbon\Carbon;
use Carbon\CarbonInterval;
use Illuminate\Support\Facades\DB;
class AppointmentTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$latestAppointment = DB::table('appointments')->latest('date')->first();
$startDate = $latestAppointment ? Carbon::parse($latestAppointment->date)->addDay() : Carbon::now();
$startTime = Carbon::parse("9:00 AM");
$endTime = Carbon::parse("5:00 PM");
foreach(config('custom.service_type') as $key => $value){
for ($i = 0; $i < 7; $i++) {
$date = $startDate->copy()->addDays($i);
for ($j = 0; $j <= ((($endTime->diffInMinutes($startTime)) / 30)-1); $j++) {
$currentTime = $startTime->copy()->addMinutes(30 * $j);
$currentEndTime = $startTime->copy()->addMinutes(30 * $j + 30);
DB::table('appointments')->insert([
'date' => $date,
'start_time' => $currentTime->format("H:i A"),
'end_time' => $currentEndTime->format("H:i A"),
'service_type' => $key
]);
}
}
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

@ -1,5 +1,5 @@
.sb{ .sb{
background: #326cbf; background: #13a64f;
padding-bottom: 50px; padding-bottom: 50px;
} }
.sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link.active{ .sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link.active{
@ -28,7 +28,7 @@
margin-top: 10px; margin-top: 10px;
} }
.main-header{ .main-header{
background: #326cbf; background: #13a64f;
} }
.nav-link i{ .nav-link i{
color:#fff; color:#fff;
@ -206,7 +206,10 @@ svg{
.create-button{ .create-button{
margin-top:10px; margin-top:10px;
} }
.create-button .col-md-12{
/* display:flex;
justify-content:center; */
}
.create-button .col-md-12 button{ .create-button .col-md-12 button{
padding:10px 50px; padding:10px 50px;
} }
@ -262,6 +265,11 @@ svg{
background: none; background: none;
} }
.table-search{
/* width: fit-content; */
}
.search-form .table-search input{ .search-form .table-search input{
/* margin-right: 10px; */ /* margin-right: 10px; */
border-radius: 5px!important; border-radius: 5px!important;
@ -269,6 +277,7 @@ svg{
.ds-input:focus{ .ds-input:focus{
border-color: #1850b7; border-color: #1850b7;
} }
/* new edit */ /* new edit */
.table td{ .table td{
@ -311,6 +320,9 @@ svg{
background: none; background: none;
border:none; border:none;
color:#fff; color:#fff;
}
.dropdown-menubar .dropdown-menu[data-bs-popper]{
} }
.dropdown-menubar button:active{ .dropdown-menubar button:active{
background-color: none; background-color: none;
@ -350,13 +362,13 @@ svg{
} }
.btn-green{ .btn-green{
color:#fff; color:#fff;
background: #326cbf; background: #13a64f;
border-color:#326cbf; border-color:#13a64f;
} }
.btn-green:hover{ .btn-green:hover{
color:#fff; color:#fff;
background: #D933A2; background: #ea8937;
border-color:#D933A2; border-color:#ea8937;
} }
.card-header{ .card-header{
padding: 1rem 1rem!important; padding: 1rem 1rem!important;
@ -441,7 +453,7 @@ p .font-medium{
font-weight: 700; font-weight: 700;
font-size: 16px; font-size: 16px;
color: #000; color: #000;
width: 300px; width: 400px;
} }
.contact-info{ .contact-info{
display: inline-block; display: inline-block;
@ -457,25 +469,3 @@ p .font-medium{
.admin-table img{ .admin-table img{
width: 200px !important; width: 200px !important;
} }
.sidebar-icon .menu-title{
display: inline-flex;
align-items: center;
justify-content: space-between;
padding-right: 20px;
}
.badge.notbooked{
background: #1F8D60;
font-size: 1rem;
padding: 0.6rem 1rem;
}
.badge.booked{
background: #C31521;
font-size: 1rem;
padding: 0.6rem 1rem;
}
.contact-info h2{
font-weight: bold;
font-size: 28px;
color: #326CBF;
margin-bottom: 1rem;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 717 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 B

@ -1,3 +1,4 @@
<svg width="18" height="14" viewBox="0 0 18 14" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="18" height="14" viewBox="0 0 18 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.0132028 4.15129C-3.38676e-10 4.69022 0 5.30205 0 6V8C0 10.8284 0 12.2426 0.87868 13.1213C1.75736 14 3.17157 14 6 14H12C14.8284 14 16.2426 14 17.1213 13.1213C18 12.2426 18 10.8284 18 8V6C18 5.30205 18 4.69022 17.9868 4.15129L9.97129 8.60436C9.36724 8.93994 8.63276 8.93994 8.02871 8.60436L0.0132028 4.15129ZM0.242967 2.02971C0.325845 2.05052 0.407399 2.08237 0.485643 2.12584L9 6.85604L17.5144 2.12584C17.5926 2.08237 17.6742 2.05052 17.757 2.02971C17.6271 1.55619 17.4276 1.18491 17.1213 0.87868C16.2426 0 14.8284 0 12 0H6C3.17157 0 1.75736 0 0.87868 0.87868C0.572448 1.18491 0.372942 1.55619 0.242967 2.02971Z" fill="#296AC7"/> <rect x="1" y="1" width="16" height="12" rx="2" fill="#7E869E" fill-opacity="0.25" stroke="#326CBF" stroke-width="1.2"/>
<path d="M8.10557 7.55279L1 4V11C1 12.1046 1.89543 13 3 13H15C16.1046 13 17 12.1046 17 11V4L9.89443 7.55279C9.33137 7.83431 8.66863 7.83431 8.10557 7.55279Z" fill="#326CBF"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 784 B

After

Width:  |  Height:  |  Size: 399 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

@ -1,12 +0,0 @@
<svg width="66" height="66" viewBox="0 0 66 66" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M51.0779 47.1385C51.0779 47.1385 43.2868 54.45 32.9846 54.45C22.6824 54.45 14.8965 47.1385 14.8965 47.1385C14.8965 47.1385 13.4476 40.1827 17.191 28.1738C19.1658 21.8419 47.2674 21.1974 49.4691 26.7352C53.2126 36.135 51.0779 47.1385 51.0779 47.1385Z" fill="#C31780"/>
<path d="M14.8963 47.1385L17.3661 49.1185C17.3661 49.1185 17.3455 45.1997 18.5572 41.5439C19.011 40.1775 20.63 39.6052 21.8469 40.3735L31.2777 46.2877C31.7947 46.6114 32.3914 46.7852 33.0014 46.7898C33.6113 46.7943 34.2106 46.6294 34.7324 46.3135C39.2389 43.5806 50.9952 36.4289 51.5314 35.9906C51.5314 35.9906 51.5314 35.1089 51.3097 33.9849L14.7622 34.0313L14.8963 47.1385Z" fill="#AA2376"/>
<path d="M63.3238 26.828L34.0363 44.2716C33.3969 44.6531 32.5977 44.6531 31.9531 44.2716L2.67596 26.828C1.86127 26.3433 1.86127 25.1625 2.67596 24.6778L31.9635 7.23423C32.6028 6.85267 33.4021 6.85267 34.0466 7.23423L63.3341 24.6778C64.1436 25.1625 64.1436 26.3433 63.3238 26.828Z" fill="#E22899"/>
<path d="M33.0206 42.9928C33.0155 42.9928 33.0052 42.998 33 42.998C32.9175 42.998 32.835 42.9773 32.7628 42.9309L2.15533 25.2863C2.15533 25.2863 2.00579 25.5698 2.15533 26.0803C2.31001 26.5908 2.5472 26.7558 2.67611 26.8331L31.9636 44.2767C32.2833 44.4675 32.6442 44.5655 33.0052 44.5655H33.0258V42.9928H33.0206Z" fill="#F266BB"/>
<path d="M32.9998 42.9928C33.0049 42.9928 33.0153 42.998 33.0204 42.998C33.1029 42.998 33.1854 42.9773 33.2576 42.9309L63.8651 25.2863C63.8651 25.2863 64.0146 25.5698 63.8651 26.0803C63.7104 26.5908 63.4732 26.7558 63.3443 26.8331L34.0568 44.2767C33.7371 44.4675 33.3762 44.5655 33.0153 44.5655H32.9946V42.9928H32.9998Z" fill="#C41780"/>
<path d="M18.2788 36.1247L18.4438 34.6758C18.4438 34.6758 31.0818 27.8025 32.3296 27.0806C33.5774 26.3587 34.8871 25.5544 35.4697 24.9098C36.501 23.7755 35.7585 23.0639 35.7585 23.0639C35.7585 23.0639 34.9438 24.3839 32.9999 24.1519C31.8862 24.0178 30.4372 23.1155 30.1949 22.6926C29.9526 22.2698 15.9276 32.9536 15.9276 32.9536L15.8296 34.6706L18.2788 36.1247Z" fill="#AA2376"/>
<path d="M35.7585 23.069C34.4075 24.9562 32.1182 24.1312 32.1182 24.1312C32.1182 24.1312 24.9458 27.5704 24.6777 27.0497C24.4096 26.5289 30.6022 23.3423 30.6022 23.3423C30.6022 23.3423 30.2568 22.0739 30.2929 21.5325C30.2929 21.5325 19.0935 28.6584 14.8911 31.0561C12.6894 32.3142 12.2202 33.5001 12.2253 35.1708C12.2253 35.9029 12.2357 38.28 12.246 39.6979C12.246 39.9609 12.1325 40.2084 11.9314 40.3734C11.627 40.6229 11.3816 40.9369 11.2131 41.2926C11.0446 41.6484 10.9571 42.0371 10.9569 42.4308C10.9569 43.2197 11.3024 43.9261 11.8489 44.4159C12.1428 44.6789 12.081 45.2461 12.1068 45.6122C12.1583 46.3134 12.1068 46.6331 11.818 47.2828C11.5344 47.917 11.2714 48.5667 11.091 49.237C10.9518 49.7526 10.8589 50.2837 10.7661 50.8097C10.1525 54.3314 9.8741 58.0954 8.24988 61.3336C8.21929 61.3941 8.20103 61.4601 8.19615 61.5277C8.19127 61.5953 8.19988 61.6633 8.22146 61.7275C8.24305 61.7918 8.27719 61.8512 8.3219 61.9021C8.36661 61.9531 8.421 61.9947 8.48191 62.0245C8.60438 62.0863 8.74633 62.0971 8.87675 62.0546C9.00717 62.0121 9.11548 61.9197 9.17801 61.7976C10.0236 60.1115 10.4619 58.2656 10.8228 56.4351C10.8022 58.0903 10.7919 59.7609 10.7352 61.5656C10.7249 61.9162 10.6991 62.6226 11.0188 62.7773C12.2202 63.36 12.2202 61.5656 12.2202 61.5656C12.2202 61.5656 12.2357 63.1795 13.8702 63.1795C15.5047 63.1795 15.6233 61.5656 15.6233 61.5656C15.6233 61.5656 15.7419 63.0454 16.5824 62.9733C16.9227 62.9423 17.3713 62.7361 17.2114 60.9675C17.0516 59.204 16.6546 52.8825 16.4844 50.8818C16.2472 48.1129 15.3397 46.4681 15.1541 45.4884C15.0871 45.1172 15.0819 44.7304 15.3758 44.4881C15.6749 44.243 15.9171 43.9357 16.0855 43.5875C16.2538 43.2394 16.3443 42.8587 16.3507 42.4721C16.3571 42.0854 16.2792 41.702 16.1224 41.3485C15.9656 40.9949 15.7337 40.6798 15.4428 40.425C15.3394 40.3346 15.2585 40.2214 15.2066 40.0943C15.1547 39.9672 15.1332 39.8297 15.1438 39.6928C15.2418 38.3573 15.35 36.4186 15.4377 35.97C15.8193 33.9539 16.8144 33.5929 17.8354 32.9948C18.8563 32.3915 33.6444 25.6781 34.5055 25.1058C36.0988 24.0384 35.7585 23.069 35.7585 23.069Z" fill="#E2A610"/>
<path d="M35.7588 23.069C34.4852 24.8686 31.8401 24.0642 31.8401 24.0642C31.8401 24.0642 25.0802 27.06 25.5288 26.5186C25.9722 25.9772 30.6026 23.3423 30.6026 23.3423C30.6026 23.3423 30.2571 22.0739 30.2932 21.5325C30.2932 21.5325 18.8979 28.117 14.479 31.2829C13.3394 32.1028 11.9266 33.4434 13.0765 34.7789C13.6076 35.3925 14.6337 35.5214 15.2885 35.0367C15.6855 34.7479 15.9949 34.3251 16.3455 33.99C16.7787 33.5672 17.3046 33.299 17.8202 32.9948C18.8412 32.3915 33.6293 25.6781 34.4904 25.1058C36.0991 24.0384 35.7588 23.069 35.7588 23.069Z" fill="#FFCA28"/>
<path d="M13.4628 47.3653C12.7822 47.3653 12.3232 47.3086 11.9056 47.2106C11.8311 47.1936 11.7652 47.1504 11.7197 47.0889C11.6743 47.0274 11.6525 46.9517 11.6581 46.8755L11.7922 44.9058C11.8076 44.7047 11.9984 44.5655 12.1943 44.6222C12.6584 44.7563 13.5865 44.8903 15.1025 44.5706C15.2881 44.5294 15.4737 44.6583 15.4943 44.8491L15.7006 46.8084C15.7161 46.9683 15.6129 47.1178 15.4582 47.1539C14.6693 47.3344 14.097 47.3653 13.4628 47.3653Z" fill="#9E740B"/>
<path d="M51.0777 47.1385C51.0777 47.1385 51.9904 42.3741 51.6243 37.3055C51.5624 36.4496 51.0365 35.7122 50.6291 38.708C50.3971 40.425 49.8918 45.5658 49.0307 48.7781C50.3455 47.8294 51.0777 47.1385 51.0777 47.1385ZM33.8919 18.9699C34.2683 19.0885 34.6138 19.3772 34.7118 19.7639C34.8407 20.2796 34.5158 20.7952 34.1652 21.1974C33.4794 21.9863 32.5358 22.6772 31.4891 22.6411C31.1436 22.6308 30.7724 22.5174 30.561 22.2441C30.4115 22.0533 30.3599 21.8058 30.3444 21.5635C30.2516 19.7949 32.2522 18.4542 33.8919 18.9699Z" fill="#FF55BC"/>
</svg>

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

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

Loading…
Cancel
Save