mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 02:12:17 +00:00
- possible to read and write user Variables in Codeigniter
- added Variablenname_model, VariableLib, Variables controller - Infocenter Übersicht - infocenterData, infocenterFreigegebenData, infocenterReihungstestAbsolviertData: added possibility of toggle of infocenter_studiensemester variable, only prestudents of selected Studiensemester are shown
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Class Variables
|
||||
* Provides interface for managing user variables.
|
||||
*/
|
||||
class Variables extends Auth_Controller
|
||||
{
|
||||
private $_uid;
|
||||
|
||||
/**
|
||||
* Variables constructor.
|
||||
* Sets logged in user, loads models and libraries.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'setVar' => 'basis/variable:rw',
|
||||
'getVar' => 'basis/variable:rw',
|
||||
'changeStudiensemesterVar' => 'basis/variable:rw'
|
||||
)
|
||||
);
|
||||
|
||||
$this->load->model('system/variable_model', 'VariableModel');
|
||||
|
||||
$this->_setAuthUID();
|
||||
|
||||
$this->load->library('VariableLib', array('uid' => $this->_uid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a user variable based on received post parameters, outputs JSON response.
|
||||
*/
|
||||
public function setVar()
|
||||
{
|
||||
$name = $this->input->post('name');
|
||||
$wert = $this->input->post('wert');
|
||||
|
||||
$result = $this->VariableModel->setVariable($this->_uid, $name, $wert);
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* gets a user variable based on received post parameter, outputs JSON response.
|
||||
*/
|
||||
public function getVar()
|
||||
{
|
||||
$name = $this->input->get('name');
|
||||
$this->outputJson($this->VariableModel->getVariables($this->_uid, array($name)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes a user variable containing a Studiensemester based on received post parameters, outputs JSON response.
|
||||
*/
|
||||
public function changeStudiensemesterVar()
|
||||
{
|
||||
$name = $this->input->post('name');
|
||||
$change = $this->input->post('change');
|
||||
|
||||
$result = $this->variablelib->changeStudiensemesterVar($this->_uid, $name, $change);
|
||||
|
||||
$this->outputJson($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the UID of the logged user and checks if it is valid
|
||||
*/
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
}
|
||||
@@ -136,6 +136,8 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
|
||||
$this->load->library('VariableLib', array('uid' => $this->_uid));
|
||||
|
||||
$this->setControllerId(); // sets the controller id
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Class VariableLib
|
||||
* Provides functionality for managing uservariables for currently logged in user.
|
||||
* Preloads variables for a user, so variables can be retrieved from views without getting uid again.
|
||||
*/
|
||||
class VariableLib
|
||||
{
|
||||
private $_variables; // Contains the retrieved variables
|
||||
|
||||
/**
|
||||
* VariableLib constructor.
|
||||
* Loads variable of logged in user.
|
||||
* @param $loggeduid
|
||||
*/
|
||||
public function __construct($loggeduid)
|
||||
{
|
||||
$this->_ci =& get_instance();
|
||||
|
||||
$this->_variables = null;
|
||||
|
||||
$this->_ci->load->model('system/Variable_model', 'VariableModel');
|
||||
$this->_ci->load->model('organisation/studiensemester_model', 'StudiensemesterModel');
|
||||
|
||||
if (isset($loggeduid['uid']) && !isEmptyString($loggeduid['uid']))
|
||||
$this->_setVariables($loggeduid['uid']);
|
||||
else
|
||||
{
|
||||
show_error('uid of logged user not passed!');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an already loaded user variable by variable name.
|
||||
* @param $name
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function getVar($name)
|
||||
{
|
||||
return isset($this->_variables[$name]) ? $this->_variables[$name] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes variables having Studiensemester as value. Sets variable value to next or previous Semester.
|
||||
* @param $uid variable is set for this user
|
||||
* @param $name variable name
|
||||
* @param $change if positive, variable value is set to next semester, negative - previous semester
|
||||
* @return array if change was successfull, uid and variable name. Infotext otherwise.
|
||||
*/
|
||||
public function changeStudiensemesterVar($uid, $name, $change)
|
||||
{
|
||||
$result = error('error when setting variable!');
|
||||
$notchangedtext = "Studiensemester variable not changed.";
|
||||
|
||||
if (!isEmptyString($uid) && !isEmptyString($name) && is_numeric($change))
|
||||
{
|
||||
$change = (int) $change;
|
||||
$varres = $this->_ci->VariableModel->getVariables($uid, array($name));
|
||||
|
||||
if (isSuccess($varres))
|
||||
{
|
||||
if (hasData($varres))
|
||||
{
|
||||
$currStudiensemester = getData($varres);
|
||||
|
||||
if ($change === 0)
|
||||
{
|
||||
$result = success($notchangedtext);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($change > 0)
|
||||
{
|
||||
$changedsem = $this->_ci->StudiensemesterModel->getNextFrom($currStudiensemester[$name]);
|
||||
}
|
||||
elseif ($change < 0)
|
||||
{
|
||||
$changedsem = $this->_ci->StudiensemesterModel->getPreviousFrom($currStudiensemester[$name]);
|
||||
}
|
||||
|
||||
if (hasData($changedsem))
|
||||
{
|
||||
$changedsem = getData($changedsem);
|
||||
|
||||
$result = $this->_ci->VariableModel->setVariable($uid, $name, $changedsem[0]->studiensemester_kurzbz);
|
||||
//update property
|
||||
$this->_setVariable($uid, $name);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = success($notchangedtext);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* "Refreshes" variable value with given name by retrieving current value from db and saving it.
|
||||
* @param $uid
|
||||
* @param $name
|
||||
*/
|
||||
private function _setVariable($uid, $name)
|
||||
{
|
||||
$variable = $this->_ci->VariableModel->getVariables($uid, array($name));
|
||||
|
||||
if (hasData($variable))
|
||||
{
|
||||
$variable = getData($variable);
|
||||
$this->_variables[$name] = $variable[$name];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* "Refreshes" all variable values by retrieving current values from db and saving them.
|
||||
* @param $uid
|
||||
*/
|
||||
private function _setVariables($uid)
|
||||
{
|
||||
$variables = $this->_ci->VariableModel->getVariables($uid);
|
||||
if (hasData($variables))
|
||||
{
|
||||
$this->_variables = getData($variables);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,5 +10,92 @@ class Variable_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_variable';
|
||||
$this->pk = array('uid', 'name');
|
||||
$this->hasSequence = false;
|
||||
|
||||
$this->load->model('system/Variablenname_model', 'VariablennameModel');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets user variables and values for a uid.
|
||||
* If no value found in tbl_variable, default as defined in variablename_model is retrieved.
|
||||
* @param $uid
|
||||
* @param null $names optionally get only certain variables
|
||||
* @return array
|
||||
*/
|
||||
public function getVariables($uid, $names = null)
|
||||
{
|
||||
if (isEmptyString($uid) || (isset($names) && !is_array($names)))
|
||||
$result = error('wrong parameters passed');
|
||||
else
|
||||
{
|
||||
$vardata = array();
|
||||
|
||||
$qry = "SELECT name, wert FROM public.tbl_variable WHERE uid = ?";
|
||||
|
||||
if (isset($names))
|
||||
{
|
||||
$qry .= " AND name IN ('".implode(',', $names)."')";
|
||||
}
|
||||
$qry .= ";";
|
||||
|
||||
$varresults = $this->execQuery($qry, array($uid));
|
||||
|
||||
if (hasData($varresults))
|
||||
{
|
||||
$varresults = getData($varresults);
|
||||
foreach ($varresults as $varresult)
|
||||
{
|
||||
if (isset($varresult->wert))
|
||||
$vardata[$varresult->name] = $varresult->wert;
|
||||
}
|
||||
}
|
||||
|
||||
$vardefaults = $this->VariablennameModel->getDefaults($names);
|
||||
|
||||
if (hasData($vardefaults))
|
||||
{
|
||||
$vardefaults = getData($vardefaults);
|
||||
|
||||
|
||||
foreach ($vardefaults as $vardefault)
|
||||
{
|
||||
if (!isset($vardata[$vardefault->name]) && isset($vardefault->defaultwert))
|
||||
{
|
||||
$vardata[$vardefault->name] = $vardefault->defaultwert;
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = success($vardata);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a variable value for a uid. Adds new entry if not present, updates entry otherwise.
|
||||
* @param $uid
|
||||
* @param $name
|
||||
* @param $wert
|
||||
* @return array
|
||||
*/
|
||||
public function setVariable($uid, $name, $wert)
|
||||
{
|
||||
$result = error('error when setting variable!');
|
||||
if (!isEmptyString($uid) && !isEmptyString($name) && !isEmptyString($wert))
|
||||
{
|
||||
$varres = $this->loadWhere(array('uid' => $uid, 'name' => $name));
|
||||
|
||||
if (isSuccess($varres))
|
||||
{
|
||||
if (hasData($varres))
|
||||
{
|
||||
$result = $this->VariableModel->update(array('uid' => $uid, 'name' => $name), array('wert' => $wert));
|
||||
}
|
||||
else
|
||||
$result = $this->VariableModel->insert(array('uid' => $uid, 'name' => $name, 'wert' => $wert));
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
class Variablenname_model extends DB_Model
|
||||
{
|
||||
// Contains SQL queries retrieving default variable values if no default is set.
|
||||
private $_dynamic_defaults = array(
|
||||
'semester_aktuell' => 'SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1',
|
||||
'infocenter_studiensemester' => 'SELECT studiensemester_kurzbz FROM (
|
||||
SELECT DISTINCT ON (studienjahr_kurzbz) start, studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
ORDER BY studienjahr_kurzbz, start
|
||||
) sem
|
||||
WHERE start > now()
|
||||
LIMIT 1;'
|
||||
);
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_variablenname';
|
||||
$this->pk ='name';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets defaults for user variables.
|
||||
* If no default value present in table, SQL can be executed for retrieving the value.
|
||||
* @param null $names optionally get only defaults for certain variables
|
||||
* @return array
|
||||
*/
|
||||
public function getDefaults($names = null)
|
||||
{
|
||||
$defaults = array();
|
||||
|
||||
$qry = "SELECT name, defaultwert FROM public.tbl_variablenname";
|
||||
|
||||
if (isset($names) && is_array($names))
|
||||
{
|
||||
$qry .= " WHERE name IN ('".implode(',', $names)."')";
|
||||
}
|
||||
$qry .= ";";
|
||||
|
||||
$defaultsres = $this->execQuery($qry);
|
||||
|
||||
if (hasData($defaultsres))
|
||||
{
|
||||
$defaults = getData($defaultsres);
|
||||
|
||||
foreach ($defaults as $default)
|
||||
{
|
||||
if (!isset($default->defaultwert))
|
||||
{
|
||||
if (isset($this->_dynamic_defaults[$default->name]))
|
||||
{
|
||||
$dyndefault = $this->execQuery($this->_dynamic_defaults[$default->name]);
|
||||
if (hasData($dyndefault))
|
||||
{
|
||||
$dyndefault = getData($dyndefault);
|
||||
|
||||
if (count($dyndefault) === 1)
|
||||
{
|
||||
foreach ($dyndefault[0] as $value)
|
||||
{
|
||||
$default->defaultwert = $value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return success($defaults);
|
||||
}
|
||||
}
|
||||
@@ -18,7 +18,7 @@
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -11,16 +11,9 @@
|
||||
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
|
||||
$ADDITIONAL_STG = '10021,10027';
|
||||
$AKTE_TYP = '\'identity\', \'zgv_bakk\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
|
||||
$query = '
|
||||
WITH currentOrNextStudiensemester AS (
|
||||
SELECT ss.studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester ss
|
||||
WHERE ss.ende > NOW()
|
||||
ORDER BY ss.ende
|
||||
LIMIT 3
|
||||
)
|
||||
|
||||
SELECT
|
||||
p.person_id AS "PersonId",
|
||||
p.vorname AS "Vorname",
|
||||
@@ -100,7 +93,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
@@ -125,7 +118,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
@@ -149,7 +142,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
@@ -173,7 +166,8 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
@@ -252,7 +246,7 @@
|
||||
WHERE spss.prestudent_id = sps.prestudent_id
|
||||
AND spss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND spss.bestaetigtam IS NULL
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
|
||||
AND spss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
)
|
||||
)
|
||||
ORDER BY "LastAction" ASC';
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
$REJECTED_STATUS = '\'Abgewiesener\'';
|
||||
$ADDITIONAL_STG = '10021,10027,10002';
|
||||
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -179,7 +180,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.studiensemester_kurzbz = \'WS2019\')
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.studiensemester_kurzbz = '.$STUDIENSEMESTER.')
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestApplied",
|
||||
@@ -215,7 +216,7 @@
|
||||
AND pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND pss.bestaetigtam IS NOT NULL
|
||||
AND pss.bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
|
||||
$ADDITIONAL_STG = '10021,10027';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -191,7 +192,7 @@
|
||||
AND pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND pss.bestaetigtam IS NOT NULL
|
||||
AND pss.bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
)
|
||||
)
|
||||
ORDER BY "LastAction" DESC';
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
/* styles for infocenter overview page */
|
||||
|
||||
/* horizontal line after Studiensemester in dataset table header */
|
||||
hr.studiensemesterline
|
||||
{
|
||||
margin: 6px 6px;
|
||||
}
|
||||
@@ -19,18 +19,26 @@ if (FHC_JS_DATA_STORAGE_OBJECT.called_method == 'index')
|
||||
*
|
||||
*/
|
||||
var InfocenterPersonDataset = {
|
||||
infocenter_studiensemester_variablename: 'infocenter_studiensemester',
|
||||
|
||||
/**
|
||||
* adds person table additional actions html (above and beneath it)
|
||||
*/
|
||||
appendTableActionsHtml: function()
|
||||
appendTableActionsHtml: function(infocenter_studiensemester)
|
||||
{
|
||||
var currurl = window.location.href;
|
||||
var url = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/system/Messages/write";
|
||||
|
||||
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
|
||||
$("#datasetActionsTop").before(formHtml);
|
||||
|
||||
var studienSemesterHtml = '<button class="btn btn-default btn-xs decStudiensemester">' +
|
||||
'<i class="fa fa-chevron-left"></i>' +
|
||||
'</button> ' +
|
||||
infocenter_studiensemester +
|
||||
' <button class="btn btn-default btn-xs incStudiensemester">' +
|
||||
'<i class="fa fa-chevron-right"></i>' +
|
||||
'</button>';
|
||||
|
||||
var selectAllHtml =
|
||||
'<a href="javascript:void(0)" class="selectAll">' +
|
||||
'<i class="fa fa-check"></i> Alle</a> ' +
|
||||
@@ -44,6 +52,21 @@ var InfocenterPersonDataset = {
|
||||
var legendHtml = '<i class="fa fa-circle text-danger"></i> Gesperrt ' +
|
||||
'<i class="fa fa-circle text-info"></i> Geparkt';
|
||||
|
||||
// userdefined Semestervariable shown independently of personcount,
|
||||
// it is possible to change the semester
|
||||
$("#datasetActionsTop, #datasetActionsBottom").append(
|
||||
"<div class='row'>"+
|
||||
"<div class='col-xs-12 text-center'>"+studienSemesterHtml+"</div>"+
|
||||
"</div><div class='h-divider'></div><hr class='studiensemesterline'>");
|
||||
|
||||
$("button.incStudiensemester").click(function() {
|
||||
InfocenterPersonDataset.changeStudiensemesterUservar(1);
|
||||
});
|
||||
|
||||
$("button.decStudiensemester").click(function() {
|
||||
InfocenterPersonDataset.changeStudiensemesterUservar(-1);
|
||||
});
|
||||
|
||||
var personcount = 0;
|
||||
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
@@ -70,9 +93,9 @@ var InfocenterPersonDataset = {
|
||||
|
||||
$("#datasetActionsTop, #datasetActionsBottom").append(
|
||||
"<div class='row'>"+
|
||||
"<div class='col-xs-6'>" + selectAllHtml + " " + actionHtml + "</div>"+
|
||||
"<div class='col-xs-4'>" + legendHtml + "</div>"+
|
||||
"<div class='col-xs-2 text-right'>" +
|
||||
"<div class='col-xs-4'>" + selectAllHtml + " " + actionHtml + "</div>"+
|
||||
"<div class='col-xs-4 text-center'>" + legendHtml + "</div>"+
|
||||
"<div class='col-xs-4 text-right'>" +
|
||||
"<span class='filterTableDatasetCntFiltered'></span>" +
|
||||
countHtml + "</div>"+
|
||||
"<div class='clearfix'></div>"+
|
||||
@@ -125,8 +148,65 @@ var InfocenterPersonDataset = {
|
||||
trs.find("input[name=PersonId\\[\\]]").prop("checked", false);
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* initializes change of the uservariable infocenter_studiensemesster, either
|
||||
* to next semester (change > 0) or previous semester (change < 0)
|
||||
*/
|
||||
changeStudiensemesterUservar: function(change)
|
||||
{
|
||||
FHC_AjaxClient.showVeil();
|
||||
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
'system/Variables/changeStudiensemesterVar',
|
||||
{
|
||||
'name': InfocenterPersonDataset.infocenter_studiensemester_variablename,
|
||||
'change': change
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
// refresh filterwidget with page reload
|
||||
FHC_FilterWidget.reloadDataset();
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_AjaxClient.hideVeil();
|
||||
alert(textStatus);//TODO dialoglib
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* initializes call to get the Studiensemester user variable
|
||||
*/
|
||||
getStudiensemesterUservar: function(callback)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'system/Variables/getVar',
|
||||
{
|
||||
'name': InfocenterPersonDataset.infocenter_studiensemester_variablename
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
if (typeof callback === "function")
|
||||
{
|
||||
var infocenter_studiensemester = FHC_AjaxClient.getData(data);
|
||||
callback(infocenter_studiensemester[InfocenterPersonDataset.infocenter_studiensemester_variablename]);
|
||||
}
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
alert(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -134,6 +214,6 @@ var InfocenterPersonDataset = {
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
|
||||
InfocenterPersonDataset.appendTableActionsHtml();
|
||||
InfocenterPersonDataset.getStudiensemesterUservar(InfocenterPersonDataset.appendTableActionsHtml);
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user