diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index d5ddcc1e3..6e08c1b57 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -408,6 +408,17 @@ class InfoCenter extends VileSci_Controller } } + $customFilters = $this->FiltersModel->getCustomFiltersList('infocenter', 'PersonActions', $this->uid); + if (hasData($customFilters)) + { + for ($filtersCounter = 0; $filtersCounter < count($customFilters->retval); $filtersCounter++) + { + $filter = $customFilters->retval[$filtersCounter]; + + $listCustomFilters[$filter->filter_id] = $filter->description[0]; + } + } + $filtersarray = array( 'abgeschickt' => array( 'link' => '#', @@ -426,6 +437,18 @@ class InfoCenter extends VileSci_Controller $this->_fillFilters($listFiltersSent, $filtersarray['abgeschickt']); $this->_fillFilters($listFiltersNotSent, $filtersarray['nichtabgeschickt']); + if (isset($listCustomFilters) && is_array($listCustomFilters) && count($listCustomFilters) > 0) + { + $filtersarray['personal'] = array( + 'link' => '#', + 'description' => 'Personal filters', + 'expand' => true, + 'children' => array() + ); + + $this->_fillFilters($listCustomFilters, $filtersarray['personal']); + } + $this->navigationMenuArray = array( 'dashboard' => array( 'link' => '#', diff --git a/application/models/system/Filters_model.php b/application/models/system/Filters_model.php index 1395a7a40..7ce07de09 100644 --- a/application/models/system/Filters_model.php +++ b/application/models/system/Filters_model.php @@ -31,4 +31,24 @@ class Filters_model extends DB_Model return $this->FiltersModel->loadWhere($filterParametersArray); } + + /** + * + */ + public function getCustomFiltersList($app, $dataset_name, $uid) + { + $this->addSelect('filter_id, description'); + $this->addJoin('public.tbl_benutzer', 'person_id'); + $this->addOrder('sort', 'ASC'); + + $filterParametersArray = array( + 'app' => $app, + 'dataset_name' => $dataset_name, + 'default_filter' => false, + 'array_length(description, 1) >' => 0, + 'uid' => $uid + ); + + return $this->FiltersModel->loadWhere($filterParametersArray); + } } diff --git a/application/views/widgets/filter/saveFilter.php b/application/views/widgets/filter/saveFilter.php index e9e0217e6..8edb25ad1 100644 --- a/application/views/widgets/filter/saveFilter.php +++ b/application/views/widgets/filter/saveFilter.php @@ -1,5 +1,5 @@
- Filter short description: + Filter description:
diff --git a/application/widgets/FilterWidget.php b/application/widgets/FilterWidget.php index cb1b58581..97ac5b526 100644 --- a/application/widgets/FilterWidget.php +++ b/application/widgets/FilterWidget.php @@ -816,10 +816,17 @@ class FilterWidget extends Widget } } + $desc = $_POST['customFilterDescription']; + $descPGArray = '{"'.$desc.'", "'.$desc.'", "'.$desc.'", "'.$desc.'"}'; + + $resultBenutzer = $this->BenutzerModel->load(getAuthUID()); + $personId = $resultBenutzer->retval[0]->person_id; + $result = $this->FiltersModel->loadWhere(array( 'app' => $this->app, 'dataset_name' => $this->datasetName, - 'filter_kurzbz' => $_POST['customFilterKurzbz'] + 'description' => $descPGArray, + 'person_id' => $personId )); if (hasData($result)) @@ -828,35 +835,27 @@ class FilterWidget extends Widget array( 'app' => $this->app, 'dataset_name' => $this->datasetName, - 'filter_kurzbz' => $_POST['customFilterKurzbz'] + 'description' => $descPGArray, + 'person_id' => $personId ), array( - 'description' => '{}', - 'sort' => null, - 'default_filter' => false, - 'filter' => json_encode($objToBeSaved), - 'oe_kurzbz' => null + 'filter' => json_encode($objToBeSaved) ) ); } else { - $result = $this->BenutzerModel->load(getAuthUID()); - - if (hasData($result)) - { - $this->FiltersModel->insert(array( - 'app' => $this->app, - 'dataset_name' => $this->datasetName, - 'filter_kurzbz' => $_POST['customFilterKurzbz'], - 'person_id' => $result->retval[0]->person_id, - 'description' => '{}', - 'sort' => null, - 'default_filter' => false, - 'filter' => json_encode($objToBeSaved), - 'oe_kurzbz' => null - )); - } + $this->FiltersModel->insert(array( + 'app' => $this->app, + 'dataset_name' => $this->datasetName, + 'filter_kurzbz' => uniqid($personId, true), + 'person_id' => $personId, + 'description' => $descPGArray, + 'sort' => null, + 'default_filter' => false, + 'filter' => json_encode($objToBeSaved), + 'oe_kurzbz' => null + )); } } } diff --git a/application/widgets/NavigationMenuWidget.php b/application/widgets/NavigationMenuWidget.php index 9d0121e4c..e551761bd 100644 --- a/application/widgets/NavigationMenuWidget.php +++ b/application/widgets/NavigationMenuWidget.php @@ -38,8 +38,26 @@ class NavigationMenuWidget extends Widget public static function printNavItem($item, $depth = 1) { $expanded = isset($item['expand']) && $item['expand'] === true ? ' active' : ''; - echo '
  • - '.(isset($item['icon']) ? ' ' : '').$item['description'].(!empty($item['children']) ? '':'').''; + + echo '
  • '; + + echo ''; + + if (isset($item['icon'])) + { + echo ' '; + } + + // echo ''.$item['description'].''.'test'; + echo $item['description']; + + if (!empty($item['children'])) + { + echo ''; + } + + echo ''; + if (!empty($item['children'])) { $level = ''; @@ -53,6 +71,7 @@ class NavigationMenuWidget extends Widget self::printNavItem($child, ++$depth); echo ''; } + echo '
  • '; } }