manage Bismeldestichtage: added possibility to delete a report target date

This commit is contained in:
KarpAlex
2023-06-13 16:14:38 +02:00
parent fe9bf1dc8a
commit f865d09033
5 changed files with 119 additions and 13 deletions
@@ -15,8 +15,9 @@ class Bismeldestichtag extends Auth_Controller
parent::__construct(
array(
'index' => 'admin:r',
'getStudiensemester' => 'admin:r',
'addBismeldestichtag' => 'admin:rw',
'getStudiensemester' => 'admin:r'
'deleteBismeldestichtag' => 'admin:rw'
)
);
@@ -105,4 +106,41 @@ class Bismeldestichtag extends Auth_Controller
));
}
}
public function deleteBismeldestichtag()
{
// get request data
$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');
$meldestichtag = $request->meldestichtag;
$studiensemester_kurzbz = $request->studiensemester_kurzbz;
// 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');
}
}
}
+19 -10
View File
@@ -35,16 +35,25 @@
<verticalsplit>
<template #top>
<!-- input fields -->
<div class="input-group">
<input type="date" class="form-control" name="meldestichtag" v-model="meldestichtag">
<select class="form-control" name="studiensemester_kurzbz" v-model="currSem">
<option v-for="sem in semList" :value="sem.studiensemester_kurzbz">
{{ sem.studiensemester_kurzbz }}
</option>
</select>
<div class="input-group-btn">
<button type="button" class="btn btn-secondary" @click="handlerAddBismeldestichtag">
<?php echo $this->p->t('bismeldestichtag', 'stichtagHinzufuegen') ?>
<div class="row">
<div class="col-9">
<div class="input-group">
<input type="date" class="form-control" name="meldestichtag" v-model="meldestichtag">
<select class="form-control" name="studiensemester_kurzbz" v-model="currSem">
<option v-for="sem in semList" :value="sem.studiensemester_kurzbz">
{{ sem.studiensemester_kurzbz }}
</option>
</select>
<div class="input-group-btn">
<button type="button" class="btn btn-dark" @click="handlerAddBismeldestichtag">
<?php echo $this->p->t('bismeldestichtag', 'stichtagHinzufuegen') ?>
</button>
</div>
</div>
</div>
<div class="col-3 text-center">
<button type="button" class="btn btn-dark" @click="handlerDeleteBismeldestichtag">
<?php echo $this->p->t('bismeldestichtag', 'stichtagLoeschen') ?>
</button>
</div>
</div>
+12
View File
@@ -47,6 +47,18 @@ export const BismeldestichtagAPIs = {
timeout: CORE_BISMELDESTICHTAG_CMPT_TIMEOUT
}
);
},
deleteBismeldestichtag: function(wsParams) {
return CoreRESTClient.post(
'codex/Bismeldestichtag/deleteBismeldestichtag',
{
meldestichtag: wsParams.meldestichtag,
studiensemester_kurzbz: wsParams.studiensemester_kurzbz
},
{
timeout: CORE_BISMELDESTICHTAG_CMPT_TIMEOUT
}
);
}
};
@@ -65,7 +65,7 @@ const bismeldestichtagApp = Vue.createApp({
);
},
/**
* Define Bismeldestichtag call and method to be executed after the call
* Define add Bismeldestichtag call and method to be executed after the call
*/
handlerAddBismeldestichtag: function(event) {
this.startFetchCmpt(
@@ -77,6 +77,19 @@ const bismeldestichtagApp = Vue.createApp({
this.fetchCmptDataFetchedAddBismeldestichtag
);
},
/**
* Define delete Bismeldestichtag call and method to be executed after the call
*/
handlerDeleteBismeldestichtag: function(event) {
this.startFetchCmpt(
BismeldestichtagAPIs.deleteBismeldestichtag,
{
meldestichtag: this.meldestichtag,
studiensemester_kurzbz: this.currSem
},
this.fetchCmptDataFetchedDeleteBismeldestichtag
);
},
/**
* Called after Studiensemester response is received
*/
@@ -92,7 +105,7 @@ const bismeldestichtagApp = Vue.createApp({
alert("No response data");
},
/**
* Called after Bismeldestichtag response is received
* Called after Add Bismeldestichtag response is received
*/
fetchCmptDataFetchedAddBismeldestichtag: function(data) {
if (CoreRESTClient.isError(data))
@@ -105,6 +118,20 @@ const bismeldestichtagApp = Vue.createApp({
else
alert("No response data");
},
/**
* Called after Add Bismeldestichtag response is received
*/
fetchCmptDataFetchedDeleteBismeldestichtag: function(data) {
if (CoreRESTClient.isError(data))
alert(CoreRESTClient.getError(data));
else if (CoreRESTClient.hasData(data))
{
window.location.reload();
alert("Successfully deletted Bismeldestichtag");
}
else
alert("No response data");
},
/**
* Used to start/refresh the FetchCmpt
*/
+20
View File
@@ -18163,6 +18163,26 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'bismeldestichtag',
'phrase' => 'stichtagLoeschen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Meldestichtag löschen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Delete report target date',
'description' => '',
'insertvon' => 'system'
)
)
)
);