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(); } }