239 lines
7.6 KiB
PHP
239 lines
7.6 KiB
PHP
<?php
|
|
|
|
class FilestoreController extends mfBaseController
|
|
{
|
|
protected function init()
|
|
{
|
|
$this->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();
|
|
$networkaddress = NetworkAddressModel::getAll();
|
|
|
|
|
|
$this->layout()->set("files", $files);
|
|
$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 = [];
|
|
$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']) {
|
|
$this->layout()->setFlash("Name 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") {
|
|
$fsh = FilestoreHistoryModel::create($dataHistory);
|
|
}
|
|
} else {
|
|
if ($mode == "add") {
|
|
$this->layout()->setFlash("Keine Datei angegeben", "error");
|
|
$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 = new FilestoreHistory($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) {
|
|
$data[$counter]['is_delete'] = 1;
|
|
} else {
|
|
$data[$counter]['is_delete'] = 0;
|
|
}
|
|
|
|
|
|
$counter++;
|
|
}
|
|
echo json_encode($data);
|
|
exit;
|
|
|
|
}
|
|
} |