Merge remote-tracking branch 'origin/master'

This commit is contained in:
Manfred Kindl
2018-05-23 10:15:54 +02:00
49 changed files with 4761 additions and 1549 deletions
+68 -49
View File
@@ -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;
}
}
@@ -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
}
@@ -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');
+99
View File
@@ -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;
}
}
+53 -8
View File
@@ -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 . "<br>";
// echo $_phrase->phrase . "<br><br>";
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
@@ -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);
}
}
@@ -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);
}
}
+12 -1
View File
@@ -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);
}
}
+3 -1
View File
@@ -5,7 +5,9 @@ $this->load->view('templates/FHC-Header',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true
'sbadmintemplate' => true,
'ajaxlib' => true,
'navigationwidget' => true
)
);
?>
@@ -2,11 +2,11 @@
<input type="hidden" name="hiddenNotizId" value="">
<div class="form-group">
<div class="text-center">
<label>Notiz hinzuf&uuml;gen</label>
<label><?= $this->p->t('infocenter', 'notizHinzufuegen') ?></label>
</div>
<div>
<div class="form-group">
<label>Titel: </label>
<label><?= ucfirst($this->p->t('global', 'titel')) . ': ' ?></label>
<div class="input-group">
<input id="inputNotizTitel" type="text" class="form-control" name="notiztitel"/>
<div class="input-group-addon" onclick="document.getElementById('inputNotizTitel').value='Anmerkung zur Bewerbung'">
@@ -21,8 +21,8 @@
</div>
<div class="text-right">
<!--abbrechen-button only shown when notice is clicked to be changed-->
<button type="reset" class="btn btn-default" style="display: none">Abbrechen</button>
<button type="submit" class="btn btn-default">Speichern</button>
<button type="reset" class="btn btn-default" style="display: none"><?= $this->p->t('ui', 'abbrechen') ?></button>
<button type="submit" class="btn btn-default"><?= $this->p->t('ui', 'speichern') ?></button>
</div>
</div>
</form>
@@ -5,7 +5,7 @@
<table class="table-bordered" align="center" width="100%">
<thead>
<tr>
<th colspan="2" class="text-center">Anmerkungen zur Bewerbung</th>
<th colspan="2" class="text-center"><?= ucfirst($this->p->t('infocenter','anmerkungenZurBewerbung')) ?></th>
</tr>
</thead>
<tbody>
@@ -2,11 +2,11 @@
<table id="doctable" class="table table-bordered">
<thead>
<tr>
<th>Name</th>
<th>Typ</th>
<th>Uploaddatum</th>
<th>Ausstellungsnation</th>
<th>Formal gepr&uuml;ft</th>
<th><?= ucfirst($this->p->t('global','name')) ?></th>
<th><?= ucfirst($this->p->t('global','typ')) ?></th>
<th><?= ucfirst($this->p->t('global','uploaddatum')) ?></th>
<th><?= ucfirst($this->p->t('infocenter','ausstellungsnation')) ?></th>
<th><?= ucfirst($this->p->t('infocenter','formalGeprueft')) ?></th>
</tr>
</thead>
<tbody>
@@ -35,14 +35,14 @@
</div>
<?php if (count($dokumente_nachgereicht) > 0): ?>
<br/>
<p>Nachzureichende Dokumente:</p>
<p><?= ucfirst($this->p->t('infocenter','nachzureichendeDokumente')) ?></p>
<table id="nachgdoctable" class="table table-bordered">
<thead>
<tr>
<th>Typ</th>
<th>Nachzureichen am</th>
<th>Ausstellungsnation</th>
<th>Anmerkung</th>
<th><?= ucfirst($this->p->t('global','typ')) ?></th>
<th><?= ucfirst($this->p->t('infocenter','nachzureichenAm')) ?></th>
<th><?= ucfirst($this->p->t('infocenter','ausstellungsnation')) ?></th>
<th><?= ucfirst($this->p->t('global','anmerkung')) ?></th>
</tr>
</thead>
<tbody>
@@ -9,6 +9,9 @@
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
)
@@ -24,7 +27,7 @@
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">Infocenter &Uuml;bersicht</h3>
<h3 class="page-header">Infocenter <?= ucfirst($this->p->t('global', 'uebersicht')); ?></h3>
</div>
</div>
<div>
@@ -2,6 +2,7 @@
$APP = 'infocenter';
$NOTBEFORE = '2018-03-01 18:00:00';
$filterWidgetArray = array(
'query' => '
SELECT
@@ -151,9 +152,17 @@
),\', \'
) AS "StgAktiv",
pl.zeitpunkt AS "LockDate",
pl.lockuser as "LockUser"
pl.lockuser as "LockUser",
pd.parkdate AS "ParkDate"
FROM public.tbl_person p
LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
LEFT JOIN (
SELECT person_id, zeitpunkt as parkdate
FROM system.tbl_log
WHERE logtype_kurzbz = \'Processstate\'
AND logdata->>\'name\' = \'Parked\'
AND zeitpunkt >= now()
) pd USING(person_id)
WHERE
EXISTS(
SELECT 1
@@ -186,17 +195,33 @@
)
ORDER BY "LastAction" ASC
',
'fhc_controller_id' => $fhc_controller_id,
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation', 'Letzte Aktion','Letzter Bearbeiter',
'StSem','GesendetAm','NumAbgeschickt','StgSent','StgNotSent','StgAktiv', 'Sperrdatum','GesperrtVon'),
'columnsAliases' => array(
'PersonID',
ucfirst($this->p->t('person', 'vorname')) ,
ucfirst($this->p->t('person', 'nachname')),
ucfirst($this->p->t('person', 'geburtsdatum')),
ucfirst($this->p->t('person', 'nation')),
ucfirst($this->p->t('global', 'letzteAktion')),
ucfirst($this->p->t('global', 'letzterBearbeiter')),
ucfirst($this->p->t('lehre', 'studiensemester')),
ucfirst($this->p->t('global', 'gesendetAm')),
ucfirst($this->p->t('global', 'abgeschickt')).' ('.$this->p->t('global', 'anzahl').')',
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'gesendet').')',
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'nichtGesendet').')',
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'aktiv').')',
ucfirst($this->p->t('global', 'sperrdatum')),
ucfirst($this->p->t('global', 'gesperrtVon')),
ucfirst($this->p->t('global', 'parkdatum'))
),
'formatRaw' => function($datasetRaw) {
$datasetRaw->{'Details'} = sprintf(
'<a href="%s%s">Details</a>',
site_url('system/infocenter/InfoCenter/showDetails/'),
$datasetRaw->{'PersonId'}
'<a href="%s/%s?fhc_controller_id=%s">Details</a>',
site_url('system/infocenter/InfoCenter/showDetails'),
$datasetRaw->{'PersonId'},
$this->input->get('fhc_controller_id')
);
if ($datasetRaw->{'SendDate'} == null)
@@ -205,7 +230,7 @@
}
else
{
$datasetRaw->{'SendDate'} = date_format(date_create($datasetRaw->{'SendDate'}),'Y-m-d H:i');
$datasetRaw->{'SendDate'} = date_format(date_create($datasetRaw->{'SendDate'}), 'Y-m-d H:i');
}
if ($datasetRaw->{'LastAction'} == null)
@@ -214,7 +239,7 @@
}
else
{
$datasetRaw->{'LastAction'} = date_format(date_create($datasetRaw->{'LastAction'}),'Y-m-d H:i');
$datasetRaw->{'LastAction'} = date_format(date_create($datasetRaw->{'LastAction'}), 'Y-m-d H:i');
}
if ($datasetRaw->{'User/Operator'} == '')
@@ -232,6 +257,11 @@
$datasetRaw->{'LockUser'} = '-';
}
if ($datasetRaw->{'ParkDate'} == null)
{
$datasetRaw->{'ParkDate'} = '-';
}
if ($datasetRaw->{'StgAbgeschickt'} == null)
{
$datasetRaw->{'StgAbgeschickt'} = '-';
@@ -253,10 +283,20 @@
},
'markRow' => function($datasetRaw) {
$mark = '';
if ($datasetRaw->LockDate != null)
{
return FilterWidget::DEFAULT_MARK_ROW_CLASS;
$mark = FilterWidget::DEFAULT_MARK_ROW_CLASS;
}
if ($datasetRaw->ParkDate != null)
{
// Parking has priority over locking
$mark = "text-info";
}
return $mark;
}
);
@@ -11,6 +11,8 @@
'tinymce' => true,
'sbadmintemplate' => true,
'addons' => true,
'ajaxlib' => true,
'navigationwidget' => true,
'customCSSs' =>
array(
'public/css/sbadmin2/admintemplate.css',
@@ -40,14 +42,14 @@
</div>
<div class="col-lg-4">
<div class="headerright text-right">
wird bearbeitet von:
<?= $this->p->t('global', 'wirdBearbeitetVon') . ':' ?>
<?php
if (isset($lockedby)):
echo $lockedby;
?>
&nbsp;&nbsp;
<a href="../unlockPerson/<?php echo $stammdaten->person_id; ?>"><i
class="fa fa-sign-out"></i>&nbsp;Freigeben</a>
<a href="../unlockPerson/<?php echo $stammdaten->person_id; ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>"><i
class="fa fa-sign-out"></i>&nbsp;<?= ucfirst($this->p->t('ui', 'freigeben')) ?></a>
<?php endif; ?>
</div>
</div>
@@ -57,7 +59,7 @@
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center"><h4>Stammdaten</h4></div>
<div class="panel-heading text-center"><h4><?= ucfirst($this->p->t('global','stammdaten')) ?></h4></div>
<div class="panel-body">
<?php $this->load->view('system/infocenter/stammdaten.php'); ?>
<?php $this->load->view('system/infocenter/anmerkungenZurBewerbung.php'); ?>
@@ -71,7 +73,7 @@
<div class="col-lg-12">
<div class="panel panel-primary">
<a name="DokPruef"></a><!-- anchor for jumping to the section -->
<div class="panel-heading text-center"><h4>Dokumentenpr&uuml;fung</h4></div>
<div class="panel-heading text-center"><h4><?= ucfirst($this->p->t('infocenter','dokumentenpruefung')) ?></h4></div>
<div class="panel-body">
<?php $this->load->view('system/infocenter/dokpruefung.php'); ?>
</div> <!-- ./panel-body -->
@@ -85,7 +87,7 @@
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="ZgvPruef"></a>
<h4>ZGV-Pr&uuml;fung</h4>
<h4><?= $this->p->t('infocenter', 'zgv') . ' - ' . ucfirst($this->p->t('lehre','pruefung'))?></h4>
</div>
<div class="panel-body">
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
@@ -100,7 +102,7 @@
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="Nachrichten"></a>
<h4 class="text-center">Nachrichten</h4>
<h4 class="text-center"><?= ucfirst($this->p->t('global','nachrichten')) ?></h4>
</div>
<div class="panel-body">
<div class="row">
@@ -119,7 +121,7 @@
<div class="panel panel-primary">
<div class="panel-heading text-center">
<a name="NotizAkt"></a>
<h4 class="text-center">Notizen &amp; Aktivit&auml;ten</h4>
<h4 class="text-center"><?= ucfirst($this->p->t('global','notizen')) . ' & ' . ucfirst($this->p->t('global','aktivitaeten')) ?></h4>
</div>
<div class="panel-body">
<div class="row">
@@ -131,8 +133,11 @@
<?php $this->load->view('system/infocenter/notizen.php'); ?>
</div>
</div>
<div class="col-lg-6" id="logs">
<div class="col-lg-6">
<div id="parking"></div>
<div id="logs">
<?php $this->load->view('system/infocenter/logs.php'); ?>
</div>
</div> <!-- ./column -->
</div> <!-- ./row -->
</div> <!-- ./panel-body -->
@@ -9,6 +9,9 @@
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
)
@@ -170,7 +173,6 @@
)
ORDER BY "LastAction" ASC
',
'fhc_controller_id' => $fhc_controller_id,
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation','Letzte Aktion','Letzter Bearbeiter',
@@ -178,9 +180,10 @@
'formatRaw' => function($datasetRaw) {
$datasetRaw->{'Details'} = sprintf(
'<a href="%s%s">Details</a>',
base_url('index.ci.php/system/infocenter/InfoCenter/showDetails/'),
$datasetRaw->{'PersonId'}
'<a href="%s/%s?fhc_controller_id=%s">Details</a>',
site_url('system/infocenter/InfoCenter/showDetails'),
$datasetRaw->{'PersonId'},
$this->input->get('fhc_controller_id')
);
if ($datasetRaw->{'SendDate'} == null)
+18 -18
View File
@@ -1,19 +1,19 @@
<table id="logtable" class="table table-bordered table-hover">
<thead>
<tr>
<th>Datum</th>
<th>Aktivit&auml;t</th>
<th>User</th>
</tr>
</thead>
<tbody>
<?php foreach ($logs as $log): ?>
<tr data-toggle="tooltip"
title="<?php echo isset($log->logdata->message) ? $log->logdata->message : '' ?>">
<td><?php echo date_format(date_create($log->zeitpunkt), 'd.m.Y H:i:s') ?></td>
<td><?php echo isset($log->logdata->name) ? $log->logdata->name : '' ?></td>
<td><?php echo $log->insertvon ?></td>
</tr>
<?php endforeach ?>
</tbody>
<table id="logtable" class="table table-bordered table-hover">
<thead>
<tr>
<th><?= ucfirst($this->p->t('global', 'datum')) ?></th>
<th><?= ucfirst($this->p->t('global', 'aktivitaet')) ?></th>
<th>User</th>
</tr>
</thead>
<tbody>
<?php foreach ($logs as $log): ?>
<tr data-toggle="tooltip"
title="<?php echo isset($log->logdata->message) ? $log->logdata->message : '' ?>">
<td><?php echo date_format(date_create($log->zeitpunkt), 'd.m.Y H:i:s') ?></td>
<td><?php echo isset($log->logdata->name) ? $log->logdata->name : '' ?></td>
<td><?php echo $log->insertvon ?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
@@ -1,8 +1,8 @@
<table id="notiztable" class="table table-bordered table-hover">
<thead>
<tr>
<th>Datum</th>
<th>Notiz</th>
<th><?= ucfirst($this->p->t('global', 'datum')) ?></th>
<th><?= ucfirst($this->p->t('global', 'notiz')) ?></th>
<th>User</th>
</tr>
</thead>
@@ -2,41 +2,41 @@
<div class="col-lg-6 table-responsive">
<table class="table">
<tr>
<td><strong>Vorname</strong></td>
<td><strong><?= ucfirst($this->p->t('person','vorname')) ?></strong></td>
<td><?php echo $stammdaten->vorname ?></td>
</tr>
<tr>
<td><strong>Nachname</strong></td>
<td><strong><?= ucfirst($this->p->t('person','nachname')) ?></strong></td>
<td>
<?php echo $stammdaten->nachname ?></td>
</tr>
<tr>
<td><strong>Geburtsdatum</strong></td>
<td><strong><?= ucfirst($this->p->t('person','geburtsdatum')) ?></strong></td>
<td>
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
</tr>
<tr>
<td><strong>Sozialversicherungsnr</strong></td>
<td><strong><?= ucfirst($this->p->t('person','svnr')) ?></strong></td>
<td>
<?php echo $stammdaten->svnr ?></td>
</tr>
<tr>
<td><strong>Staatsb&uuml;rgerschaft</strong></td>
<td><strong><?= ucfirst($this->p->t('person','staatsbuergerschaft')) ?></strong></td>
<td>
<?php echo $stammdaten->staatsbuergerschaft ?></td>
</tr>
<tr>
<td><strong>Geschlecht</strong></td>
<td><strong><?= ucfirst($this->p->t('person','geschlecht')) ?></strong></td>
<td>
<?php echo $stammdaten->geschlecht ?></td>
</tr>
<tr>
<td><strong>Geburtsnation</strong></td>
<td><strong><?= ucfirst($this->p->t('person','geburtsnation')) ?></strong></td>
<td>
<?php echo $stammdaten->geburtsnation ?></td>
</tr>
<tr>
<td><strong>Geburtsort</strong></td>
<td><strong><?= ucfirst($this->p->t('person','geburtsort')) ?></strong></td>
<td><?php echo $stammdaten->gebort ?></td>
</tr>
</table>
@@ -45,18 +45,22 @@
<table class="table table-bordered">
<thead>
<tr>
<th colspan="4" class="text-center">Kontakte</th>
<th colspan="4" class="text-center"><?= ucfirst($this->p->t('global','kontakt')) ?></th>
</tr>
<tr>
<th class="text-center">Typ</th>
<th class="text-center">Kontakt</th>
<th class="text-center">Anmerkung</th>
<th class="text-center"><?= ucfirst($this->p->t('global','typ')) ?></th>
<th class="text-center"><?= ucfirst($this->p->t('global','kontakt')) ?></th>
<th class="text-center"><?= ucfirst($this->p->t('global','anmerkung')) ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($stammdaten->kontakte as $kontakt): ?>
<tr>
<td><?php echo ucfirst($kontakt->kontakttyp); ?></td>
<?php if ($kontakt->kontakttyp === 'email'): ?>
<td><?= ucfirst($this->p->t('person','email')) ?></td>
<?php elseif ($kontakt->kontakttyp === 'telefon'): ?>
<td><?= ucfirst($this->p->t('person','telefon')) ?></td>
<?php endif; ?>
<td>
<?php echo '<span class="'.$kontakt->kontakttyp.'">';?>
<?php if ($kontakt->kontakttyp === 'email'): ?>
@@ -76,7 +80,7 @@
<?php foreach ($stammdaten->adressen as $adresse): ?>
<tr>
<td>
Adresse
<?= ucfirst($this->p->t('person','adresse')) ?>
</td>
<td>
<?php echo isset($adresse) ? $adresse->strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?>
@@ -97,13 +101,13 @@
<input type="hidden" name="person_id"
value="<?php echo $stammdaten->person_id ?>">
<a id="sendmsglink" href="javascript:void(0);"><i
class="fa fa-envelope"></i>&nbsp;Nachricht senden</a>
class="fa fa-envelope"></i>&nbsp;<?= $this->p->t('ui','nachrichtSenden') ?></a>
</form>
</div>
<?php if (isset($stammdaten->zugangscode)): ?>
<div class="col-xs-6 text-right">
<a href="<?php echo CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode) ?>"
target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;Zugang Bewerbung</a>
target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;<?= $this->p->t('infocenter','zugangBewerbung') ?></a>
</div>
<?php endif; ?>
</div>
@@ -27,14 +27,14 @@
<?php if (isset($zgvpruefung->prestudentstatus->bestaetigtam)): ?>
<div class="col-xs-<?php echo $headercolumns[1]; ?> text-right">
<i class="fa fa-check" style="color: green"></i>
An Studiengang freigegeben
<?= $this->p->t('global', 'anStudiengangFreigegeben') ?>
</div>
<?php endif; ?>
<?php else: ?>
<div class="col-xs-<?php echo $headercolumns[1]; ?> text-right">
<?php echo 'Bewerbung abgeschickt: '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check" style="color:green"></i>' : '<i class="fa fa-times" style="color:red"></i>'); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) ? ' | Nachfrist: '. date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungstermin) ? ' | Bewerbungsfrist: '. date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
<?php echo ucfirst($this->p->t('infocenter','bewerbung')) . ' ' . $this->p->t('global','abgeschickt') . ': '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check" style="color:green"></i>' : '<i class="fa fa-times" style="color:red"></i>'); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) ? ' | ' . $this->p->t('infocenter', 'nachfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
</div>
<?php endif; ?>
<?php endif; ?>
@@ -49,7 +49,7 @@
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group">
<label>Letzter Status: </label>
<label><?= ucfirst($this->p->t('global','letzterStatus')) . ':' ?></label>
<?php
if (isset($zgvpruefung->prestudentstatus->status_kurzbz))
{
@@ -60,7 +60,7 @@
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label>Studiensemester: </label>
<label><?= ucfirst($this->p->t('lehre','studiensemester')) . ':' ?></label>
<?php echo isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz) ? $zgvpruefung->prestudentstatus->studiensemester_kurzbz : '' ?>
</div>
</div>
@@ -73,7 +73,7 @@
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group">
<label>Orgform: </label>
<label><?= ucfirst($this->p->t('lehre','organisationsform')) . ':' ?></label>
<span style="display: inline-block">
<?php
$separator = (isset($zgvpruefung->prestudentstatus->orgform)) ? ', ' : '';
@@ -90,18 +90,18 @@
<div class="row">
<?php if ($infoonly): ?>
<div class="col-xs-8">
<label>ZGV:</label>
<label><?= $this->p->t('infocenter', 'zgv') . ':' ?></label>
<?php echo $zgvpruefung->zgv_bez; ?>
</div>
<?php else: ?>
<div class="col-xs-3">
<label>ZGV:</label>
<label><?= $this->p->t('infocenter', 'zgv') . ':' ?></label>
</div>
<?php endif;
$zgvinfocolumns = $infoonly ? 4 : 9;
?>
<div class="col-xs-<?php echo $zgvinfocolumns; ?> text-right zgvinfo" id="zgvinfo_<?php echo $zgvpruefung->prestudent_id ?>">
<a href="javascript:void(0)"><i class="fa fa-info-circle"></i> ZGV <?php echo $zgvpruefung->studiengang; ?></a>
<a href="javascript:void(0)"><i class="fa fa-info-circle"></i> <?= $this->p->t('infocenter', 'zgv') ?> <?php echo $zgvpruefung->studiengang; ?></a>
</div>
</div>
<?php if (!$infoonly)
@@ -114,7 +114,7 @@
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label>ZGV Ort: </label>
<label><?= $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('person','ort') . ':'?></label>
<?php if ($infoonly):
echo html_escape($zgvpruefung->zgvort);
else:
@@ -127,7 +127,7 @@
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label>ZGV Datum: </label>
<label><?= $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('global','datum') . ':'?></label>
<?php
$zgvdatum = empty($zgvpruefung->zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y');
if ($infoonly):
@@ -143,7 +143,7 @@
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group">
<label>ZGV Nation: </label>
<label><?= $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('person','nation') . ':'?></label>
<?php if ($infoonly)
echo $zgvpruefung->zgvnation_bez;
else
@@ -159,7 +159,7 @@
<?php if ($zgvpruefung->studiengangtyp === 'm') : ?>
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group"><label>ZGV Master: </label>
<div class="form-group"><label><?= $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ':'?></label>
<?php
if ($infoonly)
echo $zgvpruefung->zgvmas_bez;
@@ -173,7 +173,7 @@
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label>ZGV Master Ort: </label>
<label><?= $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('person','ort') . ':'?></label>
<?php if ($infoonly):
echo $zgvpruefung->zgvmaort;
else:
@@ -186,7 +186,7 @@
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label>ZGV Master Datum: </label>
<label><?= $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('global','datum') . ':'?></label>
<?php
$zgvmadatum = empty($zgvpruefung->zgvmadatum) ? "" : date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y');
if ($infoonly):
@@ -201,8 +201,7 @@
</div>
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group"><label>ZGV Master
Nation: </label>
<div class="form-group"><label><?= $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('person','nation') . ':'?></label>
<?php
if ($infoonly)
echo $zgvpruefung->zgvmanation_bez;
@@ -221,12 +220,12 @@
<div class="row">
<div class="col-xs-6 text-left">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
Letzte ZGV &uuml;bernehmen
<?= $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
</button>
</div>
<div class="col-xs-6 text-right">
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>">
Speichern
<?= $this->p->t('ui', 'speichern') ?>
</button>
</div>
</div>
@@ -249,8 +248,7 @@
class="d-inline float-right"
required>
<option value="null"
selected="selected">Absagegrund
w&auml;hlen...
selected="selected"><?= $this->p->t('infocenter', 'absagegrund', array($this->p->t('global', 'waehlen'))) . '...' ?>
</option>
<?php foreach ($statusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
@@ -261,7 +259,7 @@
class="btn btn-default"
data-toggle="modal"
data-target="#absageModal_<?php echo $zgvpruefung->prestudent_id ?>">
Absage
<?= $this->p->t('ui', 'absagen') ?>
</button>
</span>
</div>
@@ -280,33 +278,20 @@
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel">Absage
best&auml;tigen</h4>
id="absageModalLabel"><?= $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
</div>
<div class="modal-body">
Bei Absage von InteressentInnen
erhalten
diese den Status "Abgewiesener"
und<br/>deren
Zgvdaten können
im Infocenter nicht mehr
bearbeitet
oder
freigegeben werden.
<br/>Alle nicht gespeicherten
Zgvdaten
gehen
verloren. Fortfahren?
<?= $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
Abbrechen
<?= $this->p->t('ui', 'abbrechen') ?>
</button>
<button type="submit"
class="btn btn-primary">
InteressentIn abweisen
<?= $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
</div>
@@ -337,7 +322,7 @@
data-toggle="modal"
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>"
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
Freigabe an Studiengang
<?= $this->p->t('ui', 'freigabeAnStudiengang') ?>
</button>
</div>
</div>
@@ -354,29 +339,20 @@
</button>
<h4 class="modal-title"
id="freigabeModalLabel">
Freigabe
best&auml;tigen</h4>
<?= $this->p->t('global', 'freigabeBestaetigen') ?></h4>
</div>
<div class="modal-body">
Bei Freigabe von InteressentInnen wird deren
Interessentenstatus bestätigt und<br/>deren
Zgvdaten
können im
Infocenter nicht mehr bearbeitet
werden.
<br/>Alle nicht gespeicherten Zgvdaten gehen
verloren.
Fortfahren?
<?= $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">Abbrechen
data-dismiss="modal"><?= $this->p->t('ui', 'abbrechen') ?>
</button>
<a href="../saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>">
<button type="button"
class="btn btn-primary">
InteressentIn freigeben
<?= $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
</a>
</div>
@@ -390,7 +366,7 @@
<div class="row">
<div class="col-lg-12 text-left">
<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) ? '<i class="fa fa-check" style="color: green"></i>' : '<i class="fa fa-check" style="color: red"></i>' ?>
<label>An Studiengang freigegeben</label>
<label><?= $this->p->t('global', 'anStudiengangFreigegeben') ?></label>
</div>
</div><!-- /.row -->
</div><!-- /.panel-footer -->
+99 -96
View File
@@ -1,97 +1,100 @@
<?php
$msgExists = count($messages) > 0;
$widthColumn = $msgExists === true ? 8 : 12;
?>
<div class="col-lg-<?php echo $widthColumn ?>">
<table id="msgtable" class="table table-bordered table-condensed tablesort-hover tablesort-active">
<thead>
<tr>
<th>Gesendet am</th>
<th>Sender</th>
<th>Empf&auml;nger</th>
<th>Betreff</th>
<th>Gelesen am</th>
</tr>
</thead>
<tbody>
<?php foreach ($messages as $message): ?>
<tr id="<?php echo $message->message_id.'_'.$message->repersonid ?>" style="cursor: pointer">
<td><?php echo isset($message->insertamum) ? date_format(date_create($message->insertamum), 'd.m.Y H:i:s') : '' ?></td>
<td><?php echo $message->sevorname.' '.$message->senachname ?></td>
<td><?php echo $message->revorname.' '.$message->renachname ?></td>
<td><?php echo $message->subject ?></td>
<td><?php echo isset($message->statusamum) ? date_format(date_create($message->statusamum), 'd.m.Y H:i:s') : '' ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php if ($msgExists === true): ?>
<div class="col-lg-4">
<br>
<div class="text-center"><label for="msgbody" id="msgsubject"></label></div>
<div>
<textarea id="msgbody"></textarea>
</div>
</div>
<?php endif; ?>
<script>
tinymce.init({
menubar: false,
toolbar: false,
readonly: 1,
selector: "#msgbody",
statusbar: false,
plugins: "autoresize",
//callback to avoid conflict with ajax (for getting body of first message)
init_instance_callback: "initMsgBody"
});
function initMsgBody()
{
var tblrows = $("#msgtable tbody tr");
if (tblrows.length > 0)
{
//in the begging last sent message is shown
var firstelement = tblrows.first();
var id = firstelement.attr('id');
getMsgBody(id);
firstelement.find("td").addClass("tablesort-active");
//add click event on message table for message preview
tblrows.click(
function ()
{
$("#msgtable").find("td").removeClass("tablesort-active");
$(this).find("td").addClass("tablesort-active");
getMsgBody(this.id);
}
);
}
}
//retrieve message data from message and reiver id via AJAX
function getMsgBody(id)
{
var msgid = id.substr(0, id.indexOf('_'));
var recid = id.substr(id.indexOf('_') + 1);
$.ajax(
{
dataType: "json",
url: "<?php echo base_url("/index.ci.php/system/Messages/getMessageFromIds/") ?>" + msgid + "/" + recid,
success: function (data, textStatus, jqXHR)
{
$("#msgsubject").text(data[0].subject);
tinyMCE.get("msgbody").setContent(data[0].body);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
}
)
}
<?php
$msgExists = count($messages) > 0;
$widthColumn = $msgExists === true ? 8 : 12;
?>
<div class="col-lg-<?php echo $widthColumn ?>">
<table id="msgtable" class="table table-bordered table-condensed tablesort-hover tablesort-active">
<thead>
<tr>
<th><?= ucfirst($this->p->t('global','gesendetAm')) ?></th>
<th><?= ucfirst($this->p->t('global','sender')) ?></th>
<th><?= ucfirst($this->p->t('global','empfaenger')) ?></th>
<th><?= ucfirst($this->p->t('global','betreff')) ?></th>
<th><?= ucfirst($this->p->t('global','gelesenAm')) ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($messages as $message): ?>
<tr id="<?php echo $message->message_id.'_'.$message->repersonid ?>" style="cursor: pointer">
<td><?php echo isset($message->insertamum) ? date_format(date_create($message->insertamum), 'd.m.Y H:i:s') : '' ?></td>
<td><?php echo $message->sevorname.' '.$message->senachname ?></td>
<td><?php echo $message->revorname.' '.$message->renachname ?></td>
<td><?php echo $message->subject ?></td>
<td><?php echo isset($message->statusamum) ? date_format(date_create($message->statusamum), 'd.m.Y H:i:s') : '' ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php if ($msgExists === true): ?>
<div class="col-lg-4">
<br>
<div class="text-center"><label for="msgbody" id="msgsubject"></label></div>
<div>
<textarea id="msgbody"></textarea>
</div>
</div>
<?php endif; ?>
<script>
tinymce.init({
menubar: false,
toolbar: false,
readonly: 1,
selector: "#msgbody",
statusbar: false,
plugins: "autoresize",
autoresize_bottom_margin: 10,
autoresize_min_height: 140,
autoresize_max_height: 495,
//callback to avoid conflict with ajax (for getting body of first message)
init_instance_callback: "initMsgBody"
});
function initMsgBody()
{
var tblrows = $("#msgtable tbody tr");
if (tblrows.length > 0)
{
//in the begging last sent message is shown
var firstelement = tblrows.first();
var id = firstelement.attr('id');
getMsgBody(id);
firstelement.find("td").addClass("tablesort-active");
//add click event on message table for message preview
tblrows.click(
function ()
{
$("#msgtable").find("td").removeClass("tablesort-active");
$(this).find("td").addClass("tablesort-active");
getMsgBody(this.id);
}
);
}
}
//retrieve message data from message and reiver id via AJAX
function getMsgBody(id)
{
var msgid = id.substr(0, id.indexOf('_'));
var recid = id.substr(id.indexOf('_') + 1);
$.ajax(
{
dataType: "json",
url: "<?php echo base_url("/index.ci.php/system/Messages/getMessageFromIds/") ?>" + msgid + "/" + recid,
success: function (data, textStatus, jqXHR)
{
$("#msgsubject").text(data[0].subject);
tinyMCE.get("msgbody").setContent(data[0].body);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
}
)
}
</script>
+8 -8
View File
@@ -32,14 +32,14 @@ $href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER[
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">Send Message</h3>
<h3 class="page-header"><?= ucfirst($this->p->t('ui', 'nachrichtSenden')) ?></h3>
</div>
</div>
<form id="sendForm" method="post" action="<?php echo $href; ?>">
<div class="row">
<div class="form-group">
<div class="col-lg-1">
<label>To:</label>
<label><?= ucfirst($this->p->t('global', 'empfaenger')) . ':'?></label>
</div>
<div class="col-lg-11">
<?php
@@ -60,7 +60,7 @@ $href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER[
<div class="row">
<div class="form-group form-inline">
<div class="col-lg-1 msgfield">
<label>Subject:</label>
<label><?= ucfirst($this->p->t('global', 'betreff')) . ':'?></label>
</div>&nbsp;
<?php
$subject = '';
@@ -78,7 +78,7 @@ $href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER[
<br>
<div class="row">
<div class="col-lg-10">
<label>Message:</label>
<label><?= ucfirst($this->p->t('global', 'nachricht')) . ':'?></label>
<?php
$body = '';
if (isset($message))
@@ -93,7 +93,7 @@ $href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER[
?>
<div class="col-lg-2">
<div class="form-group">
<label>Variables:</label>
<label><?= ucfirst($this->p->t('ui', 'felder')) . ':'?></label>
<select id="variables" class="form-control" size="14" multiple="multiple">
<?php
foreach ($variables as $key => $val)
@@ -120,21 +120,21 @@ $href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER[
?>
</div>
<div class="col-lg-offset-6 col-lg-1 text-right">
<button id="sendButton" class="btn btn-default" type="button">Send</button>
<button id="sendButton" class="btn btn-default" type="button"><?= $this->p->t('ui', 'senden')?></button>
</div>
</div>
<?php if (isset($receivers) && count($receivers) > 0): ?>
<hr>
<div class="row">
<div class="col-lg-12">
<label>Preview:</label>
<label><?= ucfirst($this->p->t('global', 'vorschau')) . ':'?></label>
</div>
</div>
<div class="well">
<div class="row">
<div class="col-lg-5">
<div class="form-grop form-inline">
<label>Recipient:</label>
<label><?= ucfirst($this->p->t('global', 'empfaenger')) . ': ' ?></label>
<select id="recipients">
<?php
if (count($receivers) > 1)
@@ -22,6 +22,8 @@ $tablesorter = isset($tablesorter) ? $tablesorter : false;
$tinymce = isset($tinymce) ? $tinymce : false;
$sbadmintemplate = isset($sbadmintemplate) ? $sbadmintemplate : false;
$addons = isset($addons) ? $addons : false;
$filterwidget = isset($filterwidget) ? $filterwidget : false;
$navigationwidget = isset($navigationwidget) ? $navigationwidget : false;
/**
* Print the given title of the page
@@ -165,6 +167,12 @@ function _generateAddonsJSsInclude($calledFrom)
_generateCSSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/css/sb-admin-2.min.css');
}
// FilterWidget CSS
if ($filterwidget === true) _generateCSSsInclude('public/css/FilterWidget.css');
// NavigationWidget CSS
if ($navigationwidget === true) _generateCSSsInclude('public/css/NavigationWidget.css');
// Eventually required CSS
_generateCSSsInclude($customCSSs); // Eventually required CSS
@@ -210,6 +218,12 @@ function _generateAddonsJSsInclude($calledFrom)
_generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js');
}
// FilterWidget JS
if($filterwidget === true) _generateJSsInclude('public/js/FilterWidget.js') ;
// NavigationWidget JS
if($navigationwidget === true) _generateJSsInclude('public/js/NavigationWidget.js') ;
// Load addon hooks JS
if ($addons === true) _generateAddonsJSsInclude($calledPath.'/'.$calledMethod);
+1 -162
View File
@@ -1,164 +1,3 @@
<style>
.filter-options-span {
display: inline-block;
width: 130px;
font-weight: bold;
}
.filter-name-title {
font-family: inherit;
font-size: 16px;
/*font-weight: bold;*/
line-height: 1.1;
color: black;
}
.filters-hidden-panel {
margin: 0 10px 10px 10px;
}
.hidden-control {
display: none !important;
}
.filter-select-fields-dnd-div {
height: 50px;
}
.filter-select-field-dnd-span {
border: 1px solid black;
border-radius: 7px;
margin-left: 3px;
margin-right: 3px;
padding: 10px;
top: 10px;
}
.filter-select-field-dnd-span:hover {
cursor: move;
}
.filter-select-field-dnd-span a {
cursor: pointer;
}
.selection-before::before {
content: "";
position: absolute;
top: 0;
right: 100%;
height: 100%;
margin-right: 3px;
border-left: 2px solid #428bca;
}
.selection-after::after {
content: "";
position: absolute;
top: 0;
left: 100%;
height: 100%;
margin-left: 3px;
border-right: 2px solid #428bca;
}
.select-filter-operation {
display: inline;
width: 130px;
}
.select-filter-operation-value {
display: inline;
width: 400px;
}
.select-filter-option {
display: inline;
width: 100px;
}
#addField, #customFilterDescription, #addFilter {
display: inline;
width: 535px;
}
#selectedFilters {
margin-bottom: 20px;
}
#applyFilter, #saveCustomFilterButton, .remove-selected-filter {
font-weight: bold;
}
#applyFilter, #saveCustomFilterButton {
width: 100px;
}
.remove-selected-filter {
padding-bottom: 3px;
}
.panel-title {
font-weight: bold;
padding-top: 3px;
}
.remove-field {
font-weight: bold;
}
</style>
<script language="Javascript" type="text/javascript">
function sideMenuHook()
{
$(".remove-filter").click(function() {
$.ajax({
url: "<?php echo site_url('system/Filters/deleteCustomFilter'); ?>",
method: "POST",
data: {
filter_id: $(this).attr('value'),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
refreshSideMenu();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
}
$(document).ready(function() {
$("[data-toggle='collapse']").click(function() {
var filterOptionsStatus = sessionStorage.getItem('filter-options-status');
if (filterOptionsStatus != null && filterOptionsStatus == 'closed')
{
sessionStorage.setItem('filter-options-status', 'open');
}
else
{
sessionStorage.setItem('filter-options-status', 'closed');
}
});
var filterOptionsStatus = sessionStorage.getItem('filter-options-status');
if (filterOptionsStatus != null && filterOptionsStatus == 'open')
{
$('.collapse').collapse("show");
}
});
</script>
<div class="row">
<div class="col-lg-12">
@@ -168,7 +7,7 @@
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" href="#collapseFilterHeader">Filter options</a>
<a data-toggle="collapse" href="#collapseFilterHeader"><?= ucfirst($this->p->t('filter', 'filterEinstellungen')) ?></a>
</h4>
</div>
<div id="collapseFilterHeader" class="panel-collapse collapse">
@@ -1,36 +1,3 @@
<script language="Javascript" type="text/javascript">
$(document).ready(function() {
$("#saveCustomFilterButton").click(function() {
if ($("#customFilterDescription").val() != '')
{
$.ajax({
url: "<?php echo site_url('system/Filters/saveFilter'); ?>",
method: "POST",
data: {
customFilterDescription: $("#customFilterDescription").val(),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
refreshSideMenu()
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
else
{
alert("Please fill te description of this filter");
}
});
});
</script>
<br>
<div>
@@ -1,247 +1,11 @@
<script language="Javascript" type="text/javascript">
<div id="filterSelectFieldsDnd" class="filter-select-fields-dnd-div"></div>
function dndSF()
{
$(".filter-select-field-dnd-span").draggable({
containment: "parent",
cursor: "move",
opacity: 0.4,
revert: "invalid",
revertDuration: 200,
drag: function(event, ui) {
<div>
<span class="filter-options-span">
Add field:
</span>
var padding = 20;
var draggedElement = $(this);
$(".filter-select-field-dnd-span").each(function(i, e) {
if ($(this).attr('id') != draggedElement.attr('id'))
{
$(this).removeClass("selection-after");
$(this).removeClass("selection-before");
var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2);
if (event.pageX > ($(this).offset().left - (padding / 2))
&& event.pageX < ($(this).offset().left + $(this).width() + (padding / 2)))
{
if (event.pageX > elementCenter)
{
$(this).addClass("selection-after");
$(this).removeClass("selection-before");
}
else if (event.pageX < elementCenter)
{
$(this).addClass("selection-before");
$(this).removeClass("selection-after");
}
}
}
});
}
});
$(".filter-select-field-dnd-span").droppable({
accept: ".filter-select-field-dnd-span",
drop: function(event, ui) {
var padding = 20;
var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2);
var draggedElement = ui.helper;
if (event.pageX > elementCenter)
{
draggedElement.insertAfter($(this));
}
else if (event.pageX < elementCenter)
{
draggedElement.insertBefore($(this));
}
$(this).removeClass("selection-before");
$(this).removeClass("selection-after");
draggedElement.css({left: '0px', top: '10px'});
var arrayDndId = [];
$(".filter-select-field-dnd-span").each(function(i, e) {
arrayDndId[i] = $(this).attr('id').replace('dnd', '');
});
$.ajax({
url: "<?php echo site_url('system/Filters/sortSelectedFields'); ?>",
method: "POST",
data: {
selectedFieldsLst: arrayDndId,
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFields();
renderSelectedFields();
renderTableDataset();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
});
}
function resetEventsSF()
{
$("#addField").off('change');
$(".remove-field").off('click');
}
function addEventsSF()
{
$("#addField").change(function(event) {
$.ajax({
url: "<?php echo site_url('system/Filters/addSelectedFields'); ?>",
method: "POST",
data: {
fieldName: $(this).val(),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFields();
renderSelectedFields();
renderTableDataset();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
$(".remove-field").click(function(event) {
$.ajax({
url: "<?php echo site_url('system/Filters/removeSelectedFields'); ?>",
method: "POST",
data: {
fieldName: $(this).attr('fieldToRemove'),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFields();
renderSelectedFields();
renderTableDataset();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
}
function renderSelectedFields()
{
$.ajax({
url: "<?php echo site_url('system/Filters/selectFields'); ?>",
method: "GET",
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
resetEventsSF();
if (data != null)
{
var arrayFieldsToDisplay = [];
if (data.columnsAliases != null && $.isArray(data.columnsAliases))
{
arrayFieldsToDisplay = data.columnsAliases;
}
else if (data.selectedFields != null && $.isArray(data.selectedFields))
{
arrayFieldsToDisplay = data.selectedFields;
}
for (var i = 0; i < arrayFieldsToDisplay.length; i++)
{
var fieldToDisplay = arrayFieldsToDisplay[i];
var fieldName = data.selectedFields[i];
var strHtml = '<span id="dnd' + fieldName + '" class="filter-select-field-dnd-span">';
strHtml += '<span>';
strHtml += fieldToDisplay;
strHtml += '</span>';
strHtml += '<span><a class="remove-field" fieldToRemove="' + fieldName + '"> X </a></span>';
strHtml += '</span>';
$("#filterSelectFieldsDnd").append(strHtml);
}
var strDropDown = '<option value="">Select a field to add...</option>';
$("#addField").append(strDropDown);
for (var i = 0; i < data.allSelectedFields.length; i++)
{
var fieldName = data.allSelectedFields[i];
var fieldToDisplay = data.allSelectedFields[i];
if (data.selectedFields.indexOf(fieldName) < 0)
{
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
{
fieldToDisplay = data.allColumnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addField").append(strDropDown);
}
}
}
dndSF();
addEventsSF();
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
function resetSelectedFields()
{
$("#filterSelectFieldsDnd").html("");
$("#addField").html("");
}
$(document).ready(function() {
renderSelectedFields();
});
</script>
<div id="filterSelectFieldsDnd" class="filter-select-fields-dnd-div"></div>
<div>
<span class="filter-options-span">
Add field:
</span>
<span>
<select id="addField"></select>
</span>
</div>
<span>
<select id="addField"></select>
</span>
</div>
@@ -1,282 +1,3 @@
<script language="Javascript" type="text/javascript">
function resetEventsSFilters()
{
$("#addFilter").off('change');
}
function addEventsSFilters()
{
$("#addFilter").change(function(event) {
$.ajax({
url: "<?php echo site_url('system/Filters/addSelectedFilters'); ?>",
method: "POST",
data: {
fieldName: $(this).val(),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFilters();
renderSelectedFilters();
renderTableDataset();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
$(".select-filter-operation").change(function() {
if ($(this).val() == "set" || $(this).val() == "nset")
{
$(this).parent().parent().find(".select-filter-operation-value").addClass("hidden-control");
$(this).parent().parent().find(".select-filter-option").addClass("hidden-control");
$(this).parent().parent().find(".select-filter-operation-value").prop('disabled', true);
$(this).parent().parent().find(".select-filter-option").prop('disabled', true);
}
else
{
$(this).parent().parent().find(".select-filter-operation-value").removeClass("hidden-control");
$(this).parent().parent().find(".select-filter-option").removeClass("hidden-control");
$(this).parent().parent().find(".select-filter-operation-value").prop('disabled', false);
$(this).parent().parent().find(".select-filter-option").prop('disabled', false);
}
});
$("#applyFilter").click(function() {
var selectFilterName = [];
var selectFilterOperation = [];
var selectFilterOperationValue = [];
var selectFilterOption = [];
$("#selectedFilters > div").each(function(i, e) {
var tmpSelectFilterName = $(this).find('.hidden-field-name').val();
var tmpSelectFilterOperation = $(this).find('.select-filter-operation').val();
var tmpSelectFilterOperationValue = $(this).find('.select-filter-operation-value:enabled').val();
var tmpSelectFilterOption = $(this).find('.select-filter-option:enabled').val();
selectFilterName.push(tmpSelectFilterName);
selectFilterOperation.push(tmpSelectFilterOperation);
selectFilterOperationValue.push(tmpSelectFilterOperationValue != null ? tmpSelectFilterOperationValue : "");
selectFilterOption.push(tmpSelectFilterOption != null ? tmpSelectFilterOption : "");
});
$.ajax({
url: "<?php echo site_url('system/Filters/applyFilter'); ?>",
method: "POST",
data: {
filterNames: selectFilterName,
filterOperations: selectFilterOperation,
filterOperationValues: selectFilterOperationValue,
filterOptions: selectFilterOption,
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
// Success
}).fail(function(jqXHR, textStatus, errorThrown) {
// Error
}).always(function() {
location.reload();
});
});
$(".remove-selected-filter").click(function(event) {
$.ajax({
url: "<?php echo site_url('system/Filters/removeSelectedFilters'); ?>",
method: "POST",
data: {
fieldName: $(this).attr('filterToRemove'),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
resetSelectedFilters();
renderSelectedFilters();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
}
function renderSelectedFilterFields(metaData, activeFilters, activeFiltersOperation, activeFiltersOption)
{
var html = '';
if (metaData.type.toLowerCase().indexOf("int") >= 0)
{
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="equal" ' + (activeFiltersOperation == "equal" ? "selected" : "") + '>equal</option>';
html += ' <option value="nequal" ' + (activeFiltersOperation == "nqual" ? "selected" : "") + '>not equal</option>';
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
html += ' <option value="lt" ' + (activeFiltersOperation == "lt" ? "selected" : "") + '>less than</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="number" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('varchar') >= 0 || metaData.type.toLowerCase() == 'text')
{
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="contains" ' + (activeFiltersOperation == "contains" ? "selected" : "") + '>contains</option>';
html += ' <option value="ncontains" ' + (activeFiltersOperation == "ncontains" ? "selected" : "") + '>does not contain</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="text" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('bool') >= 0)
{
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="true" ' + (activeFiltersOperation == "true" ? "selected" : "") + '>is true</option>';
html += ' <option value="false" ' + (activeFiltersOperation == "false" ? "selected" : "") + '>is false</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="hidden" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('timestamp') >= 0 || metaData.type.toLowerCase().indexOf('date') >= 0)
{
var classOperation = 'form-control select-filter-operation-value';
var classOption = 'form-control select-filter-option';
var disabled = "";
if (activeFiltersOperation == "set" || activeFiltersOperation == "nset")
{
classOperation += ' hidden-control';
classOption += ' hidden-control';
disabled = "disabled";
}
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="lt" ' + (activeFiltersOperation == "lt" ? "selected" : "") + '>less than</option>';
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
html += ' <option value="set" ' + (activeFiltersOperation == "set" ? "selected" : "") + '>is set</option>';
html += ' <option value="nset" ' + (activeFiltersOperation == "nset" ? "selected" : "") + '>is not set</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="text" value="' + activeFilters + '" class="' + classOperation + '" ' + disabled + '>';
html += '</span>';
html += '<span>';
html += ' <select class="' + classOption + '" ' + disabled + '>';
html += ' <option value="days" ' + (activeFiltersOption == "days" ? "selected" : "") + '>Days</option>';
html += ' <option value="months" ' + (activeFiltersOption == "months" ? "selected" : "") + '>Months</option>';
html += ' </select>';
html += '</span>';
}
html += '<span>';
html += ' <input type="hidden" value="' + metaData.name + '" class="hidden-field-name">';
html += '</span>';
return html;
}
function renderSelectedFilters()
{
$.ajax({
url: "<?php echo site_url('system/Filters/selectFilters'); ?>",
method: "GET",
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
resetEventsSFilters();
if (data != null)
{
var strDropDown = '<option value="">Select a filter to add...</option>';
$("#addFilter").append(strDropDown);
for (var i = 0; i < data.selectedFilters.length; i++)
{
var selectedFilters = '<div>';
selectedFilters += '<span class="filter-options-span">';
selectedFilters += data.selectedFiltersAliases[i];
selectedFilters += '</span>';
selectedFilters += renderSelectedFilterFields(
data.selectedFiltersMetaData[i],
data.selectedFiltersActiveFilters[i],
data.selectedFiltersActiveFiltersOperation[i],
data.selectedFiltersActiveFiltersOption[i]
);
selectedFilters += '<span>';
selectedFilters += '<input type="button" value="X" class="remove-selected-filter btn btn-default" filterToRemove="' + data.selectedFilters[i] + '">';
selectedFilters += '</span>';
selectedFilters += '</div>';
$("#selectedFilters").append(selectedFilters);
}
for (var i = 0; i < data.allSelectedFields.length; i++)
{
var fieldName = data.allSelectedFields[i];
var fieldToDisplay = data.allSelectedFields[i];
if (data.selectedFilters.indexOf(fieldName) < 0)
{
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
{
fieldToDisplay = data.allColumnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addFilter").append(strDropDown);
}
}
}
addEventsSFilters();
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
function resetSelectedFilters()
{
$("#addFilter").html("");
$("#selectedFilters").html("");
}
$(document).ready(function() {
renderSelectedFilters();
});
</script>
<br>
<div id="selectedFilters"></div>
@@ -1,153 +1,3 @@
<script language="Javascript" type="text/javascript">
function callTableSorter()
{
// Checks if the table contains data (rows)
if ($('#filterTableDataset').find('tbody:empty').length == 0
&& $('#filterTableDataset').find('tr:empty').length == 0
&& $('#filterTableDataset').hasClass('table-condensed'))
{
$("#filterTableDataset").tablesorter({
widgets: ["zebra", "filter"]
});
var config = $('#filterTableDataset')[0].config;
$.tablesorter.updateAll(config, true, null);
}
}
function renderTableDataset()
{
$.ajax({
url: "<?php echo site_url('system/Filters/tableDataset'); ?>",
method: "GET",
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
resetTableDataset();
if (data != null)
{
if (data.checkboxes != null)
{
$("#filterTableDataset > thead > tr").append("<th title=\"Select\">Select</th>");
}
var arrayFieldsToDisplay = [];
if (data.columnsAliases != null && $.isArray(data.columnsAliases) && data.columnsAliases.length > 0)
{
arrayFieldsToDisplay = data.columnsAliases;
}
else if (data.selectedFields != null && $.isArray(data.selectedFields))
{
arrayFieldsToDisplay = data.selectedFields;
}
/* ------------------------------------------------------------------------------------------------ */
if (data.checkboxes != null && data.checkboxes != "")
{
$("#filterTableDataset > thead > tr").html("<th title=\"Select\">Select</th>");
}
for (var i = 0; i < arrayFieldsToDisplay.length; i++)
{
var th = arrayFieldsToDisplay[i];
$("#filterTableDataset > thead > tr").append("<th title=\"" + th + "\">" + th + "</th>");
}
if (data.additionalColumns != null && $.isArray(data.additionalColumns))
{
for (var i = 0; i < data.additionalColumns.length; i++)
{
var th = data.additionalColumns[i];
$("#filterTableDataset > thead > tr").append("<th title=\"" + th + "\">" + th + "</th>");
}
}
/* ------------------------------------------------------------------------------------------------ */
if (arrayFieldsToDisplay.length > 0)
{
if (data.dataset != null && $.isArray(data.dataset))
{
for (var i = 0; i < data.dataset.length; i++)
{
var record = data.dataset[i];
var strHtml = '<tr class="' + record.FILTER_CLASS_MARK_ROW + '">';
if (data.checkboxes != null && data.checkboxes != "")
{
strHtml += '<td>';
strHtml += '<input type="checkbox" name="' + data.checkboxes + '[]" value="' + record[data.checkboxes] + '">';
strHtml += '</td>';
}
$.each(arrayFieldsToDisplay, function(i, fieldToDisplay) {
if (record.hasOwnProperty(data.selectedFields[i]))
{
strHtml += '<td>' + record[data.selectedFields[i]] + '</td>';
}
});
if (data.additionalColumns != null && $.isArray(data.additionalColumns))
{
$.each(data.additionalColumns, function(i, additionalColumn) {
if (record.hasOwnProperty(additionalColumn))
{
strHtml += '<td>' + record[additionalColumn] + '</td>';
}
});
}
strHtml += '</tr>';
$("#filterTableDataset > tbody").append(strHtml);
}
}
else
{
// console.log("No dataset!!!");
}
}
else
{
console.log("No fields to display!!!");
}
}
else
{
console.log("No data!!!");
}
callTableSorter();
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
function resetTableDataset()
{
$("#filterTableDataset > thead > tr").html("");
$("#filterTableDataset > tbody").html("");
}
$(document).ready(function() {
renderTableDataset();
});
</script>
<div>
<table class="tablesorter table-bordered table-responsive" id="filterTableDataset">
<thead>
+8 -8
View File
@@ -1,9 +1,9 @@
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
<?php
// Header
echo $this->widgetlib->widget('NavigationHeaderWidget');
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
<?php
// Header
echo $this->widgetlib->widget('NavigationHeaderWidget');
// Left menu
echo $this->widgetlib->widget('NavigationMenuWidget');
?>
</nav>
// Left menu
echo $this->widgetlib->widget('NavigationMenuWidget');
?>
</nav>
+11 -39
View File
@@ -1,39 +1,11 @@
<script language="Javascript" type="text/javascript">
$(document).ready(function() {
$.ajax({
url: "<?php echo site_url('system/Navigation/header'); ?>",
method: "GET",
data: {
navigation_widget_called: "<?php echo $this->router->directory.$this->router->class.'/'.$this->router->method; ?>"
}
})
.done(function(data, textStatus, jqXHR) {
if (data != null)
{
jQuery.each(data, function(i, e) {
$(".menu-header-items").append('<a class="navbar-brand" href="' + e + '">' + i + '</a>');
});
}
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
});
</script>
<div class="navbar-header">
<span>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Men&uuml; umschalten </span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</span>
<span class="menu-header-items"></span>
</div>
<div class="navbar-header">
<span>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Men&uuml; umschalten </span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</span>
<span class="menu-header-items"></span>
</div>
@@ -1,169 +1,3 @@
<style>
#collapseinicon {
display: none;
cursor: pointer;
color: #337ab7;
border-bottom: 1px solid #e7e7e7;
border-right: 1px solid #e7e7e7;
border-left: 1px solid #e7e7e7;
position: absolute;
width: 45px;
height: 20px;
background-color: #F8F8F8;
}
.nav > li > span > a:focus, .nav > li > span > a:hover {
text-decoration: none;
}
.nav > li > span {
position: relative;
display: inline-block;
padding-top: 15px;
padding-bottom: 15px;
}
.menuSubscriptLink {
font-size: 10px;
padding-left: 0px !important;
padding-right: 0px !important;
}
.sidebar ul li span a.active {
background-color: transparent;
font-weight: bold;
text-decoration: underline;
}
</style>
<script language="Javascript" type="text/javascript">
function printNavItem(item, depth = 1)
{
strMenu = "";
var expanded = typeof item['expand'] != 'undefined' && item['expand'] === true ? ' active' : '';
strMenu += '<li class="' + expanded + '">';
if (typeof item['subscriptLinkClass'] != 'undefined' && typeof item['subscriptDescription'] != 'undefined')
{
strMenu += '<span>';
}
strMenu += '<a href="' + item['link'] + '"' + expanded + '>';
if (item['icon'] != 'undefined')
{
strMenu += '<i class="fa fa-' + item['icon'] + ' fa-fw"></i> ';
}
strMenu += item['description'];
if (typeof item['children'] != 'undefined' && Object.keys(item['children']).length > 0)
{
strMenu += '<span class="fa arrow"></span>';
}
strMenu += '</a>';
if (typeof item['subscriptLinkClass'] != 'undefined' && typeof item['subscriptDescription'] != 'undefined')
{
strMenu += '<a class="' + item['subscriptLinkClass'] + ' menuSubscriptLink" value="' + item['subscriptLinkValue'] + '" href="#"> (' + item['subscriptDescription'] + ')</a>';
strMenu += '</span>';
}
if (typeof item['children'] != 'undefined' && Object.keys(item['children']).length > 0)
{
var level = '';
if (depth === 1)
{
level = 'second';
}
else if (depth > 1)
{
level = 'third';
}
strMenu += '<ul class="nav nav-' + level + '-level" ' + expanded + '>';
jQuery.each(item['children'], function(i, e) {
strMenu += printNavItem(e, ++depth);
});
strMenu += '</ul>';
}
strMenu += '</li>';
return strMenu;
}
function renderSideMenu()
{
$.ajax({
url: "<?php echo site_url('system/Navigation/menu'); ?>",
method: "GET",
data: {
navigation_widget_called: "<?php echo $this->router->directory.$this->router->class.'/'.$this->router->method; ?>"
}
})
.done(function(data, textStatus, jqXHR) {
if (data != null)
{
var strMenu = '';
printCollapseIcon();
jQuery.each(data, function(i, e) {
strMenu += printNavItem(e);
});
$("#side-menu").html(strMenu);
$("#side-menu").metisMenu();
}
if (typeof sideMenuHook == 'function')
{
sideMenuHook();
}
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
});
}
function printCollapseIcon()
{
// Hiding/showing navigation menu - works only with sb admin 2 template!!
if(!$("#collapseicon").length)
$("#side-menu").parent().append('<div id="collapseicon" title="hide Menu" class="text-right" style="cursor: pointer; color: #337ab7"><i class="fa fa-angle-double-left fa-fw"></i></div>');
$("#collapseicon").click(function() {
$("#page-wrapper").css('margin-left', '0px');
$("#side-menu").hide();
$("#collapseicon").hide();
$("#collapseinicon").show();
});
$("#collapseinicon").click(function() {
$("#page-wrapper").css('margin-left', '250px');
$("#side-menu").show();
$("#collapseicon").show();
$("#collapseinicon").hide();
});
}
$(document).ready(function() {
renderSideMenu();
});
</script>
<div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse">
<ul class="nav" id="side-menu"></ul>
+13 -13
View File
@@ -506,7 +506,8 @@ class FilterWidget extends Widget
$this->hideSave = false;
$this->columnsAliases = null;
$this->filterName = null;
$this->fhc_controller_id = null;
$this->filterUniqueId = $this->_getFilterUniqueId();
if (!is_array($args) || (is_array($args) && count($args) == 0))
{
@@ -514,15 +515,6 @@ class FilterWidget extends Widget
}
else
{
if (!isset($args['fhc_controller_id']))
{
show_error('Dude you forgot the fhc_controller_id');
}
else
{
$this->fhc_controller_id = $args['fhc_controller_id'];
}
if ((
!isset($args[self::APP_PARAMETER])
&& !isset($args[self::DATASET_NAME_PARAMETER])
@@ -1164,8 +1156,8 @@ class FilterWidget extends Widget
*/
private function _readSession()
{
if (isset($_SESSION[self::SESSION_NAME]) && isset($_SESSION[self::SESSION_NAME][$this->fhc_controller_id]))
return $_SESSION[self::SESSION_NAME][$this->fhc_controller_id];
if (isset($_SESSION[self::SESSION_NAME]) && isset($_SESSION[self::SESSION_NAME][$this->filterUniqueId]))
return $_SESSION[self::SESSION_NAME][$this->filterUniqueId];
return array();
}
@@ -1181,6 +1173,14 @@ class FilterWidget extends Widget
$_SESSION[self::SESSION_NAME] = array();
}
$_SESSION[self::SESSION_NAME][$this->fhc_controller_id] = $data;
$_SESSION[self::SESSION_NAME][$this->filterUniqueId] = $data;
}
/**
*
*/
private function _getFilterUniqueId()
{
return $this->router->directory.$this->router->class.'/'.$this->router->method.'/'.$this->input->get('fhc_controller_id');
}
}
+20 -21
View File
@@ -1,22 +1,21 @@
<?php
class Nation_widget extends DropdownWidget
{
public function display($widgetData)
{
// Nation
$this->load->model('codex/nation_model', 'NationModel');
$this->NationModel->addOrder('nation_code');
$this->addSelectToModel($this->NationModel, 'nation_code', 'kurztext');
$this->setElementsArray(
$this->NationModel->load(),
true,
'Nation wählen...',
'keine Nation gefunden'
);
$this->loadDropDownView($widgetData);
}
<?php
class Nation_widget extends DropdownWidget
{
public function display($widgetData)
{
// Nation
$this->load->model('codex/nation_model', 'NationModel');
$this->NationModel->addOrder('nation_code');
$this->addSelectToModel($this->NationModel, 'nation_code', 'kurztext');
$this->setElementsArray(
$this->NationModel->load(),
true,
$this->p->t('ui', 'bitteEintragWaehlen')
);
$this->loadDropDownView($widgetData);
}
}
+1 -2
View File
@@ -27,8 +27,7 @@ class Vorlage_widget extends DropdownWidget
$this->setElementsArray(
$vorlage,
true,
'Select a vorlage...',
'No vorlage found'
$this->p->t('ui', 'vorlageWaehlen')
);
$this->loadDropDownView($widgetData);
+20 -21
View File
@@ -1,22 +1,21 @@
<?php
class Zgv_widget extends DropdownWidget
{
public function display($widgetData)
{
// Zgv
$this->load->model('codex/zgv_model', 'ZgvModel');
$this->ZgvModel->addOrder('zgv_bez');
$this->addSelectToModel($this->ZgvModel, 'zgv_code', 'zgv_bez');
$this->setElementsArray(
$this->ZgvModel->load(),
true,
'Zgv wählen...',
'keine Zgv gefunden'
);
$this->loadDropDownView($widgetData);
}
<?php
class Zgv_widget extends DropdownWidget
{
public function display($widgetData)
{
// Zgv
$this->load->model('codex/zgv_model', 'ZgvModel');
$this->ZgvModel->addOrder('zgv_bez');
$this->addSelectToModel($this->ZgvModel, 'zgv_code', 'zgv_bez');
$this->setElementsArray(
$this->ZgvModel->load(),
true,
$this->p->t('ui', 'bitteEintragWaehlen')
);
$this->loadDropDownView($widgetData);
}
}
+5 -6
View File
@@ -1,14 +1,13 @@
.veil {
position: absolute;
z-index: 9999;
top: 0;
left: 0;
height: 98%;
width: 99%;
height: 100%;
width: 100%;
background-color: white;
border-width: 1px;
border-style: solid;
border-color: black;
background-image: url("/public/imgages/loader.gif");
border-width: 0px;
background-image: url("../images/loader.gif");
background-repeat: no-repeat;
background-position: center;
}
+107
View File
@@ -0,0 +1,107 @@
.filter-options-span {
display: inline-block;
width: 130px;
font-weight: bold;
}
.filter-name-title {
font-family: inherit;
font-size: 16px;
/*font-weight: bold;*/
line-height: 1.1;
color: black;
}
.filters-hidden-panel {
margin: 0 10px 10px 10px;
}
.hidden-control {
display: none !important;
}
.filter-select-fields-dnd-div {
height: 50px;
}
.filter-select-field-dnd-span {
border: 1px solid black;
border-radius: 7px;
margin-left: 3px;
margin-right: 3px;
padding: 10px;
top: 10px;
}
.filter-select-field-dnd-span:hover {
cursor: move;
}
.filter-select-field-dnd-span a {
cursor: pointer;
}
.selection-before::before {
content: "";
position: absolute;
top: 0;
right: 100%;
height: 100%;
margin-right: 3px;
border-left: 2px solid #428bca;
}
.selection-after::after {
content: "";
position: absolute;
top: 0;
left: 100%;
height: 100%;
margin-left: 3px;
border-right: 2px solid #428bca;
}
.select-filter-operation {
display: inline;
width: 130px;
}
.select-filter-operation-value {
display: inline;
width: 400px;
}
.select-filter-option {
display: inline;
width: 100px;
}
#addField, #customFilterDescription, #addFilter {
display: inline;
width: 535px;
}
#selectedFilters {
margin-bottom: 20px;
}
#applyFilter, #saveCustomFilterButton, .remove-selected-filter {
font-weight: bold;
}
#applyFilter, #saveCustomFilterButton {
width: 100px;
}
.remove-selected-filter {
padding-bottom: 3px;
}
.panel-title {
font-weight: bold;
padding-top: 3px;
}
.remove-field {
font-weight: bold;
}
+35
View File
@@ -0,0 +1,35 @@
#collapseinicon {
display: none;
cursor: pointer;
color: #337ab7;
border-bottom: 1px solid #e7e7e7;
border-right: 1px solid #e7e7e7;
border-left: 1px solid #e7e7e7;
position: absolute;
width: 45px;
height: 20px;
background-color: #F8F8F8;
}
.nav > li > span > a:focus, .nav > li > span > a:hover {
text-decoration: none;
}
.nav > li > span {
position: relative;
display: inline-block;
padding-top: 15px;
padding-bottom: 15px;
}
.menuSubscriptLink {
font-size: 10px;
padding-left: 0px !important;
padding-right: 0px !important;
}
.sidebar ul li span a.active {
background-color: transparent;
font-weight: bold;
text-decoration: underline;
}
+33 -34
View File
@@ -37,9 +37,9 @@ const REMOTE_CONTROLLER = "remoteController";
const FHC_CONTROLLER_ID = "fhc_controller_id";
/**
* Definition and initialization of object FHC_Ajax_Client
* Definition and initialization of object FHC_AjaxClient
*/
var FHC_Ajax_Client = {
var FHC_AjaxClient = {
//------------------------------------------------------------------------------------------------------------------
// Properties
@@ -54,7 +54,7 @@ var FHC_Ajax_Client = {
* ajaxCallParameters is an object
*/
ajaxCallGet: function(remoteController, controllerParameters, ajaxCallParameters) {
FHC_Ajax_Client._ajaxCall(remoteController, controllerParameters, HTTP_GET_METHOD, ajaxCallParameters);
FHC_AjaxClient._ajaxCall(remoteController, controllerParameters, HTTP_GET_METHOD, ajaxCallParameters);
},
/**
@@ -63,7 +63,7 @@ var FHC_Ajax_Client = {
* ajaxCallParameters is an object
*/
ajaxCallPost: function(remoteController, controllerParameters, ajaxCallParameters) {
FHC_Ajax_Client._ajaxCall(remoteController, controllerParameters, HTTP_POST_METHOD, ajaxCallParameters);
FHC_AjaxClient._ajaxCall(remoteController, controllerParameters, HTTP_POST_METHOD, ajaxCallParameters);
},
/**
@@ -87,7 +87,7 @@ var FHC_Ajax_Client = {
* Checks if the response is an error
*/
isError: function(response) {
return !FHC_Ajax_Client.isSuccess(response);
return !FHC_AjaxClient.isSuccess(response);
},
/**
@@ -96,7 +96,7 @@ var FHC_Ajax_Client = {
hasData: function(response) {
var hasData = false;
if (FHC_Ajax_Client.isSuccess(response))
if (FHC_AjaxClient.isSuccess(response))
{
if ((jQuery.type(response.retval) == "object" && !jQuery.isEmptyObject(response.retval))
|| (jQuery.isArray(response.retval) && response.retval.length > 0)
@@ -116,7 +116,7 @@ var FHC_Ajax_Client = {
getData: function(response) {
var data = null;
if (FHC_Ajax_Client.hasData(response))
if (FHC_AjaxClient.hasData(response))
{
data = response.retval;
}
@@ -147,20 +147,20 @@ var FHC_Ajax_Client = {
showVeil: function(veilTimeout) {
if (typeof veilTimeout == "number")
{
FHC_Ajax_Client._veilTimeout = veilTimeout;
FHC_AjaxClient._veilTimeout = veilTimeout;
}
else
{
FHC_Ajax_Client._veilTimeout = VEIL_TIMEOUT;
FHC_AjaxClient._veilTimeout = VEIL_TIMEOUT;
}
FHC_Ajax_Client._showVeil();
FHC_AjaxClient._showVeil();
},
/**
* Hide a veil that was shown before
*/
hideVeil: function() {
FHC_Ajax_Client._hideVeil();
FHC_AjaxClient._hideVeil();
},
//------------------------------------------------------------------------------------------------------------------
@@ -212,10 +212,10 @@ var FHC_Ajax_Client = {
*/
_onSuccess: function(response, textStatus, jqXHR) {
FHC_Ajax_Client._printDebug(this._data, response); // debug time!
FHC_AjaxClient._printDebug(this._data, response); // debug time!
// Call the success callback saved in _successCallback property
// NOTE: this is not referred to FHC_Ajax_Client but to the ajax object
// NOTE: this is not referred to FHC_AjaxClient but to the ajax object
this._successCallback(response);
},
@@ -224,10 +224,10 @@ var FHC_Ajax_Client = {
*/
_onError: function(jqXHR, textStatus, errorThrown) {
FHC_Ajax_Client._printDebug(this._data, null, errorThrown); // debug time!
FHC_AjaxClient._printDebug(this._data, null, errorThrown); // debug time!
// Call the error callback saved in _errorCallback property
// NOTE: this is not referred to FHC_Ajax_Client but to the ajax object
// NOTE: this is not referred to FHC_AjaxClient but to the ajax object
this._errorCallback(jqXHR, textStatus, errorThrown);
},
@@ -249,12 +249,12 @@ var FHC_Ajax_Client = {
* Method to show the veil
*/
_showVeil: function() {
if (FHC_Ajax_Client._veilCallersCounter == 0)
if (FHC_AjaxClient._veilCallersCounter == 0)
{
$("<div class=\"veil\"></div>").appendTo('body');
}
FHC_Ajax_Client._veilCallersCounter++;
FHC_AjaxClient._veilCallersCounter++;
},
/**
@@ -262,14 +262,14 @@ var FHC_Ajax_Client = {
*/
_hideVeil: function() {
window.setTimeout(function() {
if (FHC_Ajax_Client._veilCallersCounter >= 0)
if (FHC_AjaxClient._veilCallersCounter >= 0)
{
if (FHC_Ajax_Client._veilCallersCounter > 0)
if (FHC_AjaxClient._veilCallersCounter > 0)
{
FHC_Ajax_Client._veilCallersCounter--;
FHC_AjaxClient._veilCallersCounter--;
}
if (FHC_Ajax_Client._veilCallersCounter == 0)
if (FHC_AjaxClient._veilCallersCounter == 0)
{
$(".veil").remove();
}
@@ -281,7 +281,7 @@ var FHC_Ajax_Client = {
/**
* Retrives parameters from URL query string (HTTP GET parameters)
*/
_getUrlParameter: function(sParam) {
getUrlParameter: function(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
@@ -319,7 +319,7 @@ var FHC_Ajax_Client = {
if (typeof remoteController == "string" && remoteController.trim() != "")
{
// Is it possible to generate the URL
if ((url = FHC_Ajax_Client._generateRouterURI(remoteController)) != null)
if ((url = FHC_AjaxClient._generateRouterURI(remoteController)) != null)
{
ajaxParameters.url = url;
}
@@ -339,11 +339,10 @@ var FHC_Ajax_Client = {
if (typeof controllerParameters == "object")
{
// Copy the properties of controllerParameters into a new object
var data = FHC_Ajax_Client._cpObjProps(controllerParameters);
// Remote controller
data[REMOTE_CONTROLLER] = remoteController;
var data = FHC_AjaxClient._cpObjProps(controllerParameters);
// fhc_controller_id is given if present
data[FHC_CONTROLLER_ID] = FHC_Ajax_Client._getUrlParameter(FHC_CONTROLLER_ID);
data[FHC_CONTROLLER_ID] = FHC_AjaxClient.getUrlParameter(FHC_CONTROLLER_ID);
// Stores them into ajaxParameters
// NOTE: property data is not possible to get later,
@@ -367,7 +366,7 @@ var FHC_Ajax_Client = {
if (typeof ajaxCallParameters.errorCallback == "function")
{
ajaxParameters._errorCallback = ajaxCallParameters.errorCallback; // save as property the callback error
ajaxParameters.error = FHC_Ajax_Client._onError; // function to call if an error occurred
ajaxParameters.error = FHC_AjaxClient._onError; // function to call if an error occurred
}
else
{
@@ -382,7 +381,7 @@ var FHC_Ajax_Client = {
if (typeof ajaxCallParameters.successCallback == "function")
{
ajaxParameters._successCallback = ajaxCallParameters.successCallback; // save as property the callback success
ajaxParameters.success = FHC_Ajax_Client._onSuccess; // function to call if succeeded
ajaxParameters.success = FHC_AjaxClient._onSuccess; // function to call if succeeded
}
else
{
@@ -397,8 +396,8 @@ var FHC_Ajax_Client = {
if (ajaxCallParameters.veilTimeout > 0 && ajaxCallParameters.veilTimeout < 60000)
{
ajaxParameters._veilTimeout = ajaxCallParameters.veilTimeout;
ajaxParameters.beforeSend = FHC_Ajax_Client._showVeil;
ajaxParameters.complete = FHC_Ajax_Client._hideVeil;
ajaxParameters.beforeSend = FHC_AjaxClient._showVeil;
ajaxParameters.complete = FHC_AjaxClient._hideVeil;
}
else if(ajaxCallParameters.veilTimeout == 0)
{
@@ -413,8 +412,8 @@ var FHC_Ajax_Client = {
else // is not present or the value is invalid
{
ajaxParameters._veilTimeout = VEIL_TIMEOUT;
ajaxParameters.beforeSend = FHC_Ajax_Client._showVeil;
ajaxParameters.complete = FHC_Ajax_Client._hideVeil;
ajaxParameters.beforeSend = FHC_AjaxClient._showVeil;
ajaxParameters.complete = FHC_AjaxClient._hideVeil;
}
}
@@ -438,7 +437,7 @@ var FHC_Ajax_Client = {
*/
_ajaxCall: function(remoteController, controllerParameters, type, ajaxCallParameters) {
// Retrives the parameters for the ajax call
var ajaxParameters = FHC_Ajax_Client._checkAndGenerateAjaxParams(remoteController, controllerParameters, type, ajaxCallParameters);
var ajaxParameters = FHC_AjaxClient._checkAndGenerateAjaxParams(remoteController, controllerParameters, type, ajaxCallParameters);
// Checks the given parameters if they are present and are valid
if (ajaxParameters != null)
+741
View File
@@ -0,0 +1,741 @@
/**
* FH-Complete
*
* @package
* @author
* @copyright Copyright (c) 2016 fhcomplete.org
* @license GPLv3
* @link https://fhcomplete.org
* @since Version 1.0.0
*/
/**
* Global function used by MavigationWidget JS
*/
function sideMenuHook()
{
$(".remove-filter").click(function() {
//
FHC_AjaxClient.ajaxCallPost(
'system/Filters/deleteCustomFilter',
{
filter_id: $(this).attr('value')
},
{
successCallback: refreshSideMenu // NOTE: to be checked
}
);
});
}
/**
* FHC_FilterWidget
*/
var FHC_FilterWidget = {
//------------------------------------------------------------------------------------------------------------------
// Public methods
/**
*
*/
renderSelectedFields: function() {
//
FHC_AjaxClient.ajaxCallGet(
'system/Filters/selectFields',
{
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._resetEventsSF();
if (data != null)
{
var arrayFieldsToDisplay = [];
if (data.columnsAliases != null && $.isArray(data.columnsAliases))
{
arrayFieldsToDisplay = data.columnsAliases;
}
else if (data.selectedFields != null && $.isArray(data.selectedFields))
{
arrayFieldsToDisplay = data.selectedFields;
}
for (var i = 0; i < arrayFieldsToDisplay.length; i++)
{
var fieldToDisplay = arrayFieldsToDisplay[i];
var fieldName = data.selectedFields[i];
var strHtml = '<span id="dnd' + fieldName + '" class="filter-select-field-dnd-span">';
strHtml += '<span>';
strHtml += fieldToDisplay;
strHtml += '</span>';
strHtml += '<span><a class="remove-field" fieldToRemove="' + fieldName + '"> X </a></span>';
strHtml += '</span>';
$("#filterSelectFieldsDnd").append(strHtml);
}
var strDropDown = '<option value="">Select a field to add...</option>';
$("#addField").append(strDropDown);
for (var i = 0; i < data.allSelectedFields.length; i++)
{
var fieldName = data.allSelectedFields[i];
var fieldToDisplay = data.allSelectedFields[i];
if (data.selectedFields.indexOf(fieldName) < 0)
{
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
{
fieldToDisplay = data.allColumnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addField").append(strDropDown);
}
}
}
FHC_FilterWidget._dndSF();
FHC_FilterWidget._addEventsSF();
}
}
);
},
/**
*
*/
renderSelectedFilters: function() {
//
FHC_AjaxClient.ajaxCallGet(
'system/Filters/selectFilters',
{
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._resetEventsSFilters();
if (data != null)
{
var strDropDown = '<option value="">Select a filter to add...</option>';
$("#addFilter").append(strDropDown);
for (var i = 0; i < data.selectedFilters.length; i++)
{
var selectedFilters = '<div>';
selectedFilters += '<span class="filter-options-span">';
selectedFilters += data.selectedFiltersAliases[i];
selectedFilters += '</span>';
selectedFilters += FHC_FilterWidget._getSelectedFilterFields(
data.selectedFiltersMetaData[i],
data.selectedFiltersActiveFilters[i],
data.selectedFiltersActiveFiltersOperation[i],
data.selectedFiltersActiveFiltersOption[i]
);
selectedFilters += '<span>';
selectedFilters += '<input type="button" value="X" class="remove-selected-filter btn btn-default" filterToRemove="' + data.selectedFilters[i] + '">';
selectedFilters += '</span>';
selectedFilters += '</div>';
$("#selectedFilters").append(selectedFilters);
}
for (var i = 0; i < data.allSelectedFields.length; i++)
{
var fieldName = data.allSelectedFields[i];
var fieldToDisplay = data.allSelectedFields[i];
if (data.selectedFilters.indexOf(fieldName) < 0)
{
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
{
fieldToDisplay = data.allColumnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addFilter").append(strDropDown);
}
}
}
FHC_FilterWidget._addEventsSFilters();
}
}
);
},
/**
*
*/
renderTableDataset: function() {
//
FHC_AjaxClient.ajaxCallGet(
'system/Filters/tableDataset',
{
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._resetTableDataset();
if (data != null)
{
if (data.checkboxes != null)
{
$("#filterTableDataset > thead > tr").append("<th title=\"Select\">Select</th>");
}
var arrayFieldsToDisplay = [];
if (data.columnsAliases != null && $.isArray(data.columnsAliases) && data.columnsAliases.length > 0)
{
arrayFieldsToDisplay = data.columnsAliases;
}
else if (data.selectedFields != null && $.isArray(data.selectedFields))
{
arrayFieldsToDisplay = data.selectedFields;
}
/* ------------------------------------------------------------------------------------------------ */
if (data.checkboxes != null && data.checkboxes != "")
{
$("#filterTableDataset > thead > tr").html("<th title=\"Select\">Select</th>");
}
for (var i = 0; i < arrayFieldsToDisplay.length; i++)
{
var th = arrayFieldsToDisplay[i];
$("#filterTableDataset > thead > tr").append("<th title=\"" + th + "\">" + th + "</th>");
}
if (data.additionalColumns != null && $.isArray(data.additionalColumns))
{
for (var i = 0; i < data.additionalColumns.length; i++)
{
var th = data.additionalColumns[i];
$("#filterTableDataset > thead > tr").append("<th title=\"" + th + "\">" + th + "</th>");
}
}
/* ------------------------------------------------------------------------------------------------ */
if (arrayFieldsToDisplay.length > 0)
{
if (data.dataset != null && $.isArray(data.dataset))
{
for (var i = 0; i < data.dataset.length; i++)
{
var record = data.dataset[i];
var strHtml = '<tr class="' + record.FILTER_CLASS_MARK_ROW + '">';
if (data.checkboxes != null && data.checkboxes != "")
{
strHtml += '<td>';
strHtml += '<input type="checkbox" name="' + data.checkboxes + '[]" value="' + record[data.checkboxes] + '">';
strHtml += '</td>';
}
$.each(arrayFieldsToDisplay, function(i, fieldToDisplay) {
if (record.hasOwnProperty(data.selectedFields[i]))
{
strHtml += '<td>' + record[data.selectedFields[i]] + '</td>';
}
});
if (data.additionalColumns != null && $.isArray(data.additionalColumns))
{
$.each(data.additionalColumns, function(i, additionalColumn) {
if (record.hasOwnProperty(additionalColumn))
{
strHtml += '<td>' + record[additionalColumn] + '</td>';
}
});
}
strHtml += '</tr>';
$("#filterTableDataset > tbody").append(strHtml);
}
}
else
{
// console.log("No dataset!!!");
}
}
else
{
console.log("No fields to display!!!");
}
}
else
{
console.log("No data!!!");
}
FHC_FilterWidget._callTableSorter();
}
}
);
},
//------------------------------------------------------------------------------------------------------------------
// Private methods
/**
*
*/
_dndSF: function() {
$(".filter-select-field-dnd-span").draggable({
containment: "parent",
cursor: "move",
opacity: 0.4,
revert: "invalid",
revertDuration: 200,
drag: function(event, ui) {
var padding = 20;
var draggedElement = $(this);
$(".filter-select-field-dnd-span").each(function(i, e) {
if ($(this).attr('id') != draggedElement.attr('id'))
{
$(this).removeClass("selection-after");
$(this).removeClass("selection-before");
var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2);
if (event.pageX > ($(this).offset().left - (padding / 2))
&& event.pageX < ($(this).offset().left + $(this).width() + (padding / 2)))
{
if (event.pageX > elementCenter)
{
$(this).addClass("selection-after");
$(this).removeClass("selection-before");
}
else if (event.pageX < elementCenter)
{
$(this).addClass("selection-before");
$(this).removeClass("selection-after");
}
}
}
});
}
});
$(".filter-select-field-dnd-span").droppable({
accept: ".filter-select-field-dnd-span",
drop: function(event, ui) {
var padding = 20;
var elementCenter = $(this).offset().left + ((padding + $(this).width()) / 2);
var draggedElement = ui.helper;
if (event.pageX > elementCenter)
{
draggedElement.insertAfter($(this));
}
else if (event.pageX < elementCenter)
{
draggedElement.insertBefore($(this));
}
$(this).removeClass("selection-before");
$(this).removeClass("selection-after");
draggedElement.css({left: '0px', top: '10px'});
var arrayDndId = [];
$(".filter-select-field-dnd-span").each(function(i, e) {
arrayDndId[i] = $(this).attr('id').replace('dnd', '');
});
//
FHC_AjaxClient.ajaxCallPost(
'system/Filters/sortSelectedFields',
{
selectedFieldsLst: arrayDndId,
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._resetSelectedFields();
FHC_FilterWidget.renderSelectedFields();
FHC_FilterWidget.renderTableDataset();
}
}
);
}
});
},
/**
*
*/
_resetEventsSF: function() {
$("#addField").off('change');
$(".remove-field").off('click');
},
/**
*
*/
_addEventsSF: function() {
$("#addField").change(function(event) {
//
FHC_AjaxClient.ajaxCallPost(
'system/Filters/addSelectedFields',
{
fieldName: $(this).val(),
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._resetSelectedFields();
FHC_FilterWidget.renderSelectedFields();
FHC_FilterWidget.renderTableDataset();
}
}
);
});
$(".remove-field").click(function(event) {
//
FHC_AjaxClient.ajaxCallPost(
'system/Filters/removeSelectedFields',
{
fieldName: $(this).attr('fieldToRemove'),
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._resetSelectedFields();
FHC_FilterWidget.renderSelectedFields();
FHC_FilterWidget.renderTableDataset();
}
}
);
});
},
/**
*
*/
_resetSelectedFields: function() {
$("#filterSelectFieldsDnd").html("");
$("#addField").html("");
},
/**
*
*/
_resetEventsSFilters: function() {
$("#addFilter").off('change');
},
/**
*
*/
_addEventsSFilters: function() {
$("#addFilter").change(function(event) {
//
FHC_AjaxClient.ajaxCallPost(
'system/Filters/addSelectedFilters',
{
fieldName: $(this).val(),
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._resetSelectedFilters();
FHC_FilterWidget.renderSelectedFilters();
FHC_FilterWidget.renderTableDataset();
}
}
);
});
$(".select-filter-operation").change(function() {
if ($(this).val() == "set" || $(this).val() == "nset")
{
$(this).parent().parent().find(".select-filter-operation-value").addClass("hidden-control");
$(this).parent().parent().find(".select-filter-option").addClass("hidden-control");
$(this).parent().parent().find(".select-filter-operation-value").prop('disabled', true);
$(this).parent().parent().find(".select-filter-option").prop('disabled', true);
}
else
{
$(this).parent().parent().find(".select-filter-operation-value").removeClass("hidden-control");
$(this).parent().parent().find(".select-filter-option").removeClass("hidden-control");
$(this).parent().parent().find(".select-filter-operation-value").prop('disabled', false);
$(this).parent().parent().find(".select-filter-option").prop('disabled', false);
}
});
$("#applyFilter").click(function() {
var selectFilterName = [];
var selectFilterOperation = [];
var selectFilterOperationValue = [];
var selectFilterOption = [];
$("#selectedFilters > div").each(function(i, e) {
var tmpSelectFilterName = $(this).find('.hidden-field-name').val();
var tmpSelectFilterOperation = $(this).find('.select-filter-operation').val();
var tmpSelectFilterOperationValue = $(this).find('.select-filter-operation-value:enabled').val();
var tmpSelectFilterOption = $(this).find('.select-filter-option:enabled').val();
selectFilterName.push(tmpSelectFilterName);
selectFilterOperation.push(tmpSelectFilterOperation);
selectFilterOperationValue.push(tmpSelectFilterOperationValue != null ? tmpSelectFilterOperationValue : "");
selectFilterOption.push(tmpSelectFilterOption != null ? tmpSelectFilterOption : "");
});
//
FHC_AjaxClient.ajaxCallPost(
'system/Filters/applyFilter',
{
filterNames: selectFilterName,
filterOperations: selectFilterOperation,
filterOperationValues: selectFilterOperationValue,
filterOptions: selectFilterOption,
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._resetSelectedFilters();
location.reload();
}
}
);
});
$(".remove-selected-filter").click(function(event) {
//
FHC_AjaxClient.ajaxCallPost(
'system/Filters/removeSelectedFilters',
{
fieldName: $(this).attr('filterToRemove'),
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: function(data, textStatus, jqXHR) {
FHC_FilterWidget._resetSelectedFilters();
location.reload();
}
}
);
});
},
/**
*
*/
_getSelectedFilterFields: function(metaData, activeFilters, activeFiltersOperation, activeFiltersOption) {
var html = '';
if (metaData.type.toLowerCase().indexOf("int") >= 0)
{
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="equal" ' + (activeFiltersOperation == "equal" ? "selected" : "") + '>equal</option>';
html += ' <option value="nequal" ' + (activeFiltersOperation == "nqual" ? "selected" : "") + '>not equal</option>';
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
html += ' <option value="lt" ' + (activeFiltersOperation == "lt" ? "selected" : "") + '>less than</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="number" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('varchar') >= 0 || metaData.type.toLowerCase() == 'text')
{
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="contains" ' + (activeFiltersOperation == "contains" ? "selected" : "") + '>contains</option>';
html += ' <option value="ncontains" ' + (activeFiltersOperation == "ncontains" ? "selected" : "") + '>does not contain</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="text" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('bool') >= 0)
{
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="true" ' + (activeFiltersOperation == "true" ? "selected" : "") + '>is true</option>';
html += ' <option value="false" ' + (activeFiltersOperation == "false" ? "selected" : "") + '>is false</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="hidden" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
html += '</span>';
}
if (metaData.type.toLowerCase().indexOf('timestamp') >= 0 || metaData.type.toLowerCase().indexOf('date') >= 0)
{
var classOperation = 'form-control select-filter-operation-value';
var classOption = 'form-control select-filter-option';
var disabled = "";
if (activeFiltersOperation == "set" || activeFiltersOperation == "nset")
{
classOperation += ' hidden-control';
classOption += ' hidden-control';
disabled = "disabled";
}
html = '<span>';
html += ' <select class="form-control select-filter-operation">';
html += ' <option value="lt" ' + (activeFiltersOperation == "lt" ? "selected" : "") + '>less than</option>';
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
html += ' <option value="set" ' + (activeFiltersOperation == "set" ? "selected" : "") + '>is set</option>';
html += ' <option value="nset" ' + (activeFiltersOperation == "nset" ? "selected" : "") + '>is not set</option>';
html += ' </select>';
html += '</span>';
html += '<span>';
html += ' <input type="text" value="' + activeFilters + '" class="' + classOperation + '" ' + disabled + '>';
html += '</span>';
html += '<span>';
html += ' <select class="' + classOption + '" ' + disabled + '>';
html += ' <option value="days" ' + (activeFiltersOption == "days" ? "selected" : "") + '>Days</option>';
html += ' <option value="months" ' + (activeFiltersOption == "months" ? "selected" : "") + '>Months</option>';
html += ' </select>';
html += '</span>';
}
html += '<span>';
html += ' <input type="hidden" value="' + metaData.name + '" class="hidden-field-name">';
html += '</span>';
return html;
},
/**
*
*/
_resetSelectedFilters: function() {
$("#addFilter").html("");
$("#selectedFilters").html("");
},
/**
*
*/
_callTableSorter: function() {
// Checks if the table contains data (rows)
if ($('#filterTableDataset').find('tbody:empty').length == 0
&& $('#filterTableDataset').find('tr:empty').length == 0
&& $('#filterTableDataset').hasClass('table-condensed'))
{
$("#filterTableDataset").tablesorter({
widgets: ["zebra", "filter"]
});
var config = $('#filterTableDataset')[0].config;
$.tablesorter.updateAll(config, true, null);
}
},
/**
*
*/
_resetTableDataset: function() {
$("#filterTableDataset > thead > tr").html("");
$("#filterTableDataset > tbody").html("");
},
/**
*
*/
_getFilterPage: function() {
return FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method;
}
};
/**
* When JQuery is up
*/
$(document).ready(function() {
$("[data-toggle='collapse']").click(function() {
var filterOptionsStatus = sessionStorage.getItem('filter-options-status');
if (filterOptionsStatus != null && filterOptionsStatus == 'closed')
{
sessionStorage.setItem('filter-options-status', 'open');
}
else
{
sessionStorage.setItem('filter-options-status', 'closed');
}
});
var filterOptionsStatus = sessionStorage.getItem('filter-options-status');
if (filterOptionsStatus != null && filterOptionsStatus == 'open')
{
$('.collapse').collapse("show");
}
$("#saveCustomFilterButton").click(function() {
if ($("#customFilterDescription").val() != '')
{
//
FHC_AjaxClient.ajaxCallPost(
'system/Filters/saveFilter',
{
customFilterDescription: $("#customFilterDescription").val(),
filter_page: FHC_FilterWidget._getFilterPage()
},
{
successCallback: refreshSideMenu // NOTE: to be checked
}
);
}
else
{
alert("Please fill te description of this filter");
}
});
FHC_FilterWidget.renderSelectedFields();
FHC_FilterWidget.renderSelectedFilters();
FHC_FilterWidget.renderTableDataset();
});
+198
View File
@@ -0,0 +1,198 @@
/**
* FH-Complete
*
* @package
* @author
* @copyright Copyright (c) 2016 fhcomplete.org
* @license GPLv3
* @link https://fhcomplete.org
* @since Version 1.0.0
*/
/**
* FHC_NavigationWidget
*/
var FHC_NavigationWidget = {
//------------------------------------------------------------------------------------------------------------------
// Public methods
/**
* Renders the header menu (top horizontal menu)
*/
renderHeaderMenu: function() {
//
FHC_AjaxClient.ajaxCallGet(
'system/Navigation/header',
{
navigation_widget_called: FHC_NavigationWidget._getNavigationWidgetCalled()
},
{
successCallback: function(data, textStatus, jqXHR) {
if (data != null)
{
jQuery.each(data, function(i, e) {
$(".menu-header-items").append('<a class="navbar-brand" href="' + e + '">' + i + '</a>');
});
}
}
}
);
},
/**
* Renders the side left menu
*/
renderSideMenu: function() {
//
FHC_AjaxClient.ajaxCallGet(
'system/Navigation/menu',
{
navigation_widget_called: FHC_NavigationWidget._getNavigationWidgetCalled()
},
{
successCallback: function(data, textStatus, jqXHR) {
if (data != null)
{
var strMenu = '';
FHC_NavigationWidget._printCollapseIcon();
jQuery.each(data, function(i, e) {
strMenu += FHC_NavigationWidget._printNavItem(e);
});
$("#side-menu").html(strMenu);
$("#side-menu").metisMenu();
}
if (typeof sideMenuHook == 'function')
{
sideMenuHook();
}
}
}
);
},
//------------------------------------------------------------------------------------------------------------------
// Private methods
/**
*
*/
_printCollapseIcon: function() {
// Hiding/showing navigation menu - works only with sb admin 2 template!!
if(!$("#collapseicon").length)
$("#side-menu").parent().append('<div id="collapseicon" title="hide Menu" class="text-right" style="cursor: pointer; color: #337ab7"><i class="fa fa-angle-double-left fa-fw"></i></div>');
$("#collapseicon").click(function() {
$("#page-wrapper").css('margin-left', '0px');
$("#side-menu").hide();
$("#collapseicon").hide();
$("#collapseinicon").show();
});
$("#collapseinicon").click(function() {
$("#page-wrapper").css('margin-left', '250px');
$("#side-menu").show();
$("#collapseicon").show();
$("#collapseinicon").hide();
});
},
/**
*
*/
_printNavItem: function(item, depth = 1) {
strMenu = "";
var expanded = typeof item['expand'] != 'undefined' && item['expand'] === true ? ' active' : '';
strMenu += '<li class="' + expanded + '">';
if (typeof item['subscriptLinkClass'] != 'undefined' && typeof item['subscriptDescription'] != 'undefined')
{
strMenu += '<span>';
}
// Handle fhc_controller_id
var fhc_controller_id = FHC_AjaxClient.getUrlParameter('fhc_controller_id');
if (fhc_controller_id != null && fhc_controller_id != '' && item['link'] != '#')
{
if (item['link'].indexOf('?') != -1)
{
item['link'] += '&';
}
else
{
item['link'] += '?';
}
item['link'] += 'fhc_controller_id=' + fhc_controller_id;
}
strMenu += '<a href="' + item['link'] + '"' + expanded + '>';
if (item['icon'] != 'undefined')
{
strMenu += '<i class="fa fa-' + item['icon'] + ' fa-fw"></i> ';
}
strMenu += item['description'];
if (typeof item['children'] != 'undefined' && Object.keys(item['children']).length > 0)
{
strMenu += '<span class="fa arrow"></span>';
}
strMenu += '</a>';
if (typeof item['subscriptLinkClass'] != 'undefined' && typeof item['subscriptDescription'] != 'undefined')
{
strMenu += '<a class="' + item['subscriptLinkClass'] + ' menuSubscriptLink" value="' + item['subscriptLinkValue'] + '" href="#"> (' + item['subscriptDescription'] + ')</a>';
strMenu += '</span>';
}
if (typeof item['children'] != 'undefined' && Object.keys(item['children']).length > 0)
{
var level = '';
if (depth === 1)
{
level = 'second';
}
else if (depth > 1)
{
level = 'third';
}
strMenu += '<ul class="nav nav-' + level + '-level" ' + expanded + '>';
jQuery.each(item['children'], function(i, e) {
strMenu += FHC_NavigationWidget._printNavItem(e, ++depth);
});
strMenu += '</ul>';
}
strMenu += '</li>';
return strMenu;
},
/**
* Returns the URI of the caller
*/
_getNavigationWidgetCalled: function() {
return FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method;
}
};
/**
* When JQuery is up
*/
$(document).ready(function() {
FHC_NavigationWidget.renderHeaderMenu();
FHC_NavigationWidget.renderSideMenu();
});
+141 -36
View File
@@ -1,25 +1,6 @@
/**
*
*/
function getUrlParameter(sParam)
{
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++)
{
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam)
{
return sParameterName[1];
}
}
}
var fhc_controller_id = getUrlParameter("fhc_controller_id");
var fhc_controller_id = FHC_AjaxClient.getUrlParameter('fhc_controller_id');
const CONTROLLER_URL = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/"+FHC_JS_DATA_STORAGE_OBJECT.called_path;
/**
* javascript file for infocenterDetails page
@@ -31,7 +12,7 @@ $(document).ready(
addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]);
addTablesorter("msgtable", [[0, 1], [2, 0]], ["zebra", "filter"], 2);
tablesortAddPager("msgtable", "msgpager", 10);
tablesortAddPager("msgtable", "msgpager", 14);
formatNotizTable();
formatLogTable();
@@ -42,6 +23,8 @@ $(document).ready(
"dateFormat": "dd.mm.yy"
});
var personid = $("#hiddenpersonid").val();
//add submit event to message send link
$("#sendmsglink").click(
function ()
@@ -54,7 +37,6 @@ $(document).ready(
$(".prchbox").click(function ()
{
var boxid = this.id;
var personid = $("#hiddenpersonid").val();
var akteid = boxid.substr(boxid.indexOf("_") + 1);
var checked = this.checked;
saveFormalGeprueft(personid, akteid, checked)
@@ -64,7 +46,6 @@ $(document).ready(
$(".zgvUebernehmen").click(function ()
{
var btn = $(this);
var personid = $("#hiddenpersonid").val();
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
$('#zgvUebernehmenNotice').remove();
zgvUebernehmen(personid, prestudentid, btn)
@@ -118,11 +99,11 @@ $(document).ready(
if (notizId !== '')
{
updateNotiz(notizId, personId, data);
updateNotiz(notizId, personid, data);
}
else
{
saveNotiz(personId, data);
saveNotiz(personid, data);
}
}
);
@@ -150,6 +131,9 @@ $(document).ready(
}
);
//check if person is parked and display it
getParkedDateAjax(personid);
});
function openZgvInfoForPrestudent(prestudent_id)
@@ -157,7 +141,6 @@ function openZgvInfoForPrestudent(prestudent_id)
var screenwidth = screen.width;
var popupwidth = 760;
var marginleft = screenwidth - popupwidth;
console.log(marginleft);
window.open("../getZgvInfoForPrestudent/" + prestudent_id, "_blank","resizable=yes,scrollbars=yes,width="+popupwidth+",height="+screen.height+",left="+marginleft);
}
@@ -169,7 +152,7 @@ function saveFormalGeprueft(personid, akteid, checked)
$.ajax({
type: "POST",
dataType: "json",
url: "../saveFormalGeprueft/" + personid + '?fhc_controller_id=' + fhc_controller_id,
url: CONTROLLER_URL+"/saveFormalGeprueft/" + personid + '?fhc_controller_id=' + fhc_controller_id,
data: {"akte_id": akteid, "formal_geprueft": checked},
success: function (data, textStatus, jqXHR)
{
@@ -197,9 +180,9 @@ function saveFormalGeprueft(personid, akteid, checked)
function zgvUebernehmen(personid, prestudentid, btn)
{
$.ajax({
type: "POST",
type: "GET",
dataType: "json",
url: "../getLastPrestudentWithZgvJson/" + personid + '?fhc_controller_id=' + fhc_controller_id,
url: CONTROLLER_URL+"/getLastPrestudentWithZgvJson/" + personid + '?fhc_controller_id=' + fhc_controller_id,
success: function (data, textStatus, jqXHR)
{
if (data !== null)
@@ -239,7 +222,7 @@ function saveZgv(data)
type: "POST",
dataType: "json",
data: data,
url: "../saveZgvPruefung/" + prestudentid + '?fhc_controller_id=' + fhc_controller_id,
url: CONTROLLER_URL+"/saveZgvPruefung/" + prestudentid + '?fhc_controller_id=' + fhc_controller_id,
success: function (data, textStatus, jqXHR)
{
if (data === prestudentid)
@@ -265,7 +248,7 @@ function saveNotiz(personid, data)
type: "POST",
dataType: "json",
data: data,
url: "../saveNotiz/" + personid + '?fhc_controller_id=' + fhc_controller_id,
url: CONTROLLER_URL+"/saveNotiz/" + personid + '?fhc_controller_id=' + fhc_controller_id,
success: function (data, textStatus, jqXHR)
{
refreshNotizen();
@@ -284,7 +267,7 @@ function updateNotiz(notizId, personId, data)
type: "POST",
dataType: "json",
data: data,
url: "../updateNotiz/" + notizId + "/" + personId + '?fhc_controller_id=' + fhc_controller_id,
url: CONTROLLER_URL+"/updateNotiz/" + notizId + "/" + personId + '?fhc_controller_id=' + fhc_controller_id,
success: function (data, textStatus, jqXHR)
{
if (data)
@@ -301,13 +284,91 @@ function updateNotiz(notizId, personId, data)
});
}
function getStudienjahrEndAjax()
{
$.ajax({
url: CONTROLLER_URL+"/getStudienjahrEnd?fhc_controller_id="+fhc_controller_id,
method: "GET",
success: function(data, textStatus, jqXHR)
{
//var gerdate = data.substring(8, 10) + "."+data.substring(5, 7) + "." + data.substring(0, 4);
var engdate = $.datepicker.parseDate("yy-mm-dd", data);
var gerdate = $.datepicker.formatDate("dd.mm.yy", engdate);
$("#parkdate").val(gerdate);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus);
}
});
}
function getParkedDateAjax(personid)
{
$.ajax({
url: CONTROLLER_URL+"/getParkedDate/"+personid+"?fhc_controller_id="+fhc_controller_id,
method: "GET",
success: function(data, textStatus, jqXHR)
{
refreshParking(data);
refreshLog();
getStudienjahrEndAjax();
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus);
}
});
}
function parkPersonAjax(personid, date)
{
$.ajax({
url: CONTROLLER_URL+"/park?fhc_controller_id="+fhc_controller_id,
method: "POST",
data:
{
"person_id": personid,
"parkdate": date
},
success: function(data, textStatus, jqXHR)
{
getParkedDateAjax(personid);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus);
}
});
}
function unparkPersonAjax(personid)
{
$.ajax({
url: CONTROLLER_URL+"/unpark?fhc_controller_id="+fhc_controller_id,
method: "POST",
data:
{
"person_id": personid
},
success: function(data, textStatus, jqXHR)
{
getParkedDateAjax(personid);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert(textStatus);
}
});
}
// -----------------------------------------------------------------------------------------------------------------
// methods executed after ajax (refreshers)
function refreshLog()
{
var personid = $("#hiddenpersonid").val();
$("#logs").load('../reloadLogs/' + personid,
$("#logs").load('../reloadLogs/' + personid + '?fhc_controller_id=' + fhc_controller_id,
function ()
{
//readd tablesorter
@@ -319,7 +380,7 @@ function refreshLog()
function formatLogTable()
{
addTablesorter("logtable", [[0, 1]], ["filter"], 2);
tablesortAddPager("logtable", "logpager", 23);
tablesortAddPager("logtable", "logpager", 22);
$("#logtable").addClass("table-condensed");
}
@@ -336,10 +397,54 @@ function refreshNotizen()
);
}
function refreshParking(date)
{
if (date === null)
{
$("#parking").html(
'<div class="form-group form-inline">'+
'<button class="btn btn-default" id="parklink" type="button""><i class="fa fa-clock-o"></i>&nbsp;BewerberIn parken</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
'bis&nbsp;&nbsp;'+
'<input id="parkdate" type="text" class="form-control" placeholder="Parkdatum" style="height: 25px; width: 99px">'+
'</div>');
$("#parkdate").datepicker({
"dateFormat": "dd.mm.yy",
"minDate": 0
});
$("#parklink").click(
function ()
{
var personid = $("#hiddenpersonid").val();
var date = $("#parkdate").val();
parkPersonAjax(personid, date);
}
);
}
else
{
var parkdate = $.datepicker.parseDate("yy-mm-dd", date);
var gerparkdate = $.datepicker.formatDate("dd.mm.yy", parkdate);
$("#parking").html(
'BewerberIn geparkt bis '+gerparkdate+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+
'<button class="btn btn-default" id="unparklink"><i class="fa fa-sign-out"></i>&nbsp;BewerberIn ausparken</button>&nbsp;');
$("#unparklink").click(
function ()
{
var personid = $("#hiddenpersonid").val();
unparkPersonAjax(personid, date);
}
);
}
}
function formatNotizTable()
{
addTablesorter("notiztable", [[0, 1]], ["filter"], 2);
tablesortAddPager("notiztable", "notizpager", 10);
tablesortAddPager("notiztable", "notizpager", 11);
$("#notiztable").addClass("table-condensed");
}
@@ -25,17 +25,21 @@ function appendTableActionsHtml()
'<a href="javascript:void(0)" class="unselectAll">' +
'<i class="fa fa-times"></i>&nbsp;Keinen</a>&nbsp;&nbsp;&nbsp;&nbsp;';
var messageHtml = 'Mit Ausgew&auml;hlten:&nbsp;&nbsp;' +
var actionHtml = 'Mit Ausgew&auml;hlten:&nbsp;&nbsp;' +
'<a href="javascript:void(0)" class="sendMsgsLink">' +
'<i class="fa fa-envelope"></i>&nbsp;Nachricht senden</a>';
var legendHtml = '<i class="fa fa-circle text-danger"></i> Gesperrt&nbsp;&nbsp;&nbsp;&nbsp;' +
'<i class="fa fa-circle text-info"></i> Geparkt';
var personcount = 0;
$.ajax({
url: window.location.pathname.replace('infocenter/InfoCenter', 'Filters/rowNumber'),
method: "GET",
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
fhc_controller_id: getUrlParameter("fhc_controller_id"),
filter_page: FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method
},
dataType: "json"
})
@@ -51,9 +55,12 @@ function appendTableActionsHtml()
var countHtml = personcount + " " + persontext;
$("#datasetActionsTop, #datasetActionsBottom").append(
"<div class='pull-left'>" + selectAllHtml + "&nbsp;&nbsp;" + messageHtml + "</div>"+
"<div class='pull-right'>" + countHtml + "</div>"+
"<div class='clearfix'></div>"
"<div class='row'>"+
"<div class='col-xs-4'>" + selectAllHtml + "&nbsp;&nbsp;" + actionHtml + "</div>"+
"<div class='col-xs-4 text-center'>" + legendHtml + "</div>"+
"<div class='col-xs-4 text-right'>" + countHtml + "</div>"+
"<div class='clearfix'></div>"+
"</div>"
);
$("#datasetActionsBottom").append("<br><br>");
}
@@ -138,7 +145,7 @@ function refreshSideMenu()
})
.done(function(data, textStatus, jqXHR) {
renderSideMenu();
FHC_NavigationWidget.renderSideMenu();
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
+1 -1
View File
@@ -46,7 +46,7 @@ function tablesortAddPager(tableid, pagerid, size)
'</form>' +
'</div>';
var rowcount = $("#" + tableid + " tr").length;
var rowcount = $("#" + tableid + " tbody tr").length;
//not show pager if only one table page
if (rowcount > size)
+3 -2
View File
@@ -73,7 +73,8 @@ else
function draw_rdf($row)
{
global $rdf_url;
if($row->kontakttyp == 'hidden')
return;
echo '
<RDF:li>
<RDF:Description id="'.$row->kontakt_id.'" about="'.$rdf_url.'/'.$row->kontakt_id.'" >
@@ -93,4 +94,4 @@ function draw_rdf($row)
}
?>
</RDF:Seq>
</RDF:RDF>
</RDF:RDF>
+3 -1
View File
@@ -49,6 +49,8 @@ if($kontakt->getKontakttyp())
{
foreach ($kontakt->result as $row)
{
if($row->kontakttyp == 'hidden')
continue;
echo '
<RDF:li>
<RDF:Description id="'.$row->kontakttyp.'" about="'.$rdf_url.'/'.$row->kontakttyp.'" >
@@ -65,4 +67,4 @@ else
}
?>
</RDF:Seq>
</RDF:RDF>
</RDF:RDF>
+12
View File
@@ -62,6 +62,18 @@ echo '<div>';
require_once($dbupdStr);
echo '</div>';
// ******** phrasenupdate ************/
echo '<H2>Phrasen-Updates!</H2>';
echo '<div>';
echo 'phrasesupdate.php wird aufgerufen...';
echo '</div>';
echo '<div>';
require_once('phrasesupdate.php');
echo '</div>';
// ******** Berechtigungen Prüfen ************/
echo '<h2>Berechtigungen pruefen</h2>';
$neue=false;
+14
View File
@@ -2247,6 +2247,20 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE
}
}
// Berechtigungen fuer vilesci User erteilen auf system.tbl_log
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_log' AND table_schema='system' AND grantee='vilesci' AND privilege_type='DELETE'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "GRANT DELETE ON system.tbl_log TO vilesci;";
if(!$db->db_query($qry))
echo '<strong>Permission Log: '.$db->db_last_error().'</strong><br>';
else
echo 'Loeschrechte auf system.tbl_log für Vilesci User hinzugefügt';
}
}
// Delete-Berechtigungen fuer web User erteilen auf system.tbl_log
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_log' AND table_schema='system' AND grantee='web' AND privilege_type='DELETE'"))
{
File diff suppressed because it is too large Load Diff