Changed: Check if HAS INKLUDIERTE LEHRE now done by AJAX within js file

After moving javascript code from the view to an external js file, the
usage of global variable has_inkludierteLehre was causing css issues.

Now the check if lector has inkludierte lehre is an extra method in the
controller which is called by AJAX in the tabulators render-callback
function.
This commit is contained in:
Cris
2019-11-05 16:47:36 +01:00
committed by hainberg
parent 94506d8a14
commit 9571e1ed7d
3 changed files with 42 additions and 33 deletions
@@ -23,7 +23,8 @@ class LehrauftragAkzeptieren extends Auth_Controller
parent::__construct(
array(
'index' => 'lehre/lehrauftrag_akzeptieren:r',
'acceptLehrauftrag' => 'lehre/lehrauftrag_akzeptieren:rw'
'acceptLehrauftrag' => 'lehre/lehrauftrag_akzeptieren:rw',
'checkInkludierteLehre' => 'lehre/lehrauftrag_akzeptieren:rw'
)
);
@@ -65,19 +66,6 @@ class LehrauftragAkzeptieren extends Auth_Controller
*/
public function index()
{
/**
* Check if lectors latest active Verwendung has inkludierte Lehre
* - inkludierte_lehre is null: freelancer lector -> has NO inkludierte Lehre
* - inkludierte_lehre -1: fix employed lector -> all inclusive Lehre
* - inkludierte_lehre > 0: fix employed lector -> given value is inclusive Lehre
*/
$has_inkludierteLehre = false;
$result = $this->BisverwendungModel->getLast($this->_uid);
if (hasData($result))
{
$has_inkludierteLehre = (is_null($result->retval[0]->inkludierte_lehre)) ? false : true;
}
// Set studiensemester selected for studiengang dropdown
$studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester
if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value
@@ -94,8 +82,7 @@ class LehrauftragAkzeptieren extends Auth_Controller
}
$view_data = array(
'studiensemester_selected' => $studiensemester_kurzbz,
'has_inkludierteLehre' => $has_inkludierteLehre
'studiensemester_selected' => $studiensemester_kurzbz
);
$this->load->view('lehre/lehrauftrag/acceptLehrauftrag.php', $view_data);
@@ -177,6 +164,26 @@ class LehrauftragAkzeptieren extends Auth_Controller
}
}
}
/**
* Check if lectors latest active Verwendung has inkludierte Lehre
* - inkludierte_lehre is null: freelancer lector -> has NO inkludierte Lehre
* - inkludierte_lehre -1: fix employed lector -> all inclusive Lehre
* - inkludierte_lehre > 0: fix employed lector -> given value is inclusive Lehre
*/
public function checkInkludierteLehre()
{
$result = $this->BisverwendungModel->getLast($this->_uid);
if (hasData($result))
{
$this->outputJsonSuccess(!is_null($result->retval[0]->inkludierte_lehre));
}
else
{
$this->outputJsonError($result->retval);
}
}
// -----------------------------------------------------------------------------------------------------------------
// Private methods
@@ -1,11 +1,3 @@
<script>
// -----------------------------------------------------------------------------------------------------------------
// Global vars to be known in public/js/lehre/lehrauftrag/acceptLehrauftrag.js
// -----------------------------------------------------------------------------------------------------------------
// Store boolean has_inkludierteLehre. If true, used to hide column Betrag.
var has_inkludierteLehre = new Boolean(<?php echo $has_inkludierteLehre ?>).valueOf();
</script>
<?php
$this->load->view(
'templates/FHC-Header',
@@ -4,16 +4,12 @@
* Lehrauftraege annehmen - Tabulator: acceptLehrauftragData.php
*/
// -----------------------------------------------------------------------------------------------------------------
// Global vars
// -----------------------------------------------------------------------------------------------------------------
const COLOR_LIGHTGREY = "#f5f5f5";
// Store boolean has_inkludierteLehre. If true, used to hide column Betrag.
// has_inkludierteLehre is defined in acceptLehrauftrag.php BEFORE loading this js-script (to pass php variable)
/**
* PNG icons used in status- and filter buttons
* Setting png icons is a workaround to use font-awsome 5.9.0 icons until system can be updated to newer font awsome version.
@@ -237,11 +233,25 @@ function func_rowUpdated(row){
// Hide betrag, if lector has inkludierte Lehre
function func_renderComplete(table){
// If the lectors actual Verwendung has inkludierte Lehre, hide the column betrag
if (has_inkludierteLehre)
{
table.hideColumn("betrag");
}
// Check if the lectors actual Verwendung has inkludierte Lehre
FHC_AjaxClient.ajaxCallGet(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/checkInkludierteLehre",
null,
{
successCallback: function (data, textStatus, jqXHR)
{
// If lector has inkludierte Lehre, hide the column betrag
if (data.retval)
{
table.hideColumn("betrag");
}
},
errorCallback: function (jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError("Systemfehler<br>Bitte kontaktieren Sie Ihren Administrator.");
}
}
);
}
// Tabulator footer element