diff --git a/app/Helpers/CCMS.php b/app/Helpers/CCMS.php index 586b6a9..1726284 100644 --- a/app/Helpers/CCMS.php +++ b/app/Helpers/CCMS.php @@ -1514,6 +1514,24 @@ CREATE TABLE IF NOT EXISTS `tbl_visa_grants` ( `updated_at` timestamp NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 '); + + DB::statement(' +CREATE TABLE IF NOT EXISTS `tbl_banners` ( + `banner_id` int(11) AUTO_INCREMENT PRIMARY KEY, + `display` varchar(255) NULL DEFAULT NULL, + `title` varchar(250) NULL DEFAULT NULL, + `text` text NULL DEFAULT NULL, + `extra_content` LONGTEXT NULL DEFAULT NULL, + `cover` varchar(255) NULL DEFAULT NULL, + `display_order` int(11) NOT NULL DEFAULT 1, + `status` int(11) NOT NULL DEFAULT 1, + `createdby` int(11) DEFAULT NULL, + `updatedby` int(11) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 +'); + if (!(DB::table('users')->first())) { DB::statement("INSERT INTO `tbl_users` (`id`, `name`, `email`, `username`, `email_verified_at`, `status`, `password`, `is_admin`, `remember_token`, `created_at`, `updated_at`) VALUES (1, 'Prajwal Adhikari', 'prajwalbro@hotmail.com', 'prajwalbro@hotmail.com', '2024-04-18 09:59:01', 1, '$2y$10$3zlF9VeXexzWKRDPZuDio.W7RZIC3tU.cjwMoLzG8ki8bVwAQn1WW', 1, NULL, '2024-04-18 09:58:39', '2024-04-18 09:58:46');"); diff --git a/app/Http/Controllers/BannerController.php b/app/Http/Controllers/BannerController.php new file mode 100644 index 0000000..f9f8720 --- /dev/null +++ b/app/Http/Controllers/BannerController.php @@ -0,0 +1,196 @@ +modelService = new CommonModelService($model); + } + public function index(Request $request) + { + createActivityLog(BannerController::class, 'index', ' Banners index'); + $data = Banners::where('status', '<>', -1)->orderBy('display_order')->get(); + + return view("crud.generated.banner.index", compact('data')); + } + + public function create(Request $request) + { + createActivityLog(BannerController::class, 'create', ' Banners create'); + $TableData = Banners::where('status', '<>', -1)->orderBy('display_order')->get(); + return view("crud.generated.banner.create", compact('TableData')); + } + + public function store(Request $request) + { + createActivityLog(BannerController::class, 'store', ' Banners store'); + $validator = Validator::make($request->all(), [ + //ADD REQUIRED FIELDS FOR VALIDATION + ]); + + if ($validator->fails()) { + return response()->json([ + 'error' => $validator->errors(), + ], 500); + } + $request->request->add(['alias' => slugify($request->title)]); + $request->request->add(['display_order' => getDisplayOrder('tbl_banners')]); + $requestData = $request->all(); + array_walk_recursive($requestData, function (&$value) { + $value = str_replace(env('APP_URL') . '/', '', $value); + }); + array_walk_recursive($requestData, function (&$value) { + $value = str_replace(env('APP_URL'), '', $value); + }); + DB::beginTransaction(); + try { + $operationNumber = getOperationNumber(); + $this->modelService->create($operationNumber, $operationNumber, null, $requestData); + } catch (\Exception $e) { + DB::rollBack(); + Log::info($e->getMessage()); + createErrorLog(BannerController::class, 'store', $e->getMessage()); + return response()->json(['status' => false, 'message' => $e->getMessage()], 500); + } + DB::commit(); + if ($request->ajax()) { + return response()->json(['status' => true, 'message' => 'The Banners Created Successfully.'], 200); + } + return redirect()->route('banner.index')->with('success', 'The Banners created Successfully.'); + } + + public function sort(Request $request) + { + $idOrder = $request->input('id_order'); + + foreach ($idOrder as $index => $id) { + $companyArticle = Banners::find($id); + $companyArticle->display_order = $index + 1; + $companyArticle->save(); + } + + return response()->json(['status' => true, 'content' => 'The articles sorted successfully.'], 200); + } + public function updatealias(Request $request) + { + + $articleId = $request->input('articleId'); + $newAlias = $request->input('newAlias'); + $companyArticle = Banners::find($articleId); + if (!$companyArticle) { + return response()->json(['status' => false, 'content' => 'Company article not found.'], 404); + } + $companyArticle->alias = $newAlias; + $companyArticle->save(); + return response()->json(['status' => true, 'content' => 'Alias updated successfully.'], 200); + } + + + + + public function show(Request $request, $id) + { + createActivityLog(BannerController::class, 'show', ' Banners show'); + $data = Banners::findOrFail($id); + + return view("crud.generated.banner.show", compact('data')); + } + + + public function edit(Request $request, $id) + { + createActivityLog(BannerController::class, 'edit', ' Banners edit'); + $TableData = Banners::where('status', '<>', -1)->orderBy('display_order')->get(); + $data = Banners::findOrFail($id); + if ($request->ajax()) { + $html = view("crud.generated.banner.ajax.edit", compact('data'))->render(); + return response()->json(['status' => true, 'content' => $html], 200); + } + return view("crud.generated.banner.edit", compact('data', 'TableData')); + } + + + public function update(Request $request, $id) + { + createActivityLog(BannerController::class, 'update', ' Banners update'); + $validator = Validator::make($request->all(), [ + //ADD VALIDATION FOR REQIRED FIELDS + ]); + + if ($validator->fails()) { + return response()->json([ + 'error' => $validator->errors(), + ], 500); + } + $requestData = $request->all(); + array_walk_recursive($requestData, function (&$value) { + $value = str_replace(env('APP_URL') . '/', '', $value); + }); + array_walk_recursive($requestData, function (&$value) { + $value = str_replace(env('APP_URL'), '', $value); + }); + DB::beginTransaction(); + try { + $OperationNumber = getOperationNumber(); + $this->modelService->update($OperationNumber, $OperationNumber, null, $requestData, $request->input('banner_id')); + } catch (Exception $e) { + DB::rollBack(); + Log::info($e->getMessage()); + createErrorLog(BannerController::class, 'update', $e->getMessage()); + return response()->json(['status' => false, 'message' => $e->getMessage()], 500); + } + DB::commit(); + if ($request->ajax()) { + return response()->json(['status' => true, 'message' => 'The Banners updated Successfully.'], 200); + } + // return redirect()->route('banner.index')->with('success','The Banners updated Successfully.'); + return redirect()->back()->with('success', 'The Banners updated successfully.'); + } + + public function destroy(Request $request, $id) + { + createActivityLog(BannerController::class, 'destroy', ' Banners destroy'); + DB::beginTransaction(); + try { + $OperationNumber = getOperationNumber(); + $this->modelService->destroy($OperationNumber, $OperationNumber, $id); + } catch (Exception $e) { + DB::rollBack(); + Log::info($e->getMessage()); + createErrorLog(BannerController::class, 'destroy', $e->getMessage()); + return response()->json(['status' => false, 'message' => $e->getMessage()], 500); + } + DB::commit(); + return response()->json(['status' => true, 'message' => 'The Banners Deleted Successfully.'], 200); + } + public function toggle(Request $request, $id) + { + createActivityLog(BannerController::class, 'destroy', ' Banners destroy'); + $data = Banners::findOrFail($id); + $requestData = ['status' => ($data->status == 1) ? 0 : 1]; + DB::beginTransaction(); + try { + $OperationNumber = getOperationNumber(); + $this->modelService->update($OperationNumber, $OperationNumber, null, $requestData, $id); + } catch (Exception $e) { + DB::rollBack(); + Log::info($e->getMessage()); + createErrorLog(BannerController::class, 'destroy', $e->getMessage()); + return response()->json(['status' => false, 'message' => $e->getMessage()], 500); + } + DB::commit(); + return response()->json(['status' => true, 'message' => 'The Banners Deleted Successfully.'], 200); + } +} diff --git a/app/Http/Controllers/WebsiteController.php b/app/Http/Controllers/WebsiteController.php index 42a4115..70ff51b 100644 --- a/app/Http/Controllers/WebsiteController.php +++ b/app/Http/Controllers/WebsiteController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\Articles; +use App\Models\Banners; use App\Models\Benefits; use App\Models\Blogs; use App\Models\Countries; @@ -43,6 +44,7 @@ class WebsiteController extends Controller public function home() { return view('landing.index', [ + 'banners' => Banners::get(), 'benefits' => Benefits::get(), 'success_stories' => Success_stories::get(), 'visa_grants' => Visa_grants::get(), diff --git a/app/Models/Banners.php b/app/Models/Banners.php new file mode 100644 index 0000000..b5b9382 --- /dev/null +++ b/app/Models/Banners.php @@ -0,0 +1,52 @@ +status == 1 ? ' Active ' : 'Inactive'; + } + + protected function createdBy(): Attribute + { + return Attribute::make( + get: fn($value) => User::find($value) ? User::find($value)->name : '', + ); + } + + protected function updatedBy(): Attribute + { + return Attribute::make( + get: fn($value) => User::find($value) ? User::find($value)->name : '', + ); + } +} diff --git a/resources/views/backend/enquiries-list.blade.php b/resources/views/backend/enquiries-list.blade.php index 07b96ec..117057c 100644 --- a/resources/views/backend/enquiries-list.blade.php +++ b/resources/views/backend/enquiries-list.blade.php @@ -42,11 +42,11 @@