diff --git a/application/controllers/system/Filters.php b/application/controllers/system/Filters.php index cda080a46..738799747 100644 --- a/application/controllers/system/Filters.php +++ b/application/controllers/system/Filters.php @@ -7,7 +7,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); */ class Filters extends VileSci_Controller { - const SESSION_NAME = 'FILTER'; + const SESSION_NAME = 'FHC_FILTER_WIDGET'; const SELECTED_FIELDS = 'selectedFields'; const SELECTED_FILTERS = 'selectedFilters'; @@ -37,11 +37,13 @@ class Filters extends VileSci_Controller { $json = new stdClass(); - $json->selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields']; - $json->columnsAliases = $_SESSION[self::SESSION_NAME]['columnsAliases']; - $json->additionalColumns = $_SESSION[self::SESSION_NAME]['additionalColumns']; - $json->checkboxes = $_SESSION[self::SESSION_NAME]['checkboxes']; - $json->dataset = $_SESSION[self::SESSION_NAME]['dataset']; + $session = $this->_readSession($this->input->get('fhc_controller_id')); + + $json->selectedFields = $session['selectedFields']; + $json->columnsAliases = $session['columnsAliases']; + $json->additionalColumns = $session['additionalColumns']; + $json->checkboxes = $session['checkboxes']; + $json->dataset = $session['dataset']; $this->output->set_content_type('application/json')->set_output(json_encode($json)); } @@ -53,11 +55,13 @@ class Filters extends VileSci_Controller { $json = new stdClass(); - $json->allSelectedFields = $_SESSION[self::SESSION_NAME]['allSelectedFields']; - $json->allColumnsAliases = $_SESSION[self::SESSION_NAME]['allColumnsAliases']; + $session = $this->_readSession($this->input->get('fhc_controller_id')); - $json->selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields']; - $json->columnsAliases = $_SESSION[self::SESSION_NAME]['columnsAliases']; + $json->allSelectedFields = $session['allSelectedFields']; + $json->allColumnsAliases = $session['allColumnsAliases']; + + $json->selectedFields = $session['selectedFields']; + $json->columnsAliases = $session['columnsAliases']; $this->output->set_content_type('application/json')->set_output(json_encode($json)); } @@ -68,14 +72,17 @@ class Filters extends VileSci_Controller public function sortSelectedFields() { $selectedFieldsLst = $this->input->post('selectedFieldsLst'); + $fhc_controller_id = $this->input->post('fhc_controller_id'); $json = new stdClass(); - $allSelectedFields = $_SESSION[self::SESSION_NAME]['allSelectedFields']; - $allColumnsAliases = $_SESSION[self::SESSION_NAME]['allColumnsAliases']; + $session = $this->_readSession($fhc_controller_id); - $json->selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields']; - $json->columnsAliases = $_SESSION[self::SESSION_NAME]['columnsAliases']; + $allSelectedFields = $session['allSelectedFields']; + $allColumnsAliases = $session['allColumnsAliases']; + + $json->selectedFields = $session['selectedFields']; + $json->columnsAliases = $session['columnsAliases']; if (isset($selectedFieldsLst) && is_array($selectedFieldsLst)) { @@ -98,8 +105,8 @@ class Filters extends VileSci_Controller } } - $_SESSION[self::SESSION_NAME]['selectedFields'] = $json->selectedFields; - $_SESSION[self::SESSION_NAME]['columnsAliases'] = $json->columnsAliases; + $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFields'] = $json->selectedFields; + $_SESSION[self::SESSION_NAME][$fhc_controller_id]['columnsAliases'] = $json->columnsAliases; $this->output->set_content_type('application/json')->set_output(json_encode($json)); } @@ -111,10 +118,12 @@ class Filters extends VileSci_Controller { $json = new stdClass(); - $json->allSelectedFields = $_SESSION[self::SESSION_NAME]['allSelectedFields']; - $json->allColumnsAliases = $_SESSION[self::SESSION_NAME]['allColumnsAliases']; + $session = $this->_readSession($this->input->get('fhc_controller_id')); - $json->selectedFilters = $_SESSION[self::SESSION_NAME]['selectedFilters']; + $json->allSelectedFields = $session['allSelectedFields']; + $json->allColumnsAliases = $session['allColumnsAliases']; + + $json->selectedFilters = $session['selectedFilters']; $json->selectedFiltersAliases = array(); $json->selectedFiltersMetaData = array(); @@ -122,10 +131,10 @@ class Filters extends VileSci_Controller $json->selectedFiltersActiveFiltersOperation = array(); $json->selectedFiltersActiveFiltersOption = array(); - $metaData = $_SESSION[self::SESSION_NAME]['metaData']; - $activeFilters = $_SESSION[self::SESSION_NAME]['activeFilters']; - $activeFiltersOperation = $_SESSION[self::SESSION_NAME]['activeFiltersOperation']; - $activeFiltersOption = $_SESSION[self::SESSION_NAME]['activeFiltersOption']; + $metaData = $session['metaData']; + $activeFilters = $session['activeFilters']; + $activeFiltersOperation = $session['activeFiltersOperation']; + $activeFiltersOption = $session['activeFiltersOption']; for ($i = 0; $i < count($json->selectedFilters); $i++) { @@ -166,7 +175,7 @@ class Filters extends VileSci_Controller */ public function saveFilter() { - $this->_saveFilter($this->input->post("customFilterDescription")); + $this->_saveFilter($this->input->post("customFilterDescription"), $this->input->post("fhc_controller_id")); $this->output->set_content_type('application/json')->set_output(json_encode('Tutto bene!!!')); } @@ -174,11 +183,11 @@ class Filters extends VileSci_Controller /** * */ - private function _saveFilter($customFilterDescription) + private function _saveFilter($customFilterDescription, $fhc_controller_id) { $objToBeSaved = new stdClass(); - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession($fhc_controller_id); $objToBeSaved->name = $customFilterDescription; @@ -231,8 +240,8 @@ class Filters extends VileSci_Controller $personId = $resultBenutzer->retval[0]->person_id; $result = $this->FiltersModel->loadWhere(array( - 'app' => $_SESSION[self::SESSION_NAME]['app'], - 'dataset_name' => $_SESSION[self::SESSION_NAME]['datasetName'], + 'app' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['app'], + 'dataset_name' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['datasetName'], 'description' => $descPGArray, 'person_id' => $personId )); @@ -241,8 +250,8 @@ class Filters extends VileSci_Controller { $this->FiltersModel->update( array( - 'app' => $_SESSION[self::SESSION_NAME]['app'], - 'dataset_name' => $_SESSION[self::SESSION_NAME]['datasetName'], + 'app' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['app'], + 'dataset_name' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['datasetName'], 'description' => $descPGArray, 'person_id' => $personId ), @@ -254,8 +263,8 @@ class Filters extends VileSci_Controller else { $this->FiltersModel->insert(array( - 'app' => $_SESSION[self::SESSION_NAME]['app'], - 'dataset_name' => $_SESSION[self::SESSION_NAME]['datasetName'], + 'app' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['app'], + 'dataset_name' => $_SESSION[self::SESSION_NAME][$fhc_controller_id]['datasetName'], 'filter_kurzbz' => uniqid($personId, true), 'person_id' => $personId, 'description' => $descPGArray, @@ -273,12 +282,13 @@ 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)) { $this->FiltersModel->deleteCustomFilter($filter_id); - $this->output->set_content_type('application/json')->set_output(json_encode('Tutto bene!!!')); + $this->output->set_content_type('application/json')->set_output(json_encode('Removed')); } } @@ -288,12 +298,15 @@ class Filters extends VileSci_Controller public function removeSelectedFields() { $fieldName = $this->input->post('fieldName'); + $fhc_controller_id = $this->input->post('fhc_controller_id'); - $allSelectedFields = $_SESSION[self::SESSION_NAME]['allSelectedFields']; - $allColumnsAliases = $_SESSION[self::SESSION_NAME]['allColumnsAliases']; + $session = $this->_readSession($fhc_controller_id); - $selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields']; - $columnsAliases = $_SESSION[self::SESSION_NAME]['columnsAliases']; + $allSelectedFields = $session['allSelectedFields']; + $allColumnsAliases = $session['allColumnsAliases']; + + $selectedFields = $session['selectedFields']; + $columnsAliases = $session['columnsAliases']; if (($pos = array_search($fieldName, $selectedFields)) !== false) { @@ -305,8 +318,8 @@ class Filters extends VileSci_Controller } } - $_SESSION[self::SESSION_NAME]['selectedFields'] = $selectedFields; - $_SESSION[self::SESSION_NAME]['columnsAliases'] = $columnsAliases; + $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFields'] = $selectedFields; + $_SESSION[self::SESSION_NAME][$fhc_controller_id]['columnsAliases'] = $columnsAliases; $json = new stdClass(); @@ -324,11 +337,14 @@ class Filters extends VileSci_Controller public function removeSelectedFilters() { $fieldName = $this->input->post('fieldName'); + $fhc_controller_id = $this->input->post('fhc_controller_id'); - $selectedFilters = $_SESSION[self::SESSION_NAME]['selectedFilters']; - $selectedFiltersActiveFilters = $_SESSION[self::SESSION_NAME]['activeFilters']; - $selectedFiltersActiveFiltersOperation = $_SESSION[self::SESSION_NAME]['activeFiltersOperation']; - $selectedFiltersActiveFiltersOption = $_SESSION[self::SESSION_NAME]['activeFiltersOption']; + $session = $this->_readSession($fhc_controller_id); + + $selectedFilters = $session['selectedFilters']; + $selectedFiltersActiveFilters = $session['activeFilters']; + $selectedFiltersActiveFiltersOperation = $session['activeFiltersOperation']; + $selectedFiltersActiveFiltersOption = $session['activeFiltersOption']; if (($pos = array_search($fieldName, $selectedFilters)) !== false) { @@ -338,10 +354,10 @@ class Filters extends VileSci_Controller array_splice($selectedFiltersActiveFiltersOption, $pos, 1); } - $_SESSION[self::SESSION_NAME]['selectedFilters'] = $selectedFilters; - $_SESSION[self::SESSION_NAME]['activeFilters'] = $selectedFiltersActiveFilters; - $_SESSION[self::SESSION_NAME]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation; - $_SESSION[self::SESSION_NAME]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption; + $_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; $json = new stdClass(); @@ -359,12 +375,15 @@ class Filters extends VileSci_Controller public function addSelectedFields() { $fieldName = $this->input->post('fieldName'); + $fhc_controller_id = $this->input->post('fhc_controller_id'); - $allSelectedFields = $_SESSION[self::SESSION_NAME]['allSelectedFields']; - $allColumnsAliases = $_SESSION[self::SESSION_NAME]['allColumnsAliases']; + $session = $this->_readSession($fhc_controller_id); - $selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields']; - $columnsAliases = $_SESSION[self::SESSION_NAME]['columnsAliases']; + $allSelectedFields = $session['allSelectedFields']; + $allColumnsAliases = $session['allColumnsAliases']; + + $selectedFields = $session['selectedFields']; + $columnsAliases = $session['columnsAliases']; if (($pos = array_search($fieldName, $allSelectedFields)) !== false && array_search($fieldName, $selectedFields) === false) @@ -377,8 +396,8 @@ class Filters extends VileSci_Controller } } - $_SESSION[self::SESSION_NAME]['selectedFields'] = $selectedFields; - $_SESSION[self::SESSION_NAME]['columnsAliases'] = $columnsAliases; + $_SESSION[self::SESSION_NAME][$fhc_controller_id]['selectedFields'] = $selectedFields; + $_SESSION[self::SESSION_NAME][$fhc_controller_id]['columnsAliases'] = $columnsAliases; $json = new stdClass(); @@ -396,11 +415,14 @@ class Filters extends VileSci_Controller public function addSelectedFilters() { $fieldName = $this->input->post('fieldName'); + $fhc_controller_id = $this->input->post('fhc_controller_id'); - $selectedFilters = $_SESSION[self::SESSION_NAME]['selectedFilters']; - $selectedFiltersActiveFilters = $_SESSION[self::SESSION_NAME]['activeFilters']; - $selectedFiltersActiveFiltersOperation = $_SESSION[self::SESSION_NAME]['activeFiltersOperation']; - $selectedFiltersActiveFiltersOption = $_SESSION[self::SESSION_NAME]['activeFiltersOption']; + $session = $this->_readSession($fhc_controller_id); + + $selectedFilters = $session['selectedFilters']; + $selectedFiltersActiveFilters = $session['activeFilters']; + $selectedFiltersActiveFiltersOperation = $session['activeFiltersOperation']; + $selectedFiltersActiveFiltersOption = $session['activeFiltersOption']; if (!in_array($fieldName, $selectedFilters)) { @@ -410,10 +432,10 @@ class Filters extends VileSci_Controller $selectedFiltersActiveFiltersOption[$fieldName] = ""; } - $_SESSION[self::SESSION_NAME]['selectedFilters'] = $selectedFilters; - $_SESSION[self::SESSION_NAME]['activeFilters'] = $selectedFiltersActiveFilters; - $_SESSION[self::SESSION_NAME]['activeFiltersOperation'] = $selectedFiltersActiveFiltersOperation; - $_SESSION[self::SESSION_NAME]['activeFiltersOption'] = $selectedFiltersActiveFiltersOption; + $_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; $json = new stdClass(); @@ -434,14 +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'); + + $session = $this->_readSession($fhc_controller_id); $activeFilters = array_combine($fieldNames, $filterOperationValues); $activeFiltersOperation = array_combine($fieldNames, $filterOperations); $activeFiltersOption = array_combine($fieldNames, $filterOptions); - $_SESSION[self::SESSION_NAME]['activeFilters'] = $activeFilters; - $_SESSION[self::SESSION_NAME]['activeFiltersOperation'] = $activeFiltersOperation; - $_SESSION[self::SESSION_NAME]['activeFiltersOption'] = $activeFiltersOption; + $_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; $json = new stdClass(); @@ -460,7 +485,9 @@ class Filters extends VileSci_Controller { $json = new stdClass(); - $dataset = $_SESSION[self::SESSION_NAME]['dataset']; + $session = $this->_readSession($this->input->get('fhc_controller_id')); + + $dataset = $session['dataset']; if (is_array($dataset)) { @@ -469,4 +496,29 @@ class Filters extends VileSci_Controller $this->output->set_content_type('application/json')->set_output(json_encode($json)); } + + /** + * + */ + private function _readSession($fhc_controller_id) + { + if (isset($_SESSION[self::SESSION_NAME]) && isset($_SESSION[self::SESSION_NAME][$fhc_controller_id])) + return $_SESSION[self::SESSION_NAME][$fhc_controller_id]; + + return array(); + } + + /** + * + */ + private function _writeSession($data, $fhc_controller_id) + { + if (!isset($_SESSION[self::SESSION_NAME]) + || (isset($_SESSION[self::SESSION_NAME]) && !is_array($_SESSION[self::SESSION_NAME]))) + { + $_SESSION[self::SESSION_NAME] = array(); + } + + $_SESSION[self::SESSION_NAME][$fhc_controller_id] = $data; + } } diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 86b5d1e8b..7d81cc021 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -80,6 +80,8 @@ class InfoCenter extends VileSci_Controller if(!$this->permissionlib->isBerechtigt('basis/person')) show_error('You have no Permission! You need Infocenter Role'); + $this->_setControllerId(); // sets the controller id + $this->setNavigationMenuArray(); // sets property navigationMenuArray } @@ -91,14 +93,14 @@ class InfoCenter extends VileSci_Controller */ public function index() { - $this->load->view('system/infocenter/infocenter.php'); + $this->load->view('system/infocenter/infocenter.php', array('fhc_controller_id' => $this->fhc_controller_id)); } - + public function infocenterFreigegeben() { - $this->load->view('system/infocenter/infocenterFreigegeben.php'); + $this->load->view('system/infocenter/infocenterFreigegeben.php', array('fhc_controller_id' => $this->fhc_controller_id)); } - + /** * Initialization function, gets person and prestudent data and loads the view with the data * @param $person_id @@ -132,7 +134,7 @@ class InfoCenter extends VileSci_Controller ) ); } - + /** * unlocks page from edit by a person, redirects to overview filter page * @param $person_id @@ -362,7 +364,7 @@ class InfoCenter extends VileSci_Controller $this->_redirectToStart($prestudent_id, 'ZgvPruef'); } - + /** * Saves a new Notiz for a person * @param $person_id @@ -386,7 +388,7 @@ class InfoCenter extends VileSci_Controller ->set_content_type('application/json') ->set_output(json_encode($result->retval)); } - + /** * Updates a new Notiz for a person * @param int $notiz_id @@ -394,7 +396,7 @@ class InfoCenter extends VileSci_Controller * @return bool true if success */ public function updateNotiz($notiz_id, $person_id) - { + { $titel = $this->input->post('notiztitel'); $text = $this->input->post('notiz'); @@ -408,18 +410,18 @@ class InfoCenter extends VileSci_Controller "updatevon" => $this->uid ) ); - - + + $json = FALSE; - + if (isSuccess($result)) { $json = TRUE; - + //set log "Notiz updated" $this->_log($person_id, 'updatenotiz', array($titel)); } - + $this->output ->set_content_type('application/json') ->set_output(json_encode($json)); @@ -547,7 +549,7 @@ class InfoCenter extends VileSci_Controller 'children' => array() ) ); - + $this->_fillFilters($listFiltersSent, $filtersarray['abgeschickt']); $this->_fillFilters($listFiltersNotSent, $filtersarray['nichtabgeschickt']); @@ -593,9 +595,10 @@ class InfoCenter extends VileSci_Controller { foreach ($filters as $filterId => $description) { - $toPrint = "%s=%s"; + $toPrint = "%s?%s=%s&%s=%s"; + $tofill['children'][] = array( - 'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter?filter_id'), $filterId), + 'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter'), 'filter_id', $filterId, 'fhc_controller_id', $this->fhc_controller_id), 'description' => $description ); } @@ -605,10 +608,10 @@ class InfoCenter extends VileSci_Controller { foreach ($filters as $filterId => $description) { - $toPrint = "%s=%s"; + $toPrint = "%s?%s=%s&%s=%s"; $tofill['children'][] = array( - 'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter?filter_id'), $filterId), + 'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter'), 'filter_id', $filterId, 'fhc_controller_id', $this->fhc_controller_id), 'description' => $description, 'subscriptDescription' => 'Remove', 'subscriptLinkClass' => 'remove-filter', @@ -956,4 +959,21 @@ class InfoCenter extends VileSci_Controller $this->loglib->logError('Studiengang has no mail for sending Freigabe mail'); } } + + /** + * Sets the unique id for the called controller + */ + private function _setControllerId() + { + $fhc_controller_id = $this->input->get('fhc_controller_id'); + + if (!isset($fhc_controller_id) || empty($fhc_controller_id)) + { + $fhc_controller_id = uniqid(); + header('Location: '.$_SERVER['REQUEST_URI'].'?fhc_controller_id='.$fhc_controller_id); + exit; + } + + $this->fhc_controller_id = $fhc_controller_id; + } } diff --git a/application/views/system/infocenter/infocenter.php b/application/views/system/infocenter/infocenter.php index 5963f77ca..1ecfe31f7 100644 --- a/application/views/system/infocenter/infocenter.php +++ b/application/views/system/infocenter/infocenter.php @@ -29,7 +29,7 @@
load->view('system/infocenter/infocenterData.php'); + $this->load->view('system/infocenter/infocenterData.php', array('fhc_controller_id' => $fhc_controller_id)); ?>
diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php index 311dd647b..2d9d30cf2 100755 --- a/application/views/system/infocenter/infocenterData.php +++ b/application/views/system/infocenter/infocenterData.php @@ -186,6 +186,7 @@ ) 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', diff --git a/application/views/system/infocenter/infocenterFreigegeben.php b/application/views/system/infocenter/infocenterFreigegeben.php index bc9d9f305..66e5b5c8b 100644 --- a/application/views/system/infocenter/infocenterFreigegeben.php +++ b/application/views/system/infocenter/infocenterFreigegeben.php @@ -146,7 +146,7 @@ JOIN public.tbl_studiengang USING(studiengang_kz) WHERE person_id=p.person_id - AND tbl_studiengang.typ in(\'b\') + AND tbl_studiengang.typ in(\'b\') AND \'Interessent\' = (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC @@ -170,8 +170,7 @@ ) ORDER BY "LastAction" ASC ', - 'hideHeader' => false, - 'hideSave' => false, + 'fhc_controller_id' => $fhc_controller_id, 'checkboxes' => 'PersonId', 'additionalColumns' => array('Details'), 'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation','Letzte Aktion','Letzter Bearbeiter', @@ -238,9 +237,9 @@ } ); - + $filterId = isset($_GET[InfoCenter::FILTER_ID]) ? $_GET[InfoCenter::FILTER_ID] : null; - + if (isset($filterId) && is_numeric($filterId)) { $filterWidgetArray[InfoCenter::FILTER_ID] = $filterId; @@ -251,7 +250,7 @@ $filterWidgetArray['datasetName'] = 'PersonActions'; $filterWidgetArray['filterKurzbz'] = 'InfoCenterNotSentApplicationAll'; } - + echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray); ?> diff --git a/application/views/widgets/filter/filter.php b/application/views/widgets/filter/filter.php index d368cc6e1..5fbff4953 100644 --- a/application/views/widgets/filter/filter.php +++ b/application/views/widgets/filter/filter.php @@ -119,7 +119,8 @@ url: "", method: "POST", data: { - filter_id: $(this).attr('value') + filter_id: $(this).attr('value'), + fhc_controller_id: getUrlParameter("fhc_controller_id") } }) .done(function(data, textStatus, jqXHR) { diff --git a/application/views/widgets/filter/saveFilter.php b/application/views/widgets/filter/saveFilter.php index f6b7dc529..ce2d454ca 100644 --- a/application/views/widgets/filter/saveFilter.php +++ b/application/views/widgets/filter/saveFilter.php @@ -9,7 +9,8 @@ url: "", method: "POST", data: { - customFilterDescription: $("#customFilterDescription").val() + customFilterDescription: $("#customFilterDescription").val(), + fhc_controller_id: getUrlParameter("fhc_controller_id") } }) .done(function(data, textStatus, jqXHR) { diff --git a/application/views/widgets/filter/selectFields.php b/application/views/widgets/filter/selectFields.php index 7613639ff..a011e5555 100644 --- a/application/views/widgets/filter/selectFields.php +++ b/application/views/widgets/filter/selectFields.php @@ -77,7 +77,8 @@ url: "", method: "POST", data: { - selectedFieldsLst: arrayDndId + selectedFieldsLst: arrayDndId, + fhc_controller_id: getUrlParameter("fhc_controller_id") } }) .done(function(data, textStatus, jqXHR) { @@ -109,7 +110,8 @@ url: "", method: "POST", data: { - fieldName: $(this).val() + fieldName: $(this).val(), + fhc_controller_id: getUrlParameter("fhc_controller_id") } }) .done(function(data, textStatus, jqXHR) { @@ -131,7 +133,8 @@ url: "", method: "POST", data: { - fieldName: $(this).attr('fieldToRemove') + fieldName: $(this).attr('fieldToRemove'), + fhc_controller_id: getUrlParameter("fhc_controller_id") } }) .done(function(data, textStatus, jqXHR) { @@ -153,7 +156,9 @@ $.ajax({ url: "", method: "GET", - data: {}, + data: { + fhc_controller_id: getUrlParameter("fhc_controller_id") + }, dataType: "json" }) .done(function(data, textStatus, jqXHR) { diff --git a/application/views/widgets/filter/selectFilters.php b/application/views/widgets/filter/selectFilters.php index bca975b13..cf5443069 100644 --- a/application/views/widgets/filter/selectFilters.php +++ b/application/views/widgets/filter/selectFilters.php @@ -13,7 +13,8 @@ url: "", method: "POST", data: { - fieldName: $(this).val() + fieldName: $(this).val(), + fhc_controller_id: getUrlParameter("fhc_controller_id") } }) .done(function(data, textStatus, jqXHR) { @@ -76,7 +77,8 @@ filterNames: selectFilterName, filterOperations: selectFilterOperation, filterOperationValues: selectFilterOperationValue, - filterOptions: selectFilterOption + filterOptions: selectFilterOption, + fhc_controller_id: getUrlParameter("fhc_controller_id") } }) .done(function(data, textStatus, jqXHR) { @@ -100,7 +102,8 @@ url: "", method: "POST", data: { - fieldName: $(this).attr('filterToRemove') + fieldName: $(this).attr('filterToRemove'), + fhc_controller_id: getUrlParameter("fhc_controller_id") } }) .done(function(data, textStatus, jqXHR) { @@ -199,7 +202,9 @@ $.ajax({ url: "", method: "GET", - data: {}, + data: { + fhc_controller_id: getUrlParameter("fhc_controller_id") + }, dataType: "json" }) .done(function(data, textStatus, jqXHR) { diff --git a/application/views/widgets/filter/tableDataset.php b/application/views/widgets/filter/tableDataset.php index f0a3efa27..1a19876f4 100644 --- a/application/views/widgets/filter/tableDataset.php +++ b/application/views/widgets/filter/tableDataset.php @@ -21,7 +21,9 @@ $.ajax({ url: "", method: "GET", - data: {}, + data: { + fhc_controller_id: getUrlParameter("fhc_controller_id") + }, dataType: "json" }) .done(function(data, textStatus, jqXHR) { diff --git a/application/widgets/FilterWidget.php b/application/widgets/FilterWidget.php index 925126a43..1e18b594a 100644 --- a/application/widgets/FilterWidget.php +++ b/application/widgets/FilterWidget.php @@ -29,7 +29,7 @@ class FilterWidget extends Widget const WIDGET_URL_SELECT_FILTERS = 'widgets/filter/selectFilters'; const WIDGET_URL_SAVE_FILTER = 'widgets/filter/saveFilter'; - const SESSION_NAME = 'FILTER'; + const SESSION_NAME = 'FHC_FILTER_WIDGET'; const ALL_SELECTED_FIELDS = 'allSelectedFields'; const ALL_COLUMNS_ALIASES = 'allColumnsAliases'; @@ -109,7 +109,7 @@ class FilterWidget extends Widget public function display($widgetData) { // - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); // if ($this->filterId == null && isset($filterSessionArray[self::FILTER_ID])) @@ -144,7 +144,7 @@ class FilterWidget extends Widget // $selectedFields = array(); - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); if (isset($filterSessionArray[self::SELECTED_FIELDS])) { $selectedFields = $filterSessionArray[self::SELECTED_FIELDS]; @@ -195,6 +195,7 @@ class FilterWidget extends Widget $tmpDataset[] = $formattedResult; } } + $filterSessionArray[self::DATASET_PARAMETER] = $tmpDataset; /* ------------------------------------------------------------ */ @@ -204,7 +205,7 @@ class FilterWidget extends Widget $filterSessionArray[self::METADATA_PARAMETER] = $this->metaData; - $this->session->set_userdata(self::SESSION_NAME, $filterSessionArray); + $this->_writeSession($filterSessionArray); // $this->loadViewFilters(); @@ -422,9 +423,11 @@ class FilterWidget extends Widget { $filterSessionArray = array(); - if (isset($_SESSION[self::SESSION_NAME])) + $session = $this->_readSession(); + + if (count($session) > 0) { - $filterSessionArray = $_SESSION[self::SESSION_NAME]; + $filterSessionArray = $session; } if (!isset($filterSessionArray[self::SELECTED_FIELDS])) @@ -482,7 +485,7 @@ class FilterWidget extends Widget $filterSessionArray[self::DATASET_NAME_PARAMETER] = null; } - $this->session->set_userdata(self::SESSION_NAME, $filterSessionArray); + $this->_writeSession($filterSessionArray); } /** @@ -503,6 +506,7 @@ class FilterWidget extends Widget $this->hideSave = false; $this->columnsAliases = null; $this->filterName = null; + $this->fhc_controller_id = null; if (!is_array($args) || (is_array($args) && count($args) == 0)) { @@ -510,6 +514,15 @@ 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]) @@ -704,7 +717,7 @@ class FilterWidget extends Widget self::DATASET_NAME_PARAMETER => $filter->retval[0]->dataset_name ); - $this->session->set_userdata(self::SESSION_NAME, $filterSessionArray); + $this->_writeSession($filterSessionArray); } else { @@ -719,7 +732,7 @@ class FilterWidget extends Widget self::DATASET_NAME_PARAMETER => null ); - $this->session->set_userdata(self::SESSION_NAME, $filterSessionArray); + $this->_writeSession($filterSessionArray); } } @@ -732,7 +745,7 @@ class FilterWidget extends Widget { $objToBeSaved = new stdClass(); - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); if (isset($filterSessionArray[self::SELECTED_FIELDS])) { @@ -828,7 +841,7 @@ class FilterWidget extends Widget // Selected fields $selectedFields = array(); - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); if (isset($filterSessionArray[self::SELECTED_FIELDS])) { $selectedFields = $filterSessionArray[self::SELECTED_FIELDS]; @@ -844,7 +857,7 @@ class FilterWidget extends Widget { $app = $this->app; - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); if (isset($filterSessionArray[self::APP_PARAMETER])) { $app = $filterSessionArray[self::APP_PARAMETER]; @@ -860,7 +873,7 @@ class FilterWidget extends Widget { $datasetName = $this->datasetName; - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); if (isset($filterSessionArray[self::DATASET_NAME_PARAMETER])) { $datasetName = $filterSessionArray[self::DATASET_NAME_PARAMETER]; @@ -877,7 +890,7 @@ class FilterWidget extends Widget $columnsAliases = $this->columnsAliases; $selectedFields = array(); - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); if (isset($filterSessionArray[self::SELECTED_FIELDS])) { @@ -908,7 +921,7 @@ class FilterWidget extends Widget // Selected filters $selectedFilters = array(); - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); if (isset($filterSessionArray[self::SELECTED_FILTERS])) { $selectedFilters = $filterSessionArray[self::SELECTED_FILTERS]; @@ -923,7 +936,7 @@ class FilterWidget extends Widget private function _setActiveFiltersFromPost(&$activeFilters, &$activeFiltersOperation, &$activeFiltersOption) { $selectedFilters = array(); - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); if (isset($filterSessionArray[self::ACTIVE_FILTERS])) { @@ -994,6 +1007,8 @@ class FilterWidget extends Widget */ private function _setSessionFilterData() { + $session = $this->_readSession(); + $filterSessionArray = array( self::SELECTED_FIELDS => $this->_getSelectedFieldsFromPost(), self::SELECTED_FILTERS => $this->_getSelectedFiltersFromPost(), @@ -1016,7 +1031,7 @@ class FilterWidget extends Widget $filterSessionArray[self::FILTER_ID] = $this->filterId; $filterSessionArray[self::FILTER_NAME] = $this->filterName; - $this->session->set_userdata(self::SESSION_NAME, $filterSessionArray); + $this->_writeSession(array_merge($session, $filterSessionArray)); } /** @@ -1030,7 +1045,7 @@ class FilterWidget extends Widget $activeFiltersOperation = array(); $activeFiltersOption = array(); - $filterSessionArray = $this->session->userdata(self::SESSION_NAME); + $filterSessionArray = $this->_readSession(); if (isset($filterSessionArray[self::ACTIVE_FILTERS])) { @@ -1143,4 +1158,29 @@ class FilterWidget extends Widget return $query; } + + /** + * + */ + 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]; + + return array(); + } + + /** + * + */ + private function _writeSession($data) + { + if (!isset($_SESSION[self::SESSION_NAME]) + || (isset($_SESSION[self::SESSION_NAME]) && !is_array($_SESSION[self::SESSION_NAME]))) + { + $_SESSION[self::SESSION_NAME] = array(); + } + + $_SESSION[self::SESSION_NAME][$this->fhc_controller_id] = $data; + } } diff --git a/include/js/infocenter/infocenterPersonDataset.js b/include/js/infocenter/infocenterPersonDataset.js index 8ee342d0a..5cac8933a 100644 --- a/include/js/infocenter/infocenterPersonDataset.js +++ b/include/js/infocenter/infocenterPersonDataset.js @@ -48,7 +48,11 @@ function appendTableActionsHtml() $.ajax({ url: window.location.pathname.replace('infocenter/InfoCenter', 'Filters/rowNumber'), - method: "GET" + method: "GET", + data: { + fhc_controller_id: getUrlParameter("fhc_controller_id") + }, + dataType: "json" }) .done(function(data, textStatus, jqXHR) { @@ -72,7 +76,9 @@ function appendTableActionsHtml() setTableActions(); } - }).fail(function(jqXHR, textStatus, errorThrown) {}); + }).fail(function(jqXHR, textStatus, errorThrown) { + alert(textStatus); + }); } @@ -112,6 +118,27 @@ function setTableActions() ); } +/** + * + */ +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]; + } + } +} + /** * Refreshes the side menu */ @@ -120,7 +147,9 @@ function refreshSideMenu() $.ajax({ url: window.location.pathname+"/setNavigationMenuArray", method: "GET", - data: {} + data: { + fhc_controller_id: getUrlParameter("fhc_controller_id") + } }) .done(function(data, textStatus, jqXHR) {