- Added public/css/FilterWidget.css and public/css/NavigationWidget.css to define CSS for Filter and Navigation widgets

- Added public/js/FilterWidget.js and public/js/NavigationWidget.js to collect all the JS for Filter and Navigation widgets
- Added filterwidget and navigationwidget paramaters to FHC-Header to include the new CSS and JS for Filter and Navigation widgets
- Removed all CSS and JS from the views used from Filter and Navigation widgets
- Added method _getFilterUniqueId to controller Filters to generate a unique id for a filter based on fhc_controller_id and the current page
- Adapted the code in controller Filters to use _getFilterUniqueId
- Added method _getFilterUniqueId to widget FilterWidget to generate a unique id for a filter based on fhc_controller_id and the current page
- Adapted the code in widget FilterWidget to use _getFilterUniqueId
- Removed fhc_controller_id from menu generation in InfoCenter controller
- InfoCenter controller now gives as parameter fhc_controller_id to view infocenterDetails
- InfoCenter controller now gives as parameter fhc_controller_id to various redirect
- Views infocenter, infocenterData, infocenterDetails and infocenterFreigegeben:
	- including new JS and CSS to work with Navigation and Filter widgets
	- including AjaxLib (required by FilterWidget.js and NavigationWidget.js)
	- using fhc_controller_id in Details and unlockPerson links
- fhc_controller_id in not anymore a parameter for FilterWidget, adapted the code where FilterWidget is called
- AjaxLib: renamed method _getUrlParameter to getUrlParameter
- Removed function getUrlParameter from public/js/infocenter/infocenterDetails.js, now uses the method from AjaxLib
- Added fhc_controller_id where needed into public/js/infocenter/infocenterDetails.js
- public/js/infocenter/infocenterPersonDataset.js now uses getUrlParameter from AjaxLib
- Added paramater filter_page in infocenterPersonDataset.js when calling Filters/rowNumber
This commit is contained in:
Paolo
2018-05-18 12:10:14 +02:00
parent 6a67183738
commit 13beae23cc
23 changed files with 1239 additions and 1225 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;
}
}
@@ -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);
}
/**