needlogin = true; $me = new User(); $me->loadMe(); $this->me = $me; $this->layout()->set("me", $me); if (!$me->is(["Admin", "netowner", "pipeplanner", "lineplanner", "pipeworker", "netoperator", "lineworker"])) { $this->redirect("Dashboard"); } } protected function indexAction() { $this->layout()->setTemplate("Filestore/Index"); $files = FilestoreModel::getAll(); $fileshistory = FilestoreHistoryModel::getAll(); $networkaddress = NetworkAddressModel::getAll(); $this->layout()->set("files", $files); $this->layout()->set("fileshistory", $fileshistory); $this->layout()->set("networkaddresses", $networkaddress); } protected function addAction() { $this->layout()->set("networks", NetworkModel::getAll()); $this->layout()->set("networkaddresses", NetworkAddressModel::getAll()); $this->layout()->setTemplate("Filestore/Form"); } protected function saveAction() { $r = $this->request; $id = $r->id; $editmode = $r->mode; //var_dump($r->get());exit; if (is_numeric($id) && $id > 0) { $mode = "edit"; $filestore = new Filestore($id); if (!$filestore->id) { $this->layout()->setFlash("Datei nicht gefunden", "error"); $this->redirect("Filestore"); } $dataHistory = []; $dataHistory['name'] = $filestore->name; $dataHistory['description'] = $filestore->description; $dataHistory['file_id'] = $filestore->file_id; $dataHistory['network_id'] = $filestore->network_id; $dataHistory['filestore_id'] = $filestore->id; $dataHistory['create'] = $filestore->create; $dataHistory['create_by'] = $filestore->create_by; $dataHistory['edit_by'] = $filestore->edit_by; // $dataHistory['edit'] = date("U"); $dataHistory['edit'] = $filestore->edit; } else { $mode = "add"; } $data = []; if ($editmode != "add-version" && $editmode != "edit-history") { $data['name'] = trim($r->name); $data['network_id'] = trim($r->network_id); } $data['description'] = trim($r->description); $data['edit_by'] = trim($this->me->id); if (!$data['name'] && $editmode != "add-version" && $editmode != "edit-history") { $this->layout()->setFlash("Name darf nicht leer sein", "error"); $this->redirect("Filestore"); } if (!$data['network_id'] && $editmode != "add-version" && $editmode != "edit-history") { $this->layout()->setFlash("Netzgebiet darf nicht leer sein", "error"); $this->redirect("Filestore"); } if (array_key_exists("filestore", $_FILES) && !$_FILES['filestore']['error']) { $upload_error = false; //var_dump($_FILES);exit; $upload = new mfUpload("filestore"); $upload->setSavepath(MFUPLOAD_FILE_SAVE_PATH . "/netzbetrieb"); if (!$upload->getSize()) { $this->layout()->setFlash("Dateiupload fehlgeschlagen: Dokument darf nicht leer sein!", "error"); $this->redirect("Filestore"); } if (substr(strtolower($upload->getFilename()), -3, 3) == "pdf" && !$upload->validatePDF()) { $this->layout()->setFlash("Dateiupload fehlgeschlagen: PDF-Validierung fehlgeschlagen!", "error"); $this->redirect("Filestore"); } try { $upload->save(); } catch (Exception $e) { $this->layout()->setFlash("Dateiupload fehlgeschlagen1", "error"); $this->redirect("Filestore"); } $file_data = []; $file_data['name'] = $upload->getOriginalFilename(); $file_data['filename'] = ($r->file_filename) ? $r->file_filename : $upload->getOriginalFilename(); $file_data['subfolder'] = "netzbetrieb"; $file_data['store_filename'] = $upload->getFilename(); $file_data['orig_filename'] = $upload->getOriginalFilename(); $file = FileModel::create($file_data); $file_id = $file->save(); if (!$file_id) { $this->layout()->setFlash("Dateiupload fehlgeschlagen3", "error"); $this->redirect("Filestore"); } $data['file_id'] = $file_id; if ($mode == "edit" && $editmode == "add-version") { $fsh = FilestoreHistoryModel::create($dataHistory); } } else { if ($mode == "add" || $editmode == "add-version") { $this->layout()->setFlash("Keine Datei angegeben", "error"); if ($editmode == "add-version") { $this->redirect("Filestore"); } else { $this->redirect("Filestore", "add"); } } } // var_dump($_FILES); // var_dump($upload); // exit; if ($mode == "edit") { $filestore->update($data); } else { $filestore = FilestoreModel::create($data); } // var_dump($filestore); // exit; $id = $filestore->save(); if (!$id) { $this->layout()->setFlash("Dateiupload fehlgeschlagen", "error"); $this->redirect("Filestore"); } if ($fsh) { $fsh->save(); } $this->layout()->setFlash("Dateiupload erfolgreich hochgeladen", "success"); $this->redirect("Filestore"); } protected function editAction() { $r = $this->request; $id = $r->id; if ($r->mode) { $mode = $r->mode; } else { $mode = ""; } if (!is_numeric($id) && $id < 1) { $this->layout()->setFlash("Datei nicht gefunden", "error"); $this->redirect("Filestore"); } $filestore = new Filestore($id); $filestorehistory = FilestoreHistoryModel::getAllhistory($id);; if (!$filestore->id) { $this->layout()->setFlash("Datei nicht gefunden", "error"); $this->redirect("Filestore"); } if ($mode) { $this->layout()->set("mode", $mode); } $this->layout()->set("filestorehistory", $filestorehistory); $this->layout()->set("file", $filestore); return $this->addAction(); } protected function deleteAction() { $id = $this->request->id; $filstore = new Filestore($id); if (!$filstore->id || $filstore->id != $id) { $this->layout()->setFlash("Datei nicht gefunden.", "error"); $this->redirect("Filestore"); } foreach ($filstore->histories as $h) { $h->file->delete(); $h->delete(); } $filstore->file->delete(); // check if Product is unused $filstore->delete(); $this->redirect("Filestore"); } protected function apiAction() { if (!$this->me->is(["Admin", "netowner", "pipeplanner", "lineplanner", "pipeworker", "netoperator", "lineworker"])) { $this->redirect("Dashboard"); } $id = $this->request->id; $filestorehistory = FilestoreHistoryModel::getAllhistory($id); $counter = 0; foreach ($filestorehistory as $history) { $data[$counter]['id'] = $history->id; $data[$counter]['file_id'] = $history->data->file_id; $data[$counter]['name'] = $history->data->name; $data[$counter]['description'] = $history->data->description; $data[$counter]['workername'] = $history->data->workername; $data[$counter]['workerid'] = $history->data->workerid; $data[$counter]['edit'] = $history->edit; if (trim($this->me->id) == $history->data->workerid || $this->me->is(["Admin"])) { $data[$counter]['is_delete'] = 1; } else { $data[$counter]['is_delete'] = 0; } $counter++; } echo json_encode($data); exit; } }