315 lines
9.4 KiB
PHP
Executable file
315 lines
9.4 KiB
PHP
Executable file
<?php
|
|
|
|
namespace App\Http\Controllers\IQ;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\IQContentArea;
|
|
use App\Models\IQContentAreaSection;
|
|
use App\Models\IQContentModel;
|
|
use App\Models\IQContentModelField;
|
|
use App\Models\IQContentSite;
|
|
use App\Models\IQContentTree;
|
|
use App\Models\IQContentTreeNode;
|
|
use Illuminate\Database\Eloquent\Collection;
|
|
use Request;
|
|
|
|
class ContentModalController extends Controller
|
|
{
|
|
|
|
/**
|
|
* ContentSiteController constructor.
|
|
*/
|
|
public function __construct()
|
|
{
|
|
// $this->middleware('auth');
|
|
}
|
|
|
|
/**
|
|
* @return \Illuminate\Http\JsonResponse
|
|
* @throws \Throwable
|
|
* data = id, model, action, request
|
|
*/
|
|
public function load()
|
|
{
|
|
if(Request::ajax()){
|
|
$data = Request::all();
|
|
$ret = "";
|
|
if(isset($data['model']) && isset($data['id']) ){
|
|
switch ($data['model']){
|
|
case 'model' :
|
|
$ret = $this->loadModal($data);
|
|
break;
|
|
case 'area' :
|
|
$ret = $this->loadModal($data);
|
|
break;
|
|
case 'media' :
|
|
break;
|
|
case 'site' :
|
|
$ret = $this->loadModal($data);
|
|
break;
|
|
case 'tree' :
|
|
$ret = $this->loadModal($data);
|
|
break;
|
|
case 'guide' :
|
|
$ret = $this->loadModal($data);
|
|
break;
|
|
|
|
}
|
|
}
|
|
return response()->json(['response' => $data, 'html'=>$ret]);
|
|
}
|
|
}
|
|
|
|
private function loadModal($data)
|
|
{
|
|
if(isset($data['action'])){
|
|
switch ($data['action']){
|
|
case 'model-content' :
|
|
return $this->actionModelContent($data);
|
|
break;
|
|
case 'model-field' :
|
|
return $this->actionModelField($data);
|
|
break;
|
|
case 'model-field-details' :
|
|
return $this->actionModelFieldDetail($data);
|
|
break;
|
|
case 'area-content' :
|
|
return $this->actionArea($data);
|
|
break;
|
|
case 'area-section' :
|
|
return $this->actionAreaSection($data);
|
|
break;
|
|
case 'site-content' :
|
|
return $this->actionSiteContent($data);
|
|
break;
|
|
case 'tree-content' :
|
|
return $this->actionTreeContent($data);
|
|
break;
|
|
case 'tree-node' :
|
|
return $this->actionTreeNode($data);
|
|
break;
|
|
case 'tree-site-content' :
|
|
return $this->actionTreeSiteContent($data);
|
|
break;
|
|
|
|
case 'guide-tree-site' :
|
|
return $this->actionGuideTreeSite($data);
|
|
break;
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Model
|
|
*/
|
|
private function actionModelContent($data)
|
|
{
|
|
|
|
if($data['id'] == "add"){
|
|
$value = new IQContentModel();
|
|
$value->id = "add";
|
|
$value->active = true;
|
|
$data['title'] = "Add Model";
|
|
}else {
|
|
$value = IQContentModel::findOrFail($data['id']);
|
|
$data['title'] = "Edit Model: ".$value->name;
|
|
}
|
|
$url = route('iq_content_model_detail', [$value->id]);
|
|
return view("iq.modal.content", compact('data','value', 'url') )->render();
|
|
}
|
|
|
|
private function actionModelField($data)
|
|
{
|
|
$value = new Collection();
|
|
$value->id = $data['id'];
|
|
|
|
if(isset($data['request']['model_id'])){
|
|
$model = IQContentModel::findOrFail($data['request']['model_id']);
|
|
return view("iq.modal.model-field", compact('data','value', 'model') )->render();
|
|
}
|
|
return view("iq.modal.model-field", compact('data','value') )->render();
|
|
|
|
}
|
|
|
|
private function actionModelFieldDetail($data)
|
|
{
|
|
if(!isset($data['request']['model_id'])){
|
|
//need 404 error page
|
|
}
|
|
$model = IQContentModel::findOrFail($data['request']['model_id']);
|
|
$data['field'] = '';
|
|
switch ($data['request']['field']){
|
|
case 'text' :
|
|
$data['field'] = 'Long Text';
|
|
//return $this->actionContent($data);
|
|
break;
|
|
case 'string' :
|
|
$data['field'] = 'Short Text';
|
|
//return $this->actionField($data);
|
|
break;
|
|
case 'media' :
|
|
$data['field'] = 'Media';
|
|
//return $this->actionFieldDetail($data);
|
|
break;
|
|
}
|
|
|
|
if($data['id'] == "add"){
|
|
$value = new IQContentModelField();
|
|
$value->id = "add";
|
|
$value->active = true;
|
|
}else {
|
|
$value = IQContentModelField::findOrFail($data['id']);
|
|
}
|
|
|
|
|
|
return view("iq.modal.model-field-detail", compact('data','value', 'model') )->render();
|
|
}
|
|
|
|
/*
|
|
* Area
|
|
*/
|
|
private function actionArea($data)
|
|
{
|
|
if($data['id'] == "add"){
|
|
$value = new IQContentArea();
|
|
$value->id = "add";
|
|
$value->active = true;
|
|
$data['title'] = "Add Area";
|
|
}else {
|
|
$value = IQContentArea::findOrFail($data['id']);
|
|
$data['title'] = "Edit Area: ".$value->name;
|
|
}
|
|
$url = route('iq_content_area_detail', [$value->id]);
|
|
|
|
return view("iq.modal.content", compact('data','value', 'url') )->render();
|
|
}
|
|
|
|
private function actionAreaSection($data)
|
|
{
|
|
$model = IQContentArea::findOrFail($data['request']['area_id']);
|
|
if($data['id'] == "add"){
|
|
$value = new IQContentAreaSection();
|
|
$value->id = "add";
|
|
$value->active = true;
|
|
$data['title'] = "Add Section";
|
|
}else {
|
|
$value = IQContentAreaSection::findOrFail($data['id']);
|
|
$data['title'] = "Edit Section: ".$value->name;
|
|
}
|
|
$url = route('iq_content_area_detail', [$value->id]);
|
|
|
|
return view("iq.modal.area-section", compact('data','value', 'url', 'model') )->render();
|
|
}
|
|
|
|
|
|
/*
|
|
* site
|
|
*/
|
|
private function actionSiteContent($data)
|
|
{
|
|
if($data['id'] == "add"){
|
|
$value = new IQContentSite();
|
|
$value->id = "add";
|
|
$value->active = true;
|
|
$data['title'] = "Add Site";
|
|
}else {
|
|
$value = IQContentSite::findOrFail($data['id']);
|
|
$data['title'] = "Edit Site: ".$value->name;
|
|
}
|
|
$url = route('iq_content_site_detail', [$value->id]);
|
|
return view("iq.modal.site", compact('data','value', 'url') )->render();
|
|
}
|
|
|
|
|
|
/*
|
|
* tree
|
|
*/
|
|
private function actionTreeContent($data)
|
|
{
|
|
if($data['id'] == "add"){
|
|
$value = new IQContentTree();
|
|
$value->id = "add";
|
|
$value->active = true;
|
|
$data['title'] = "Add Tree";
|
|
}else {
|
|
$value = IQContentTree::findOrFail($data['id']);
|
|
$data['title'] = "Edit Tree: ".$value->name;
|
|
}
|
|
$url = route('iq_content_tree_detail', [$value->id]);
|
|
return view("iq.modal.content", compact('data','value', 'url') )->render();
|
|
}
|
|
|
|
private function actionTreeNode($data)
|
|
{
|
|
$model = IQContentTree::findOrFail($data['request']['tree_id']);
|
|
|
|
if($data['id'] == "add"){
|
|
$value = new IQContentTreeNode();
|
|
$value->id = "add";
|
|
$value->active = true;
|
|
$data['title'] = "Add Node";
|
|
}else {
|
|
$value = IQContentTreeNode::findOrFail($data['id']);
|
|
$data['title'] = "Edit Node: ".$value->name;
|
|
}
|
|
$url = route('iq_content_tree_detail', [$model->id]);
|
|
return view("iq.modal.tree-node", compact('data','value', 'url', 'model') )->render();
|
|
}
|
|
|
|
|
|
private function actionTreeSiteContent($data)
|
|
{
|
|
if($data['id'] == "add"){
|
|
$value = new Collection();
|
|
$value->active = true;
|
|
$value->id = 'add';
|
|
$data['title'] = "Seite hinzufügen";
|
|
|
|
}else {
|
|
$value = new Collection();
|
|
$data['title'] = "Edit Site: ".$value->name;
|
|
}
|
|
|
|
$url = route('iq_content_tree_detail', [$data['request']['tree_id'], $data['request']['tree_node_id']]);
|
|
|
|
$data['request'] = false;
|
|
return view("iq.modal.site", compact('data','value', 'url') )->render();
|
|
}
|
|
|
|
private function actionGuideTreeSite($data)
|
|
{
|
|
if(!isset($data['tree_id'])){
|
|
$value = new Collection();
|
|
$value->active = true;
|
|
$value->id = 'add';
|
|
$data['travel_guide_id'] = $data['request']['travel_guide_id'];
|
|
$data['title'] = "Tree zuordnen";
|
|
$url = route('cms_travel_guide_detail', [$data['request']['travel_guide_id']]);
|
|
|
|
|
|
}else {
|
|
$value = new Collection();
|
|
$value->active = true;
|
|
$value->id = $data['id'];
|
|
|
|
$data['title'] = "Tree zuordnen";
|
|
|
|
if(isset($data['tree_id'])){
|
|
|
|
}
|
|
$url = route('iq_content_tree_detail', [$data['tree_id']]);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$data['request'] = false;
|
|
return view("iq.modal.tree_site", compact('data','value', 'url') )->render();
|
|
}
|
|
|
|
|
|
|
|
}
|