File manager - Edit - /home/autoph/public_html/projects/Rating-AutoHub/app/Http/Controllers/QuestionnaireController.php
Back
<?php namespace App\Http\Controllers; use App\Models\Link; use App\Models\Questionnaire; use App\Models\Questions; use App\Models\System; use App\Models\Template; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Validator; use Silber\Bouncer\BouncerFacade as Bouncer; class QuestionnaireController extends Controller { protected $questionnaire; public function __construct(){ $this->questionnaire = new Questionnaire(); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { if(Bouncer::can('view-questionnaire')){ $page_title = "Survey Forms"; return view('admin.questionnaires.index')->with(['page_title' => $page_title]); } else { abort(403,'Unauthorized'); } } public function getQs(Request $request){ $id = $request->id; $tmp = Template::select('q_id')->where('id',$id)->get(); if(!empty($tmp[0]->q_id)){ $q_id = array_map('intval',json_decode($tmp[0]->q_id)); foreach($q_id as $row){ $result = (new QuestionsController)->getQs($row); $array['questions'][] = [ $result[0]->title ]; } return response()->json($array); } } public function fetchall(Request $request){ $array_data['search_keyword'] = $request->search['value']; if(empty($request->search_type)){ $array_data['search_type'] = ""; } else { $array_data['search_type'] = json_decode($request->search_type,true)[0]; } $array_data['sort'] = $request->order[0]['dir']; $array_data['order'] = $request->columns[$request->order[0]['column']]['data']; $array_data['offset'] = $request->start; $array_data['limit'] = $request->length; $array_data['offset_limit'] = " LIMIT {$array_data['offset']},{$array_data['limit']}"; $array_data['sort'] = " ORDER BY {$array_data['order']} {$array_data['sort']} "; $array_data['search'] = ""; if (!empty($array_data['search_keyword'])) { switch ($array_data['search_type']) { case "System Name": $array_data['search'] = " AND `system_name` LIKE '%{$array_data['search_keyword']}%' "; break; case "Template Name": $array_data['search'] = " AND `title` LIKE '%{$array_data['search_keyword']}%' "; break; } } $array_data['where'] = ""; $data = $request->data; if(!empty($data['active'])){ $array_data['where'] .= " AND active = {$data['active']} "; } $results = $this->questionnaire->getQuestionnaires($array_data); $result['data'] = array(); $count = 0; foreach($results as $row){ $result['data'][] = array( "q_id" => $row->q_id, "tmp_id" => $row->tmp_id, "q_count" => $row->q_count, "title" => $row->title, "sys_id" => $row->sys_id, "system_name" =>$row->system_name, "created_at" => date('Y-m-d',strtotime($row->created_at)) ); } $result['draw'] = $request->draw; $result['recordsTotal'] = $this->questionnaire->getQuestionnairesCount($array_data)[0]->Count; $result['recordsFiltered'] = $this->questionnaire->getQuestionnairesFilteredCount($array_data)[0]->FilteredCount; return response()->json($result); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $page_title = "Create Survey Form"; return view('admin.questionnaires.create')->with(['page_title' => $page_title]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $url = $request->url(); $base_url = explode("/",$url); if($request->t_id == "null"){ return response()->json(["message"=>"Please provide a template name"],402); } if($request->s_id == "null"){ return response()->json(["message"=>"Please choose a system"],402); } $check = Questionnaire::select('id') ->where([['s_id',"=",$request->s_id],['t_id',"=",$request->t_id]]) ->get(); if(empty($check[0])){ DB::table('questionnaires') ->insert([ 's_id' => $request->s_id, 't_id' => $request->t_id, 'instruction' => $request->instruction, 'status' => 1, 'active' => 1 ]); $link = new Link; $link->sys_id = $request->s_id; $link->tmp_id = $request->t_id; $link->link = url('/')."/search/s/".$request->s_id."/tid/".$request->t_id; $link->active = 1; $link->status = 1; $link->save(); $array_data = [ "id" => Auth::user()->id, "action" => "create", "message" => Auth::user()->id . " has created a questionnaire." ]; $result = (new AuthController)->auditTrail($array_data); return response()->json(["message"=>"Success"],200); } else { return response()->json(["message"=>"Either template or system is already in use. \n Please edit the template or create new one"],403); } } /** * Display the specified resource. * * @param \App\Models\Questionnaire $questionnaire * @return \Illuminate\Http\Response */ public function show(Questionnaire $questionnaire) { // } /** * Show the form for editing the specified resource. * * @param \App\Models\Questionnaire $questionnaire * @return \Illuminate\Http\Response */ public function edit($tmp_id,$sys_id) { $page_title = "Survery Form View"; $instruction = Questionnaire::select('instruction')->where([['t_id',$tmp_id],['s_id',$sys_id]])->first(); return view('admin.questionnaires.edit',compact('tmp_id','sys_id','instruction'))->with(['page_title' => $page_title]); } public function getQuestions(Request $request){ $q_title = []; $t_name = Template::select('title','q_id') ->where('id',"=",$request->t_id) ->get(); $s_name = System::select('system_name') ->where('id',"=",$request->s_id) ->get(); $questions = array_map('intval',json_decode($t_name[0]->q_id)); foreach($questions as $row){ $q = Questions::select('title')->where('id',$row)->get(); $q_title[] = [ $q[0]->title, ]; } $link = Link::select('link')->where([ ['tmp_id',"=",$request->t_id], ['sys_id',"=",$request->s_id], ])->get(); return response()->json([ "questions"=>$q_title, "template"=>$t_name[0]->title, "system"=>$s_name, "link"=>$link]); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Models\Questionnaire $questionnaire * @return \Illuminate\Http\Response */ public function update(Request $request) { // dd($request->all()); $result = Questionnaire::where([ ['t_id',"=",$request->t_id], ['s_id',"=",$request->s_id] ])->get(); $questionnaire = Questionnaire::findOrFail($result[0]->id); $questionnaire->instruction = $request->instruction; $questionnaire->save(); $array_data = [ "id" => Auth::user()->id, "action" => "update", "message" => Auth::user()->id . " has updated a questionnaire." ]; $result = (new AuthController)->auditTrail($array_data); return response()->json(["message"=>"Success"],200); } /** * Remove the specified resource from storage. * * @param \App\Models\Questionnaire $questionnaire * @return \Illuminate\Http\Response */ public function destroy(Request $request) { $result = Questionnaire::where([ ['t_id',"=",$request->tmp_id], ['s_id',"=",$request->sys_id] ])->update([ 'status' => null, ]); $array_data = [ "id" => Auth::user()->id, "action" => "delete", "message" => Auth::user()->id . " has deleted a questionnaire." ]; $result = (new AuthController)->auditTrail($array_data); return response()->json(["message"=>"Success"],200); } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0 |
proxy
|
phpinfo
|
Settings