mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Merge branch 'feature-3854/Refactor_sqls_for_filterwidgets'
This commit is contained in:
@@ -24,6 +24,8 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
const FILTER_ID = 'filter_id';
|
||||
const PREV_FILTER_ID = 'prev_filter_id';
|
||||
const RELOAD_DATASET = 'reloadDataset';
|
||||
const KEEP_TABLESORTER_FILTER = 'keepTsFilter';
|
||||
|
||||
private $_uid; // contains the UID of the logged user
|
||||
|
||||
@@ -234,7 +236,7 @@ class InfoCenter extends Auth_Controller
|
||||
$redirectLink = '/'.self::INFOCENTER_URI.'?'.self::FHC_CONTROLLER_ID.'='.$this->getControllerId();
|
||||
|
||||
// Force reload of Dataset after Unlock
|
||||
$redirectLink .= '&reloadDataset=true';
|
||||
$redirectLink .= '&'.self::RELOAD_DATASET.'=true&'.self::KEEP_TABLESORTER_FILTER.'=true';
|
||||
|
||||
$currentFilterId = $this->input->get(self::FILTER_ID);
|
||||
if (isset($currentFilterId))
|
||||
@@ -894,10 +896,16 @@ class InfoCenter extends Auth_Controller
|
||||
$freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE);
|
||||
$reihungstestAbsolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
$currentFilterId = $this->input->get(self::FILTER_ID);
|
||||
$reloadDatasetParam = self::RELOAD_DATASET.'=true';
|
||||
if (isset($currentFilterId))
|
||||
{
|
||||
$freigegebenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
$reihungstestAbsolviertLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
$freigegebenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId.'&'.$reloadDatasetParam;
|
||||
$reihungstestAbsolviertLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId.'&'.$reloadDatasetParam;
|
||||
}
|
||||
else
|
||||
{
|
||||
$freigegebenLink .= '?'.$reloadDatasetParam;
|
||||
$reihungstestAbsolviertLink .= '?'.$reloadDatasetParam;
|
||||
}
|
||||
|
||||
$this->navigationlib->setSessionMenu(
|
||||
@@ -950,7 +958,7 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$origin_page = $this->input->get(self::ORIGIN_PAGE);
|
||||
|
||||
$link = site_url(self::INFOCENTER_URI.'/'.self::INDEX_PAGE);
|
||||
$link = site_url(self::INFOCENTER_URI);
|
||||
if ($origin_page == self::FREIGEGEBEN_PAGE)
|
||||
{
|
||||
$link = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE);
|
||||
@@ -963,7 +971,7 @@ class InfoCenter extends Auth_Controller
|
||||
$prevFilterId = $this->input->get(self::PREV_FILTER_ID);
|
||||
if (isset($prevFilterId))
|
||||
{
|
||||
$link .= '?'.self::FILTER_ID.'='.$prevFilterId;
|
||||
$link .= '?'.self::FILTER_ID.'='.$prevFilterId.'&'.self::RELOAD_DATASET.'=true&'.self::KEEP_TABLESORTER_FILTER.'=true';
|
||||
}
|
||||
|
||||
$this->navigationlib->setSessionMenu(
|
||||
@@ -993,13 +1001,14 @@ class InfoCenter extends Auth_Controller
|
||||
$this->load->library('NavigationLib', array(self::NAVIGATION_PAGE => self::INFOCENTER_URI.'/'.$page));
|
||||
|
||||
// Generate the home link with the eventually loaded filter
|
||||
$homeLink = site_url(self::INFOCENTER_URI.'/'.self::INDEX_PAGE);
|
||||
$freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE);
|
||||
$absolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
$reloadDatasetParam = '?'.self::RELOAD_DATASET.'=true';
|
||||
$homeLink = site_url(self::INFOCENTER_URI.'/'.self::INDEX_PAGE.$reloadDatasetParam);
|
||||
$freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE.$reloadDatasetParam);
|
||||
$absolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE.$reloadDatasetParam);
|
||||
$prevFilterId = $this->input->get(self::PREV_FILTER_ID);
|
||||
if (isset($prevFilterId))
|
||||
{
|
||||
$homeLink .= '?'.self::FILTER_ID.'='.$prevFilterId;
|
||||
$homeLink .= '&'.self::FILTER_ID.'='.$prevFilterId;
|
||||
}
|
||||
|
||||
$this->navigationlib->setSessionElementMenu(
|
||||
|
||||
@@ -235,6 +235,7 @@
|
||||
'filter_id' => $this->input->get('filter_id'),
|
||||
'requiredPermissions' => 'infocenter',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'reloadDataset' => ($this->input->get('reloadDataset')=='true'?true:false),
|
||||
'checkboxes' => 'PersonId',
|
||||
'additionalColumns' => array('Details'),
|
||||
'columnsAliases' => array(
|
||||
|
||||
@@ -204,6 +204,7 @@
|
||||
'filter_id' => $this->input->get('filter_id'),
|
||||
'requiredPermissions' => 'infocenter',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'reloadDataset' => ($this->input->get('reloadDataset')=='true'?true:false),
|
||||
'checkboxes' => 'PersonId',
|
||||
'additionalColumns' => array('Details'),
|
||||
'columnsAliases' => array(
|
||||
|
||||
+11
-10
@@ -84,7 +84,7 @@ var FHC_FilterWidget = {
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* To display the FilterWidget using the loaded data prenset in the session
|
||||
* To display the FilterWidget using the loaded data present in the session
|
||||
*/
|
||||
display: function() {
|
||||
|
||||
@@ -392,7 +392,6 @@ var FHC_FilterWidget = {
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
FHC_FilterWidget._cleanTablesorterLocalStorage();
|
||||
FHC_FilterWidget._failOrRefresh(data, textStatus, jqXHR);
|
||||
}
|
||||
}
|
||||
@@ -453,7 +452,6 @@ var FHC_FilterWidget = {
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
FHC_FilterWidget._cleanTablesorterLocalStorage();
|
||||
FHC_FilterWidget._failOrRefresh(data, textStatus, jqXHR);
|
||||
}
|
||||
}
|
||||
@@ -837,6 +835,14 @@ var FHC_FilterWidget = {
|
||||
*/
|
||||
_renderDatasetTablesorter: function(data) {
|
||||
|
||||
//clear tablesorter filter storage
|
||||
var keepTsFilter = FHC_AjaxClient.getUrlParameter("keepTsFilter");
|
||||
|
||||
if (typeof keepTsFilter === "undefined" || keepTsFilter !== "true")
|
||||
{
|
||||
FHC_FilterWidget._clearTablesorterLocalStorage();
|
||||
}
|
||||
|
||||
if (data.hasOwnProperty("checkboxes") && data.checkboxes!=null && data.checkboxes.trim() != "")
|
||||
{
|
||||
$("#filterTableDataset > thead > tr").append("<th data-filter='false' title='Select'>Select</th>");
|
||||
@@ -935,10 +941,6 @@ var FHC_FilterWidget = {
|
||||
}
|
||||
});
|
||||
|
||||
// Reset filter storage if there is a filter id in url TODO: find better solution
|
||||
var filter_id = FHC_AjaxClient.getUrlParameter("filter_id");
|
||||
if (typeof filter_id !== "undefined") FHC_FilterWidget._cleanTablesorterLocalStorage();
|
||||
|
||||
$.tablesorter.updateAll($("#filterTableDataset")[0].config, true, null);
|
||||
}
|
||||
},
|
||||
@@ -1057,9 +1059,8 @@ var FHC_FilterWidget = {
|
||||
/**
|
||||
* Tablesorter filter local storage clean
|
||||
*/
|
||||
_cleanTablesorterLocalStorage: function() {
|
||||
|
||||
$("#filterTableDataset").trigger("filterResetSaved");
|
||||
_clearTablesorterLocalStorage: function() {
|
||||
localStorage.removeItem("tablesorter-filters");
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -148,6 +148,28 @@ var InfocenterPersonDataset = {
|
||||
trs.find("input[name=PersonId\\[\\]]").prop("checked", false);
|
||||
}
|
||||
);
|
||||
|
||||
//make sure tablesorter local storage for homepage url with and without "/index" shares same values
|
||||
$("#filterTableDataset").bind('filterEnd', function()
|
||||
{
|
||||
if (FHC_JS_DATA_STORAGE_OBJECT.called_method === 'index')
|
||||
{
|
||||
var pathname = window.location.pathname;
|
||||
var storageobj = localStorage.getItem("tablesorter-filters");
|
||||
var parsed = JSON.parse(storageobj);
|
||||
var regex = new RegExp(/\/index(?!\.ci\.php)/);
|
||||
if (regex.test(pathname))
|
||||
{
|
||||
parsed[pathname.replace(regex, "")] = parsed[pathname];
|
||||
}
|
||||
else
|
||||
{
|
||||
parsed[pathname + "/index"] = parsed[pathname];
|
||||
}
|
||||
storageobj = JSON.stringify(parsed);
|
||||
localStorage.setItem("tablesorter-filters", storageobj);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user