middleware('auth'); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $modules = Module::all(); $module_names = Module::pluck('name')->toArray(); $frequently_asked_questions = FrequentlyAskedQuestion::get(); return view('frequently_asked_questions.index', compact('frequently_asked_questions', 'modules', 'module_names')); } public function search() { $modules = Module::all(); $module_names = Module::pluck('name')->toArray(); $faqs = FrequentlyAskedQuestion::pluck('question')->toArray(); $frequently_asked_questions = FrequentlyAskedQuestion::get(); $questions_per_module = []; foreach ($modules as $module){ $count = 0; foreach ($frequently_asked_questions as $question){ if($module->id == $question->module_id){ $count ++; } } $questions_per_module[$module->id] = $count; } return view('frequently_asked_questions.search', compact('frequently_asked_questions', 'modules', 'module_names', 'questions_per_module', 'faqs')); } public function result(Request $request){ $faqs = FrequentlyAskedQuestion::pluck('question')->toArray(); if($request->module){ $questions = FrequentlyAskedQuestion::where('module_id', 'like', $request->module)->get(); }else{ $questions = FrequentlyAskedQuestion::where('question', 'like', $request->question)->get(); } return view('frequently_asked_questions.result', compact('questions', 'faqs')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $modules = Module::orderBy('name', 'asc')->pluck('name', 'id')->prepend('-select-', '')->toArray(); return view('frequently_asked_questions.create', compact('modules')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $validator = Validator::make($request->all(), [ 'question' => 'required' ]); if ($validator->fails()) { $string = ""; foreach ($validator->errors()->getMessages() as $item) { $string .= "{$item[0]}
"; } return back()->withErrors($validator)->withInput(); } else { $logged_in_user_id = Auth::user()->id; $frequently_asked_question = new FrequentlyAskedQuestion; $frequently_asked_question->question = $request->question; $frequently_asked_question->module_id = $request->module_id; $frequently_asked_question->reference_url = $request->reference_url; $frequently_asked_question->additional_reference_url = $request->additional_reference_url; $frequently_asked_question->answer = $request->answer; $frequently_asked_question->created_by = $logged_in_user_id; try { $frequently_asked_question->save(); flash($request->name . " FrequentlyAskedQuestion has been saved")->success(); return redirect("/frequently_asked_questions/"); } catch (QueryException $e) { $errorCode = $e->errorInfo[1]; if ($errorCode == 1062) { //error code for duplicate entry to a unique field flash($request->name . " FrequentlyAskedQuestion already exists!")->error(); return back()->withInput(); } } } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $frequently_asked_question = FrequentlyAskedQuestion::where(['id' => $id])->first(); $modules = Module::orderBy('name', 'asc')->pluck('name', 'id')->prepend('-select-', '')->toArray(); if (!$frequently_asked_question) { flash()->error("There is no such Question"); return redirect('/frequently_asked_questions/'); } else { return view('frequently_asked_questions.edit.single', compact('frequently_asked_question', 'modules')); } } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'question' => 'required' ]); if ($validator->fails()) { $string = ""; foreach ($validator->errors()->getMessages() as $item) { $string .= "{$item[0]}
"; } return back()->withErrors($validator)->withInput(); } else { $logged_in_user_id = Auth::user()->id; $frequently_asked_question = FrequentlyAskedQuestion::find($id); $frequently_asked_question->question = $request->question; $frequently_asked_question->module_id = $request->module_id; $frequently_asked_question->reference_url = $request->reference_url; $frequently_asked_question->additional_reference_url = $request->additional_reference_url; $frequently_asked_question->answer = $request->answer; $frequently_asked_question->created_by = $logged_in_user_id; try { $frequently_asked_question->save(); flash($request->name . " Question has been updated")->success(); return redirect("/frequently_asked_questions/"); } catch (QueryException $e) { $errorCode = $e->errorInfo[1]; if ($errorCode == 1062) { //error code for duplicate entry to a unique field flash($request->name . " Question already exists!")->error(); return back()->withInput(); } } } } public function bulk_edit() { $frequently_asked_questions = FrequentlyAskedQuestion::all(); $modules = Module::orderBy('name', 'asc')->pluck('name', 'id')->prepend('-select-', '')->toArray(); if (!$frequently_asked_questions) { flash()->error("There is no such Question"); return redirect('/frequently_asked_questions/'); } else { return view('frequently_asked_questions.edit.all', compact('frequently_asked_questions', 'modules')); } } public function bulk_update(Request $request){ $ids = $request->id; $questions = $request->question; $answers = $request->answers; $modules = $request->module_id; $logged_in_user = Auth::id(); for ($x = 0; $x < count($ids); $x++){ $question = FrequentlyAskedQuestion::find($ids[$x]); $question->question = $questions[$x]; $question->answer = $answers[$x]; $question->module_id = $modules[$x]; $question->updated_by = $logged_in_user; $question->save(); } flash('Questions have been updated successfully.')->success(); return redirect()->route('frequently_asked_questions.index'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $frequently_asked_question = FrequentlyAskedQuestion::find($id); if ($frequently_asked_question->delete()): flash("Question has been deleted.")->success(); return redirect('/frequently_asked_questions/'); endif; } /** * Display a listing of the inactive resource(s). * * @return \Illuminate\Http\Response */ public function inactive() { $frequently_asked_questions = FrequentlyAskedQuestion::onlyTrashed() ->orderBy('name', 'asc') ->paginate(50); if (count($frequently_asked_questions) < 1) { flash()->error("There is no inactive supplier"); return redirect('/frequently_asked_questions/'); } else { return view('frequently_asked_questions.inactive', compact('frequently_asked_questions')); } } /** * Activate the specified resource in storage. * * @param int $id * @return \Illuminate\Http\Response */ public function activate($id) { $frequently_asked_question = FrequentlyAskedQuestion::withTrashed()->find($id); if ($frequently_asked_question->restore()): flash("Question has been activated.")->success(); return redirect('/frequently_asked_questions/inactive'); endif; } }