diff --git a/application/controllers/system/Filters.php b/application/controllers/system/Filters.php index 738799747..fcf37f158 100644 --- a/application/controllers/system/Filters.php +++ b/application/controllers/system/Filters.php @@ -37,7 +37,7 @@ class Filters extends VileSci_Controller { $json = new stdClass(); - $session = $this->_readSession($this->input->get('fhc_controller_id')); + $session = $this->_readSession($this->_getFilterUniqueId()); $json->selectedFields = $session['selectedFields']; $json->columnsAliases = $session['columnsAliases']; @@ -55,7 +55,7 @@ class Filters extends VileSci_Controller { $json = new stdClass(); - $session = $this->_readSession($this->input->get('fhc_controller_id')); + $session = $this->_readSession($this->_getFilterUniqueId()); $json->allSelectedFields = $session['allSelectedFields']; $json->allColumnsAliases = $session['allColumnsAliases']; @@ -72,11 +72,12 @@ class Filters extends VileSci_Controller public function sortSelectedFields() { $selectedFieldsLst = $this->input->post('selectedFieldsLst'); - $fhc_controller_id = $this->input->post('fhc_controller_id'); + + $filterUniqueId = $this->_getFilterUniqueId(); $json = new stdClass(); - $session = $this->_readSession($fhc_controller_id); + $session = $this->_readSession($filterUniqueId); $allSelectedFields = $session['allSelectedFields']; $allColumnsAliases = $session['allColumnsAliases']; @@ -105,8 +106,8 @@ class Filters extends VileSci_Controller } } - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFields'] = $json->selectedFields; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['columnsAliases'] = $json->columnsAliases; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFields'] = $json->selectedFields; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['columnsAliases'] = $json->columnsAliases; $this->output->set_content_type('application/json')->set_output(json_encode($json)); } @@ -118,7 +119,7 @@ class Filters extends VileSci_Controller { $json = new stdClass(); - $session = $this->_readSession($this->input->get('fhc_controller_id')); + $session = $this->_readSession($this->_getFilterUniqueId()); $json->allSelectedFields = $session['allSelectedFields']; $json->allColumnsAliases = $session['allColumnsAliases']; @@ -175,19 +176,19 @@ class Filters extends VileSci_Controller */ public function saveFilter() { - $this->_saveFilter($this->input->post("customFilterDescription"), $this->input->post("fhc_controller_id")); + $this->_saveFilter($this->input->post("customFilterDescription"), $this->_getFilterUniqueId()); - $this->output->set_content_type('application/json')->set_output(json_encode('Tutto bene!!!')); + $this->output->set_content_type('application/json')->set_output(json_encode('Filter saved')); } /** * */ - private function _saveFilter($customFilterDescription, $fhc_controller_id) + private function _saveFilter($customFilterDescription, $filterUniqueId) { $objToBeSaved = new stdClass(); - $filterSessionArray = $this->_readSession($fhc_controller_id); + $filterSessionArray = $this->_readSession($filterUniqueId); $objToBeSaved->name = $customFilterDescription; @@ -240,8 +241,8 @@ class Filters extends VileSci_Controller $personId = $resultBenutzer->retval[0]->person_id; $result = $this->FiltersModel->loadWhere(array( - 'app' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['app'], - 'dataset_name' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['datasetName'], + 'app' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['app'], + 'dataset_name' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['datasetName'], 'description' => $descPGArray, 'person_id' => $personId )); @@ -250,8 +251,8 @@ class Filters extends VileSci_Controller { $this->FiltersModel->update( array( - 'app' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['app'], - 'dataset_name' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['datasetName'], + 'app' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['app'], + 'dataset_name' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['datasetName'], 'description' => $descPGArray, 'person_id' => $personId ), @@ -263,8 +264,8 @@ class Filters extends VileSci_Controller else { $this->FiltersModel->insert(array( - 'app' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['app'], - 'dataset_name' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['datasetName'], + 'app' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['app'], + 'dataset_name' => $_SESSION[self::SESSION_NAME][$filterUniqueId]['datasetName'], 'filter_kurzbz' => uniqid($personId, true), 'person_id' => $personId, 'description' => $descPGArray, @@ -282,7 +283,6 @@ class Filters extends VileSci_Controller public function deleteCustomFilter() { $filter_id = $this->input->post('filter_id'); - $fhc_controller_id = $this->input->post('fhc_controller_id'); if (is_numeric($filter_id)) { @@ -298,9 +298,9 @@ class Filters extends VileSci_Controller public function removeSelectedFields() { $fieldName = $this->input->post('fieldName'); - $fhc_controller_id = $this->input->post('fhc_controller_id'); + $filterUniqueId = $this->_getFilterUniqueId(); - $session = $this->_readSession($fhc_controller_id); + $session = $this->_readSession($filterUniqueId); $allSelectedFields = $session['allSelectedFields']; $allColumnsAliases = $session['allColumnsAliases']; @@ -318,8 +318,8 @@ class Filters extends VileSci_Controller } } - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFields'] = $selectedFields; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['columnsAliases'] = $columnsAliases; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFields'] = $selectedFields; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['columnsAliases'] = $columnsAliases; $json = new stdClass(); @@ -337,9 +337,9 @@ class Filters extends VileSci_Controller public function removeSelectedFilters() { $fieldName = $this->input->post('fieldName'); - $fhc_controller_id = $this->input->post('fhc_controller_id'); + $filterUniqueId = $this->_getFilterUniqueId(); - $session = $this->_readSession($fhc_controller_id); + $session = $this->_readSession($filterUniqueId); $selectedFilters = $session['selectedFilters']; $selectedFiltersActiveFilters = $session['activeFilters']; @@ -354,10 +354,10 @@ class Filters extends VileSci_Controller array_splice($selectedFiltersActiveFiltersOption, $pos, 1); } - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFilters'] = $selectedFilters; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFilters'] = $selectedFiltersActiveFilters; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFilters'] = $selectedFilters; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFilters'] = $selectedFiltersActiveFilters; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption; $json = new stdClass(); @@ -375,9 +375,9 @@ class Filters extends VileSci_Controller public function addSelectedFields() { $fieldName = $this->input->post('fieldName'); - $fhc_controller_id = $this->input->post('fhc_controller_id'); + $filterUniqueId = $this->_getFilterUniqueId(); - $session = $this->_readSession($fhc_controller_id); + $session = $this->_readSession($filterUniqueId); $allSelectedFields = $session['allSelectedFields']; $allColumnsAliases = $session['allColumnsAliases']; @@ -396,8 +396,8 @@ class Filters extends VileSci_Controller } } - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFields'] = $selectedFields; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['columnsAliases'] = $columnsAliases; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFields'] = $selectedFields; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['columnsAliases'] = $columnsAliases; $json = new stdClass(); @@ -415,9 +415,9 @@ class Filters extends VileSci_Controller public function addSelectedFilters() { $fieldName = $this->input->post('fieldName'); - $fhc_controller_id = $this->input->post('fhc_controller_id'); + $filterUniqueId = $this->_getFilterUniqueId(); - $session = $this->_readSession($fhc_controller_id); + $session = $this->_readSession($filterUniqueId); $selectedFilters = $session['selectedFilters']; $selectedFiltersActiveFilters = $session['activeFilters']; @@ -432,10 +432,10 @@ class Filters extends VileSci_Controller $selectedFiltersActiveFiltersOption[$fieldName] = ""; } - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFilters'] = $selectedFilters; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFilters'] = $selectedFiltersActiveFilters; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['selectedFilters'] = $selectedFilters; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFilters'] = $selectedFiltersActiveFilters; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption; $json = new stdClass(); @@ -456,17 +456,17 @@ class Filters extends VileSci_Controller $filterOperations = $this->input->post('filterOperations'); $filterOperationValues = $this->input->post('filterOperationValues'); $filterOptions = $this->input->post('filterOptions'); - $fhc_controller_id = $this->input->post('fhc_controller_id'); + $filterUniqueId = $this->_getFilterUniqueId(); - $session = $this->_readSession($fhc_controller_id); + $session = $this->_readSession($filterUniqueId); $activeFilters = array_combine($fieldNames, $filterOperationValues); $activeFiltersOperation = array_combine($fieldNames, $filterOperations); $activeFiltersOption = array_combine($fieldNames, $filterOptions); - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFilters'] = $activeFilters; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOperation'] = $activeFiltersOperation; - $_SESSION[self::SESSION_NAME][$fhc_controller_id]['activeFiltersOption'] = $activeFiltersOption; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFilters'] = $activeFilters; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOperation'] = $activeFiltersOperation; + $_SESSION[self::SESSION_NAME][$filterUniqueId]['activeFiltersOption'] = $activeFiltersOption; $json = new stdClass(); @@ -485,7 +485,7 @@ class Filters extends VileSci_Controller { $json = new stdClass(); - $session = $this->_readSession($this->input->get('fhc_controller_id')); + $session = $this->_readSession($this->_getFilterUniqueId()); $dataset = $session['dataset']; @@ -500,10 +500,10 @@ class Filters extends VileSci_Controller /** * */ - private function _readSession($fhc_controller_id) + private function _readSession($filterUniqueId) { - if (isset($_SESSION[self::SESSION_NAME]) && isset($_SESSION[self::SESSION_NAME][$fhc_controller_id])) - return $_SESSION[self::SESSION_NAME][$fhc_controller_id]; + if (isset($_SESSION[self::SESSION_NAME]) && isset($_SESSION[self::SESSION_NAME][$filterUniqueId])) + return $_SESSION[self::SESSION_NAME][$filterUniqueId]; return array(); } @@ -511,7 +511,7 @@ class Filters extends VileSci_Controller /** * */ - private function _writeSession($data, $fhc_controller_id) + private function _writeSession($data, $filterUniqueId) { if (!isset($_SESSION[self::SESSION_NAME]) || (isset($_SESSION[self::SESSION_NAME]) && !is_array($_SESSION[self::SESSION_NAME]))) @@ -519,6 +519,25 @@ class Filters extends VileSci_Controller $_SESSION[self::SESSION_NAME] = array(); } - $_SESSION[self::SESSION_NAME][$fhc_controller_id] = $data; + $_SESSION[self::SESSION_NAME][$filterUniqueId] = $data; + } + + /** + * + */ + private function _getFilterUniqueId() + { + $_getFilterUniqueId = ''; + + if ($_SERVER['REQUEST_METHOD'] === 'POST') + { + $_getFilterUniqueId = $this->input->post('filter_page').'/'.$this->input->post('fhc_controller_id'); + } + elseif ($_SERVER['REQUEST_METHOD'] === 'GET') + { + $_getFilterUniqueId = $this->input->get('filter_page').'/'.$this->input->get('fhc_controller_id'); + } + + return $_getFilterUniqueId; } } diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 0fd192120..f4d22311e 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -78,14 +78,17 @@ class InfoCenter extends FHC_Controller $this->load->library('PersonLogLib'); $this->load->library('WidgetLib'); - $this->loadPhrases(array( - 'global', - 'person', - 'lehre', - 'ui', - 'infocenter', - 'filter')); - + $this->loadPhrases( + array( + 'global', + 'person', + 'lehre', + 'ui', + 'infocenter', + 'filter' + ) + ); + $this->_setAuthUID(); // sets property uid $this->load->library('PermissionLib'); @@ -139,13 +142,14 @@ class InfoCenter extends FHC_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); } /** @@ -159,7 +163,7 @@ class InfoCenter extends FHC_Controller if(isError($result)) show_error($result->retval); - redirect(self::URL_PREFIX); + redirect(self::URL_PREFIX.'?fhc_controller_id='.$this->fhc_controller_id); } /** @@ -715,10 +719,10 @@ class InfoCenter extends FHC_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 ); } @@ -728,10 +732,10 @@ class InfoCenter extends FHC_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', @@ -922,7 +926,7 @@ class InfoCenter extends FHC_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); } /** diff --git a/application/views/system/infocenter/infocenter.php b/application/views/system/infocenter/infocenter.php index 38268aa4d..9bc9ea20d 100644 --- a/application/views/system/infocenter/infocenter.php +++ b/application/views/system/infocenter/infocenter.php @@ -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') ) diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php index 68b7d28a9..34b604d40 100755 --- a/application/views/system/infocenter/infocenterData.php +++ b/application/views/system/infocenter/infocenterData.php @@ -2,6 +2,7 @@ $APP = 'infocenter'; $NOTBEFORE = '2018-03-01 18:00:00'; + $filterWidgetArray = array( 'query' => ' SELECT @@ -160,7 +161,7 @@ FROM system.tbl_log WHERE logdata->>\'name\' = \'Parked\' AND zeitpunkt > now() - ) pd USING(person_id) + ) pd USING(person_id) WHERE EXISTS( SELECT 1 @@ -193,33 +194,33 @@ ) ORDER BY "LastAction" ASC ', - 'fhc_controller_id' => $fhc_controller_id, 'checkboxes' => 'PersonId', 'additionalColumns' => array('Details'), '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')), - "ParkedDate" + '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')), + 'ParkedDate' ), 'formatRaw' => function($datasetRaw) { $datasetRaw->{'Details'} = sprintf( - 'Details', - site_url('system/infocenter/InfoCenter/showDetails/'), - $datasetRaw->{'PersonId'} + 'Details', + site_url('system/infocenter/InfoCenter/showDetails'), + $datasetRaw->{'PersonId'}, + $this->input->get('fhc_controller_id') ); if ($datasetRaw->{'SendDate'} == null) @@ -228,7 +229,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) @@ -237,7 +238,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'} == '') @@ -285,14 +286,14 @@ if ($datasetRaw->ParkDate != null) { - //parking has prio over locking + // Parking has priority over locking $mark = "text-info"; } return $mark; } ); - + $filterId = isset($_GET[InfoCenter::FILTER_ID]) ? $_GET[InfoCenter::FILTER_ID] : null; if (isset($filterId) && is_numeric($filterId)) diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php index e8221d576..ae628f927 100755 --- a/application/views/system/infocenter/infocenterDetails.php +++ b/application/views/system/infocenter/infocenterDetails.php @@ -11,6 +11,8 @@ 'tinymce' => true, 'sbadmintemplate' => true, 'addons' => true, + 'ajaxlib' => true, + 'navigationwidget' => true, 'customCSSs' => array( 'public/css/sbadmin2/admintemplate.css', @@ -46,7 +48,7 @@ echo $lockedby; ?>    -  p->t('ui', 'freigeben')) ?> diff --git a/application/views/system/infocenter/infocenterFreigegeben.php b/application/views/system/infocenter/infocenterFreigegeben.php index 03da9b718..03733efe1 100644 --- a/application/views/system/infocenter/infocenterFreigegeben.php +++ b/application/views/system/infocenter/infocenterFreigegeben.php @@ -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( - 'Details', - base_url('index.ci.php/system/infocenter/InfoCenter/showDetails/'), - $datasetRaw->{'PersonId'} + 'Details', + site_url('system/infocenter/InfoCenter/showDetails'), + $datasetRaw->{'PersonId'}, + $this->input->get('fhc_controller_id') ); if ($datasetRaw->{'SendDate'} == null) diff --git a/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php index 853eb8de7..8b4dc058a 100755 --- a/application/views/templates/FHC-Header.php +++ b/application/views/templates/FHC-Header.php @@ -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); diff --git a/application/views/widgets/filter/filter.php b/application/views/widgets/filter/filter.php index d3dbb1918..ac29efe30 100644 --- a/application/views/widgets/filter/filter.php +++ b/application/views/widgets/filter/filter.php @@ -1,164 +1,3 @@ - -
diff --git a/application/views/widgets/filter/saveFilter.php b/application/views/widgets/filter/saveFilter.php index ce2d454ca..c1f09a413 100644 --- a/application/views/widgets/filter/saveFilter.php +++ b/application/views/widgets/filter/saveFilter.php @@ -1,36 +1,3 @@ - -
diff --git a/application/views/widgets/filter/selectFields.php b/application/views/widgets/filter/selectFields.php index a011e5555..73461840a 100644 --- a/application/views/widgets/filter/selectFields.php +++ b/application/views/widgets/filter/selectFields.php @@ -1,247 +1,11 @@ - - -
- -
- - Add field: - - - - - -
+ + + +
diff --git a/application/views/widgets/filter/selectFilters.php b/application/views/widgets/filter/selectFilters.php index cf5443069..ffb93dfe5 100644 --- a/application/views/widgets/filter/selectFilters.php +++ b/application/views/widgets/filter/selectFilters.php @@ -1,282 +1,3 @@ - -
diff --git a/application/views/widgets/filter/tableDataset.php b/application/views/widgets/filter/tableDataset.php index 1a19876f4..ca917503a 100644 --- a/application/views/widgets/filter/tableDataset.php +++ b/application/views/widgets/filter/tableDataset.php @@ -1,153 +1,3 @@ - -
diff --git a/application/views/widgets/navigation.php b/application/views/widgets/navigation.php index 8a57dab57..efc953f5f 100644 --- a/application/views/widgets/navigation.php +++ b/application/views/widgets/navigation.php @@ -1,9 +1,9 @@ - diff --git a/application/views/widgets/navigationHeader.php b/application/views/widgets/navigationHeader.php index 0d050df2a..8e2a936a4 100644 --- a/application/views/widgets/navigationHeader.php +++ b/application/views/widgets/navigationHeader.php @@ -1,39 +1,11 @@ - - - + diff --git a/application/views/widgets/navigationMenu.php b/application/views/widgets/navigationMenu.php index 9ef727083..42dd901fb 100644 --- a/application/views/widgets/navigationMenu.php +++ b/application/views/widgets/navigationMenu.php @@ -1,169 +1,3 @@ - - - - "); + } + + 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(""); + } + + for (var i = 0; i < arrayFieldsToDisplay.length; i++) + { + var th = arrayFieldsToDisplay[i]; + + $("#filterTableDataset > thead > tr").append(""); + } + + 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(""); + } + } + /* ------------------------------------------------------------------------------------------------ */ + + 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 = ''; + + if (data.checkboxes != null && data.checkboxes != "") + { + strHtml += ''; + } + + $.each(arrayFieldsToDisplay, function(i, fieldToDisplay) { + + if (record.hasOwnProperty(data.selectedFields[i])) + { + strHtml += ''; + } + }); + + if (data.additionalColumns != null && $.isArray(data.additionalColumns)) + { + $.each(data.additionalColumns, function(i, additionalColumn) { + + if (record.hasOwnProperty(additionalColumn)) + { + strHtml += ''; + } + + }); + } + + strHtml += ''; + + $("#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() { + + $("[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() != '') + { + $.ajax({ + url: FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/" + 'system/Filters/saveFilter', + method: "POST", + data: { + customFilterDescription: $("#customFilterDescription").val(), + fhc_controller_id: fhc_controller_id, + filter_page: FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method + } + }) + .done(function(data, textStatus, jqXHR) { + + refreshSideMenu() + + }).fail(function(jqXHR, textStatus, errorThrown) { + // alert(textStatus); + }); + } + else + { + alert("Please fill te description of this filter"); + } + }); + + renderSelectedFields(); + + renderSelectedFilters(); + + renderTableDataset(); + +}); diff --git a/public/js/NavigationWidget.js b/public/js/NavigationWidget.js new file mode 100644 index 000000000..4c1bc8aa1 --- /dev/null +++ b/public/js/NavigationWidget.js @@ -0,0 +1,171 @@ +/** + * Used by the NavigationWidget + */ + +var fhc_controller_id = FHC_Ajax_Client.getUrlParameter('fhc_controller_id'); + +/** + * + */ +function printNavItem(item, depth = 1) +{ + strMenu = ""; + var expanded = typeof item['expand'] != 'undefined' && item['expand'] === true ? ' active' : ''; + + strMenu += '
  • '; + + if (typeof item['subscriptLinkClass'] != 'undefined' && typeof item['subscriptDescription'] != 'undefined') + { + strMenu += ''; + } + + // Handle 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 += ''; + + if (item['icon'] != 'undefined') + { + strMenu += ' '; + } + + strMenu += item['description']; + + if (typeof item['children'] != 'undefined' && Object.keys(item['children']).length > 0) + { + strMenu += ''; + } + + strMenu += ''; + + if (typeof item['subscriptLinkClass'] != 'undefined' && typeof item['subscriptDescription'] != 'undefined') + { + strMenu += ' (' + item['subscriptDescription'] + ')'; + strMenu += ''; + } + + 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 += ''; + } + + strMenu += '
  • '; + + return strMenu; +} + +function renderSideMenu() +{ + $.ajax({ + url: FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/" + 'system/Navigation/menu', + method: "GET", + data: { + navigation_widget_called: FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_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('
    '); + + $("#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(); + }); +} + +function renderHeaderMenu() +{ + $.ajax({ + url: FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/" + 'system/Navigation/header', + method: "GET", + data: { + navigation_widget_called: FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method + } + }) + .done(function(data, textStatus, jqXHR) { + + if (data != null) + { + jQuery.each(data, function(i, e) { + $(".menu-header-items").append('' + i + ''); + }); + } + + }).fail(function(jqXHR, textStatus, errorThrown) { + // alert(textStatus); + }); +} + +$(document).ready(function() { + + renderHeaderMenu(); + + renderSideMenu(); + +}); diff --git a/public/js/infocenter/infocenterDetails.js b/public/js/infocenter/infocenterDetails.js index 90509e288..c4233f67e 100644 --- a/public/js/infocenter/infocenterDetails.js +++ b/public/js/infocenter/infocenterDetails.js @@ -1,25 +1,5 @@ -/** - * - */ -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_Ajax_Client.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; /** @@ -161,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); } @@ -308,11 +287,10 @@ function updateNotiz(notizId, personId, data) function getStudienjahrEndAjax() { $.ajax({ - url: CONTROLLER_URL+"/getStudienjahrEnd?fhc_controller_id="+getUrlParameter("fhc_controller_id"), + url: CONTROLLER_URL+"/getStudienjahrEnd?fhc_controller_id="+fhc_controller_id, method: "GET", success: function(data, textStatus, jqXHR) { - console.log(data); //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); @@ -328,11 +306,10 @@ function getStudienjahrEndAjax() function getParkedDateAjax(personid) { $.ajax({ - url: CONTROLLER_URL+"/getParkedDate/"+personid+"?fhc_controller_id="+getUrlParameter("fhc_controller_id"), + url: CONTROLLER_URL+"/getParkedDate/"+personid+"?fhc_controller_id="+fhc_controller_id, method: "GET", success: function(data, textStatus, jqXHR) { - console.log(data); refreshParking(data); refreshLog(); getStudienjahrEndAjax(); @@ -347,7 +324,7 @@ function getParkedDateAjax(personid) function parkPersonAjax(personid, date) { $.ajax({ - url: CONTROLLER_URL+"/park?fhc_controller_id="+getUrlParameter("fhc_controller_id"), + url: CONTROLLER_URL+"/park?fhc_controller_id="+fhc_controller_id, method: "POST", data: { @@ -368,7 +345,7 @@ function parkPersonAjax(personid, date) function unparkPersonAjax(personid) { $.ajax({ - url: CONTROLLER_URL+"/unpark?fhc_controller_id="+getUrlParameter("fhc_controller_id"), + url: CONTROLLER_URL+"/unpark?fhc_controller_id="+fhc_controller_id, method: "POST", data: { @@ -391,7 +368,7 @@ function unparkPersonAjax(personid) function refreshLog() { var personid = $("#hiddenpersonid").val(); - $("#logs").load('../reloadLogs/' + personid, + $("#logs").load('../reloadLogs/' + personid + '?fhc_controller_id=' + fhc_controller_id, function () { //readd tablesorter diff --git a/public/js/infocenter/infocenterPersonDataset.js b/public/js/infocenter/infocenterPersonDataset.js index 02e693314..5e96edd66 100644 --- a/public/js/infocenter/infocenterPersonDataset.js +++ b/public/js/infocenter/infocenterPersonDataset.js @@ -38,7 +38,8 @@ function appendTableActionsHtml() 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" })
    SelectSelect" + th + "" + th + "
    '; + strHtml += ''; + strHtml += '' + record[data.selectedFields[i]] + '' + record[additionalColumn] + '