mein-sterntours/app/Http/Controllers/CMS/CMSAnswerQuestionController.php
2021-11-09 18:38:44 +01:00

140 lines
4 KiB
PHP
Executable file

<?php
namespace App\Http\Controllers\CMS;
use App\Http\Controllers\Controller;
use App\Models\AnswerQuestion;
use App\Models\IQContentCategory;
use IqContent\LaravelFilemanager\Lfm;
use Request;
use Validator;
class CMSAnswerQuestionController extends Controller
{
/*
* Create a new controller instance.
*
* @return void
*/
protected $identifier_options;
public function __construct()
{
$this->middleware(['admin', '2fa']);
$this->identifier_options = IQContentCategory::where('identifier', 'faq')
->where('active', true)
->orderBy('pos', 'ASC')
->get()->pluck('name','id');
}
public function index()
{
$data = [
'models' => AnswerQuestion::all(),
'identifier_options' => $this->identifier_options,
];
return view('cms.answer_question.index', $data);
}
public function detail($id)
{
if($id === "new") {
$model = new AnswerQuestion();
$id = 'new';
$model->status = 1;
}else{
$model = AnswerQuestion::findOrFail($id);
$id = $model->id;
}
$data = [
'model' => $model,
'id' => $id,
'identifier_options' => $this->identifier_options,
'lfm_helper' => app(Lfm::class),
];
return view('cms.answer_question.detail', $data);
}
public function store($id)
{
$data = Request::all();
$rules = array(
'question' => 'required',
);
$validator = Validator::make(Request::all(), $rules);
if ($validator->fails()) {
return back()->withErrors($validator);
}
if($id === "new") {
$model = AnswerQuestion::create($data);
}else{
$model = AnswerQuestion::findOrFail($data['id']);
$model->fill($data);
$model->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('cms_answer_question_detail', [$model->id]));
}
public function delete($id){
$model = AnswerQuestion::findOrFail($id);
//TODO
//check for use?
// die("check for use");
$model->delete();
\Session()->flash('alert-success', __('Eintrag gelöscht'));
return redirect(route('cms_answer_question'));
}
public function datatable(){
$query = AnswerQuestion::with('iq_content_category')->select('answer_questions.*');
if(Request::get('filter_identifier_options') != ""){
$query->where('i_q_content_category_id', '=', Request::get('filter_identifier_options'));
}
return \DataTables::eloquent($query)
->addColumn('action_edit', function (AnswerQuestion $faq) {
return '<a href="'.route('cms_answer_question_detail', [$faq->id]).'" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
})
->addColumn('category', function (AnswerQuestion $faq) {
return $faq->iq_content_category ? $faq->iq_content_category->name : '';
})
->addColumn('created_at', function (AnswerQuestion $faq) {
return $faq->created_at->format('d.m.Y');
})
->addColumn('active', function (AnswerQuestion $faq) {
return get_active_badge($faq->active);
})
->addColumn('delete', function (AnswerQuestion $faq) {
return '<a class="text-danger" href="'.route('cms_answer_question_delete', [$faq->id]).'" onclick="return confirm(\'Wirklich löschen?\');"><i class="fa fa-trash-alt"></i></a>';
})
->orderColumn('action_edit', 'id $1')
->orderColumn('category', 'i_q_content_category_id $1')
->orderColumn('created_at', 'created_at $1')
->orderColumn('active', 'active $1')
->rawColumns(['action_edit', 'active', 'delete'])
->make(true);
}
}