mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
Bismeldestichtage Management GUI: added row delete button
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 -->
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user