Update AppendForm mit JSON.stringify, Update Form, authUid

This commit is contained in:
ma0068
2024-01-15 13:56:17 +01:00
parent 8d8c25bd6e
commit 61616fbaef
3 changed files with 89 additions and 85 deletions
@@ -19,6 +19,24 @@ 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->outputJson(getData($result));
/* if (isError($result)) {
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
$this->outputJson(getError($result));
} else {
$this->outputJson($result);
}*/
}
public function getNotizen($person_id)
{
$this->load->model('person/Notiz_model', 'NotizModel');
@@ -74,19 +92,26 @@ class Notiz extends FHC_Controller
$this->form_validation->set_rules('text', 'Text', 'required');*/
//TODO(Manu) form validation - schon für type hier?
//Speichern der Notiz und Notizzuordnung
$uid = getAuthUID();
$verfasser_uid = isset($_POST['verfasser_uid']) ? $_POST['verfasser_uid'] : $uid;
if (isset($_POST['data']))
{
$data = json_decode($_POST['data']);
unset($_POST['data']);
foreach ($data as $k => $v) {
$_POST[$k] = $v;
}
}
$titel = $this->input->post('titel');
$text = $this->input->post('text');
$bearbeiter_uid = $this->input->post('bearbeiter');
$erledigt = $this->input->post('erledigt');
$verfasser_uid = isset($_POST['verfasser_uid']) ? $_POST['verfasser_uid'] : $uid;
$bearbeiter_uid = isset($_POST['bearbeiter']) ? $_POST['bearbeiter'] : null;
$type = $this->input->post('typeId');
//get rid of null value error
$start = $this->input->post(date('von'));
$ende = $this->input->post(date('bis'));
$start = $this->input->post('von');
$ende = $this->input->post('bis');
$result = $this->NotizModel->addNotizForType($type, $id, $titel, $text, $uid, $start, $ende, $erledigt, $verfasser_uid, $bearbeiter_uid);
if (isError($result))
@@ -215,6 +240,15 @@ class Notiz extends FHC_Controller
return $this->outputJsonError($this->form_validation->error_array());
}*/
if (isset($_POST['data']))
{
$data = json_decode($_POST['data']);
unset($_POST['data']);
foreach ($data as $k => $v) {
$_POST[$k] = $v;
}
}
if(!$notiz_id)
{
return $this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
@@ -228,8 +262,8 @@ class Notiz extends FHC_Controller
$bearbeiter_uid = isset($_POST['bearbeiter']) ? $_POST['bearbeiter'] : $uid;
$erledigt = $this->input->post('erledigt');
$type = $this->input->post('typeId');
$start = $this->input->post(date('von'));
$ende = $this->input->post(date('bis'));
$start = $this->input->post('von');
$ende = $this->input->post('bis');
$result = $this->NotizModel->update(
[
+20 -20
View File
@@ -88,7 +88,8 @@ export default {
return this.verfasser;
},
set(value) {
this.$emit('update:verfasser', value);
//this.$emit('update:verfasser', value);
this.$emit('update:verfasser', value.mitarbeiter_uid);
}
},
intBearbeiter: {
@@ -179,24 +180,12 @@ export default {
<div class="row mb-3">
<label for="bis" class="form-label col-sm-2">VerfasserIn</label>
<div class="col-sm-7">
<input type="text" v-model="intVerfasser" class="form-control">
{{uid}}
</div>
</div>
<div class="row mb-3">
<label for="bis" class="form-label col-sm-2">BearbeiterIn</label>
<div class="col-sm-7">
<PvAutoComplete v-model="intBearbeiter" optionLabel="mitarbeiter" :suggestions="filteredMitarbeiter" @complete="search" minLength="3"/>
<!-- <input type="text" v-model="intBearbeiter" class="form-control"> -->
<div class="col-sm-3">
<PvAutoComplete v-model="intVerfasser" optionLabel="mitarbeiter" :suggestions="filteredMitarbeiter" @complete="search" minLength="3"/>
</div>
</div>
<div class="row mb-3">
<label for="von" class="form-label col-sm-2">von</label>
<div class="col-sm-2">
<label for="von" class="form-label col-sm-1">von</label>
<div class="col-sm-3">
<vue-date-picker
id="von"
v-model="intVon"
@@ -205,10 +194,17 @@ export default {
:enable-time-picker="false"
format="dd.MM.yyyy"
preview-format="dd.MM.yyyy"></vue-date-picker>
</div>
</div>
<div class="row mb-3">
<label for="bis" class="form-label col-sm-2">BearbeiterIn</label>
<div class="col-sm-3">
<PvAutoComplete v-model="intBearbeiter" optionLabel="mitarbeiter" :suggestions="filteredMitarbeiter" @complete="search" minLength="3"/>
</div>
<label for="bis" class="form-label col-sm-1">bis</label>
<div class="col-sm-2">
<div class="col-sm-3">
<vue-date-picker
id="bis"
v-model="intBis"
@@ -218,8 +214,12 @@ export default {
format="dd.MM.yyyy"
preview-format="dd.MM.yyyy"></vue-date-picker>
</div>
</div>
<div class="row mb-3">
<label for="bis" class="form-label col-sm-1">erledigt</label>
<label for="bis" class="form-label col-sm-2">erledigt</label>
<div class="col-sm-1">
<input type="checkbox" v-model="intErledigt">
</div>
@@ -7,7 +7,7 @@ var editIcon = function (cell, formatterParams) {
return "<i class='fa fa-edit'></i>";
};
var deleteIcon = function (cell, formatterParams){
return "<i class='fa fa-remove'></i>";
return "<i class='fa fa-remove text-danger'></i>";
};
export default {
@@ -28,13 +28,13 @@ export default {
columns: [
{title: "Titel", field: "titel"},
{title: "Text", field: "text", width: 350},
{title: "VerfasserIn", field: "verfasser_uid", visible: false},
{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: "Dokumente", field: "dms_id"},*/
{title: "Dokumente", field: "countdoc"},
{title: "Erledigt", field: "erledigt"},
{title: "Erledigt", field: "erledigt", visible: false},
{title: "Notiz_id", field: "notiz_id", visible: false},
{title: "Notizzuordnung_id", field: "notizzuordnung_id", visible: false},
{
@@ -58,6 +58,8 @@ export default {
},
tabulatorEvents: [],
notizen: [],
uid: '',
intVerfasser: '',
filteredMitarbeiter: [],
formData: {
typeId: 'person_id',
@@ -68,12 +70,13 @@ export default {
bis: null,
document: null,
erledigt: false,
verfasser: null,
verfasser: this.uid,
bearbeiter: null,
anhang: []
},
showErweitert: true,
showDocument: true,
showDocument: true
}
},
methods:{
@@ -111,35 +114,22 @@ export default {
this.resetFormData();
this.formData.typeId = 'person_id';
this.formData.titel = '';
this.formData.statusNew = false;
this.formData.statusNew = true;
this.formData.text = null;
this.formData.von = null;
this.formData.bis = null;
this.formData.document = null;
this.formData.erledigt = false;
this.formData.verfasser = null;
this.formData.verfasser = this.uid;
this.formData.bearbeiter = null;
this.formData.anhang = [];
},
addNewNotiz(notizData) {
/* console.log("here: anhang noch empty");
console.log(this.formData);*/
const formData = new FormData();
//working with single files
// Object.entries(this.formData).forEach(([k, v]) => formData.append(k, v));
//multiple files
//console.log(this.formData.anhang);
Object.entries(this.formData).forEach(([k, v]) => {
if(k!= 'anhang')
formData.append(k, v);
});
formData.append('data', JSON.stringify(this.formData));
Object.entries(this.formData.anhang).forEach(([k, v]) => formData.append(k, v));
/*
console.log(this.formData);
console.log(formData);*/
CoreRESTClient.post('components/stv/Notiz/addNewNotiz/' + this.modelValue.person_id,
formData,
@@ -228,46 +218,18 @@ export default {
bis: null,
document: null,
erledigt: false,
verfasser: null,
verfasser: this.uid,
bearbeiter: null,
anhang: []
};
},
/* updateNotiz(notiz_id){
CoreRESTClient.post('components/stv/Notiz/updateNotiz/' + notiz_id,
this.formData
).then(response => {
if (!response.data.error) {
this.$fhcAlert.alertSuccess('Update erfolgreich');
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.statusMsg = 'Error in Catch';
this.$fhcAlert.alertError('Fehler bei Updateroutine aufgetreten');
}).finally(() => {
window.scrollTo(0, 0);
//this.reload();
});
},*/
updateNotiz(notiz_id){
const formData = new FormData();
Object.entries(this.formData).forEach(([k, v]) => {
if(k!= 'anhang')
formData.append(k, v);
});
formData.append('data', JSON.stringify(this.formData));
Object.entries(this.formData.anhang).forEach(([k, v]) => formData.append(k, v));
console.log(this.formData);
//console.log(this.formData);
//warum geht das nicht analog? wie kann titel = null sein?
CoreRESTClient.post('components/stv/Notiz/updateNotiz/' + notiz_id,
formData,
{ Headers: { "Content-Type": "multipart/form-data" } }
@@ -290,6 +252,17 @@ export default {
});
},
},
created(){
CoreRESTClient
.get('components/stv/Notiz/getUid')
.then(result => {
if(result.data.retval) {
this.formData.verfasser = result.data.retval;
}
})
.catch(this.$fhcAlert.handleSystemError);
},
computed: { },
template: `
<div class="stv-details-details h-100 pb-3">
@@ -343,10 +316,7 @@ export default {
<div>
parent: {{formData.bearbeiter}}
<!-- Parent: {{formData.title}} {{formData.anhang}} || {{formData.anhang.name}}
<span v-for="(anhang,index) in formData.anhang"> {{anhang.name}} {{index}}<br></span> ref: {{formData.ref}}-->
<!-- PARENT: {{formData.anhang}} {{formData.typeId}} | single: {{formData.anhang.name}} , multi: {{formData.anhang}} <span v-for="(anhang,index) in formData.anhang"> {{anhang.name}} {{index}}<br></span> ref: {{formData.ref}}-->
<!-- parent: -->
</div>
</div>
`