mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Fixed: BIG AMOUNT of Lehrauftrage not causing POST param limit issue anymore
Before the number of params was overflowing POST param limitation of 1000. Now data is json stringified on clientside to pack all data in only one string. Adaptations were done also on serverside.
This commit is contained in:
@@ -106,23 +106,23 @@ class Lehrauftrag extends Auth_Controller
|
||||
public function orderLehrauftrag()
|
||||
{
|
||||
$new_lehrvertrag_data_arr = array(); // information of new lehrvertraege to be used in mail
|
||||
$lehrauftrag_arr = $this->input->post('selected_data');
|
||||
$lehrauftrag_arr = json_decode($this->input->post('selected_data'));
|
||||
|
||||
// Loop through lehraufträge
|
||||
if(is_array($lehrauftrag_arr))
|
||||
{
|
||||
foreach($lehrauftrag_arr as $lehrauftrag)
|
||||
{
|
||||
$lehreinheit_id = (isset($lehrauftrag['lehreinheit_id']) && is_numeric($lehrauftrag['lehreinheit_id'])) ? $lehrauftrag['lehreinheit_id'] : null;
|
||||
$lehrveranstaltung_id = (isset($lehrauftrag['lehrveranstaltung_id']) && is_numeric($lehrauftrag['lehrveranstaltung_id'])) ? $lehrauftrag['lehrveranstaltung_id'] : null;
|
||||
$person_id = (isset($lehrauftrag['person_id']) && is_numeric($lehrauftrag['person_id'])) ? $lehrauftrag['person_id'] : null;
|
||||
$mitarbeiter_uid = (isset($lehrauftrag['mitarbeiter_uid']) && is_string($lehrauftrag['mitarbeiter_uid'])) ? $lehrauftrag['mitarbeiter_uid'] : null;
|
||||
$vertrag_id = (isset($lehrauftrag['vertrag_id']) && is_numeric($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null;
|
||||
$projektarbeit_id = (isset($lehrauftrag['projektarbeit_id']) && is_numeric($lehrauftrag['projektarbeit_id'])) ? $lehrauftrag['projektarbeit_id'] : null;
|
||||
$stunden = (isset($lehrauftrag['stunden']) && is_numeric($lehrauftrag['stunden'])) ? $lehrauftrag['stunden'] : null;
|
||||
$betrag = (isset($lehrauftrag['betrag']) && is_numeric($lehrauftrag['betrag'])) ? $lehrauftrag['betrag'] : null;
|
||||
$vertrag_betrag = (isset($lehrauftrag['vertrag_betrag']) && is_numeric($lehrauftrag['vertrag_betrag'])) ? $lehrauftrag['vertrag_betrag'] : null;
|
||||
$studiensemester_kurzbz = (isset($lehrauftrag['studiensemester_kurzbz']) && is_string($lehrauftrag['studiensemester_kurzbz'])) ? $lehrauftrag['betrag'] : null;
|
||||
$lehreinheit_id = (isset($lehrauftrag->lehreinheit_id)) ? $lehrauftrag->lehreinheit_id : null;
|
||||
$lehrveranstaltung_id = (isset($lehrauftrag->lehrveranstaltung_id)) ? $lehrauftrag->lehrveranstaltung_id : null;
|
||||
$person_id = (isset($lehrauftrag->person_id)) ? $lehrauftrag->person_id : null;
|
||||
$mitarbeiter_uid = (isset($lehrauftrag->mitarbeiter_uid)) ? $lehrauftrag->mitarbeiter_uid : null;
|
||||
$vertrag_id = (isset($lehrauftrag->vertrag_id)) ? $lehrauftrag->vertrag_id : null;
|
||||
$projektarbeit_id = (isset($lehrauftrag->projektarbeit_id)) ? $lehrauftrag->projektarbeit_id : null;
|
||||
$stunden = (isset($lehrauftrag->stunden)) ? $lehrauftrag->stunden : null;
|
||||
$betrag = (isset($lehrauftrag->betrag)) ? $lehrauftrag->betrag : null;
|
||||
$vertrag_betrag = (isset($lehrauftrag->vertrag_betrag)) ? $lehrauftrag->vertrag_betrag : null;
|
||||
$studiensemester_kurzbz = (isset($lehrauftrag->studiensemester_kurzbz)) ? $lehrauftrag->studiensemester_kurzbz : null;
|
||||
|
||||
// update contract if contract exists and the betrag was changed
|
||||
$hasChanged = (floatval($betrag) != floatval($vertrag_betrag)) ? true : false;
|
||||
@@ -141,7 +141,7 @@ class Lehrauftrag extends Auth_Controller
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$json []= array(
|
||||
'row_index' => $lehrauftrag['row_index'],
|
||||
'row_index' => $lehrauftrag->row_index,
|
||||
'bestellt' => date('Y-m-d'),
|
||||
'vertrag_betrag' => $betrag,
|
||||
'erteilt' => null
|
||||
@@ -152,29 +152,29 @@ class Lehrauftrag extends Auth_Controller
|
||||
else
|
||||
{
|
||||
$result = $this->VertragModel->save(
|
||||
element('person_id', $lehrauftrag),
|
||||
element('mitarbeiter_uid', $lehrauftrag),
|
||||
element('lehrveranstaltung_id', $lehrauftrag),
|
||||
element('lehreinheit_id', $lehrauftrag),
|
||||
element('projektarbeit_id', $lehrauftrag),
|
||||
element('stunden', $lehrauftrag),
|
||||
element('betrag', $lehrauftrag),
|
||||
element('studiensemester_kurzbz', $lehrauftrag)
|
||||
$person_id,
|
||||
$mitarbeiter_uid,
|
||||
$lehrveranstaltung_id,
|
||||
$lehreinheit_id,
|
||||
$projektarbeit_id,
|
||||
$stunden,
|
||||
$betrag,
|
||||
$studiensemester_kurzbz
|
||||
);
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$json []= array(
|
||||
'row_index' => $lehrauftrag['row_index'],
|
||||
'row_index' => $lehrauftrag->row_index,
|
||||
'bestellt' => date('Y-m-d'),
|
||||
'vertrag_betrag' => $betrag
|
||||
);
|
||||
}
|
||||
|
||||
$new_lehrvertrag_data_arr[] = array(
|
||||
'studiensemester_kurzbz' => $lehrauftrag['studiensemester_kurzbz'],
|
||||
'studiengang_kz' => $lehrauftrag['studiengang_kz'],
|
||||
'lv_oe_kurzbz' => $lehrauftrag['lv_oe_kurzbz']
|
||||
'studiensemester_kurzbz' => $lehrauftrag->studiensemester_kurzbz,
|
||||
'studiengang_kz' => $lehrauftrag->studiengang_kz,
|
||||
'lv_oe_kurzbz' => $lehrauftrag->lv_oe_kurzbz
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ class LehrauftragAkzeptieren extends Auth_Controller
|
||||
foreach($lehrauftrag_arr as $lehrauftrag)
|
||||
{
|
||||
$mitarbeiter_uid = (!is_null($lehrauftrag['mitarbeiter_uid'])) ? $lehrauftrag['mitarbeiter_uid'] : null;
|
||||
$vertrag_id = (!is_null($lehrauftrag['vertrag_id'])) ? intval($lehrauftrag['vertrag_id']) : null;
|
||||
$vertrag_id = (!is_null($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null;
|
||||
|
||||
// Set status to accepted
|
||||
$result = $this->VertragModel->setStatus($vertrag_id, $mitarbeiter_uid, 'akzeptiert');
|
||||
|
||||
@@ -110,29 +110,27 @@ class LehrauftragErteilen extends Auth_Controller
|
||||
*/
|
||||
public function approveLehrauftrag()
|
||||
{
|
||||
$lehrauftrag_arr = $this->input->post();
|
||||
|
||||
foreach($lehrauftrag_arr as $lehrauftrag)
|
||||
$lehrauftrag_arr = json_decode($this->input->post('selected_data'));
|
||||
|
||||
if (is_array($lehrauftrag_arr))
|
||||
{
|
||||
if (!isEmptyArray($lehrauftrag))
|
||||
foreach ($lehrauftrag_arr as $lehrauftrag)
|
||||
{
|
||||
$mitarbeiter_uid = (!is_null($lehrauftrag['mitarbeiter_uid'])) ? $lehrauftrag['mitarbeiter_uid'] : null;
|
||||
$vertrag_id = (!is_null($lehrauftrag['vertrag_id'])) ? intval($lehrauftrag['vertrag_id']) : null;
|
||||
$mitarbeiter_uid = (isset($lehrauftrag->mitarbeiter_uid)) ? $lehrauftrag->mitarbeiter_uid : null;
|
||||
$vertrag_id = (isset($lehrauftrag->vertrag_id)) ? $lehrauftrag->vertrag_id : null;
|
||||
|
||||
$result = $this->VertragModel->setStatus($vertrag_id, $mitarbeiter_uid, 'erteilt');
|
||||
|
||||
if ($result->retval)
|
||||
{
|
||||
$json []= array(
|
||||
'row_index' => $lehrauftrag['row_index'],
|
||||
if ($result->retval) {
|
||||
$json [] = array(
|
||||
'row_index' => $lehrauftrag->row_index,
|
||||
'erteilt' => date('Y-m-d')
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// output json to ajax
|
||||
if (!isEmptyArray($json))
|
||||
if (isset($json) && !isEmptyArray($json))
|
||||
{
|
||||
$this->outputJsonSuccess($json);
|
||||
}
|
||||
|
||||
@@ -627,13 +627,22 @@ $(function() {
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Prepare data object for ajax call
|
||||
* NOTE: Stringify to send only ONE post param (json string) instead of many single post params.
|
||||
* This avoids issues with POST param limitation.
|
||||
*/
|
||||
var data = {
|
||||
'selected_data': JSON.stringify(selected_data)
|
||||
};
|
||||
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/approveLehrauftrag",
|
||||
selected_data,
|
||||
data,
|
||||
{
|
||||
successCallback: function (data, textStatus, jqXHR)
|
||||
{
|
||||
if (data.retval != null)
|
||||
if (!data.error && data.retval != null)
|
||||
{
|
||||
// Update status 'Erteilt'
|
||||
$('#filterTabulator').tabulator('updateData', data.retval);
|
||||
|
||||
@@ -656,9 +656,13 @@ $(function() {
|
||||
return;
|
||||
}
|
||||
|
||||
// Prepare data object for ajax call
|
||||
/*
|
||||
* Prepare data object for ajax call
|
||||
* NOTE: Stringify to send only ONE post param (json string) instead of many single post params.
|
||||
* This avoids issues with POST param limitation.
|
||||
*/
|
||||
var data = {
|
||||
'selected_data': selected_data
|
||||
'selected_data': JSON.stringify(selected_data)
|
||||
};
|
||||
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
|
||||
Reference in New Issue
Block a user