From fcd3733f3c31afdf7472eda0a0b0dd78e5dcb365 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 17 Aug 2023 09:12:30 +0200 Subject: [PATCH] AbmeldungStgl GrundDropdown --- .../controllers/lehre/Studierendenantrag.php | 2 +- .../Studierendenantrag/Form/AbmeldungStgl.js | 175 +++++++++++- .../Studierendenantrag/Leitung/Actions/New.js | 2 +- system/phrasesupdate.php | 259 ++++++++++++++++++ 4 files changed, 431 insertions(+), 7 deletions(-) diff --git a/application/controllers/lehre/Studierendenantrag.php b/application/controllers/lehre/Studierendenantrag.php index c0ac284b3..482216518 100644 --- a/application/controllers/lehre/Studierendenantrag.php +++ b/application/controllers/lehre/Studierendenantrag.php @@ -129,7 +129,7 @@ class Studierendenantrag extends FHC_Controller ]); } - public function abmeldungstgl($prestudent_id, $studierendenantrag_id) + public function abmeldungstgl($prestudent_id, $studierendenantrag_id = null) { $this->load->view('lehre/Antrag/Create', [ 'prestudent_id' => $prestudent_id, diff --git a/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js b/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js index 7665c7353..8dd527a9e 100644 --- a/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js +++ b/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js @@ -13,11 +13,17 @@ export default { 'setStatus' ], props: { + prestudentId: Number, studierendenantragId: Number }, data() { return { - data: null + data: null, + saving: false, + errors: { + grund: [], + default: [] + } } }, computed: { @@ -28,6 +34,13 @@ export default { case 'Genehmigt': return 'success'; default: return 'info'; } + }, + loadUrl() { + if (this.studierendenantragId) + return '/components/Antrag/Abmeldung/getDetailsForAntrag/'+ + this.studierendenantragId; + return '/components/Antrag/Abmeldung/getDetailsForNewAntrag/' + + this.prestudentId; } }, methods: { @@ -35,8 +48,7 @@ export default { return axios.get( FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + - '/components/Antrag/Abmeldung/getDetailsForAntrag/' + - this.studierendenantragId + this.loadUrl ).then( result => { this.data = result.data.retval; @@ -49,7 +61,75 @@ export default { return result; } ); - } + }, + createAntrag() { + bootstrap.Modal.getOrCreateInstance(this.$refs.modal).hide(); + this.$emit('setStatus', { + msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_saving')}), + severity: 'warning' + }); + this.saving = true; + for(var k in this.errors) + this.errors[k] = []; + axios.post( + FHC_JS_DATA_STORAGE_OBJECT.app_root + + FHC_JS_DATA_STORAGE_OBJECT.ci_router + + '/components/Antrag/Abmeldung/createAntrag/', { + studiensemester: this.data.studiensemester_kurzbz, + prestudent_id: this.data.prestudent_id, + grund: this.$refs.grund.value + } + ).then( + result => { + if (result.data.error) + { + for (var k in result.data.retval) + { + if (this.errors[k] !== undefined) + this.errors[k].push(result.data.retval[k]); + else + this.errors.default.push(result.data.retval[k]); + } + this.$emit('setStatus', { + msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_error')}), + severity: 'danger' + }); + } + else + { + if (result.data.retval === true) + document.location += ""; + this.data = result.data.retval; + if (this.data.status) { + this.$emit("setStatus", { + msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.data.statustyp}), + severity: this.statusSeverity + }); + } + else + this.$emit('setStatus', { + msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.p.t('studierendenantrag', 'status_open')}), + severity:'success' + }); + } + this.saving = false; + } + ); + }, + appendDropDownText(event){ + let templateText = this.$refs.grund; + + if(event.target.value) + { + let templateT= this.p.t('studierendenantrag', event.target.value); + templateText.value = templateT; + } + else + templateText.value = ''; + }, + }, + created() { + this.uuid = _uuid++; }, template: `
@@ -83,11 +163,96 @@ export default {
-
+ +
{{p.t('studierendenantrag', 'antrag_grund')}}:
+ +
+
if data grund:
{{data.grund}}
+ +
{{data.grund}}
+
+
+ +
+ +
+ +
+ {{errors.grund.join(".")}} +
+
+ +
+ + +
+