diff --git a/application/controllers/system/Filters.php b/application/controllers/system/Filters.php
index 738799747..fcf37f158 100644
--- a/application/controllers/system/Filters.php
+++ b/application/controllers/system/Filters.php
@@ -37,7 +37,7 @@ class Filters extends VileSci_Controller
{
$json = new stdClass();
- $session = $this->_readSession($this->input->get('fhc_controller_id'));
+ $session = $this->_readSession($this->_getFilterUniqueId());
$json->selectedFields = $session['selectedFields'];
$json->columnsAliases = $session['columnsAliases'];
@@ -55,7 +55,7 @@ class Filters extends VileSci_Controller
{
$json = new stdClass();
- $session = $this->_readSession($this->input->get('fhc_controller_id'));
+ $session = $this->_readSession($this->_getFilterUniqueId());
$json->allSelectedFields = $session['allSelectedFields'];
$json->allColumnsAliases = $session['allColumnsAliases'];
@@ -72,11 +72,12 @@ class Filters extends VileSci_Controller
public function sortSelectedFields()
{
$selectedFieldsLst = $this->input->post('selectedFieldsLst');
- $fhc_controller_id = $this->input->post('fhc_controller_id');
+
+ $filterUniqueId = $this->_getFilterUniqueId();
$json = new stdClass();
- $session = $this->_readSession($fhc_controller_id);
+ $session = $this->_readSession($filterUniqueId);
$allSelectedFields = $session['allSelectedFields'];
$allColumnsAliases = $session['allColumnsAliases'];
@@ -105,8 +106,8 @@ class Filters extends VileSci_Controller
}
}
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFields'] = $json->selectedFields;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['columnsAliases'] = $json->columnsAliases;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFields'] = $json->selectedFields;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['columnsAliases'] = $json->columnsAliases;
$this->output->set_content_type('application/json')->set_output(json_encode($json));
}
@@ -118,7 +119,7 @@ class Filters extends VileSci_Controller
{
$json = new stdClass();
- $session = $this->_readSession($this->input->get('fhc_controller_id'));
+ $session = $this->_readSession($this->_getFilterUniqueId());
$json->allSelectedFields = $session['allSelectedFields'];
$json->allColumnsAliases = $session['allColumnsAliases'];
@@ -175,19 +176,19 @@ class Filters extends VileSci_Controller
*/
public function saveFilter()
{
- $this->_saveFilter($this->input->post("customFilterDescription"), $this->input->post("fhc_controller_id"));
+ $this->_saveFilter($this->input->post("customFilterDescription"), $this->_getFilterUniqueId());
- $this->output->set_content_type('application/json')->set_output(json_encode('Tutto bene!!!'));
+ $this->output->set_content_type('application/json')->set_output(json_encode('Filter saved'));
}
/**
*
*/
- private function _saveFilter($customFilterDescription, $fhc_controller_id)
+ private function _saveFilter($customFilterDescription, $filterUniqueId)
{
$objToBeSaved = new stdClass();
- $filterSessionArray = $this->_readSession($fhc_controller_id);
+ $filterSessionArray = $this->_readSession($filterUniqueId);
$objToBeSaved->name = $customFilterDescription;
@@ -240,8 +241,8 @@ class Filters extends VileSci_Controller
$personId = $resultBenutzer->retval[0]->person_id;
$result = $this->FiltersModel->loadWhere(array(
- 'app' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['app'],
- 'dataset_name' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['datasetName'],
+ 'app' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['app'],
+ 'dataset_name' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['datasetName'],
'description' => $descPGArray,
'person_id' => $personId
));
@@ -250,8 +251,8 @@ class Filters extends VileSci_Controller
{
$this->FiltersModel->update(
array(
- 'app' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['app'],
- 'dataset_name' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['datasetName'],
+ 'app' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['app'],
+ 'dataset_name' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['datasetName'],
'description' => $descPGArray,
'person_id' => $personId
),
@@ -263,8 +264,8 @@ class Filters extends VileSci_Controller
else
{
$this->FiltersModel->insert(array(
- 'app' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['app'],
- 'dataset_name' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['datasetName'],
+ 'app' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['app'],
+ 'dataset_name' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['datasetName'],
'filter_kurzbz' => uniqid($personId, true),
'person_id' => $personId,
'description' => $descPGArray,
@@ -282,7 +283,6 @@ class Filters extends VileSci_Controller
public function deleteCustomFilter()
{
$filter_id = $this->input->post('filter_id');
- $fhc_controller_id = $this->input->post('fhc_controller_id');
if (is_numeric($filter_id))
{
@@ -298,9 +298,9 @@ class Filters extends VileSci_Controller
public function removeSelectedFields()
{
$fieldName = $this->input->post('fieldName');
- $fhc_controller_id = $this->input->post('fhc_controller_id');
+ $filterUniqueId = $this->_getFilterUniqueId();
- $session = $this->_readSession($fhc_controller_id);
+ $session = $this->_readSession($filterUniqueId);
$allSelectedFields = $session['allSelectedFields'];
$allColumnsAliases = $session['allColumnsAliases'];
@@ -318,8 +318,8 @@ class Filters extends VileSci_Controller
}
}
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFields'] = $selectedFields;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['columnsAliases'] = $columnsAliases;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFields'] = $selectedFields;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['columnsAliases'] = $columnsAliases;
$json = new stdClass();
@@ -337,9 +337,9 @@ class Filters extends VileSci_Controller
public function removeSelectedFilters()
{
$fieldName = $this->input->post('fieldName');
- $fhc_controller_id = $this->input->post('fhc_controller_id');
+ $filterUniqueId = $this->_getFilterUniqueId();
- $session = $this->_readSession($fhc_controller_id);
+ $session = $this->_readSession($filterUniqueId);
$selectedFilters = $session['selectedFilters'];
$selectedFiltersActiveFilters = $session['activeFilters'];
@@ -354,10 +354,10 @@ class Filters extends VileSci_Controller
array_splice($selectedFiltersActiveFiltersOption, $pos, 1);
}
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFilters'] = $selectedFilters;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFilters'] = $selectedFiltersActiveFilters;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFilters'] = $selectedFilters;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFilters'] = $selectedFiltersActiveFilters;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption;
$json = new stdClass();
@@ -375,9 +375,9 @@ class Filters extends VileSci_Controller
public function addSelectedFields()
{
$fieldName = $this->input->post('fieldName');
- $fhc_controller_id = $this->input->post('fhc_controller_id');
+ $filterUniqueId = $this->_getFilterUniqueId();
- $session = $this->_readSession($fhc_controller_id);
+ $session = $this->_readSession($filterUniqueId);
$allSelectedFields = $session['allSelectedFields'];
$allColumnsAliases = $session['allColumnsAliases'];
@@ -396,8 +396,8 @@ class Filters extends VileSci_Controller
}
}
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFields'] = $selectedFields;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['columnsAliases'] = $columnsAliases;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFields'] = $selectedFields;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['columnsAliases'] = $columnsAliases;
$json = new stdClass();
@@ -415,9 +415,9 @@ class Filters extends VileSci_Controller
public function addSelectedFilters()
{
$fieldName = $this->input->post('fieldName');
- $fhc_controller_id = $this->input->post('fhc_controller_id');
+ $filterUniqueId = $this->_getFilterUniqueId();
- $session = $this->_readSession($fhc_controller_id);
+ $session = $this->_readSession($filterUniqueId);
$selectedFilters = $session['selectedFilters'];
$selectedFiltersActiveFilters = $session['activeFilters'];
@@ -432,10 +432,10 @@ class Filters extends VileSci_Controller
$selectedFiltersActiveFiltersOption[$fieldName] = "";
}
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFilters'] = $selectedFilters;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFilters'] = $selectedFiltersActiveFilters;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFilters'] = $selectedFilters;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFilters'] = $selectedFiltersActiveFilters;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption;
$json = new stdClass();
@@ -456,17 +456,17 @@ class Filters extends VileSci_Controller
$filterOperations = $this->input->post('filterOperations');
$filterOperationValues = $this->input->post('filterOperationValues');
$filterOptions = $this->input->post('filterOptions');
- $fhc_controller_id = $this->input->post('fhc_controller_id');
+ $filterUniqueId = $this->_getFilterUniqueId();
- $session = $this->_readSession($fhc_controller_id);
+ $session = $this->_readSession($filterUniqueId);
$activeFilters = array_combine($fieldNames, $filterOperationValues);
$activeFiltersOperation = array_combine($fieldNames, $filterOperations);
$activeFiltersOption = array_combine($fieldNames, $filterOptions);
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFilters'] = $activeFilters;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOperation'] = $activeFiltersOperation;
- $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOption'] = $activeFiltersOption;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFilters'] = $activeFilters;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOperation'] = $activeFiltersOperation;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOption'] = $activeFiltersOption;
$json = new stdClass();
@@ -485,7 +485,7 @@ class Filters extends VileSci_Controller
{
$json = new stdClass();
- $session = $this->_readSession($this->input->get('fhc_controller_id'));
+ $session = $this->_readSession($this->_getFilterUniqueId());
$dataset = $session['dataset'];
@@ -500,10 +500,10 @@ class Filters extends VileSci_Controller
/**
*
*/
- private function _readSession($fhc_controller_id)
+ private function _readSession($filterUniqueId)
{
- if (isset($_SESSION[self::SESSION_NAME]) && isset($_SESSION[self::SESSION_NAME][$fhc_controller_id]))
- return $_SESSION[self::SESSION_NAME][$fhc_controller_id];
+ if (isset($_SESSION[self::SESSION_NAME]) && isset($_SESSION[self::SESSION_NAME][$filterUniqueId]))
+ return $_SESSION[self::SESSION_NAME][$filterUniqueId];
return array();
}
@@ -511,7 +511,7 @@ class Filters extends VileSci_Controller
/**
*
*/
- private function _writeSession($data, $fhc_controller_id)
+ private function _writeSession($data, $filterUniqueId)
{
if (!isset($_SESSION[self::SESSION_NAME])
|| (isset($_SESSION[self::SESSION_NAME]) && !is_array($_SESSION[self::SESSION_NAME])))
@@ -519,6 +519,25 @@ class Filters extends VileSci_Controller
$_SESSION[self::SESSION_NAME] = array();
}
- $_SESSION[self::SESSION_NAME][$fhc_controller_id] = $data;
+ $_SESSION[self::SESSION_NAME][$filterUniqueId] = $data;
+ }
+
+ /**
+ *
+ */
+ private function _getFilterUniqueId()
+ {
+ $_getFilterUniqueId = '';
+
+ if ($_SERVER['REQUEST_METHOD'] === 'POST')
+ {
+ $_getFilterUniqueId = $this->input->post('filter_page').'/'.$this->input->post('fhc_controller_id');
+ }
+ elseif ($_SERVER['REQUEST_METHOD'] === 'GET')
+ {
+ $_getFilterUniqueId = $this->input->get('filter_page').'/'.$this->input->get('fhc_controller_id');
+ }
+
+ return $_getFilterUniqueId;
}
}
diff --git a/application/controllers/system/Messages.php b/application/controllers/system/Messages.php
index dd112d204..9d66dac4d 100644
--- a/application/controllers/system/Messages.php
+++ b/application/controllers/system/Messages.php
@@ -20,6 +20,13 @@ class Messages extends VileSci_Controller
$this->load->library('WidgetLib');
$this->load->model('person/Person_model', 'PersonModel');
+
+ $this->loadPhrases(array(
+ 'global',
+ 'person',
+ 'lehre',
+ 'ui',
+ 'infocenter'));
$this->_setAuthUID(); // sets property uid
}
diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php
index 1973b84c5..35b4d2879 100644
--- a/application/controllers/system/infocenter/InfoCenter.php
+++ b/application/controllers/system/infocenter/InfoCenter.php
@@ -6,7 +6,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
* Also shows infocenter-related data for a person and its prestudents, enables document and zgv checks,
* displays and saves Notizen for a person, logs infocenter-related actions for a person
*/
-class InfoCenter extends VileSci_Controller
+class InfoCenter extends FHC_Controller
{
// App and Verarbeitungstaetigkeit name for logging
const APP = 'infocenter';
@@ -21,12 +21,14 @@ class InfoCenter extends VileSci_Controller
'saveformalgep' => array(
'logtype' => 'Action',
'name' => 'Document formally checked',
- 'message' => 'Document %s formally checked, set to %s'
+ 'message' => 'Document %s formally checked, set to %s',
+ 'success' => null
),
'savezgv' => array(
'logtype' => 'Action',
'name' => 'ZGV saved',
- 'message' => 'ZGV saved for degree program %s, prestudentid %s'
+ 'message' => 'ZGV saved for degree program %s, prestudentid %s',
+ 'success' => null
),
'abgewiesen' => array(
'logtype' => 'Processstate',
@@ -41,12 +43,14 @@ class InfoCenter extends VileSci_Controller
'savenotiz' => array(
'logtype' => 'Action',
'name' => 'Note added',
- 'message' => 'Note with title %s was added'
+ 'message' => 'Note with title %s was added',
+ 'success' => null
),
'updatenotiz' => array(
'logtype' => 'Action',
'name' => 'Note updated',
- 'message' => 'Note with title %s was updated'
+ 'message' => 'Note with title %s was updated',
+ 'success' => null
)
);
private $uid; // contains the UID of the logged user
@@ -74,6 +78,17 @@ class InfoCenter extends VileSci_Controller
$this->load->library('PersonLogLib');
$this->load->library('WidgetLib');
+ $this->loadPhrases(
+ array(
+ 'global',
+ 'person',
+ 'lehre',
+ 'ui',
+ 'infocenter',
+ 'filter'
+ )
+ );
+
$this->_setAuthUID(); // sets property uid
$this->load->library('PermissionLib');
@@ -127,13 +142,14 @@ class InfoCenter extends VileSci_Controller
$persondata = $this->_loadPersonData($person_id);
$prestudentdata = $this->_loadPrestudentData($person_id);
- $this->load->view(
- 'system/infocenter/infocenterDetails.php',
- array_merge(
- $persondata,
- $prestudentdata
- )
+ $data = array_merge(
+ $persondata,
+ $prestudentdata
);
+
+ $data['fhc_controller_id'] = $this->fhc_controller_id;
+
+ $this->load->view('system/infocenter/infocenterDetails.php', $data);
}
/**
@@ -147,7 +163,7 @@ class InfoCenter extends VileSci_Controller
if(isError($result))
show_error($result->retval);
- redirect(self::URL_PREFIX);
+ redirect(self::URL_PREFIX.'?fhc_controller_id='.$this->fhc_controller_id);
}
/**
@@ -405,7 +421,8 @@ class InfoCenter extends VileSci_Controller
$result = $this->DokumentprestudentModel->setAcceptedDocuments($prestudent_id, $dokument_kurzbzs);
- if (isError($result))
+ //returns null if no documents to accept
+ if ($result !== null && isError($result))
{
show_error($result->retval);
}
@@ -465,12 +482,11 @@ class InfoCenter extends VileSci_Controller
)
);
-
- $json = FALSE;
+ $json = false;
if (isSuccess($result))
{
- $json = TRUE;
+ $json = true;
//set log "Notiz updated"
$this->_log($person_id, 'updatenotiz', array($titel));
@@ -535,6 +551,61 @@ class InfoCenter extends VileSci_Controller
->_display();
}
+ /**
+ * Gets the date until which a person is parked
+ * @param $person_id
+ */
+ public function getParkedDate($person_id)
+ {
+ $result = $this->personloglib->getParkedDate($person_id);
+
+ $this->output
+ ->set_content_type('application/json')
+ ->set_output(json_encode($result));
+ }
+
+ /**
+ * Initializes parking of a person, i.e. a person is not expected to do any actions while it is parked
+ */
+ public function park()
+ {
+ $person_id = $this->input->post('person_id');
+ $date = $this->input->post('parkdate');
+
+ $this->personloglib->park($person_id, date_format(date_create($date), 'Y-m-d'), self::TAETIGKEIT, self::APP, null, $this->uid);
+ }
+
+ /**
+ * Removes parking of a person
+ */
+ public function unPark()
+ {
+ $person_id = $this->input->post('person_id');
+
+ $this->personloglib->unPark($person_id);
+ }
+
+ /**
+ * Gets the End date of the current Studienjahr
+ */
+ public function getStudienjahrEnd()
+ {
+ $this->load->model('organisation/studienjahr_model', 'StudienjahrModel');
+
+ $result = $this->StudienjahrModel->getCurrStudienjahr();
+
+ $json = false;
+
+ if (hasData($result))
+ {
+ $json = $result->retval[0]->ende;
+ }
+
+ $this->output
+ ->set_content_type('application/json')
+ ->set_output(json_encode($json));
+ }
+
// -----------------------------------------------------------------------------------------------------------------
// Private methods
@@ -592,13 +663,13 @@ class InfoCenter extends VileSci_Controller
$filtersarray = array(
'abgeschickt' => array(
'link' => '#',
- 'description' => 'Abgeschickt',
+ 'description' => ucfirst($this->p->t('global', 'abgeschickt')),
'expand' => true,
'children' => array()
),
'nichtabgeschickt' => array(
'link' => '#',
- 'description' => 'Nicht abgeschickt',
+ 'description' => ucfirst($this->p->t('global', 'nichtAbgeschickt')),
'expand' => true,
'children' => array()
)
@@ -649,10 +720,10 @@ class InfoCenter extends VileSci_Controller
{
foreach ($filters as $filterId => $description)
{
- $toPrint = "%s?%s=%s&%s=%s";
+ $toPrint = "%s?%s=%s";
$tofill['children'][] = array(
- 'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter'), 'filter_id', $filterId, 'fhc_controller_id', $this->fhc_controller_id),
+ 'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter'), 'filter_id', $filterId),
'description' => $description
);
}
@@ -662,10 +733,10 @@ class InfoCenter extends VileSci_Controller
{
foreach ($filters as $filterId => $description)
{
- $toPrint = "%s?%s=%s&%s=%s";
+ $toPrint = "%s?%s=%s";
$tofill['children'][] = array(
- 'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter'), 'filter_id', $filterId, 'fhc_controller_id', $this->fhc_controller_id),
+ 'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter'), 'filter_id', $filterId),
'description' => $description,
'subscriptDescription' => 'Remove',
'subscriptLinkClass' => 'remove-filter',
@@ -754,7 +825,7 @@ class InfoCenter extends VileSci_Controller
show_error($user_person->retval);
}
- $messagelink = base_url('/index.ci.php/system/Messages/write/'.$user_person->retval[0]->person_id);
+ $messagelink = site_url('/system/Messages/write/'.$user_person->retval[0]->person_id);
$data = array (
'lockedby' => $lockedby,
@@ -856,7 +927,7 @@ class InfoCenter extends VileSci_Controller
$this->PrestudentModel->addSelect('person_id');
$person_id = $this->PrestudentModel->load($prestudent_id)->retval[0]->person_id;
- redirect(self::URL_PREFIX.'/showDetails/'.$person_id.'#'.$section);
+ redirect(self::URL_PREFIX.'/showDetails/'.$person_id.'?fhc_controller_id='.$this->fhc_controller_id.'#'.$section);
}
/**
@@ -890,15 +961,20 @@ class InfoCenter extends VileSci_Controller
{
$logdata = $this->logparams[$logname];
+ $datatolog = array(
+ 'name' => $logdata['name']
+ );
+
+ if (isset($logdata['message']))
+ $datatolog['message'] = vsprintf($logdata['message'], $messageparams);
+
+ if (array_key_exists('success', $logdata))
+ $datatolog['success'] = true;
+
$this->personloglib->log(
$person_id,
$logdata['logtype'],
- array(
- 'name' => $logdata['name'],
- 'message' => vsprintf($logdata['message'],
- $messageparams),
- 'success' => 'true'
- ),
+ $datatolog,
self::TAETIGKEIT,
self::APP,
null,
@@ -1004,7 +1080,7 @@ class InfoCenter extends VileSci_Controller
if (!empty($receiver))
{
//Freigabeinformationmail sent from default system mail to studiengang mail(s)
- $sent = $this->maillib->send('', $receiver, $subject, $email);
+ $sent = $this->maillib->send('', $receiver, $subject, $email, '', null, null, 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Inhalt vollständig darzustellen.');
if (!$sent)
$this->loglib->logError('Error when sending Freigabe mail');
diff --git a/application/libraries/PersonLogLib.php b/application/libraries/PersonLogLib.php
index cf713825d..8145b88ac 100644
--- a/application/libraries/PersonLogLib.php
+++ b/application/libraries/PersonLogLib.php
@@ -7,6 +7,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
*/
class PersonLogLib
{
+ const PARKED_LOGNAME = 'Parked';
+
/**
* Constructor
*/
@@ -79,4 +81,101 @@ class PersonLogLib
else
show_error($result->retval);
}
+
+ /**
+ * Parks a person, i.e. marks a person so no actions are expected for the person (e.g. as a prestudent)
+ * Done by adding a logentry in the future
+ * @param $person_id
+ * @param $date
+ * @param $taetigkeit_kurzbz
+ * @param string $app
+ * @param null $oe_kurzbz
+ * @param null $user
+ * @return bool wether parking was successfull
+ */
+ public function park($person_id, $date, $taetigkeit_kurzbz, $app = 'core', $oe_kurzbz = null, $user = null)
+ {
+ $logdata = array(
+ 'name' => self::PARKED_LOGNAME
+ );
+
+ $data = array(
+ 'person_id' => $person_id,
+ 'zeitpunkt' => $date,
+ 'taetigkeit_kurzbz' => $taetigkeit_kurzbz,
+ 'app' => $app,
+ 'oe_kurzbz' => $oe_kurzbz,
+ 'logtype_kurzbz' => 'Processstate',
+ 'logdata' => json_encode($logdata),
+ 'insertvon' => $user
+ );
+
+ $result = $this->ci->PersonLogModel->insert($data);
+ if (isSuccess($result))
+ return true;
+ else
+ show_error($result->retval);
+ }
+
+ /**
+ * Unparks a person, i.e. removes all log entries in the future
+ * @param $person_id
+ */
+ public function unPark($person_id)
+ {
+ $result = $this->ci->PersonLogModel->getLogsInFuture($person_id);
+
+ $deleted = array();
+
+ if (isSuccess($result))
+ {
+ if (count($result->retval) > 0)
+ {
+ foreach ($result->retval as $log)
+ {
+ $logdata = json_decode($log->logdata);
+ if (isset($logdata->name) && $logdata->name === self::PARKED_LOGNAME)
+ {
+ $delresult = $this->ci->PersonLogModel->deleteLog($log->log_id);
+ if (isSuccess($delresult))
+ $deleted[] = $log->log_id;
+ }
+ }
+ }
+ }
+ else
+ show_error($result->retval);
+ }
+
+ /**
+ * Gets date until which a person is parked
+ * @param $person_id
+ * @return the date if person is parked, null otherwise
+ */
+ public function getParkedDate($person_id)
+ {
+ $result = $this->ci->PersonLogModel->getLogsInFuture($person_id);
+
+ $parkeddate = null;
+
+ if (isSuccess($result))
+ {
+ if (count($result->retval) > 0)
+ {
+ foreach ($result->retval as $log)
+ {
+ $logdata = json_decode($log->logdata);
+ if (isset($logdata->name) && $logdata->name === self::PARKED_LOGNAME)
+ {
+ $parkeddate = $log->zeitpunkt;
+ break;
+ }
+ }
+ }
+ }
+ else
+ show_error($result->retval);
+
+ return $parkeddate;
+ }
}
diff --git a/application/libraries/PhrasesLib.php b/application/libraries/PhrasesLib.php
index 99b73732b..1194e769c 100644
--- a/application/libraries/PhrasesLib.php
+++ b/application/libraries/PhrasesLib.php
@@ -187,22 +187,67 @@ class PhrasesLib
{
for ($i = 0; $i < count($this->_phrases); $i++)
{
+
$_phrase = $this->_phrases[$i];
-
+
if ($_phrase->category == $category
&& $_phrase->phrase == $phrase
&& $_phrase->orgeinheit_kurzbz == $orgeinheit_kurzbz
- && $_phrase->orgform_kurzbz== $orgform_kurzbz)
- {
- if ($parameters == null) $parameters = array();
+ && $_phrase->orgform_kurzbz== $orgform_kurzbz
+ && (!empty($_phrase->text)))
+ {
+ if ($parameters == null)
+ $parameters = array();
+
+ return $this->_ci->parser->parse_string($_phrase->text, $parameters, true);
+ }
+ }
+
+ //fallback 1: if phrase not found in phrases-array, try with default language
+ $default_language = DEFAULT_LANGUAGE;
+ $categories = $this->_ci->PhraseModel->getCategories();
+
+ if (hasData($categories))
+ {
+ $categories = $categories->retval;
+ foreach($categories as $cat)
+ $all_categories[] = $cat->category;
+ }
+
+ $phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($all_categories, $default_language);
+
+ if (hasData($phrases))
+ {
+ $default_phrases = $phrases->retval;
+ }
- echo $this->_ci->parser->parse_string($_phrase->text, $parameters, true)."\n";
- break;
+ if (isset($default_phrases) && is_array($default_phrases))
+ {
+ for ($i = 0; $i < count($default_phrases); $i++)
+ {
+ $_phrase = $default_phrases[$i];
+// var_dump($_phrase);
+
+// echo $phrase . "
";
+// echo $_phrase->phrase . "
";
+
+ if ($_phrase->category == $category
+ && $_phrase->phrase == $phrase
+ && $_phrase->orgeinheit_kurzbz == $orgeinheit_kurzbz
+ && $_phrase->orgform_kurzbz== $orgform_kurzbz)
+ {
+ if ($parameters == null)
+ $parameters = array();
+ return $this->_ci->parser->parse_string($_phrase->text, $parameters, true);
+ }
}
}
- }
+
+ //fallback 2: if phrase not found at all, return phrasename
+ $phrase = '<< PHRASE ' . $phrase . ' >>';
+ return $this->_ci->parser->parse_string($phrase, $parameters, true);
+ }
}
-
// -----------------------------------------------------------------------------------------------------------------
// Private methods
diff --git a/application/models/organisation/Studienjahr_model.php b/application/models/organisation/Studienjahr_model.php
index ace9c1525..36784a280 100644
--- a/application/models/organisation/Studienjahr_model.php
+++ b/application/models/organisation/Studienjahr_model.php
@@ -12,4 +12,21 @@ class Studienjahr_model extends DB_Model
$this->pk = 'studienjahr_kurzbz';
$this->hasSequence = false;
}
+
+ /**
+ * Gets current Studienjahr, as determined by its start and enddate
+ * @return array|null
+ */
+ public function getCurrStudienjahr()
+ {
+ $query = 'SELECT *
+ FROM public.tbl_studienjahr
+ JOIN public.tbl_studiensemester using(studienjahr_kurzbz)
+ WHERE start <= now()
+ AND ende >= now()
+ ORDER by start DESC
+ LIMIT 1';
+
+ return $this->execQuery($query);
+ }
}
diff --git a/application/models/system/PersonLog_model.php b/application/models/system/PersonLog_model.php
index 02f52008c..e5f2c543d 100644
--- a/application/models/system/PersonLog_model.php
+++ b/application/models/system/PersonLog_model.php
@@ -90,4 +90,36 @@ class PersonLog_model extends CI_Model
return success($result->result());
}
+
+ /**
+ * Gets all logs with zeitpunkt > today
+ * @param $person_id
+ * @return array
+ */
+ public function getLogsInFuture($person_id)
+ {
+ $this->db->order_by('zeitpunkt', 'DESC');
+ $this->db->order_by('log_id', 'DESC');
+
+ $where = "logtype_kurzbz = 'Processstate'
+ AND person_id=".$this->db->escape($person_id)."
+ AND zeitpunkt >= now()";
+
+ $result = $this->db->get_where($this->dbTable, $where);
+
+ return success($result->result());
+ }
+
+ /**
+ * Deletes a log
+ * @param $log_id
+ * @return array
+ */
+ public function deleteLog($log_id)
+ {
+ $this->db->where('log_id', $log_id);
+ $result = $this->db->delete($this->dbTable);
+
+ return success($result);
+ }
}
diff --git a/application/models/system/Phrase_model.php b/application/models/system/Phrase_model.php
index a0363eb5a..dff8bebaf 100644
--- a/application/models/system/Phrase_model.php
+++ b/application/models/system/Phrase_model.php
@@ -77,4 +77,15 @@ class Phrase_model extends DB_Model
return $this->execQuery($query, array($categories, $language));
}
-}
+
+ /**
+ * Loads all categories
+ */
+ public function getCategories()
+ {
+ $query = 'SELECT DISTINCT category
+ FROM system.tbl_phrase';
+
+ return $this->execQuery($query);
+ }
+}
\ No newline at end of file
diff --git a/application/views/home.php b/application/views/home.php
index cd032bc71..598413c32 100644
--- a/application/views/home.php
+++ b/application/views/home.php
@@ -5,7 +5,9 @@ $this->load->view('templates/FHC-Header',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
- 'sbadmintemplate' => true
+ 'sbadmintemplate' => true,
+ 'ajaxlib' => true,
+ 'navigationwidget' => true
)
);
?>
diff --git a/application/views/system/infocenter/addNotiz.php b/application/views/system/infocenter/addNotiz.php
index a8396fe40..f8f02570a 100644
--- a/application/views/system/infocenter/addNotiz.php
+++ b/application/views/system/infocenter/addNotiz.php
@@ -2,11 +2,11 @@
| Anmerkungen zur Bewerbung | += ucfirst($this->p->t('infocenter','anmerkungenZurBewerbung')) ?> | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Name | -Typ | -Uploaddatum | -Ausstellungsnation | -Formal geprüft | += ucfirst($this->p->t('global','name')) ?> | += ucfirst($this->p->t('global','typ')) ?> | += ucfirst($this->p->t('global','uploaddatum')) ?> | += ucfirst($this->p->t('infocenter','ausstellungsnation')) ?> | += ucfirst($this->p->t('infocenter','formalGeprueft')) ?> | ||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Typ | -Nachzureichen am | -Ausstellungsnation | -Anmerkung | += ucfirst($this->p->t('global','typ')) ?> | += ucfirst($this->p->t('infocenter','nachzureichenAm')) ?> | += ucfirst($this->p->t('infocenter','ausstellungsnation')) ?> | += ucfirst($this->p->t('global','anmerkung')) ?> | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Datum | -Aktivität | -User | -|||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| zeitpunkt), 'd.m.Y H:i:s') ?> | -logdata->name) ? $log->logdata->name : '' ?> | -insertvon ?> | -|||||||||
| = ucfirst($this->p->t('global', 'datum')) ?> | += ucfirst($this->p->t('global', 'aktivitaet')) ?> | +User | +
|---|---|---|
| zeitpunkt), 'd.m.Y H:i:s') ?> | +logdata->name) ? $log->logdata->name : '' ?> | +insertvon ?> | +
| Datum | -Notiz | += ucfirst($this->p->t('global', 'datum')) ?> | += ucfirst($this->p->t('global', 'notiz')) ?> | User | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Vorname | += ucfirst($this->p->t('person','vorname')) ?> | vorname ?> |
| Nachname | += ucfirst($this->p->t('person','nachname')) ?> | nachname ?> |
| Geburtsdatum | += ucfirst($this->p->t('person','geburtsdatum')) ?> | gebdatum), 'd.m.Y') ?> |
| Sozialversicherungsnr | += ucfirst($this->p->t('person','svnr')) ?> | svnr ?> |
| Staatsbürgerschaft | += ucfirst($this->p->t('person','staatsbuergerschaft')) ?> | staatsbuergerschaft ?> |
| Geschlecht | += ucfirst($this->p->t('person','geschlecht')) ?> | geschlecht ?> |
| Geburtsnation | += ucfirst($this->p->t('person','geburtsnation')) ?> | geburtsnation ?> |
| Geburtsort | += ucfirst($this->p->t('person','geburtsort')) ?> | gebort ?> |
| Kontakte | += ucfirst($this->p->t('global','kontakt')) ?> | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Typ | -Kontakt | -Anmerkung | += ucfirst($this->p->t('global','typ')) ?> | += ucfirst($this->p->t('global','kontakt')) ?> | += ucfirst($this->p->t('global','anmerkung')) ?> | ||||||
| kontakttyp); ?> | + kontakttyp === 'email'): ?> += ucfirst($this->p->t('person','email')) ?> | + kontakttyp === 'telefon'): ?> += ucfirst($this->p->t('person','telefon')) ?> | +kontakttyp.'">';?> kontakttyp === 'email'): ?> @@ -76,7 +80,7 @@ adressen as $adresse): ?> | ||||||||
| - Adresse + = ucfirst($this->p->t('person','adresse')) ?> |
strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?>
@@ -97,13 +101,13 @@
Nachricht senden
+ class="fa fa-envelope"> = $this->p->t('ui','nachrichtSenden') ?>
zugangscode)): ?>
Zugang Bewerbung
+ target='_blank'> = $this->p->t('infocenter','zugangBewerbung') ?>
diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php
index 1a31fc643..383dd5a62 100644
--- a/application/views/system/infocenter/zgvpruefungen.php
+++ b/application/views/system/infocenter/zgvpruefungen.php
@@ -27,14 +27,14 @@
prestudentstatus->bestaetigtam)): ?>
- An Studiengang freigegeben
+ = $this->p->t('global', 'anStudiengangFreigegeben') ?>
- prestudentstatus->bewerbung_abgeschicktamum) ? '' : ''); ?>
- prestudentstatus->bewerbungsnachfrist) ? ' | Nachfrist: '. date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?>
- prestudentstatus->bewerbungstermin) ? ' | Bewerbungsfrist: '. date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
+ p->t('infocenter','bewerbung')) . ' ' . $this->p->t('global','abgeschickt') . ': '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '' : ''); ?>
+ prestudentstatus->bewerbungsnachfrist) ? ' | ' . $this->p->t('infocenter', 'nachfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?>
+ prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
@@ -49,7 +49,7 @@
-
+
prestudentstatus->status_kurzbz))
{
@@ -60,7 +60,7 @@
-
+
prestudentstatus->studiensemester_kurzbz) ? $zgvpruefung->prestudentstatus->studiensemester_kurzbz : '' ?>
-
+
prestudentstatus->orgform)) ? ', ' : '';
@@ -90,18 +90,18 @@
-
+
zgvort);
else:
@@ -127,7 +127,7 @@
-
+
zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y');
if ($infoonly):
@@ -143,7 +143,7 @@
-
+
zgvnation_bez;
else
@@ -159,7 +159,7 @@
studiengangtyp === 'm') : ?>
-
+
@@ -354,29 +339,20 @@
zgvmas_bez;
@@ -173,7 +173,7 @@
-
+
zgvmaort;
else:
@@ -186,7 +186,7 @@
-
+
zgvmadatum) ? "" : date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y');
if ($infoonly):
@@ -201,8 +201,7 @@
-
@@ -337,7 +322,7 @@
data-toggle="modal"
data-target="#freigabeModal_prestudent_id ?>"
data-toggle="tooltip" title="">
- Freigabe an Studiengang
+ = $this->p->t('ui', 'freigabeAnStudiengang') ?>
+
zgvmanation_bez;
@@ -221,12 +220,12 @@
@@ -280,33 +278,20 @@
×
Absage - bestätigen+ id="absageModalLabel">= $this->p->t('infocenter', 'absageBestaetigen') ?>
- Bei Absage von InteressentInnen
- erhalten
- diese den Status "Abgewiesener"
- und
deren - Zgvdaten können - im Infocenter nicht mehr - bearbeitet - oder - freigegeben werden. - Alle nicht gespeicherten - Zgvdaten - gehen - verloren. Fortfahren? + = $this->p->t('infocenter', 'absageBestaetigenTxt') ?> - Freigabe - bestätigen+ = $this->p->t('global', 'freigabeBestaetigen') ?>
- Bei Freigabe von InteressentInnen wird deren
- Interessentenstatus bestätigt und
@@ -390,7 +366,7 @@
deren - Zgvdaten - können im - Infocenter nicht mehr bearbeitet - werden. - Alle nicht gespeicherten Zgvdaten gehen - verloren. - Fortfahren? + = $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
prestudentstatus->bestaetigtam) ? '' : '' ?>
-
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/application/views/system/messageWrite.php b/application/views/system/messageWrite.php
index 3f9ed5254..85c003cfd 100644
--- a/application/views/system/messageWrite.php
+++ b/application/views/system/messageWrite.php
@@ -32,14 +32,14 @@ $href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER[
- -
-
-
-
-
Send Message+= ucfirst($this->p->t('ui', 'nachrichtSenden')) ?> | ||||||||||