- Added the feature to the Infocenter controller to generate a unique identifier for each call of itself, and to keep using the identifier for the next calls in the same browser/tab

- Added the feature to the FilterWidget to use this identifier to create a different session for each FilterWidget
This commit is contained in:
Paolo
2018-05-03 12:33:01 +02:00
parent 4e90523ccc
commit dba08d4d9e
12 changed files with 277 additions and 122 deletions
+117 -65
View File
@@ -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;
}
}
@@ -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;
}
}
@@ -29,7 +29,7 @@
</div>
<div>
<?php
$this->load->view('system/infocenter/infocenterData.php');
$this->load->view('system/infocenter/infocenterData.php', array('fhc_controller_id' => $fhc_controller_id));
?>
</div>
</div>
@@ -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',
@@ -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);
?>
+2 -1
View File
@@ -119,7 +119,8 @@
url: "<?php echo site_url('system/Filters/deleteCustomFilter'); ?>",
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) {
@@ -9,7 +9,8 @@
url: "<?php echo site_url('system/Filters/saveFilter'); ?>",
method: "POST",
data: {
customFilterDescription: $("#customFilterDescription").val()
customFilterDescription: $("#customFilterDescription").val(),
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
@@ -77,7 +77,8 @@
url: "<?php echo site_url('system/Filters/sortSelectedFields'); ?>",
method: "POST",
data: {
selectedFieldsLst: arrayDndId
selectedFieldsLst: arrayDndId,
fhc_controller_id: getUrlParameter("fhc_controller_id")
}
})
.done(function(data, textStatus, jqXHR) {
@@ -109,7 +110,8 @@
url: "<?php echo site_url('system/Filters/addSelectedFields'); ?>",
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: "<?php echo site_url('system/Filters/removeSelectedFields'); ?>",
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: "<?php echo site_url('system/Filters/selectFields'); ?>",
method: "GET",
data: {},
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
@@ -13,7 +13,8 @@
url: "<?php echo site_url('system/Filters/addSelectedFilters'); ?>",
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: "<?php echo site_url('system/Filters/removeSelectedFilters'); ?>",
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: "<?php echo site_url('system/Filters/selectFilters'); ?>",
method: "GET",
data: {},
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
@@ -21,7 +21,9 @@
$.ajax({
url: "<?php echo site_url('system/Filters/tableDataset'); ?>",
method: "GET",
data: {},
data: {
fhc_controller_id: getUrlParameter("fhc_controller_id")
},
dataType: "json"
})
.done(function(data, textStatus, jqXHR) {
+58 -18
View File
@@ -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;
}
}
@@ -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) {