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 'add-answer-question' : return $this->actionAddAnswerQuestion($data); break; case 'guide-tree-site' : return $this->actionGuideTreeSite($data); break; case 'site-travel-identifier' : return $this->actionSiteTravelIdentifier($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 actionAddAnswerQuestion($data) { if($data['id'] === "add"){ $value = new Collection(); $value->active = true; $value->id = 'add'; $data['title'] = "Frage & Antwort hinzufügen"; }else { /* $value = new Collection(); $data['title'] = "Edit Eintrag: ".$value->name; */ } $url = route('iq_content_tree_detail', [$data['request']['tree_id'], $data['request']['tree_node_id']]); $data['request'] = false; return view("iq.modal.faq", 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(); } private function actionSiteTravelIdentifier($data) { $value = IQContentSite::find($data['id']); $node = $value->iq_content_tree_node; $select_data = \App\Models\IQContentSite::$travelTypes; foreach ($node->iq_content_sites as $site){ if($site->identifier !== null && $site->identifier !== ''){ if(isset($select_data[$site->identifier])) { unset($select_data[$site->identifier]); } } } $data['title'] = " Zuordnung Seite"; $url = route('iq_content_tree_detail', [$data['request']['tree_id'], $data['request']['tree_node_id']]); $data['request'] = false; return view("iq.modal.travel-identifier", compact('data','value', 'url', 'select_data') )->render(); } }