diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php
index 52c9e0d25..f74fcaa63 100644
--- a/application/controllers/system/infocenter/InfoCenter.php
+++ b/application/controllers/system/infocenter/InfoCenter.php
@@ -207,6 +207,7 @@ class InfoCenter extends Auth_Controller
$data[self::FHC_CONTROLLER_ID] = $this->getControllerId();
$data[self::ORIGIN_PAGE] = $origin_page;
+ $data[self::PREV_FILTER_ID] = $this->input->get(self::PREV_FILTER_ID);
$this->load->view('system/infocenter/infocenterDetails.php', $data);
}
@@ -222,7 +223,18 @@ class InfoCenter extends Auth_Controller
if (isError($result))
show_error($result->retval);
- redirect('/'.self::INFOCENTER_URI.'?'.self::FHC_CONTROLLER_ID.'='.$this->getControllerId());
+ $redirectLink = '/'.self::INFOCENTER_URI.'?'.self::FHC_CONTROLLER_ID.'='.$this->getControllerId();
+
+ // Force reload of Dataset after Unlock
+ $redirectLink .= '&reloadDataset=true';
+
+ $currentFilterId = $this->input->get(self::FILTER_ID);
+ if (isset($currentFilterId))
+ {
+ $redirectLink .= '&'.self::FILTER_ID.'='.$currentFilterId;
+ }
+
+ redirect($redirectLink);
}
/**
diff --git a/application/libraries/FiltersLib.php b/application/libraries/FiltersLib.php
index 3b719b5f3..78a261d66 100644
--- a/application/libraries/FiltersLib.php
+++ b/application/libraries/FiltersLib.php
@@ -35,6 +35,7 @@ class FiltersLib
const APP_PARAMETER = 'app';
const DATASET_NAME_PARAMETER = 'datasetName';
const FILTER_KURZBZ_PARAMETER = 'filterKurzbz';
+ const DATASET_RELOAD_PARAMETER = 'reloadDataset';
// ...to specify permissions that are needed to use this FilterWidget
const REQUIRED_PERMISSIONS_PARAMETER = 'requiredPermissions';
diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php
index 67c4dcf38..793ca4aba 100644
--- a/application/views/system/infocenter/infocenterData.php
+++ b/application/views/system/infocenter/infocenterData.php
@@ -256,6 +256,7 @@
'filter_id' => $this->input->get('filter_id'),
'requiredPermissions' => 'infocenter',
'datasetRepresentation' => 'tablesorter',
+ 'reloadDataset' => ($this->input->get('reloadDataset')=='true'?true:false),
'customMenu' => true,
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php
index f29be7127..9e708d076 100644
--- a/application/views/system/infocenter/infocenterDetails.php
+++ b/application/views/system/infocenter/infocenterDetails.php
@@ -68,9 +68,13 @@
if (isset($lockedby)):
echo $this->p->t('global', 'wirdBearbeitetVon').': ';
echo $lockedby;
- if ($origin_page == 'index'): ?>
+ if ($origin_page == 'index'):
+ $unlockpath = 'unlockPerson/'.$stammdaten->person_id;
+ $unlockpath .= '?fhc_controller_id='.$fhc_controller_id;
+ $unlockpath .= '&filter_id='.$prev_filter_id;
+ ?>
-
+
p->t('ui', 'freigeben')) ?>
diff --git a/application/widgets/FilterWidget.php b/application/widgets/FilterWidget.php
index 86e954e93..931b5a595 100644
--- a/application/widgets/FilterWidget.php
+++ b/application/widgets/FilterWidget.php
@@ -48,6 +48,7 @@ class FilterWidget extends Widget
private $_datasetRepresentation; // dataset representation (ex: tablesorter, pivotUI, ...)
private $_datasetRepresentationOptions; // dataset representation options for tablesorter, pivotUI, ...
+ private $_reloadDataset; // Force Reload of Dataset
private static $_FilterWidgetInstance; // static property that contains the instance of itself
@@ -156,6 +157,7 @@ class FilterWidget extends Widget
$this->_datasetName = null;
$this->_filterKurzbz = null;
$this->_filterId = null;
+ $this->_reloadDataset = null;
$this->_query = null;
$this->_additionalColumns = null;
$this->_columnsAliases = null;
@@ -201,6 +203,11 @@ class FilterWidget extends Widget
$this->_query = $args[FiltersLib::QUERY_PARAMETER];
}
+ if (isset($args[FiltersLib::DATASET_RELOAD_PARAMETER]))
+ {
+ $this->_reloadDataset = $args[FiltersLib::DATASET_RELOAD_PARAMETER];
+ }
+
// Parameter is used to add extra columns to the dataset
if (isset($args[FiltersLib::ADDITIONAL_COLUMNS])
&& is_array($args[FiltersLib::ADDITIONAL_COLUMNS])
@@ -334,8 +341,10 @@ class FilterWidget extends Widget
else // else if the filter loaded in session is the same that is being requested
{
// Get SESSION_RELOAD_DATASET from the session
- $reloadDataset = $this->filterslib->getElementSession(FiltersLib::SESSION_RELOAD_DATASET);
- if ($reloadDataset === true) // if it's value is very true then reload the dataset
+ $sessionReloadDataset = $this->filterslib->getElementSession(FiltersLib::SESSION_RELOAD_DATASET);
+
+ // if Filter changed or reload is forced by parameter then reload the Dataset
+ if ($this->_reloadDataset === true || $sessionReloadDataset === true)
{
// Set as false to stop changing the dataset
$this->filterslib->setElementSession(FiltersLib::SESSION_RELOAD_DATASET, false);