Removed accaptance of FormData object within AjaxLib controllerParameter check

Also adapted JS files to this change.

Signed-off-by: cris-technikum <hainberg@technikum-wien.at>
This commit is contained in:
Cris
2021-04-28 15:53:17 +02:00
committed by cris-technikum
6 changed files with 31 additions and 49 deletions
@@ -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']
));
}
@@ -129,7 +129,6 @@ $this->load->view(
<th class="col-xs-5 col-lg-2"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></th>
<td>
<?php echo form_textarea(array(
'id' => 'textarea-herkunftKenntnisse',
'name' => 'herkunftKenntnisse',
'rows' => 1
)); ?>
@@ -140,11 +139,11 @@ $this->load->view(
<th class="col-xs-5 col-lg-2"><?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?> *</th>
<td>
<div><?php echo form_upload(array(
'id' => 'upload-nachweisdokumente',
'name' => 'uploadfile',
'accept' => '.pdf',
'size' => '50',
'required' => 'required'
'required' => 'required',
'enctype' => "multipart/form-data"
)); ?>
</div>
<a class="pull-right" id="download-nachweisdokumente"></a>
@@ -24,7 +24,8 @@ $this->load->view(
'inBearbeitung',
'neu',
'maxZeichen',
'errorBestaetigungFehlt'
'errorBestaetigungFehlt',
'systemfehler'
),
'person' => array(
'student',
+5 -27
View File
@@ -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
{
+10 -5
View File
@@ -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
+10 -12
View File
@@ -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"));