Server IP : 66.29.132.124 / Your IP : 18.223.159.237 Web Server : LiteSpeed System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : wavevlvu ( 1524) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/wavevlvu/book24.ng/modules/Flight/Admin/ |
Upload File : |
<?php namespace Modules\Flight\Admin; use Illuminate\Http\Request; use Illuminate\Support\Str; use Modules\AdminController; use Modules\Core\Models\Attributes; use Modules\Core\Models\AttributesTranslation; use Modules\Core\Models\Terms; use Modules\Core\Models\TermsTranslation; use Illuminate\Support\Facades\DB; class AttributeController extends AdminController { protected $attributesClass; protected $termsClass; public function __construct() { $this->setActiveMenu(route('flight.admin.index')); parent::__construct(); $this->attributesClass = Attributes::class; $this->termsClass = Terms::class; } public function index(Request $request) { $this->checkPermission('flight_manage_attributes'); $listAttr = $this->attributesClass::where("service", 'flight'); if (!empty($search = $request->query('s'))) { $listAttr->where('name', 'LIKE', '%' . $search . '%'); } $listAttr->orderBy('created_at', 'desc'); $data = [ 'rows' => $listAttr->get(), 'row' => new $this->attributesClass(), 'translation' => new AttributesTranslation(), 'breadcrumbs' => [ [ 'name' => __('Flight'), 'url' => route('flight.admin.index') ], [ 'name' => __('Attributes'), 'class' => 'active' ], ] ]; return view('Flight::admin.attribute.index', $data); } public function edit(Request $request, $id) { $row = $this->attributesClass::find($id); if (empty($row)) { return redirect()->back()->with('error', __('Attributes not found!')); } $translation = $row->translateOrOrigin($request->query('lang')); $this->checkPermission('flight_manage_attributes'); $data = [ 'translation' => $translation, 'enable_multi_lang'=>true, 'rows' => $this->attributesClass::where("service", 'flight')->get(), 'row' => $row, 'breadcrumbs' => [ [ 'name' => __('Flight'), 'url' => route('flight.admin.index') ], [ 'name' => __('Attributes'), 'url' => route('flight.admin.attribute.index') ], [ 'name' => __('Attribute: :name', ['name' => $row->name]), 'class' => 'active' ], ] ]; return view('Flight::admin.attribute.detail', $data); } public function store(Request $request) { $this->checkPermission('flight_manage_attributes'); $this->validate($request, [ 'name' => 'required' ]); $id = $request->input('id'); if ($id) { $row = $this->attributesClass::find($id); if (empty($row)) { return redirect()->back()->with('error', __('Attributes not found!')); } } else { $row = new $this->attributesClass($request->input()); $row->service = 'flight'; } $row->fill($request->input()); $res = $row->saveOriginOrTranslation($request->input('lang')); if ($res) { return redirect()->back()->with('success', __('Attribute saved')); } } public function editAttrBulk(Request $request) { $this->checkPermission('flight_manage_attributes'); $ids = $request->input('ids'); $action = $request->input('action'); if (empty($ids) or !is_array($ids)) { return redirect()->back()->with('error', __('Select at least 1 item!')); } if (empty($action)) { return redirect()->back()->with('error', __('Select an Action!')); } if ($action == "delete") { foreach ($ids as $id) { $query = $this->attributesClass::where("id", $id); $query->first(); if(!empty($query)){ $query->delete(); } } } return redirect()->back()->with('success', __('Updated success!')); } public function terms(Request $request, $attr_id) { $this->checkPermission('flight_manage_attributes'); $row = $this->attributesClass::find($attr_id); if (empty($row)) { return redirect()->back()->with('error', __('Term not found')); } $listTerms = $this->termsClass::where("attr_id", $attr_id); if (!empty($search = $request->query('s'))) { $listTerms->where('name', 'LIKE', '%' . $search . '%'); } $listTerms->orderBy('created_at', 'desc'); $data = [ 'rows' => $listTerms->paginate(20), 'attr' => $row, "row" => new $this->termsClass(), 'translation' => new TermsTranslation(), 'breadcrumbs' => [ [ 'name' => __('Flight'), 'url' => route('flight.admin.index') ], [ 'name' => __('Attributes'), 'url' => route('flight.admin.attribute.index') ], [ 'name' => __('Attribute: :name', ['name' => $row->name]), 'class' => 'active' ], ] ]; return view('Flight::admin.terms.index', $data); } public function term_edit(Request $request, $id) { $this->checkPermission('flight_manage_attributes'); $row = $this->termsClass::find($id); if (empty($row)) { return redirect()->back()->with('error', __('Term not found')); } $translation = $row->translateOrOrigin($request->query('lang')); $attr = $this->attributesClass::find($row->attr_id); $data = [ 'row' => $row, 'translation' => $translation, 'enable_multi_lang'=>true, 'breadcrumbs' => [ [ 'name' => __('Flight'), 'url' => route('flight.admin.index') ], [ 'name' => __('Attributes'), 'url' => route('flight.admin.attribute.index') ], [ 'name' => $attr->name, 'url' => route('flight.admin.attribute.term.index',['id'=>$row->attr_id]) ], [ 'name' => __('Term: :name', ['name' => $row->name]), 'class' => 'active' ], ] ]; return view('Flight::admin.terms.detail', $data); } public function term_store(Request $request) { $this->checkPermission('flight_manage_attributes'); $this->validate($request, [ 'name' => 'required' ]); $id = $request->input('id'); if ($id) { $row = $this->termsClass::find($id); if (empty($row)) { return redirect()->back()->with('error', __('Term not found')); } } else { $row = new $this->termsClass($request->input()); $row->attr_id = $request->input('attr_id'); } $row->fill($request->input()); $row->image_id = $request->input('image_id'); $res = $row->saveOriginOrTranslation($request->input('lang')); if ($res) { return redirect()->back()->with('success', __('Term saved')); } } public function editTermBulk(Request $request) { $this->checkPermission('flight_manage_attributes'); $ids = $request->input('ids'); $action = $request->input('action'); if (empty($ids) or !is_array($ids)) { return redirect()->back()->with('error', __('Select at least 1 item!')); } if (empty($action)) { return redirect()->back()->with('error', __('Select an Action!')); } if ($action == "delete") { foreach ($ids as $id) { $query = $this->termsClass::where("id", $id); $query->first(); if(!empty($query)){ $query->delete(); } } } return redirect()->back()->with('success', __('Updated success!')); } public function getForSelect2(Request $request) { $pre_selected = $request->query('pre_selected'); $selected = $request->query('selected'); if($pre_selected && $selected){ if(is_array($selected)) { $query = $this->termsClass::getForSelect2Query('flight'); $items = $query->whereIn('bc_terms.id',$selected)->take(50)->get(); return response()->json([ 'items'=>$items ]); } if(empty($item)){ return response()->json([ 'text'=>'' ]); }else{ return response()->json([ 'text'=>$item->name ]); } } $q = $request->query('q'); $query = $this->termsClass::getForSelect2Query('flight',$q); $res = $query->orderBy('bc_terms.id', 'desc')->limit(20)->get(); return response()->json([ 'results' => $res ]); } }