Bismeldestichtage Management GUI: added row delete button

This commit is contained in:
KarpAlex
2023-07-17 12:11:15 +02:00
parent b7a1add2f3
commit 7ab5d3add6
5 changed files with 43 additions and 53 deletions
@@ -78,15 +78,10 @@ class Bismeldestichtag extends Auth_Controller
public function getBismeldestichtage()
{
$this->BismeldestichtagModel->addSelect('meldestichtag, studiensemester_kurzbz');
$this->BismeldestichtagModel->addSelect('meldestichtag_id, meldestichtag, studiensemester_kurzbz');
$this->BismeldestichtagModel->addOrder('meldestichtag', 'DESC');
$this->BismeldestichtagModel->addOrder('meldestichtag_id', 'DESC');
$this->outputJson($this->BismeldestichtagModel->load());
//~ if (hasData($bismeldestichtagRes))
//~ $this->outputJsonSuccess(getData($bismeldestichtagRes));
//~ else
//~ $this->outputJsonSuccess(array());
}
public function addBismeldestichtag()
@@ -127,34 +122,12 @@ class Bismeldestichtag extends Auth_Controller
$request = $this->getPostJSON();
// check request data
if (!property_exists($request, 'meldestichtag') || isEmptyString($request->meldestichtag))
$this->terminateWithJsonError('Error occured: Meldestichtag missing');
if (!property_exists($request, 'studiensemester_kurzbz') || isEmptyString($request->studiensemester_kurzbz))
$this->terminateWithJsonError('Error occured: Studiensemester missing');
if (!property_exists($request, 'meldestichtag_id'))
$this->terminateWithJsonError('Error occured: Meldestichtag Id missing');
$meldestichtag = $request->meldestichtag;
$studiensemester_kurzbz = $request->studiensemester_kurzbz;
$meldestichtag_id = $request->meldestichtag_id;
// check if Bismeldestichtag already exists
$this->BismeldestichtagModel->addSelect('meldestichtag_id');
$bismeldestichtagRes = $this->BismeldestichtagModel->loadWhere(
array('meldestichtag' => $meldestichtag, 'studiensemester_kurzbz' => $studiensemester_kurzbz)
);
if (hasData($bismeldestichtagRes))
{
$meldestichtag_id = getData($bismeldestichtagRes)[0]->meldestichtag_id;
// delete if Stichtag does exist
$this->outputJson($this->BismeldestichtagModel->delete(
array('meldestichtag_id' => $meldestichtag_id)
));
}
else
{
// return error if not exists
$this->outputJsonError('Bismeldestichtag does not exist');
}
// deletetion
$this->outputJson($this->BismeldestichtagModel->delete($meldestichtag_id));
}
}
+2 -7
View File
@@ -28,9 +28,9 @@
</core-fetch-cmpt>
<div id="content">
<!-- input fields -->
<!-- input fields -->
<div class="row">
<div class="col-9">
<div class="col-12">
<div class="input-group">
<input type="date" class="form-control" name="meldestichtag" v-model="meldestichtag">
<select class="form-select" name="studiensemester_kurzbz" v-model="currSem">
@@ -45,11 +45,6 @@
</div>
</div>
</div>
<div class="col-3 text-center">
<button type="button" class="btn btn-primary" @click="handlerDeleteBismeldestichtag">
<?php echo $this->p->t('bismeldestichtag', 'stichtagLoeschen') ?>
</button>
</div>
</div>
<br />
<!-- Filter component -->
+1 -2
View File
@@ -61,8 +61,7 @@ export const BismeldestichtagAPIs = {
return CoreRESTClient.post(
'codex/Bismeldestichtag/deleteBismeldestichtag',
{
meldestichtag: wsParams.meldestichtag,
studiensemester_kurzbz: wsParams.studiensemester_kurzbz
meldestichtag_id: wsParams.meldestichtag_id
},
{
timeout: CORE_BISMELDESTICHTAG_CMPT_TIMEOUT
@@ -84,12 +84,11 @@ const bismeldestichtagApp = Vue.createApp({
/**
* Define delete Bismeldestichtag call and method to be executed after the call
*/
handlerDeleteBismeldestichtag: function(event) {
handlerDeleteBismeldestichtag: function(meldestichtag_id) {
this.startFetchCmpt(
BismeldestichtagAPIs.deleteBismeldestichtag,
{
meldestichtag: this.meldestichtag,
studiensemester_kurzbz: this.currSem
meldestichtag_id: meldestichtag_id
},
this.fetchCmptDataFetchedDeleteBismeldestichtag
);
@@ -107,21 +106,38 @@ const bismeldestichtagApp = Vue.createApp({
this.handlerBismeldestichtage();
}
else
alert("No response data");
alert("No Studiensemester data");
},
/**
* Called after Bismeldestichtage response is received
*/
fetchCmptDataFetchedBismeldestichtage: function(data) {
console.log(data);
if (CoreRESTClient.isError(data)) alert(CoreRESTClient.getError(data));
if (CoreRESTClient.hasData(data))
{
let meldestichtage = CoreRESTClient.getData(data);
this.$refs.bismeldestichtageTable.tabulator.setData(meldestichtage);
// set the Meldestichtagedata
this.$refs.bismeldestichtageTable.tabulator.setData(CoreRESTClient.getData(data));
// save delete Bismeldestichtag function
let funcDeleteBismeldestichtag = this.handlerDeleteBismeldestichtag;
let btns = document.getElementsByClassName('delete-btn');
// add click events for deletion
for (let btn in btns)
{
if (btns[btn].addEventListener)
{
btns[btn].addEventListener('click',
function(){
funcDeleteBismeldestichtag(btns[btn].getAttribute('data-meldestichtag-id'));
}
);
}
}
}
else
alert("No response data");
this.$refs.bismeldestichtageTable.tabulator.setData([]);
},
/**
* Called after Add Bismeldestichtag response is received
@@ -27,7 +27,11 @@ export const BismeldestichtagTabulatorOptions = {
return cell.getValue().replace(/(.*)-(.*)-(.*)/, '$3.$2.$1');
}
},
{title: 'Studiensemester', field: 'studiensemester_kurzbz', headerFilter: true}
{title: 'Studiensemester', field: 'studiensemester_kurzbz', headerFilter: true},
{title: 'Löschen', field: 'meldestichtag_id', headerFilter: false, formatter:function(cell){
return '<button class="btn btn-primary delete-btn" data-meldestichtag-id="'+cell.getValue()+'">Löschen</button>';
}
}
]
};
@@ -38,8 +42,11 @@ export const BismeldestichtagTabulatorEventHandlers = [
{
event: "rowClick",
handler: function(e, row) {
let data = row.getData();
alert(data.Studiensemester + ': ' + data.Meldestichtag);
if (e.target.nodeName == 'DIV')
{
let data = row.getData();
alert(data.studiensemester_kurzbz + ': ' + data.meldestichtag_id);
}
}
}
];