needlogin=true; $me = new User(); $me->loadMe(); $this->me = $me; $this->layout()->set("me",$me); if(!$me->is(["Admin"])) { $this->redirect("Dashboard"); } } protected function saveAction() { $r = $this->request; $item_id = $r->item_id; if(is_numeric($item_id) && $item_id > 0) { $mode = "edit"; $item = new ContractconfigItem($item_id); if(!$item->id) { $this->layout()->setFlash("Element nicht gefunden", "error"); $this->redirect("Contractconfiggroup"); } } else { $mode = "add"; } $item_data['contractconfiggroup_id'] = $r->group_id; $item_data['order'] = ($r->order && is_numeric($r->order)) ? $r->order : null; $item_data['name'] = $r->name; $item_data['displayname'] = $r->displayname; $item_data['description'] = $r->description; $item_data['multiple'] = ($r->multiple) ? 1 : 0; $item_data['typedata'] = ""; $item_data['pattern'] = ""; switch($r->type) { case "string": $item_data['type'] = "string"; $item_data['pattern'] = $r->pattern; break; case "enum": $item_data['type'] = "enum"; $item_data['typedata'] = preg_replace(['/\n{2,}/','/^\n+/','/\n+$/'], ["\n",'',''], str_replace("\r","\n",$r->data)); break; case "int": $item_data['type'] = "int"; break; case "decimal": $item_data['type'] = "decimal"; break; default: $this->layout()->setFlash("Ungültiger Datentyp!", "error"); $this->redirect("Contractconfiggroup"); } if($mode == "edit") { $item->update($item_data); } else { $item = ContractconfigItemModel::create($item_data); } //var_dump($item);exit; $item_id = $item->save(); if(!$item_id) { $this->layout()->setFlash("Fehler beim Speichern!", "error"); $this->redirect("Contractconfiggroup"); } $this->layout()->setFlash("Element erfolgreich gespeichert", "success"); $this->redirect("Contractconfiggroup"); //$this->redirect("Contractconfig","Index","","item=$item_id"); } protected function deleteAction() { $r = $this->request; $id = $r->id; if(!is_numeric($id) || $id < 1) { $this->layout()->setFlash("Config Element nicht gefunden!", "error"); $this->redirect("Contractconfiggroup"); } $item = new ContractconfigItem($id); if(!$item->id) { $this->layout()->setFlash("Config Element nicht gefunden!", "error"); $this->redirect("Contractconfiggroup"); } if(ContractconfigValueModel::getFirst(["item_id" => $id])) { $this->layout()->setFlash("Config Element kann nicht gelöscht werden, das es in Verwendung ist!", "error"); $this->redirect("Contractconfiggroup"); } if(!$item->delete()) { $this->layout()->setFlash("Fehler beim Löschen!", "error"); $this->redirect("Contractconfiggroup"); } $this->layout()->setFlash("Config Element erfolgreich gelöscht!", "success"); $this->redirect("Contractconfiggroup"); } }