Final Commit
@ -593,6 +593,34 @@ class LMS
|
||||
{
|
||||
static $initialized = false;
|
||||
if (!$initialized) {
|
||||
DB::statement("CREATE TABLE IF NOT EXISTS `tbl_logos` (
|
||||
`logo_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`logo` VARCHAR(255),
|
||||
`link` VARCHAR(255),
|
||||
`display_order` INT(11),
|
||||
`status` INT(11),
|
||||
`remarks` TEXT,
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
`createdby` INT(11),
|
||||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`updatedby` INT(11)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
");
|
||||
DB::statement("CREATE TABLE IF NOT EXISTS `tbl_testimonials` (
|
||||
`testimonial_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`video_url` VARCHAR(255),
|
||||
`review` VARCHAR(255),
|
||||
`name` VARCHAR(20) NOT NULL,
|
||||
`designation` VARCHAR(100),
|
||||
`display_order` INT(11),
|
||||
`status` INT(11),
|
||||
`remarks` TEXT,
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
`createdby` INT(11),
|
||||
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`updatedby` INT(11)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
");
|
||||
DB::statement("CREATE TABLE IF NOT EXISTS `tbl_contactus` (
|
||||
`inquiries_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`title` VARCHAR(255),
|
||||
@ -1595,6 +1623,12 @@ class LMS
|
||||
$table->string('photo')->nullable();
|
||||
});
|
||||
}
|
||||
if (!Schema::hasColumn('campaignarticles', 'sub_title')) {
|
||||
Schema::table('campaignarticles', function (Blueprint $table) {
|
||||
// Add the new column to the table
|
||||
$table->string('sub_title')->nullable()->after('title');
|
||||
});
|
||||
}
|
||||
|
||||
$initialized = true;
|
||||
}
|
||||
|
@ -144,7 +144,7 @@
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$OperationNumber = getOperationNumber();
|
||||
$this->modelService->update($OperationNumber, $OperationNumber, null, $requestData, $request->input('campaignarticle_id'));
|
||||
$this->modelService->update($OperationNumber, $OperationNumber, null, $requestData, $id);
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
Log::info($e->getMessage());
|
||||
|
20
app/Http/Controllers/FileController.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class FileController extends Controller
|
||||
{
|
||||
public function upload(Request $request)
|
||||
{
|
||||
$file = $request->file('upload');
|
||||
$filename = uniqid() . '_' . $file->getClientOriginalName();
|
||||
Storage::disk('public')->put($filename, file_get_contents($file));
|
||||
$url = asset('storage/' . $filename);
|
||||
return response()->json([
|
||||
'url' => $url,
|
||||
]);
|
||||
}
|
||||
}
|
200
app/Http/Controllers/LogosController.php
Normal file
@ -0,0 +1,200 @@
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Logos;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Service\CommonModelService;
|
||||
use Log;
|
||||
use Exception;
|
||||
|
||||
class LogosController extends Controller
|
||||
{
|
||||
protected $modelService;
|
||||
public function __construct(Logos $model)
|
||||
{
|
||||
$this->modelService = new CommonModelService($model);
|
||||
}
|
||||
public function index(Request $request)
|
||||
{
|
||||
createActivityLog(LogosController::class, 'index', ' Logos index');
|
||||
$data = Logos::where('status','<>',-1)->orderBy('display_order')->get();
|
||||
|
||||
return view("crud.generated.logos.index", compact('data'));
|
||||
}
|
||||
|
||||
public function create(Request $request)
|
||||
{
|
||||
createActivityLog(LogosController::class, 'create', ' Logos create');
|
||||
$TableData = Logos::where('status','<>',-1)->orderBy('display_order')->get();
|
||||
return view("crud.generated.logos.create",compact('TableData'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
createActivityLog(LogosController::class, 'store', ' Logos 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_logos')]);
|
||||
$request->request->add(['created_at' => date("Y-m-d h:i:s")]);
|
||||
$request->request->add(['updated_at' => date("Y-m-d h:i:s")]);
|
||||
$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(LogosController::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 Logos Created Successfully.'], 200);
|
||||
}
|
||||
return redirect()->route('logos.index')->with('success','The Logos created Successfully.');
|
||||
}
|
||||
|
||||
public function sort(Request $request)
|
||||
{
|
||||
$idOrder = $request->input('id_order');
|
||||
|
||||
foreach ($idOrder as $index => $id) {
|
||||
$companyArticle = Logos::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 = Logos::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(LogosController::class, 'show', ' Logos show');
|
||||
$data = Logos::findOrFail($id);
|
||||
|
||||
return view("crud.generated.logos.show", compact('data'));
|
||||
}
|
||||
|
||||
|
||||
public function edit(Request $request, $id)
|
||||
{
|
||||
createActivityLog(LogosController::class, 'edit', ' Logos edit');
|
||||
$TableData = Logos::where('status','<>',-1)->orderBy('display_order')->get();
|
||||
$data = Logos::findOrFail($id);
|
||||
if ($request->ajax()) {
|
||||
$html = view("crud.generated.logos.ajax.edit", compact('data'))->render();
|
||||
return response()->json(['status' => true, 'content' => $html], 200);
|
||||
}
|
||||
return view("crud.generated.logos.edit", compact('data','TableData'));
|
||||
}
|
||||
|
||||
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
createActivityLog(LogosController::class, 'update', ' Logos 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('logo_id'));
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
Log::info($e->getMessage());
|
||||
createErrorLog(LogosController::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 Logos updated Successfully.'], 200);
|
||||
}
|
||||
// return redirect()->route('logos.index')->with('success','The Logos updated Successfully.');
|
||||
return redirect()->back()->with('success', 'The Logos updated successfully.');
|
||||
}
|
||||
|
||||
public function destroy(Request $request,$id)
|
||||
{
|
||||
createActivityLog(LogosController::class, 'destroy', ' Logos destroy');
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$OperationNumber = getOperationNumber();
|
||||
$this->modelService->destroy($OperationNumber, $OperationNumber, $id);
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
Log::info($e->getMessage());
|
||||
createErrorLog(LogosController::class, 'destroy', $e->getMessage());
|
||||
return response()->json(['status' => false, 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
DB::commit();
|
||||
return response()->json(['status'=>true,'message'=>'The Logos Deleted Successfully.'],200);
|
||||
}
|
||||
public function toggle(Request $request,$id)
|
||||
{
|
||||
createActivityLog(LogosController::class, 'destroy', ' Logos destroy');
|
||||
$data = Logos::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(LogosController::class, 'destroy', $e->getMessage());
|
||||
return response()->json(['status' => false, 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
DB::commit();
|
||||
return response()->json(['status'=>true,'message'=>'The Logos Deleted Successfully.'],200);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -6,8 +6,11 @@ use App\Http\Controllers\Controller;
|
||||
use App\Mail\CustomMailer;
|
||||
use App\Models\Agents;
|
||||
use App\Models\Campaigns;
|
||||
use App\Models\Campaignarticles;
|
||||
use App\Models\Testimonials;
|
||||
use App\Models\Countries;
|
||||
use App\Models\Leadcategories;
|
||||
use App\Models\Logos;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Registrations;
|
||||
use App\Models\Sources;
|
||||
@ -18,6 +21,7 @@ use App\Service\CommonModelService;
|
||||
use Exception;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use LMS;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use NewRegistrationAdminNotification;
|
||||
|
||||
class RegistrationsController extends Controller
|
||||
@ -26,6 +30,16 @@ class RegistrationsController extends Controller
|
||||
public function __construct(Registrations $model)
|
||||
{
|
||||
$this->modelService = new CommonModelService($model);
|
||||
$articles = Campaignarticles::where('status', 1)->latest()->get();
|
||||
$testimonials = Testimonials::where('status', 1)->latest()->get();
|
||||
$logos = Logos::where('status',1)->latest()->get();
|
||||
|
||||
View::share([
|
||||
'articles'=> $articles,
|
||||
'testimonials'=>$testimonials,
|
||||
'logos'=>$logos,
|
||||
|
||||
]);
|
||||
}
|
||||
public function index(Request $request)
|
||||
{
|
||||
@ -225,20 +239,31 @@ class RegistrationsController extends Controller
|
||||
}
|
||||
if ($Campaign != null) {
|
||||
$viewPath = env("CLIENT_PATH") . ".landing";
|
||||
if (view()->exists($viewPath))
|
||||
if (view()->exists($viewPath)) {
|
||||
return view($viewPath, compact("Campaign"));
|
||||
else
|
||||
} else {
|
||||
// dd($article);
|
||||
return view(env("CLIENT_PATH") . '.home', compact("Campaign"));
|
||||
}
|
||||
} else {
|
||||
$Campaign = LMS::getActiveCampaign();
|
||||
$viewPath = env("CLIENT_PATH") . ".landing";
|
||||
if (view()->exists($viewPath))
|
||||
if (view()->exists($viewPath)) {
|
||||
return view($viewPath, compact("Campaign"));
|
||||
else
|
||||
} else {
|
||||
return view(env("CLIENT_PATH") . '.home', compact("Campaign"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public function getTestimonial()
|
||||
{
|
||||
|
||||
|
||||
$testimonials = Testimonials::where('status', 1)->latest()->get();
|
||||
// dd($testimonials);
|
||||
return response()->json($testimonials);
|
||||
}
|
||||
public function reception(Request $request)
|
||||
{
|
||||
//Office ko Reception Bata directly fill-in garne form
|
||||
|
201
app/Http/Controllers/TestimonialsController.php
Normal file
@ -0,0 +1,201 @@
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Testimonials;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Service\CommonModelService;
|
||||
use Log;
|
||||
use Exception;
|
||||
|
||||
class TestimonialsController extends Controller
|
||||
{
|
||||
protected $modelService;
|
||||
public function __construct(Testimonials $model)
|
||||
{
|
||||
$this->modelService = new CommonModelService($model);
|
||||
}
|
||||
public function index(Request $request)
|
||||
{
|
||||
createActivityLog(TestimonialsController::class, 'index', ' Testimonials index');
|
||||
$data = Testimonials::where('status','<>',-1)->orderBy('display_order')->get();
|
||||
|
||||
return view("crud.generated.testimonials.index", compact('data'));
|
||||
}
|
||||
|
||||
public function create(Request $request)
|
||||
{
|
||||
createActivityLog(TestimonialsController::class, 'create', ' Testimonials create');
|
||||
$TableData = Testimonials::where('status','<>',-1)->orderBy('display_order')->get();
|
||||
return view("crud.generated.testimonials.create",compact('TableData'));
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
createActivityLog(TestimonialsController::class, 'store', ' Testimonials 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_testimonials')]);
|
||||
$request->request->add(['created_at' => date("Y-m-d h:i:s")]);
|
||||
$request->request->add(['updated_at' => date("Y-m-d h:i:s")]);
|
||||
$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(TestimonialsController::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 Testimonials Created Successfully.'], 200);
|
||||
}
|
||||
return redirect()->route('testimonials.index')->with('success','The Testimonials created Successfully.');
|
||||
}
|
||||
|
||||
public function sort(Request $request)
|
||||
{
|
||||
$idOrder = $request->input('id_order');
|
||||
|
||||
foreach ($idOrder as $index => $id) {
|
||||
$companyArticle = Testimonials::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 = Testimonials::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(TestimonialsController::class, 'show', ' Testimonials show');
|
||||
$data = Testimonials::findOrFail($id);
|
||||
|
||||
return view("crud.generated.testimonials.show", compact('data'));
|
||||
}
|
||||
|
||||
|
||||
public function edit(Request $request, $id)
|
||||
{
|
||||
createActivityLog(TestimonialsController::class, 'edit', ' Testimonials edit');
|
||||
$TableData = Testimonials::where('status','<>',-1)->orderBy('display_order')->get();
|
||||
$data = Testimonials::findOrFail($id);
|
||||
if ($request->ajax()) {
|
||||
$html = view("crud.generated.testimonials.ajax.edit", compact('data'))->render();
|
||||
return response()->json(['status' => true, 'content' => $html], 200);
|
||||
}
|
||||
return view("crud.generated.testimonials.edit", compact('data','TableData'));
|
||||
}
|
||||
|
||||
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
// dd($request->all());
|
||||
createActivityLog(TestimonialsController::class, 'update', ' Testimonials 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, $id);
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
Log::info($e->getMessage());
|
||||
createErrorLog(TestimonialsController::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 Testimonials updated Successfully.'], 200);
|
||||
}
|
||||
// return redirect()->route('testimonials.index')->with('success','The Testimonials updated Successfully.');
|
||||
return redirect()->back()->with('success', 'The Testimonials updated successfully.');
|
||||
}
|
||||
|
||||
public function destroy(Request $request,$id)
|
||||
{
|
||||
createActivityLog(TestimonialsController::class, 'destroy', ' Testimonials destroy');
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
$OperationNumber = getOperationNumber();
|
||||
$this->modelService->destroy($OperationNumber, $OperationNumber, $id);
|
||||
} catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
Log::info($e->getMessage());
|
||||
createErrorLog(TestimonialsController::class, 'destroy', $e->getMessage());
|
||||
return response()->json(['status' => false, 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
DB::commit();
|
||||
return response()->json(['status'=>true,'message'=>'The Testimonials Deleted Successfully.'],200);
|
||||
}
|
||||
public function toggle(Request $request,$id)
|
||||
{
|
||||
createActivityLog(TestimonialsController::class, 'destroy', ' Testimonials destroy');
|
||||
$data = Testimonials::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(TestimonialsController::class, 'destroy', $e->getMessage());
|
||||
return response()->json(['status' => false, 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
DB::commit();
|
||||
return response()->json(['status'=>true,'message'=>'The Testimonials Deleted Successfully.'],200);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,42 +1,44 @@
|
||||
<?php
|
||||
namespace App\Models;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\CreatedUpdatedBy;
|
||||
namespace App\Models;
|
||||
|
||||
class Campaignarticles extends Model
|
||||
{
|
||||
use HasFactory, CreatedUpdatedBy;
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\CreatedUpdatedBy;
|
||||
|
||||
protected $primaryKey = 'campaignarticle_id';
|
||||
public $timestamps = true;
|
||||
protected $fillable =[
|
||||
'campaigns_id',
|
||||
'parent_article',
|
||||
'title',
|
||||
'alias',
|
||||
'text',
|
||||
'link',
|
||||
'cover_photo',
|
||||
'thumb',
|
||||
'display_order',
|
||||
'status',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'createdby',
|
||||
'updatedby',
|
||||
class Campaignarticles extends Model
|
||||
{
|
||||
use HasFactory, CreatedUpdatedBy;
|
||||
|
||||
];
|
||||
protected $primaryKey = 'campaignarticle_id';
|
||||
public $timestamps = true;
|
||||
protected $fillable = [
|
||||
'campaigns_id',
|
||||
'parent_article',
|
||||
'sub_title',
|
||||
'title',
|
||||
'alias',
|
||||
'text',
|
||||
'link',
|
||||
'cover_photo',
|
||||
'thumb',
|
||||
'display_order',
|
||||
'status',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'createdby',
|
||||
'updatedby',
|
||||
|
||||
protected $appends = ['status_name'];
|
||||
];
|
||||
|
||||
protected function getStatusNameAttribute()
|
||||
{
|
||||
return $this->status == 1 ? '<span class="badge text-bg-success-soft"> Active </span>' : '<span class="badge text-bg-danger-soft">Inactive</span>';
|
||||
}
|
||||
protected $appends = ['status_name'];
|
||||
|
||||
protected function getStatusNameAttribute()
|
||||
{
|
||||
return $this->status == 1 ? '<span class="badge text-bg-success-soft"> Active </span>' : '<span class="badge text-bg-danger-soft">Inactive</span>';
|
||||
}
|
||||
|
||||
protected function createdBy(): Attribute
|
||||
{
|
||||
@ -51,4 +53,4 @@
|
||||
get: fn ($value) => User::find($value) ? User::find($value)->name : '',
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
49
app/Models/Logos.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
namespace App\Models;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\CreatedUpdatedBy;
|
||||
|
||||
class Logos extends Model
|
||||
{
|
||||
use HasFactory, CreatedUpdatedBy;
|
||||
|
||||
protected $primaryKey = 'logo_id';
|
||||
public $timestamps = true;
|
||||
protected $fillable =[
|
||||
'logo',
|
||||
'link',
|
||||
'display_order',
|
||||
'status',
|
||||
'remarks',
|
||||
'created_at',
|
||||
'createdby',
|
||||
'updated_at',
|
||||
'updatedby',
|
||||
|
||||
];
|
||||
|
||||
protected $appends = ['status_name'];
|
||||
|
||||
protected function getStatusNameAttribute()
|
||||
{
|
||||
return $this->status == 1 ? '<span class="badge text-bg-success-soft"> Active </span>' : '<span class="badge text-bg-danger-soft">Inactive</span>';
|
||||
}
|
||||
|
||||
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 : '',
|
||||
);
|
||||
}
|
||||
}
|
52
app/Models/Testimonials.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Eloquent\Casts\Attribute;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Traits\CreatedUpdatedBy;
|
||||
|
||||
class Testimonials extends Model
|
||||
{
|
||||
use HasFactory, CreatedUpdatedBy;
|
||||
|
||||
protected $primaryKey = 'testimonial_id';
|
||||
public $timestamps = true;
|
||||
protected $fillable = [
|
||||
'video_url',
|
||||
'review',
|
||||
'name',
|
||||
'designation',
|
||||
'display_order',
|
||||
'status',
|
||||
'remarks',
|
||||
'created_at',
|
||||
'createdby',
|
||||
'updated_at',
|
||||
'updatedby',
|
||||
|
||||
];
|
||||
|
||||
protected $appends = ['status_name'];
|
||||
|
||||
protected function getStatusNameAttribute()
|
||||
{
|
||||
return $this->status == 1 ? '<span class="badge text-bg-success-soft"> Active </span>' : '<span class="badge text-bg-danger-soft">Inactive</span>';
|
||||
}
|
||||
|
||||
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 : '',
|
||||
);
|
||||
}
|
||||
}
|
@ -284,6 +284,9 @@
|
||||
{{LMS::createMenuLink("Followups",route('followups.index'))}}
|
||||
{{LMS::createMenuLink("Most Asked Questions",route('faqs.index'))}}
|
||||
{{LMS::createMenuLink("Inquiries",route('contactus.index'))}}
|
||||
{{LMS::createMenuLink("Testimonials",route('testimonials.index'))}}
|
||||
{{LMS::createMenuLink("Manage Logos",route('logos.index'))}}
|
||||
|
||||
|
||||
</div>
|
||||
</ul>
|
||||
|
@ -1,61 +1,67 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
|
||||
<h4 class="mb-sm-0">Add Campaign</h4>
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
|
||||
<li class="breadcrumb-item active">Add Campaign</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
|
||||
<h4 class="mb-sm-0">Add Campaign</h4>
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li>
|
||||
<li class="breadcrumb-item active">Add Campaign</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
<form action="{{route('campaignarticles.store')}}" id="storeCustomForm" method="POST">
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
<form action="{{ route('campaignarticles.store') }}" id="storeCustomForm" method="POST">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">{{createText("title","title","Title")}}</div>
|
||||
<div class="col-lg-12 pb-2">{{createTextarea("text","text ckeditor-classic","Description")}}</div>
|
||||
<div class="col-lg-12">{{createText("link","link","Link")}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">{{ createText('title', 'title', 'Title') }}</div>
|
||||
<div class="col-lg-12">{{ createText('sub_title', 'sub_title', 'Sub Title') }}</div>
|
||||
<div class="col-lg-12 pb-2">{{ createTextarea('text', 'text ckeditor-classic', 'Description') }}
|
||||
</div>
|
||||
<div class="col-lg-12">{{ createText('link', 'link', 'Link') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title mb-0">Attributes</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">{{createCustomSelect('tbl_campaigns', 'title', 'campaign_id', '', 'Campaigns Id','campaigns_id', 'form-control select2','status<>-1')}}</div>
|
||||
<div class="col-lg-12">{{createCustomSelect('tbl_campaignarticles', 'title', 'campaignarticle_id', '', 'Parent Article','parent_article', 'form-control select2','status<>-1')}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title mb-0">Images</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 pb-2">{{createImageInput("cover_photo","Cover Photo")}}</div>
|
||||
<div class="col-lg-12 pb-2">{{createImageInput("thumb","Thumb")}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<?php createButton("btn-primary btn-store", "", "Submit"); ?>
|
||||
<?php createButton("btn-danger btn-cancel", "", "Cancel", route('campaignarticles.index')); ?>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title mb-0">Attributes</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
{{ createCustomSelect('tbl_campaigns', 'title', 'campaign_id', '', 'Campaigns Id', 'campaigns_id', 'form-control select2', 'status<>-1') }}
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
{{ createCustomSelect('tbl_campaignarticles', 'title', 'campaignarticle_id', '', 'Parent Article', 'parent_article', 'form-control select2', 'status<>-1') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title mb-0">Images</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 pb-2">{{ createImageInput('cover_photo', 'Cover Photo') }}</div>
|
||||
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<?php createButton('btn-primary btn-store', '', 'Submit'); ?>
|
||||
<?php createButton('btn-danger btn-cancel', '', 'Cancel', route('campaignarticles.index')); ?>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@endsection
|
@ -23,6 +23,7 @@
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">{{createText("title","title","Title",'',$data->title)}}</div>
|
||||
<div class="col-lg-6">{{createText("sub_title","sub_title","Sub Title",'',$data->sub_title)}}</div>
|
||||
<div class="col-lg-12 pb-2">{{createTextarea("text","text ckeditor-classic","Text",$data->text)}}</div>
|
||||
<div class="col-lg-6">{{createText("link","link","Link",'',$data->link)}}</div>
|
||||
</div>
|
||||
|
26
resources/views/crud/generated/logos/create.blade.php
Normal file
@ -0,0 +1,26 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2 class="">{{ label('Add Logos') }}</h2>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('logos.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<form action="{{ route('logos.store') }}" id="storeCustomForm" method="POST">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-lg-12 pb-2">
|
||||
{{createImageInput('logo','Logo')}}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('link', 'link', 'Link') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createPlainTextArea('remarks', 'remarks ', 'Remarks') }}
|
||||
</div> <br>
|
||||
<div class="col-md-12"><?php createButton('btn-primary btn-store', '', 'Submit'); ?>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('logos.index')); ?>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
27
resources/views/crud/generated/logos/edit.blade.php
Normal file
@ -0,0 +1,27 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2 class="">{{ label('Edit Logos') }}</h2>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('logos.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<form action="{{ route('logos.update', [$data->logo_id]) }}" id="updateCustomForm" method="POST">
|
||||
@csrf <input type=hidden name='logo_id' value='{{ $data->logo_id }}' />
|
||||
<div class="row">
|
||||
<div class="col-lg-12 pb-2">
|
||||
<div class="col-lg-12 pb-2">{{ createImageInput('thumb', 'Thumb', '', $data->logo) }}
|
||||
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('link', 'link', 'Link', '', $data->link) }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createPlainTextArea('remarks', '', 'Remarks', $data->remarks) }}
|
||||
</div>
|
||||
<div class="col-md-12"><?php createButton('btn-primary btn-update', '', 'Submit'); ?>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('logos.index')); ?>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
234
resources/views/crud/generated/logos/index.blade.php
Normal file
@ -0,0 +1,234 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h2>{{ label('Logos List') }}</h2>
|
||||
<a href="{{ route('logos.create') }}" class="btn btn-primary"><span>{{ label('Create New') }}</span></a>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table dataTable" id="tbl_logos" data-url="{{ route('logos.sort') }}">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('Sn.') }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('logo') }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label('link') }}</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span class="overline-title">{{ label('Action') }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
<tr data-id="{{ $item->logo_id }}" data-display_order="{{ $item->display_order }}"
|
||||
class="draggable-row <?php echo $item->status == 0 ? 'bg-light bg-danger' : ''; ?>">
|
||||
<td class="tb-col">{{ $i++ }}</td>
|
||||
<td class="tb-col">{{ showImageThumb($item->logo) }}</td>
|
||||
<td class="tb-col">{{ $item->link }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-soft-secondary btn-sm dropdown" type="button"
|
||||
data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="ri-more-fill align-middle"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a href="{{ route('logos.show', [$item->logo_id]) }}" class="dropdown-item"><i
|
||||
class="ri-eye-fill align-bottom me-2 text-muted"></i>
|
||||
{{ label('View') }}</a></li>
|
||||
<li><a href="{{ route('logos.edit', [$item->logo_id]) }}"
|
||||
class="dropdown-item edit-item-btn"><i
|
||||
class="ri-pencil-fill align-bottom me-2 text-muted"></i>
|
||||
{{ label('Edit') }}</a></li>
|
||||
<li>
|
||||
<a href="{{ route('logos.toggle', [$item->logo_id]) }}"
|
||||
class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
|
||||
<i class="ri-article-fill align-bottom me-2 text-muted"></i>
|
||||
{{ $item->status == 1 ? label('Unpublish') : label('Publish') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ route('logos.destroy', [$item->logo_id]) }}"
|
||||
class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
|
||||
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i>
|
||||
{{ label('Delete') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('css')
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
|
||||
@endpush
|
||||
@push('js')
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready(function(e) {
|
||||
$('.change-alias-badge').on('click', function() {
|
||||
var aliasWrapper = $(this).prev('.alias-wrapper');
|
||||
var aliasSpan = aliasWrapper.find('.alias');
|
||||
var aliasInput = aliasWrapper.find('.alias-input');
|
||||
var isEditing = $(this).hasClass('editing');
|
||||
aliasInput.toggleClass("d-none");
|
||||
if (isEditing) {
|
||||
// Update alias text and switch to non-editing state
|
||||
var newAlias = aliasInput.val();
|
||||
aliasSpan.text(newAlias);
|
||||
aliasSpan.show();
|
||||
aliasInput.hide();
|
||||
$(this).removeClass('editing').text('Change Alias');
|
||||
var articleId = $(aliasWrapper).data('id');
|
||||
var ajaxUrl = "{{ route('logos.updatealias') }}";
|
||||
var data = {
|
||||
articleId: articleId,
|
||||
newAlias: newAlias
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'POST',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: data,
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Switch to editing state
|
||||
aliasSpan.hide();
|
||||
aliasInput.show().focus();
|
||||
$(this).addClass('editing').text('Save Alias');
|
||||
}
|
||||
});
|
||||
var mytable = $(".dataTable").DataTable({
|
||||
ordering: true,
|
||||
rowReorder: {
|
||||
//selector: 'tr'
|
||||
},
|
||||
});
|
||||
|
||||
var isRowReorderComplete = false;
|
||||
|
||||
mytable.on('row-reorder', function(e, diff, edit) {
|
||||
isRowReorderComplete = true;
|
||||
});
|
||||
|
||||
mytable.on('draw', function() {
|
||||
if (isRowReorderComplete) {
|
||||
var url = mytable.table().node().getAttribute('data-url');
|
||||
var ids = mytable.rows().nodes().map(function(node) {
|
||||
return $(node).data('id');
|
||||
}).toArray();
|
||||
|
||||
console.log(ids);
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "POST",
|
||||
headers: {
|
||||
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: {
|
||||
id_order: ids
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
isRowReorderComplete = false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function confirmDelete(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'You will not be able to recover this item!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Delete',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'DELETE',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function confirmToggle(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Proceed',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'GET',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endpush
|
29
resources/views/crud/generated/logos/show.blade.php
Normal file
@ -0,0 +1,29 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2><?php echo label('View Details'); ?></h2>
|
||||
<?php createButton("btn-primary btn-cancel","","Back to List",route('logos.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
|
||||
|
||||
|
||||
<p><b>Logo : </b> <span>{{$data->logo}}</span></p><p><b>Link : </b> <span>{{$data->link}}</span></p><p><b>Display Order : </b> <span>{{$data->display_order}}</span></p><p><b>Status : </b> <span
|
||||
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Remarks : </b> <span>{{$data->remarks}}</span></p><p><b>Createdby : </b> <span>{{$data->createdby}}</span></p><p><b>Updatedby : </b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On :</b> <span>{{$data->created_at}}</span></p>
|
||||
<p><b>Created By :</b> <span>{{$data->createdBy}}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On :</b> <span>{{$data->updated_at}}</span></p>
|
||||
<p><b>Updated By :</b> <span>{{$data->updatedBy}}</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endSection
|
34
resources/views/crud/generated/testimonials/create.blade.php
Normal file
@ -0,0 +1,34 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2 class="">{{ label('Add Testimonials') }}</h2>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('testimonials.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<form action="{{ route('testimonials.store') }}" id="storeCustomForm" method="POST">
|
||||
@csrf
|
||||
<div class="row">
|
||||
{{-- <div class="col-lg-6">{{ createText('video_url', 'video_url', 'Video Url') }}
|
||||
</div> --}}
|
||||
<div class="col-lg-12 pb-2">
|
||||
<label for="video">Choose a video:</label>
|
||||
<input type="file" id="video" name="video_url" accept="video/*">
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">{{ createText('review', 'review', 'Review') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('name', 'name', 'Name') }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('designation', 'designation', 'Designation') }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createPlainTextArea('remarks', 'remarks ', 'Remarks') }}
|
||||
</div> <br>
|
||||
<div class="col-md-12"><?php createButton('btn-primary btn-store', '', 'Submit'); ?>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('testimonials.index')); ?>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
34
resources/views/crud/generated/testimonials/edit.blade.php
Normal file
@ -0,0 +1,34 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2 class="">{{ label('Edit Testimonials') }}</h2>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('testimonials.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<form action="{{ route('testimonials.update', [$data->testimonial_id]) }}" id="updateCustomForm" method="POST">
|
||||
@csrf <input type=hidden name='testimonial_id' value='{{ $data->testimonial_id }}' />
|
||||
<div class="row">
|
||||
<div class="col-lg-12 pb-2">
|
||||
<label for="video">Choose a video:</label>
|
||||
<input type="file" id="video" name="video_url" accept="video/*">
|
||||
<div>Current video URL: {{ $data->video_url }}</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">{{ createText('review', 'review', 'Review', '', $data->review) }}
|
||||
</div>
|
||||
<div class="col-lg-6">{{ createText('name', 'name', 'Name', '', $data->name) }}
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
{{ createText('designation', 'designation', 'Designation', '', $data->designation) }}
|
||||
</div>
|
||||
<div class="col-lg-12 pb-2">{{ createPlainTextArea('remarks', '', 'Remarks', $data->remarks) }}
|
||||
</div>
|
||||
<div class="col-md-12"><?php createButton('btn-primary btn-update', '', 'Submit'); ?>
|
||||
<?php createButton('btn-primary btn-cancel', '', 'Cancel', route('testimonials.index')); ?>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
231
resources/views/crud/generated/testimonials/index.blade.php
Normal file
@ -0,0 +1,231 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h2>{{ label("Testimonials List") }}</h2>
|
||||
<a href="{{ route('testimonials.create') }}" class="btn btn-primary"><span>{{label("Create New")}}</span></a>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table dataTable" id="tbl_testimonials" data-url="{{ route('testimonials.sort') }}">
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th class="tb-col"><span class="overline-title">{{label("Sn.")}}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("video_url") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("review") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("name") }}</span></th>
|
||||
<th class="tb-col"><span class="overline-title">{{ label("designation") }}</span></th>
|
||||
<th class="tb-col" data-sortable="false"><span
|
||||
class="overline-title">{{ label("Action") }}</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($data as $item)
|
||||
|
||||
<tr data-id="{{$item->testimonial_id}}" data-display_order="{{$item->display_order}}" class="draggable-row <?php echo ($item->status==0)?"bg-light bg-danger":""; ?>">
|
||||
<td class="tb-col">{{ $i++ }}</td><td class="tb-col">{{ $item->video_url }}</td>
|
||||
<td class="tb-col">{{ $item->review }}</td>
|
||||
<td class="tb-col">{{ $item->name }}</td>
|
||||
<td class="tb-col">{{ $item->designation }}</td>
|
||||
<td class="tb-col">
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-soft-secondary btn-sm dropdown" type="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="ri-more-fill align-middle"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a href="{{route('testimonials.show',[$item->testimonial_id])}}" class="dropdown-item"><i class="ri-eye-fill align-bottom me-2 text-muted"></i> {{label("View")}}</a></li>
|
||||
<li><a href="{{route('testimonials.edit',[$item->testimonial_id])}}" class="dropdown-item edit-item-btn"><i class="ri-pencil-fill align-bottom me-2 text-muted"></i> {{label("Edit")}}</a></li>
|
||||
<li>
|
||||
<a href="{{route('testimonials.toggle',[$item->testimonial_id])}}" class="dropdown-item toggle-item-btn" onclick="confirmToggle(this.href)">
|
||||
<i class="ri-article-fill align-bottom me-2 text-muted"></i> {{ ($item->status==1)?label('Unpublish'):label('Publish') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{route('testimonials.destroy',[$item->testimonial_id])}}" class="dropdown-item remove-item-btn" onclick="confirmDelete(this.href)">
|
||||
<i class="ri-delete-bin-fill align-bottom me-2 text-muted"></i> {{ label('Delete') }}
|
||||
</a>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@push("css")
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.5/css/dataTables.bootstrap4.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/rowreorder/1.4.0/css/rowReorder.dataTables.min.css">
|
||||
@endpush
|
||||
@push("js")
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/1.13.5/js/jquery.dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.4.1/js/buttons.html5.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/rowreorder/1.4.0/js/dataTables.rowReorder.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready(function(e) {
|
||||
$('.change-alias-badge').on('click', function() {
|
||||
var aliasWrapper = $(this).prev('.alias-wrapper');
|
||||
var aliasSpan = aliasWrapper.find('.alias');
|
||||
var aliasInput = aliasWrapper.find('.alias-input');
|
||||
var isEditing = $(this).hasClass('editing');
|
||||
aliasInput.toggleClass("d-none");
|
||||
if (isEditing) {
|
||||
// Update alias text and switch to non-editing state
|
||||
var newAlias = aliasInput.val();
|
||||
aliasSpan.text(newAlias);
|
||||
aliasSpan.show();
|
||||
aliasInput.hide();
|
||||
$(this).removeClass('editing').text('Change Alias');
|
||||
var articleId = $(aliasWrapper).data('id');
|
||||
var ajaxUrl = "{{ route('testimonials.updatealias') }}";
|
||||
var data = {
|
||||
articleId: articleId,
|
||||
newAlias: newAlias
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'POST',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: data,
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Switch to editing state
|
||||
aliasSpan.hide();
|
||||
aliasInput.show().focus();
|
||||
$(this).addClass('editing').text('Save Alias');
|
||||
}
|
||||
});
|
||||
var mytable = $(".dataTable").DataTable({
|
||||
ordering: true,
|
||||
rowReorder: {
|
||||
//selector: 'tr'
|
||||
},
|
||||
});
|
||||
|
||||
var isRowReorderComplete = false;
|
||||
|
||||
mytable.on('row-reorder', function(e, diff, edit) {
|
||||
isRowReorderComplete = true;
|
||||
});
|
||||
|
||||
mytable.on('draw', function() {
|
||||
if (isRowReorderComplete) {
|
||||
var url = mytable.table().node().getAttribute('data-url');
|
||||
var ids = mytable.rows().nodes().map(function(node) {
|
||||
return $(node).data('id');
|
||||
}).toArray();
|
||||
|
||||
console.log(ids);
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "POST",
|
||||
headers: {
|
||||
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
data: {
|
||||
id_order: ids
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
isRowReorderComplete=false;
|
||||
}
|
||||
});
|
||||
});
|
||||
function confirmDelete(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'You will not be able to recover this item!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Delete',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'DELETE',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Deleted!', 'The item has been deleted.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred while deleting the item.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
function confirmToggle(url) {
|
||||
event.preventDefault();
|
||||
Swal.fire({
|
||||
title: 'Are you sure?',
|
||||
text: 'Publish Status of Item will be changed!! if Unpublished, links will be dead!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Proceed',
|
||||
cancelButtonText: 'Cancel',
|
||||
reverseButtons: true
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'GET',
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
Swal.fire('Updated!', 'Publishing Status has been updated.', 'success');
|
||||
location.reload();
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
Swal.fire('Error!', 'An error occurred.', 'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@endpush
|
||||
|
29
resources/views/crud/generated/testimonials/show.blade.php
Normal file
@ -0,0 +1,29 @@
|
||||
@extends('backend.template')
|
||||
@section('content')
|
||||
<div class='card'>
|
||||
<div class='card-header d-flex justify-content-between align-items-center'>
|
||||
<h2><?php echo label('View Details'); ?></h2>
|
||||
<?php createButton("btn-primary btn-cancel","","Back to List",route('testimonials.index')); ?>
|
||||
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
|
||||
|
||||
|
||||
<p><b>Video Url : </b> <span>{{$data->video_url}}</span></p><p><b>Review : </b> <span>{{$data->review}}</span></p><p><b>Name : </b> <span>{{$data->name}}</span></p><p><b>Designation : </b> <span>{{$data->designation}}</span></p><p><b>Display Order : </b> <span>{{$data->display_order}}</span></p><p><b>Status : </b> <span
|
||||
class="{{$data->status == 1 ? 'text-success' : 'text-danger'}}">{{$data->status == 1 ? 'Active' : 'Inactive'}}</span></p><p><b>Remarks : </b> <span>{{$data->remarks}}</span></p><p><b>Createdby : </b> <span>{{$data->createdby}}</span></p><p><b>Updatedby : </b> <span>{{$data->updatedby}}</span></p><div class="d-flex justify-content-between">
|
||||
<div>
|
||||
<p><b>Created On :</b> <span>{{$data->created_at}}</span></p>
|
||||
<p><b>Created By :</b> <span>{{$data->createdBy}}</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><b>Updated On :</b> <span>{{$data->updated_at}}</span></p>
|
||||
<p><b>Updated By :</b> <span>{{$data->updatedBy}}</span></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endSection
|
@ -3,11 +3,13 @@
|
||||
|
||||
<div class="section-content">
|
||||
<div class="row">
|
||||
|
||||
@php
|
||||
$articleTwo = $articles->where('display_order',2)->first();
|
||||
@endphp
|
||||
<div class="col-lg-4 col-md-12">
|
||||
<div class="twm-explore-media-wrap">
|
||||
<div class="twm-media">
|
||||
<img src="{{asset('raffels/assets/images/gir-large.png')}}" alt="">
|
||||
<img src="{{$articleTwo->thumb}}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -24,11 +26,12 @@
|
||||
|
||||
<div class="twm-title-small">About Raffels Educare</div>
|
||||
<div class="twm-title-large">
|
||||
<h2>Your Trust Our Commitment </h2>
|
||||
<p>Raffles Educare Associates Pvt. Ltd., established in 2005, is one of the best educational consultancy with a successful track record in the overseas education.Over the 15 years of excellence we have 97% visa success rate along with highest student satisfaction, fulfilling the career dreams of many students. Since the year of inception, we have been providing educational services of international standards and escalated to be one of the leading institutions. We have our head office located at Kathmandu, capital city of Nepal and other branches at the major cities such as Itahari, Damauli, Pokhara, and further extension in progress in the country as well as abroad. </p>
|
||||
<h2>{{$articleTwo->title}}</h2>
|
||||
{{-- @dd($article) --}}
|
||||
<p>{!!$articleTwo->text!!}</p>
|
||||
</div>
|
||||
<div class="twm-upload-file">
|
||||
<a class="site-button" href="tel:9821313323">Give us a call</a>
|
||||
<a class="site-button" href="tel:{{$articleTwo->link}}">Give us a call</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -4,23 +4,21 @@
|
||||
<div class="section-content">
|
||||
<div class="twm-explore-content-2">
|
||||
<div class="row">
|
||||
|
||||
@php
|
||||
$articleThree = $articles->where('display_order',3)->first();
|
||||
@endphp
|
||||
<div class="col-lg-8 col-md-12">
|
||||
<div class="twm-explore-content-outer2">
|
||||
<div class="twm-explore-top-section">
|
||||
<div class="twm-title-small">Meet Our Counselor</div>
|
||||
<div class="twm-title-large">
|
||||
<h2>Empower, Inspire, Achieve</h2>
|
||||
<p>At Raffles Educare, we take pride in introducing you to our dedicated and highly
|
||||
experienced counselor who is here to guide you through your educational journey.
|
||||
Our counselor is not just a professional but also a compassionate individual who
|
||||
understands the unique needs and aspirations of each student.
|
||||
|
||||
|
||||
.</p>
|
||||
<h2>{{$articleThree->title}}</h2>
|
||||
<p>
|
||||
{!!$articleThree->text!!}
|
||||
</p>
|
||||
</div>
|
||||
<div class="twm-read-more">
|
||||
<a href="tel:9821313323" class="site-button">Call Now</a>
|
||||
<a href="tel:{{$articleThree->link}}" class="site-button">Call Now</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -31,7 +29,7 @@
|
||||
<div class="col-lg-4 col-md-12">
|
||||
<div class="twm-explore-media-wrap2">
|
||||
<div class="twm-media">
|
||||
<img src="{{asset('raffels/assets/images/gir-large-2.png')}}" alt="">
|
||||
<img src="{{$articleThree->thumb}}" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -12,8 +12,11 @@
|
||||
Stay connect to get upcoming events with
|
||||
<span class="site-text-primary">Raffels</span>
|
||||
</div>
|
||||
@php
|
||||
$articleOne = $articles->where('display_order',1)->first();
|
||||
@endphp
|
||||
<div class="twm-bnr-title-large">
|
||||
Find Your Perfect <span class="site-text-white">Destinations</span> </div>
|
||||
{{$articleOne->title}} <span class="site-text-white">{{$articleOne->sub_title}}</span> </div>
|
||||
<div class="twm-bnr-discription">
|
||||
Adding wings to Your Dreams
|
||||
</div>
|
||||
@ -24,7 +27,7 @@
|
||||
<div class="col-xl-6 col-lg-6 col-md-12 twm-bnr-right-section">
|
||||
<div class="twm-bnr-right-content">
|
||||
<div class="bnr-media">
|
||||
<img src="{{asset('raffels/assets/images/home-6/banner.png')}}" alt="#">
|
||||
<img src="{{$articleOne->thumb}}" alt="#">
|
||||
</div>
|
||||
<div class="bnr-bg-circle">
|
||||
<span></span>
|
||||
|
@ -1,242 +1,165 @@
|
||||
<div id = "testimonials" class="section-full p-t120 p-b90 site-bg-white twm-testimonial-v-area">
|
||||
<style>
|
||||
<style>
|
||||
.testimonials-container {
|
||||
max-width: 900px;
|
||||
margin: 10px auto;
|
||||
line-height: 1.9;
|
||||
font-family: "Roboto", sans-serif;
|
||||
}
|
||||
}
|
||||
|
||||
.testimonials-container section {
|
||||
padding: 20px 0;
|
||||
padding: 20px 0;
|
||||
}
|
||||
|
||||
.testimonials-container h2 {
|
||||
font-size: 40px;
|
||||
line-height: 1.2;
|
||||
font-family: "Poppins", sans-serif;
|
||||
position: relative;
|
||||
font-size: 40px;
|
||||
line-height: 1.2;
|
||||
font-family: "Poppins", sans-serif;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.testimonials-container h2::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 4px;
|
||||
width: 60px;
|
||||
background: red;
|
||||
bottom: -8px;
|
||||
left: 0;
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 4px;
|
||||
width: 60px;
|
||||
background: red;
|
||||
bottom: -8px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
section.dark h2::before {
|
||||
height: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.testimonials-container .logos-container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 12px;
|
||||
place-items: center;
|
||||
padding: 32px;
|
||||
box-shadow: 0 4px 40px -8px rgba(0, 0, 0, 0.1);
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 12px;
|
||||
place-items: center;
|
||||
padding: 32px;
|
||||
box-shadow: 0 4px 40px -8px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.testimonials-container .logos-container img {
|
||||
height: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.testimonials {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 14px;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 14px;
|
||||
}
|
||||
|
||||
.testimonial video {
|
||||
height: 600px;
|
||||
height: 600px;
|
||||
}
|
||||
|
||||
.testimonial {
|
||||
flex: 1;
|
||||
padding: 16px;
|
||||
box-shadow: 0 4px 40px -8px rgba(0, 0, 0, 0.2);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
padding: 16px;
|
||||
box-shadow: 0 4px 40px -8px rgba(0, 0, 0, 0.2);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.testimonial .video {
|
||||
margin: -16px;
|
||||
margin-bottom: 0;
|
||||
margin: -16px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.testimonial .bottom {
|
||||
margin-top: auto;
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
.testimonial .name {
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
line-height: 1.2;
|
||||
margin-top: 20px;
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
line-height: 1.2;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.testimonial .designation {
|
||||
font-size: 14px;
|
||||
opacity: 0.8;
|
||||
font-size: 14px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.testimonials-container button,
|
||||
.testimonials-container a.btn {
|
||||
padding: 8px 32px;
|
||||
border: none;
|
||||
margin: 24px 0;
|
||||
font-size: 16px;
|
||||
background: #003049;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
padding: 8px 32px;
|
||||
border: none;
|
||||
margin: 24px 0;
|
||||
font-size: 16px;
|
||||
background: #003049;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.testimonials-container a.btn {
|
||||
text-decoration: none;
|
||||
background: #e63946;
|
||||
font-size: 24px;
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
padding: 4px 32px;
|
||||
margin-top: 8px;
|
||||
text-decoration: none;
|
||||
background: #e63946;
|
||||
font-size: 24px;
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
padding: 4px 32px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
section.dark {
|
||||
background: #003049;
|
||||
color: #fff;
|
||||
padding: 24px 32px;
|
||||
text-align: center;
|
||||
margin-top: 24px;
|
||||
background: #003049;
|
||||
color: #fff;
|
||||
padding: 24px 32px;
|
||||
text-align: center;
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
section.dark p {
|
||||
margin-top: -16px;
|
||||
margin-top: -16px;
|
||||
}
|
||||
|
||||
@media (max-width: 800px) {
|
||||
.testimonials-container h2 {
|
||||
font-size: 28px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.testimonials {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.testimonial video {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.testimonial {
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.testimonials-container .logos-container {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 60px;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
<div class="testimonials-container">
|
||||
|
||||
<section>
|
||||
<h2>Testimonials</h2><br><br>
|
||||
<div class="testimonials"></div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const data = [
|
||||
{
|
||||
videoUrl: "videos/testimonial1.mp4",
|
||||
review: "UK Visa success without IELTS/PTE in London with Raffles",
|
||||
name: "Shreya Bajrayi",
|
||||
designation: "UK Visa Success",
|
||||
},
|
||||
{
|
||||
videoUrl: "videos/testimonial2.mp4",
|
||||
review:
|
||||
"UK Visa success without IELTS/PTE in London with Raffles",
|
||||
name: "Sarita Tamang",
|
||||
designation: "UK Visa Success",
|
||||
},
|
||||
{
|
||||
videoUrl: "videos/testimonial3.mp4",
|
||||
review: "Lorem ipsum dolor sit amet consectetur, adipisicing elit.",
|
||||
name: "Emily Johnson",
|
||||
designation: "Senior Accountant, QRS Solutions",
|
||||
},
|
||||
{
|
||||
videoUrl: "videos/testimonial4.mp4",
|
||||
review:
|
||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias, enim.",
|
||||
name: "Sarah Thompson",
|
||||
designation: "Graphic Designer, PQR Studios",
|
||||
},
|
||||
{
|
||||
videoUrl: "videos/testimonial5.mp4",
|
||||
review:
|
||||
"Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias, enim.",
|
||||
name: "Robert Wilson",
|
||||
designation: "Sales Executive, MNO Corporation",
|
||||
},
|
||||
];
|
||||
|
||||
const showMoreBtn = document.querySelector(
|
||||
".testimonials-container .show-more-btn"
|
||||
);
|
||||
const testimonials = document.querySelector(".testimonials");
|
||||
let latestTestimonialIndex = 0;
|
||||
|
||||
const generateTestimonial = (videoUrl, review, name, designation) => {
|
||||
const htmlCode = `<div class="testimonial">
|
||||
<div class="video">
|
||||
<video
|
||||
controls
|
||||
width="100%"
|
||||
src="{{asset('raffels/assets')}}/${videoUrl}"
|
||||
></video>
|
||||
</div>
|
||||
<div class="review">
|
||||
${review}
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="name">${name}</div>
|
||||
<div class="designation">${designation}</div>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
return htmlCode;
|
||||
};
|
||||
|
||||
const showTestimonial = () => {
|
||||
let index = latestTestimonialIndex;
|
||||
|
||||
for (let i = index; i < index + 2; i++) {
|
||||
if (!data[i]) {
|
||||
showMoreBtn.style.display = "none";
|
||||
return;
|
||||
.testimonials-container h2 {
|
||||
font-size: 28px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
testimonials.innerHTML += generateTestimonial(
|
||||
data[i].videoUrl,
|
||||
data[i].review,
|
||||
data[i].name,
|
||||
data[i].designation
|
||||
);
|
||||
.testimonials {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
latestTestimonialIndex++;
|
||||
.testimonial video {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.testimonial {
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.testimonials-container .logos-container {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 60px;
|
||||
}
|
||||
}
|
||||
};
|
||||
</style>
|
||||
<div class="testimonials-container">
|
||||
|
||||
showTestimonial();
|
||||
|
||||
showMoreBtn.addEventListener("click", showTestimonial);
|
||||
</script>
|
||||
<section>
|
||||
<h2>Testimonials</h2><br><br>
|
||||
<div class="testimonials">
|
||||
@foreach ($testimonials as $item)
|
||||
<div class="testimonial">
|
||||
<div class="video">
|
||||
<video controls width="100%" src="{{ asset('raffels/assets/videos') }}/{{$item->video_url}}"></video>
|
||||
</div>
|
||||
<div class="review">{{$item->review}}</div>
|
||||
<div class="bottom">
|
||||
<div class="name">{{$item->name}}</div>
|
||||
<div class="designation">{{$item->designation}}</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -14,227 +14,20 @@
|
||||
<div class="owl-stage-outer">
|
||||
<div class="owl-stage"
|
||||
style="transform: translate3d(-1087px, 0px, 0px); transition: all 0.25s ease 0s; width: 4352px;">
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt="">
|
||||
</a>
|
||||
@foreach ($logos as $logo)
|
||||
<div class="owl-item" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{$logo->logo}}"
|
||||
alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item active" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item active" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item active" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo clicarousalent-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-item cloned" style="width: 187.552px; margin-right: 30px;">
|
||||
<div class="item">
|
||||
<div class="ow-client-logo">
|
||||
<div class="client-logo client-logo-media">
|
||||
<a href="employer-list.html"><img
|
||||
src="{{ asset('raffels/assets/images/client-logo2/Subject.png') }}"
|
||||
alt=""></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="owl-nav disabled"><button type="button" role="presentation"
|
||||
|
15
routes/CRUDgenerated/route.logos.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
use App\Http\Controllers\LogosController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
Route::prefix("logos")->group(function () {
|
||||
Route::get('/', [LogosController::class, 'index'])->name('logos.index');
|
||||
Route::get('/create', [LogosController::class, 'create'])->name('logos.create');
|
||||
Route::post('/store', [LogosController::class, 'store'])->name('logos.store');
|
||||
Route::post('/sort', [LogosController::class, 'sort'])->name('logos.sort');
|
||||
Route::post('/updatealias', [LogosController::class, 'updatealias'])->name('logos.updatealias');
|
||||
Route::get('/show/{id}', [LogosController::class, 'show'])->name('logos.show');
|
||||
Route::get('/edit/{id}', [LogosController::class, 'edit'])->name('logos.edit') ;
|
||||
Route::post('/update/{id}', [LogosController::class, 'update'])->name('logos.update');
|
||||
Route::delete('/destroy/{id}', [LogosController::class, 'destroy'])->name('logos.destroy');
|
||||
Route::get('/toggle/{id}', [LogosController::class, 'toggle'])->name('logos.toggle');
|
||||
});
|
@ -24,6 +24,8 @@ Route::middleware('auth')->group(function () {
|
||||
Route::get('/registration/validate/{id}', [RegistrationsController::class, 'confirmation'])->name('registration.validate');
|
||||
});
|
||||
|
||||
// Route::get('/testimonial/hello', [RegistrationsController::class,'getTestimonial'])->name('testimonial');
|
||||
|
||||
|
||||
Route::get('/spin_the_wheel/reset', function () {
|
||||
session()->flush();
|
||||
|
17
routes/route.testimonials.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\TestimonialsController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::prefix("testimonials")->group(function () {
|
||||
Route::get('/', [TestimonialsController::class, 'index'])->name('testimonials.index');
|
||||
Route::get('/create', [TestimonialsController::class, 'create'])->name('testimonials.create');
|
||||
Route::post('/store', [TestimonialsController::class, 'store'])->name('testimonials.store');
|
||||
Route::post('/sort', [TestimonialsController::class, 'sort'])->name('testimonials.sort');
|
||||
Route::post('/updatealias', [TestimonialsController::class, 'updatealias'])->name('testimonials.updatealias');
|
||||
Route::get('/show/{id}', [TestimonialsController::class, 'show'])->name('testimonials.show');
|
||||
Route::get('/edit/{id}', [TestimonialsController::class, 'edit'])->name('testimonials.edit');
|
||||
Route::post('/update/{id}', [TestimonialsController::class, 'update'])->name('testimonials.update');
|
||||
Route::delete('/destroy/{id}', [TestimonialsController::class, 'destroy'])->name('testimonials.destroy');
|
||||
Route::get('/toggle/{id}', [TestimonialsController::class, 'toggle'])->name('testimonials.toggle');
|
||||
});
|
@ -109,6 +109,10 @@ Route::middleware('auth')->group(function () {
|
||||
require __DIR__ . '/CRUDgenerated/route.offerapplications.php';
|
||||
require __DIR__ . '/CRUDgenerated/route.requireddocuments.php';
|
||||
require __DIR__ . '/CRUDgenerated/route.contactus.php';
|
||||
require __DIR__ . '/CRUDgenerated/route.logos.php';
|
||||
require __DIR__ . '/route.testimonials.php';
|
||||
|
||||
|
||||
|
||||
});
|
||||
require __DIR__ . '/route.ajax.php';
|
||||
|
BIN
storage/app/public/raffels/files/1/Logos/Subject.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
storage/app/public/raffels/files/1/Logos/thumbs/Subject.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
storage/app/public/raffels/files/1/Logos/thumbs/w3.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
storage/app/public/raffels/files/1/Logos/w3.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
storage/app/public/raffels/files/1/about/boy-large.png
Normal file
After Width: | Height: | Size: 307 KiB |
BIN
storage/app/public/raffels/files/1/about/gir-large-2.png
Normal file
After Width: | Height: | Size: 251 KiB |
BIN
storage/app/public/raffels/files/1/about/gir-large.png
Normal file
After Width: | Height: | Size: 366 KiB |
BIN
storage/app/public/raffels/files/1/about/registerpic.png
Normal file
After Width: | Height: | Size: 427 KiB |
BIN
storage/app/public/raffels/files/1/about/thumbs/boy-large.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
storage/app/public/raffels/files/1/about/thumbs/gir-large-2.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
storage/app/public/raffels/files/1/about/thumbs/gir-large.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
storage/app/public/raffels/files/1/about/thumbs/registerpic.png
Normal file
After Width: | Height: | Size: 9.6 KiB |