htmlBuilder = $htmlBuilder;
$this->htmlBuilder->parameters([
'paging' => true,
'searching' => true,
'info' => false,
'searchDelay' => 350,
'language' => [
'url' => Module::asset('core:datatable.json')
],
]);
Parent::__construct();
}
public function index(Request $request)
{
if ($request->ajax()) {
return DataTables::of(UserExpert::select(['user_expert.id',
DB::raw('concat(users.fname ," ",users.lname) as users_fullname ')
,'expert_id','adv_id','user_expert.status','user_expert.description','user_expert.content','user_expert.time','user_expert.point','user_expert.created_at','user_expert.updated_at'])
->join('users', 'user_expert.user_id', '=', 'users.id'))
->editColumn('expert_id', function($UserExpert) {
return $UserExpert->expert->user->fname . ' ' . $UserExpert->expert->user->lname;
})
->editColumn('status', function($adv) {
if($adv->status==1){
return "قبول شده";
}elseif($adv->status==0){
return "رد شده";
}
})
->rawColumns(['status'])
->make(true);
}
$object = 'کارشناسان-کاربران';
$html = $this->htmlBuilder
->addColumn(['data' =>'id', 'name' => 'id', 'title' => 'شناسه'])
->addColumn(['data' => 'users_fullname', 'name' => 'users.fname', 'title' => 'نام کاربر'])
->addColumn(['data' => 'users_fullname', 'name' => 'users.lname', 'title' => 'نام کاربر','class'=>'d-none'])
->addColumn(['data' => 'expert_id', 'name' => 'expert_id', 'title' => 'کارشناس'])
->addColumn(['data' => 'status', 'name' => 'status', 'title' => 'وضغیت'])
->addColumn(['data' => 'description', 'name' => 'description', 'title' => 'توضیحات'])
->addColumn(['data' => 'content', 'name' => 'content', 'title' => 'متن'])
->addColumn(['data' => 'time', 'name' => 'time', 'title' => 'زمان'])
->addColumn(['data' => 'point', 'name' => 'point', 'title' => 'امتیاز'])
->addColumn(['data' => 'created_at', 'name' => 'created_at', 'title' => 'ثبت'])
->addColumn(['data' => 'updated_at', 'name' => 'updated_at', 'title' => 'ویرایش']);
return view('core::shared.datatable', compact(['html','object']));
}
function comment(Request $request){
$expert=UserExpert::find($request->id);
$comment=$expert->comments()->create([
'comment'=>$request->comment,
'user_id'=>Auth::user()->id,
]);
$results=Comment::where('id',$comment->id)->with('commentable')->first();
return response()->json([
'data' => $results,
'message'=>__('ok'),
'status' => 200
]);
}
public function deleteComment(Request $request)
{
$user_id=Comment::where('id',$this->id)->first()->user_id;
if($user_id == Auth::user()->id){
Comment::find($request->id)->delete();
return response()->json([
'data' =>true,
'message'=>'deleted',
'status' => 200
]);
}else{
return response()->json([
'data' =>false,
'message'=>'cant delete',
'status' => 400
]);
}
}
public function list(){
$data=UserExpert::where('user_id',Auth::user()->id)->get();
return response()->json([
'data' => $data,
'message'=>'ok',
'status' => 200
]);
}
public function expertComment(Request $request){
$ids=UserExpert::where('expert_id',$request->id)->pluck('id');
$data=Comment::whereIn('commentable_id',$ids)
->where('commentable_type','Modules\Expert\Entities\UserExpert')
->orderBy('id','desc')
->get();
return response()->json([
'data' => $data,
'message'=>__('ok'),
'status' => 200
]);
}
}