diff --git a/application/controllers/lehre/anrechnung/RequestAnrechnung.php b/application/controllers/lehre/anrechnung/RequestAnrechnung.php index ea3ca535a..395e01feb 100644 --- a/application/controllers/lehre/anrechnung/RequestAnrechnung.php +++ b/application/controllers/lehre/anrechnung/RequestAnrechnung.php @@ -179,7 +179,8 @@ class requestAnrechnung extends Auth_Controller // Output to AJAX $this->outputJsonSuccess(array( 'antragdatum' => (new DateTime())->format('d.m.Y'), - 'dms_id' => $lastInsert_dms_id + 'dms_id' => $lastInsert_dms_id, + 'filename' => $_FILES['uploadfile']['name'] )); } diff --git a/application/views/lehre/anrechnung/createAnrechnung.php b/application/views/lehre/anrechnung/createAnrechnung.php index af7043c9c..7e4e0b4dc 100644 --- a/application/views/lehre/anrechnung/createAnrechnung.php +++ b/application/views/lehre/anrechnung/createAnrechnung.php @@ -129,7 +129,6 @@ $this->load->view( p->t('anrechnung', 'herkunftDerKenntnisse'); ?> 'textarea-herkunftKenntnisse', 'name' => 'herkunftKenntnisse', 'rows' => 1 )); ?> @@ -140,11 +139,11 @@ $this->load->view( p->t('anrechnung', 'nachweisdokumente'); ?> *
'upload-nachweisdokumente', 'name' => 'uploadfile', 'accept' => '.pdf', 'size' => '50', - 'required' => 'required' + 'required' => 'required', + 'enctype' => "multipart/form-data" )); ?>
diff --git a/application/views/lehre/anrechnung/requestAnrechnung.php b/application/views/lehre/anrechnung/requestAnrechnung.php index c6aab70d0..ce5f49450 100644 --- a/application/views/lehre/anrechnung/requestAnrechnung.php +++ b/application/views/lehre/anrechnung/requestAnrechnung.php @@ -24,7 +24,8 @@ $this->load->view( 'inBearbeitung', 'neu', 'maxZeichen', - 'errorBestaetigungFehlt' + 'errorBestaetigungFehlt', + 'systemfehler' ), 'person' => array( 'student', diff --git a/public/js/AjaxLib.js b/public/js/AjaxLib.js index 07178f3c4..6da875384 100644 --- a/public/js/AjaxLib.js +++ b/public/js/AjaxLib.js @@ -379,19 +379,6 @@ var FHC_AjaxClient = { this._veilTimeout); }, - /** - * Check if controllerParameters is a FormData object. - * FormData objects can contain uploaded files. - * - * @param controllerParameters - * Example: new FormData(selector)[0] - * @returns {boolean} - * @private - */ - _isFormDataObject(controllerParameters){ - return controllerParameters instanceof FormData; - }, - /** * Check if controllerParameters has a FileList of uploaded file(s). * @@ -483,16 +470,15 @@ var FHC_AjaxClient = { // controllerParameters must be an object if (typeof controllerParameters == "object") { - // If controllerParameters is a FormData object. - if (FHC_AjaxClient._isFormDataObject(controllerParameters)) - { - var data = controllerParameters; // data is a FormData object now - } // If controllerParameters contains uploaded file(s) as FileList - else if (FHC_AjaxClient._hasFileList(controllerParameters)) + if (FHC_AjaxClient._hasFileList(controllerParameters)) { // Convert controllerParameters to FormData object to easily pass uploaded files via AJAX var data = FHC_AjaxClient._convertToFormDataObject(controllerParameters); // data is a FormData object now + + // Add options to tell jQuery not to process data or worry about content-type + ajaxParameters.processData = false; + ajaxParameters.contentType = false; } // Anything else else @@ -509,14 +495,6 @@ var FHC_AjaxClient = { // so the variable data is saved also in _data and it will be used later ajaxParameters.data = data; ajaxParameters._data = data; - - // Finally, if data is a FormData object... - if (data instanceof FormData) - { - //...add options to tell jQuery not to process data or worry about content-type - ajaxParameters.processData = false; - ajaxParameters.contentType = false; - } } else { diff --git a/public/js/lehre/anrechnung/createAnrechnung.js b/public/js/lehre/anrechnung/createAnrechnung.js index 20bc91d1a..82286205e 100644 --- a/public/js/lehre/anrechnung/createAnrechnung.js +++ b/public/js/lehre/anrechnung/createAnrechnung.js @@ -6,9 +6,18 @@ $(function () { // Create Anrechnung on form submit $('#createAnrechnung-form').submit(function(e){ + e.preventDefault(); + FHC_AjaxClient.ajaxCallPost( FHC_JS_DATA_STORAGE_OBJECT.called_path + "/create", - new FormData(this), + { + prestudent_id: this.prestudent_id.value, + studiensemester_kurzbz: this.studiensemester_kurzbz.value, + lehrveranstaltung_id: this.lehrveranstaltung_id.value, + begruendung_id: this.begruendung_id.value, + herkunftKenntnisse: this.herkunftKenntnisse.value, + uploadfile: this.uploadfile.files + }, { successCallback: function (data, textStatus, jqXHR) { @@ -28,11 +37,7 @@ $(function () { } } ); - - // Avoid form redirecting automatically - return false; }); - }) // TABULATOR FUNCTIONS diff --git a/public/js/lehre/anrechnung/requestAnrechnung.js b/public/js/lehre/anrechnung/requestAnrechnung.js index df9f000b8..ccbf1a18b 100644 --- a/public/js/lehre/anrechnung/requestAnrechnung.js +++ b/public/js/lehre/anrechnung/requestAnrechnung.js @@ -18,23 +18,21 @@ $(function(){ // Set chars counter for textarea 'Herkunft der Kenntnisse' requestAnrechnung.setCharsCounter(); - $('#requestAnrechnung-apply-anrechnung').click(function(e){ + $('#requestAnrechnung-form').submit(function(e){ // Avoid form redirecting automatically e.preventDefault(); - // Get form data - let formdata = new FormData($('#requestAnrechnung-form')[0]); - - // These field MUST be activated - if (!formdata.has('bestaetigung')) - { - return FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("ui", "errorBestaetigungFehlt")); - } - FHC_AjaxClient.ajaxCallPost( FHC_JS_DATA_STORAGE_OBJECT.called_path + "/apply", - formdata, + { + anmerkung: this.anmerkung.value, + begruendung: this.begruendung.value, + lv_id: this.lv_id.value, + studiensemester: this.studiensemester.value, + bestaetigung: this.bestaetigung.value, + uploadfile: this.uploadfile.files + }, { successCallback:function(data, textStatus, jqXHR){ if (FHC_AjaxClient.isError(data)) @@ -47,7 +45,7 @@ $(function(){ requestAnrechnung.formatAnrechnungIsApplied( data.retval.antragdatum, data.retval.dms_id, - formdata.get('uploadfile').name + data.retval.filename ); FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("global", "antragWurdeGestellt"));