mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
Notizcomponent refactor: fhcapi, validations, phrases, format dates
This commit is contained in:
+109
-124
@@ -2,15 +2,30 @@
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
use \DateTime as DateTime;
|
||||
|
||||
class Notiz extends FHC_Controller
|
||||
class Notiz extends FHCAPI_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
parent::__construct([
|
||||
'getUid' => ['admin:r', 'assistenz:r'],
|
||||
'getNotizen' => ['admin:r', 'assistenz:r'],
|
||||
'loadNotiz' => 'assistenz:r', // TODO(manu): self::PERM_LOGGED
|
||||
'addNewNotiz' => 'assistenz:r', // TODO(manu): self::PERM_LOGGED
|
||||
'updateNotiz' => 'assistenz:r', // TODO(manu): self::PERM_LOGGED
|
||||
'deleteNotiz' => ['admin:r', 'assistenz:r'],
|
||||
'loadDokumente' => ['admin:r', 'assistenz:r'],
|
||||
'getMitarbeiter' => ['admin:r', 'assistenz:r'],
|
||||
'advanceStatus' => ['admin:r', 'assistenz:r'],
|
||||
'confirmStatus' => ['admin:r', 'assistenz:r']
|
||||
]);
|
||||
|
||||
//Load Models
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
$this->load->model('person/Notizzuordnung_model', 'NotizzuordnungModel');
|
||||
|
||||
// Load Libraries
|
||||
$this->load->library('AuthLib');
|
||||
$this->load->library('VariableLib', ['uid' => getAuthUID()]);
|
||||
|
||||
// Load language phrases
|
||||
@@ -21,19 +36,11 @@ class Notiz extends FHC_Controller
|
||||
|
||||
public function getUid()
|
||||
{
|
||||
// Load Libraries
|
||||
$this->load->library('AuthLib');
|
||||
$this->load->library('VariableLib', ['uid' => getAuthUID()]);
|
||||
$result = getAuthUid();
|
||||
|
||||
$this->outputJsonError($result);
|
||||
$this->terminateWithSuccess(getAuthUID());
|
||||
}
|
||||
|
||||
public function getNotizen($id, $type)
|
||||
{
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
$this->load->model('person/Notizzuordnung_model', 'NotizzuordnungModel');
|
||||
|
||||
//check if valid type
|
||||
$isValidType = $this->NotizzuordnungModel->isValidType($type);
|
||||
|
||||
@@ -42,23 +49,23 @@ class Notiz extends FHC_Controller
|
||||
$result = $this->NotizModel->getNotizWithDocEntries($id, $type);
|
||||
|
||||
if (isError($result)) {
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
$this->outputJson(getError($result));
|
||||
} else {
|
||||
$this->outputJson(getData($result) ?: []);
|
||||
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
return $this->terminateWithSuccess(getData($result) ?: []);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Todo manu (phrases, response?)
|
||||
$result = "datatype not yet implemented for notes";
|
||||
$this->outputJson(getError($result));
|
||||
return $this->terminateWithError("type not valid", self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
}
|
||||
|
||||
public function loadNotiz($notiz_id)
|
||||
public function loadNotiz()
|
||||
{
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
|
||||
|
||||
$notiz_id = $this->input->post('notiz_id');
|
||||
|
||||
//$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
$this->NotizModel->addJoin('public.tbl_notiz_dokument', 'notiz_id', 'LEFT');
|
||||
$this->NotizModel->addSelect('*');
|
||||
$this->NotizModel->addSelect("TO_CHAR(CASE WHEN public.tbl_notiz.updateamum >= public.tbl_notiz.insertamum
|
||||
@@ -68,23 +75,23 @@ class Notiz extends FHC_Controller
|
||||
$result = $this->NotizModel->loadWhere(
|
||||
array('notiz_id' => $notiz_id)
|
||||
);
|
||||
if (isError($result)) {
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
$this->outputJson($result);
|
||||
if (isError($result))
|
||||
{
|
||||
$this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
elseif (!hasData($result)) {
|
||||
$this->outputJson($result);
|
||||
elseif (!hasData($result))
|
||||
{
|
||||
$this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=>'Notiz_id']), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->outputJsonSuccess(current(getData($result)));
|
||||
$this->terminateWithSuccess(current(getData($result)));
|
||||
}
|
||||
}
|
||||
|
||||
public function addNewNotiz($id, $paramTyp = null)
|
||||
{
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
//$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
|
||||
$this->load->library('DmsLib');
|
||||
$this->load->library('form_validation');
|
||||
@@ -101,12 +108,17 @@ class Notiz extends FHC_Controller
|
||||
}
|
||||
|
||||
//Form Validation
|
||||
$this->form_validation->set_rules('titel', 'titel', 'callback_titel_required');
|
||||
$this->form_validation->set_rules('text', 'text', 'callback_text_required');
|
||||
$this->form_validation->set_rules('titel', 'Titel', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Titel'])
|
||||
]);
|
||||
|
||||
$this->form_validation->set_rules('text', 'Text', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Text'])
|
||||
]);
|
||||
|
||||
if ($this->form_validation->run() == false)
|
||||
{
|
||||
return $this->outputJsonError($this->form_validation->error_array());
|
||||
$this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
}
|
||||
|
||||
$titel = $this->input->post('titel');
|
||||
@@ -115,15 +127,14 @@ class Notiz extends FHC_Controller
|
||||
$verfasser_uid = isset($_POST['verfasser']) ? $_POST['verfasser'] : $uid;
|
||||
$bearbeiter_uid = isset($_POST['bearbeiter']) ? $_POST['bearbeiter'] : null;
|
||||
$type = $this->input->post('typeId');
|
||||
$start = $this->input->post('Von');
|
||||
$ende = $this->input->post('Bis');
|
||||
$start = $this->input->post('von');
|
||||
$ende = $this->input->post('bis');
|
||||
|
||||
//Speichern der Notiz und Notizzuordnung inkl Prüfung ob valid type
|
||||
$result = $this->NotizModel->addNotizForType($type, $id, $titel, $text, $uid, $start, $ende, $erledigt, $verfasser_uid, $bearbeiter_uid);
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
return $this->outputJson(getError($result));
|
||||
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
$notiz_id = $result->retval;
|
||||
|
||||
@@ -141,12 +152,12 @@ class Notiz extends FHC_Controller
|
||||
);
|
||||
|
||||
//Todo(manu) check if filetypes weiter eingeschränkt werden sollen
|
||||
//Todo(manu)check name files: nicht gleiches file 2mal hochladen
|
||||
$result = $this->dmslib->upload($dms, $k, ['*']);
|
||||
/* $result = $this->dmslib->upload($dms, $k, ['application/pdf','application/x.fhc-dms+json']);*/
|
||||
/* $result = $this->dmslib->upload($dms, $k, ['application/pdf','application/x.fhc-dms+json']);*/
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
return $this->outputJson(getError($result));
|
||||
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
$dms_id_arr[] = $result->retval['dms_id'];
|
||||
}
|
||||
@@ -161,20 +172,16 @@ class Notiz extends FHC_Controller
|
||||
$result = $this->NotizdokumentModel->insert(array('notiz_id' => $notiz_id, 'dms_id' => $dms_id));
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
return $this->outputJson(getError($result));
|
||||
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $this->outputJsonSuccess(true);
|
||||
return $this->terminateWithSuccess($result);
|
||||
}
|
||||
|
||||
public function updateNotiz($notiz_id)
|
||||
public function updateNotiz()
|
||||
{
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
$this->load->model('person/Notizdokument_model', 'NotizdokumentModel');
|
||||
|
||||
$this->load->library('form_validation');
|
||||
$this->load->library('DmsLib');
|
||||
|
||||
@@ -187,18 +194,25 @@ class Notiz extends FHC_Controller
|
||||
}
|
||||
}
|
||||
|
||||
$notiz_id = $this->input->post('notiz_id');
|
||||
|
||||
if(!$notiz_id)
|
||||
{
|
||||
return $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
$this->terminateWithError($this->p->t('ui','error_missingId',['id'=>'Notiz_id']), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
//Form Validation
|
||||
$this->form_validation->set_rules('titel', 'titel', 'callback_titel_required');
|
||||
$this->form_validation->set_rules('text', 'text', 'callback_text_required');
|
||||
$this->form_validation->set_rules('titel', 'Titel', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Titel'])
|
||||
]);
|
||||
|
||||
$this->form_validation->set_rules('text', 'Text', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Text'])
|
||||
]);
|
||||
|
||||
if ($this->form_validation->run() == false)
|
||||
{
|
||||
return $this->outputJsonError($this->form_validation->error_array());
|
||||
$this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
}
|
||||
|
||||
//update Notiz
|
||||
@@ -208,7 +222,6 @@ class Notiz extends FHC_Controller
|
||||
$verfasser_uid = $this->input->post('verfasser');
|
||||
$bearbeiter_uid = isset($_POST['bearbeiter']) ? $_POST['bearbeiter'] : $uid;
|
||||
$erledigt = $this->input->post('erledigt');
|
||||
//$type = $this->input->post('typeId'); //soll auch dieser geändert werden können?
|
||||
$start = $this->input->post('von');
|
||||
$ende = $this->input->post('bis');
|
||||
|
||||
@@ -230,8 +243,7 @@ class Notiz extends FHC_Controller
|
||||
);
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
return $this->outputJson(getError($result));
|
||||
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
//update(1) laden aller bereits mit dieser notiz_id verknüpften DMS-Einträge
|
||||
@@ -242,8 +254,7 @@ class Notiz extends FHC_Controller
|
||||
$result = $this->NotizdokumentModel->loadWhere(array('notiz_id' => $notiz_id));
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
$this->outputJson(getError($result));
|
||||
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
elseif (!hasData($result))
|
||||
{
|
||||
@@ -256,7 +267,7 @@ class Notiz extends FHC_Controller
|
||||
$dms_id_arr[] = array(
|
||||
'name' => $doc->name,
|
||||
'dms_id' => $doc->dms_id
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,20 +292,19 @@ class Notiz extends FHC_Controller
|
||||
);
|
||||
|
||||
//Todo(manu) check if filetypes weiter eingeschränkt werden sollen
|
||||
//Todo(manu)check name files: nicht gleiches file 2mal hochladen
|
||||
$result = $this->dmslib->upload($dms, $k, array('*'));
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
return $this->outputJson(getError($result));
|
||||
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
$dms_id = $result->retval['dms_id'];
|
||||
|
||||
$result = $this->NotizdokumentModel->insert(array('notiz_id' => $notiz_id, 'dms_id' => $dms_id));
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
return $this->outputJson(getError($result));
|
||||
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -302,11 +312,18 @@ class Notiz extends FHC_Controller
|
||||
//update(3) check if Dateien gelöscht wurden
|
||||
if(count($dms_uploaded) != count($dms_id_arr))
|
||||
{
|
||||
$upload_new_names = array_column($dms_uploaded, "name");
|
||||
if (count($dms_uploaded) == 0)
|
||||
{
|
||||
$filesDeleted = $dms_id_arr;
|
||||
}
|
||||
else
|
||||
{
|
||||
$upload_new_names = array_column($dms_uploaded, "name");
|
||||
|
||||
$filesDeleted = array_filter($dms_id_arr, function ($file) use ($upload_new_names) {
|
||||
return !in_array($file["name"], $upload_new_names);
|
||||
});
|
||||
$filesDeleted = array_filter($dms_id_arr, function ($file) use ($upload_new_names) {
|
||||
return !in_array($file["name"], $upload_new_names);
|
||||
});
|
||||
}
|
||||
|
||||
foreach ($filesDeleted as $file)
|
||||
{
|
||||
@@ -314,18 +331,20 @@ class Notiz extends FHC_Controller
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
return $this->outputJson(getError($result));
|
||||
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
else
|
||||
$this->outputJson($result);
|
||||
}
|
||||
}
|
||||
return $this->outputJsonSuccess(true);
|
||||
return $this->terminateWithSuccess($result);
|
||||
}
|
||||
|
||||
public function deleteNotiz($notiz_id)
|
||||
public function deleteNotiz()
|
||||
{
|
||||
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
|
||||
$notiz_id = $this->input->post('notiz_id');
|
||||
|
||||
//dms_id auslesen aus notizdokument wenn vorhanden
|
||||
$dms_id_arr = [];
|
||||
$this->load->model('person/Notizdokument_model', 'NotizdokumentModel');
|
||||
@@ -334,17 +353,13 @@ class Notiz extends FHC_Controller
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
$this->outputJson(getError($result));
|
||||
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
elseif (!hasData($result))
|
||||
{
|
||||
$this->outputJson($result);
|
||||
}
|
||||
else
|
||||
|
||||
if(hasData($result))
|
||||
{
|
||||
$result = getData($result);
|
||||
foreach($result as $doc) {
|
||||
foreach ($result as $doc) {
|
||||
$dms_id_arr[] = $doc->dms_id;
|
||||
}
|
||||
}
|
||||
@@ -358,15 +373,13 @@ class Notiz extends FHC_Controller
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
return $this->outputJson(getError($result));
|
||||
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
else
|
||||
$this->outputJson($result);
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
}
|
||||
|
||||
//Todo(manu) rollback?
|
||||
//delete Notiz und Notizzuordnung
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
$this->NotizModel->addJoin('public.tbl_notizzuordnung', 'notiz_id');
|
||||
@@ -377,20 +390,20 @@ class Notiz extends FHC_Controller
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
$this->outputJson($result);
|
||||
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
elseif (!hasData($result)) {
|
||||
$this->outputJson($result);
|
||||
if(!hasData($result))
|
||||
{
|
||||
return $this->terminateWithError($this->p->t('ui','error_missingId', ['id'=> 'Notiz_id']), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
return $this->outputJsonSuccess(current(getData($result)));
|
||||
return $this->terminateWithSuccess(current(getData($result)));
|
||||
}
|
||||
|
||||
public function loadDokumente($notiz_id)
|
||||
public function loadDokumente()
|
||||
{
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
|
||||
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
|
||||
$notiz_id = $this->input->post('notiz_id');
|
||||
|
||||
$this->NotizModel->addSelect('campus.tbl_dms_version.*');
|
||||
|
||||
@@ -401,51 +414,23 @@ class Notiz extends FHC_Controller
|
||||
array('public.tbl_notiz.notiz_id' => $notiz_id)
|
||||
);
|
||||
if (isError($result)) {
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
$this->outputJson($result);
|
||||
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
|
||||
elseif (!hasData($result)) {
|
||||
$this->outputJson($result);
|
||||
}
|
||||
else
|
||||
if(!hasData($result))
|
||||
{
|
||||
$this->outputJsonSuccess(getData($result));
|
||||
return $this->terminateWithError($this->p->t('ui','error_missingId', ['id'=> 'Notiz_id']), self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
return $this->terminateWithSuccess(getData($result));
|
||||
}
|
||||
|
||||
public function getMitarbeiter($searchString)
|
||||
{
|
||||
$this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
|
||||
|
||||
$result = $this->MitarbeiterModel->searchMitarbeiter($searchString);
|
||||
if (isError($result)) {
|
||||
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
|
||||
$this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
||||
}
|
||||
$this->outputJson($result);
|
||||
return $this->terminateWithSuccess($result);
|
||||
}
|
||||
|
||||
public function titel_required($value)
|
||||
{
|
||||
if (empty($value)) {
|
||||
$this->form_validation->set_message('titel_required', $this->p->t('ui', 'error_fieldRequired', ['field' => 'Titel']));
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public function text_required($value)
|
||||
{
|
||||
if (empty($value)) {
|
||||
$this->form_validation->set_message('text_required', $this->p->t('ui', 'error_fieldRequired', ['field' => 'Text']));
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -271,20 +271,6 @@ class Notiz_model extends DB_Model
|
||||
*/
|
||||
public function getNotizWithDocEntries($id, $type)
|
||||
{
|
||||
// ci query builder returns null
|
||||
/* $this->db->select('n.*, count(dms_id) as countDoc, z.notizzuordnung_id');
|
||||
$this->db->select('(CASE WHEN n.updateamum >= n.insertamum THEN n.updateamum ELSE n.insertamum END) AS lastUpdate');
|
||||
$this->db->from('public.tbl_notiz n');
|
||||
$this->db->join('public.tbl_notizzuordnung z', 'n.notiz_id = z.notiz_id');
|
||||
$this->db->join('public.tbl_notiz_dokument dok', 'n.notiz_id = dok.notiz_id', 'left');
|
||||
$this->db->join('campus.tbl_dms_version', 'dok.notiz_id = campus.tbl_dms_version.dms_id', 'left');
|
||||
$this->db->where("z.$type", $id);
|
||||
$this->db->group_by('n.notiz_id, z.notizzuordnung_id');
|
||||
|
||||
$query = $this->db->get();
|
||||
return $query->result();*/
|
||||
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
n.*, count(dms_id) as countDoc, z.notizzuordnung_id,
|
||||
@@ -292,7 +278,10 @@ class Notiz_model extends DB_Model
|
||||
WHEN n.updateamum >= n.insertamum THEN n.updateamum
|
||||
ELSE n.insertamum
|
||||
END::timestamp, 'DD.MM.YYYY HH24:MI:SS') AS lastUpdate,
|
||||
regexp_replace(n.text, '<[^>]*>', '', 'g') as text_stripped
|
||||
regexp_replace(n.text, '<[^>]*>', '', 'g') as text_stripped,
|
||||
TO_CHAR(n.start::timestamp, 'DD.MM.YYYY') AS start_format,
|
||||
TO_CHAR(n.ende::timestamp, 'DD.MM.YYYY') AS ende_format
|
||||
|
||||
FROM
|
||||
public.tbl_notiz n
|
||||
JOIN
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import VueDatePicker from '../vueDatepicker.js.php';
|
||||
import PvAutoComplete from "../../../../index.ci.php/public/js/components/primevue/autocomplete/autocomplete.esm.min.js";
|
||||
import FormUploadDms from '../Form/Upload/Dms.js';
|
||||
import {CoreRESTClient} from "../../RESTClient";
|
||||
import {CoreFilterCmpt} from "../filter/Filter.js";
|
||||
import BsModal from "../Bootstrap/Modal";
|
||||
|
||||
@@ -24,14 +23,17 @@ export default {
|
||||
data(){
|
||||
return {
|
||||
tabulatorOptions: {
|
||||
ajaxURL: CoreRESTClient._generateRouterURI('components/stv/Notiz/getNotizen/' + this.id + '/' + this.typeId),
|
||||
ajaxURL: 'api/frontend/v1/stv/Notiz/getNotizen/' + this.id + '/' + this.typeId,
|
||||
ajaxRequestFunc: this.$fhcApi.get,
|
||||
ajaxResponse: (url, params, response) => response.data,
|
||||
//ajaxURL: CoreRESTClient._generateRouterURI('components/stv/Notiz/getNotizen/' + this.id + '/' + this.typeId),
|
||||
columns: [
|
||||
{title: "Titel", field: "titel"},
|
||||
{title: "Text", field: "text_stripped", width: 250},
|
||||
{title: "VerfasserIn", field: "verfasser_uid"},
|
||||
{title: "BearbeiterIn", field: "bearbeiter_uid", visible: false},
|
||||
{title: "Start", field: "start", visible: false},
|
||||
{title: "Ende", field: "ende", visible: false},
|
||||
{title: "Start", field: "start_format", visible: false},
|
||||
{title: "Ende", field: "ende_format", visible: false},
|
||||
{title: "Dokumente", field: "countdoc"},
|
||||
{title: "Erledigt", field: "erledigt", visible: false},
|
||||
{title: "Notiz_id", field: "notiz_id", visible: false},
|
||||
@@ -74,7 +76,46 @@ export default {
|
||||
selectable: true,
|
||||
index: 'notiz_id'
|
||||
},
|
||||
tabulatorEvents: [],
|
||||
tabulatorEvents: [
|
||||
{
|
||||
event: 'tableBuilt',
|
||||
handler: async() => {
|
||||
|
||||
await this.$p.loadCategory(['notiz','global']);
|
||||
|
||||
let cm = this.$refs.table.tabulator.columnManager;
|
||||
|
||||
cm.getColumnByField('verfasser_uid').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'verfasser')
|
||||
});
|
||||
cm.getColumnByField('titel').component.updateDefinition({
|
||||
title: this.$p.t('global', 'titel')
|
||||
});
|
||||
cm.getColumnByField('text_stripped').component.updateDefinition({
|
||||
title: this.$p.t('global', 'text')
|
||||
});
|
||||
cm.getColumnByField('bearbeiter_uid').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'bearbeiter')
|
||||
});
|
||||
cm.getColumnByField('start_format').component.updateDefinition({
|
||||
title: this.$p.t('global', 'gueltigVon')
|
||||
});
|
||||
cm.getColumnByField('ende_format').component.updateDefinition({
|
||||
title: this.$p.t('global', 'gueltigBis')
|
||||
});
|
||||
cm.getColumnByField('countdoc').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'document')
|
||||
});
|
||||
cm.getColumnByField('erledigt').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'erledigt')
|
||||
});
|
||||
cm.getColumnByField('lastupdate').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'letzte_aenderung')
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
],
|
||||
notizen: [],
|
||||
multiupload: true,
|
||||
mitarbeiter: [],
|
||||
@@ -101,14 +142,11 @@ export default {
|
||||
methods: {
|
||||
actionDeleteNotiz(notiz_id){
|
||||
this.loadNotiz(notiz_id).then(() => {
|
||||
if(this.notizen.notiz_id) {
|
||||
this.$refs.deleteNotizModal.show();
|
||||
}
|
||||
});
|
||||
},
|
||||
actionEditNotiz(notiz_id){
|
||||
this.loadNotiz(notiz_id).then(() => {
|
||||
console.log(this.notizen);
|
||||
if(this.notizen.notiz_id) {
|
||||
this.notizData.titel = this.notizen.titel;
|
||||
this.notizData.statusNew = false;
|
||||
@@ -126,10 +164,11 @@ export default {
|
||||
}
|
||||
})
|
||||
.then(() => {
|
||||
if(this.notizen.dms_id){
|
||||
console.log("loadEntries with " + this.notizen.notiz_id);
|
||||
this.loadDocEntries(this.notizen.notiz_id);
|
||||
if(this.notizData.dms_id){
|
||||
this.loadDocEntries(this.notizData.notiz_id);
|
||||
}
|
||||
else
|
||||
this.notizData.anhang = [];
|
||||
});
|
||||
},
|
||||
actionNewNotiz(){
|
||||
@@ -140,103 +179,80 @@ export default {
|
||||
|
||||
formData.append('data', JSON.stringify(this.notizData));
|
||||
Object.entries(this.notizData.anhang).forEach(([k, v]) => formData.append(k, v));
|
||||
CoreRESTClient.post(
|
||||
'components/stv/Notiz/addNewNotiz/' + this.id,
|
||||
this.$fhcApi.post('api/frontend/v1/stv/notiz/addNewNotiz/' + this.id,
|
||||
formData,
|
||||
{ Headers: { "Content-Type": "multipart/form-data" } }
|
||||
).then(response => {
|
||||
if (!response.data.error) {
|
||||
this.$fhcAlert.alertSuccess('Anlegen von neuer Notiz erfolgreich');
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.resetFormData();
|
||||
this.reload();
|
||||
} else {
|
||||
const errorData = response.data.retval;
|
||||
Object.entries(errorData).forEach(entry => {
|
||||
const [key, value] = entry;
|
||||
this.$fhcAlert.alertError(value);
|
||||
});
|
||||
}
|
||||
}).catch(error => {
|
||||
if (error.response) {
|
||||
console.log(error.response);
|
||||
this.$fhcAlert.alertError(error.response.data);
|
||||
}
|
||||
}).finally(() => {
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError)
|
||||
.finally(() => {
|
||||
window.scrollTo(0, 0);
|
||||
});
|
||||
},
|
||||
deleteNotiz(notiz_id){
|
||||
CoreRESTClient.post('components/stv/Notiz/deleteNotiz/' + notiz_id)
|
||||
.then(response => {
|
||||
if (!response.data.error) {
|
||||
this.$fhcAlert.alertSuccess('Löschen erfolgreich');
|
||||
this.param = {
|
||||
'notiz_id': notiz_id
|
||||
};
|
||||
|
||||
return this.$fhcApi.post('api/frontend/v1/stv/notiz/deleteNotiz/', this.param)
|
||||
.then(result => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
||||
this.$refs.deleteNotizModal.hide();
|
||||
this.reload();
|
||||
} else {
|
||||
this.$fhcAlert.alertError('Keine Notiz mit Id ' + notiz_id + ' gefunden');
|
||||
}
|
||||
}).catch(error => {
|
||||
this.$fhcAlert.alertError('Fehler bei Löschroutine aufgetreten');
|
||||
}).finally(()=> {
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError)
|
||||
.finally(()=> {
|
||||
window.scrollTo(0, 0);
|
||||
});
|
||||
},
|
||||
loadNotiz(notiz_id){
|
||||
return CoreRESTClient.get('components/stv/Notiz/loadNotiz/' + notiz_id)
|
||||
.then(
|
||||
result => {
|
||||
if(result.data.retval) {
|
||||
this.notizen = result.data.retval;
|
||||
}
|
||||
else {
|
||||
this.notizen = {};
|
||||
this.$fhcAlert.alertError('Keine Notiz mit Id ' + notiz_id + ' gefunden');
|
||||
}
|
||||
this.param = {
|
||||
'notiz_id': notiz_id
|
||||
};
|
||||
return this.$fhcApi.post('api/frontend/v1/stv/notiz/loadNotiz/',
|
||||
this.param)
|
||||
.then(result => {
|
||||
this.notizData = result.data;
|
||||
return result;
|
||||
}
|
||||
);
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
loadDocEntries(notiz_id){
|
||||
return CoreRESTClient.get('components/stv/Notiz/loadDokumente/' + notiz_id)
|
||||
this.param = {
|
||||
'notiz_id': notiz_id
|
||||
};
|
||||
return this.$fhcApi.post('api/frontend/v1/stv/notiz/loadDokumente/',
|
||||
this.param)
|
||||
.then(
|
||||
result => {
|
||||
if(result.data.retval) {
|
||||
this.notizData.anhang = result.data.retval;
|
||||
console.log(this.notizData.anhang);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.notizData.anhang = {};
|
||||
this.$fhcAlert.alertError('Kein Dokumenteneintrag mit NotizId ' + notiz_id + ' gefunden');
|
||||
}
|
||||
this.notizData.anhang = result.data;
|
||||
return result;
|
||||
}
|
||||
);
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
updateNotiz(notiz_id){
|
||||
const formData = new FormData();
|
||||
formData.append('data', JSON.stringify(this.notizData));
|
||||
Object.entries(this.notizData.anhang).forEach(([k, v]) => formData.append(k, v));
|
||||
|
||||
CoreRESTClient.post(
|
||||
'components/stv/Notiz/updateNotiz/' + notiz_id,
|
||||
this.param = {
|
||||
'notiz_id': notiz_id
|
||||
};
|
||||
|
||||
return this.$fhcApi.post(
|
||||
'api/frontend/v1/stv/notiz/updateNotiz/' ,
|
||||
formData,
|
||||
{ Headers: { "Content-Type": "multipart/form-data" } }
|
||||
).then(response => {
|
||||
if (!response.data.error) {
|
||||
this.$fhcAlert.alertSuccess('Update von Notiz erfolgreich');
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.resetFormData();
|
||||
this.reload();
|
||||
} else {
|
||||
const errorData = response.data.retval;
|
||||
Object.entries(errorData).forEach(entry => {
|
||||
const [key, value] = entry;
|
||||
this.$fhcAlert.alertError(value);
|
||||
});
|
||||
}
|
||||
}).catch(error => {
|
||||
this.$fhcAlert.alertError('Fehler bei Updateroutine aufgetreten');
|
||||
}).finally(() => {
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError)
|
||||
.finally(() => {
|
||||
window.scrollTo(0, 0);
|
||||
});
|
||||
},
|
||||
@@ -261,20 +277,18 @@ export default {
|
||||
};
|
||||
},
|
||||
getUid(){
|
||||
CoreRESTClient
|
||||
.get('components/stv/Notiz/getUid')
|
||||
this.$fhcApi
|
||||
.get('api/frontend/v1/stv/notiz/getUid')
|
||||
.then(result => {
|
||||
if(result.data.retval) {
|
||||
this.notizData.intVerfasser = result.data.retval;
|
||||
}
|
||||
this.notizData.intVerfasser = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
search(event) {
|
||||
return CoreRESTClient
|
||||
.get('components/stv/Notiz/getMitarbeiter/' + event.query)
|
||||
return this.$fhcApi
|
||||
.get('api/frontend/v1/stv/notiz/getMitarbeiter/' + event.query)
|
||||
.then(result => {
|
||||
this.filteredMitarbeiter = CoreRESTClient.getData(result.data);
|
||||
this.filteredMitarbeiter = result.data.retval;
|
||||
});
|
||||
},
|
||||
initTinyMCE() {
|
||||
@@ -319,38 +333,6 @@ export default {
|
||||
if(this.showTinyMCE){
|
||||
this.initTinyMCE();
|
||||
}
|
||||
|
||||
await this.$p.loadCategory(['notiz','global']);
|
||||
|
||||
let cm = this.$refs.table.tabulator.columnManager;
|
||||
|
||||
cm.getColumnByField('verfasser_uid').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'verfasser')
|
||||
});
|
||||
cm.getColumnByField('titel').component.updateDefinition({
|
||||
title: this.$p.t('global', 'titel')
|
||||
});
|
||||
cm.getColumnByField('text_stripped').component.updateDefinition({
|
||||
title: this.$p.t('global', 'text')
|
||||
});
|
||||
cm.getColumnByField('bearbeiter_uid').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'bearbeiter')
|
||||
});
|
||||
cm.getColumnByField('start').component.updateDefinition({
|
||||
title: this.$p.t('global', 'gueltigVon')
|
||||
});
|
||||
cm.getColumnByField('ende').component.updateDefinition({
|
||||
title: this.$p.t('global', 'gueltigBis')
|
||||
});
|
||||
cm.getColumnByField('countdoc').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'document')
|
||||
});
|
||||
cm.getColumnByField('erledigt').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'erledigt')
|
||||
});
|
||||
cm.getColumnByField('lastupdate').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'letzte_aenderung')
|
||||
});
|
||||
},
|
||||
watch: {
|
||||
//watcher für Tinymce-Textfeld
|
||||
@@ -398,7 +380,7 @@ export default {
|
||||
</template>
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @click="resetModal">Abbrechen</button>
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="deleteNotiz(notizen.notiz_id)">OK</button>
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="deleteNotiz(notizData.notiz_id)">OK</button>
|
||||
</template>
|
||||
</BsModal>
|
||||
|
||||
@@ -410,7 +392,7 @@ export default {
|
||||
:side-menu="false"
|
||||
reload
|
||||
new-btn-show
|
||||
new-btn-label="Neu"
|
||||
new-btn-label="Notiz"
|
||||
@click:new="actionNewNotiz"
|
||||
>
|
||||
</core-filter-cmpt>
|
||||
@@ -534,7 +516,7 @@ export default {
|
||||
</div>
|
||||
|
||||
<button v-if="notizData.statusNew" type="button" class="btn btn-primary" @click="addNewNotiz()"> {{$p.t('studierendenantrag', 'btn_new')}}</button>
|
||||
<button v-else type="button" class="btn btn-primary" @click="updateNotiz(notizen.notiz_id)"> {{$p.t('ui', 'speichern')}}</button>
|
||||
<button v-else type="button" class="btn btn-primary" @click="updateNotiz(notizData.notiz_id)"> {{$p.t('ui', 'speichern')}}</button>
|
||||
|
||||
</form>
|
||||
</div>`
|
||||
|
||||
Reference in New Issue
Block a user