summaryrefslogtreecommitdiffstats
path: root/application/modules/user/controllers/FilterController.php
diff options
context:
space:
mode:
authorSimon2011-03-19 18:11:02 +0100
committerSimon2011-03-19 18:11:02 +0100
commitf17ab652a06ee8c186938647d7dec1d59113dc42 (patch)
tree8e6c9b8ee9c50e2d52076eb6e0f96d8102a58576 /application/modules/user/controllers/FilterController.php
parentFilter funktioniert nun, FBGui IndexController angepasst (diff)
downloadpbs2-f17ab652a06ee8c186938647d7dec1d59113dc42.tar.gz
pbs2-f17ab652a06ee8c186938647d7dec1d59113dc42.tar.xz
pbs2-f17ab652a06ee8c186938647d7dec1d59113dc42.zip
Jeder Filter muss immer einen FilterType mit Gruppe haben
Diffstat (limited to 'application/modules/user/controllers/FilterController.php')
-rw-r--r--application/modules/user/controllers/FilterController.php72
1 files changed, 59 insertions, 13 deletions
diff --git a/application/modules/user/controllers/FilterController.php b/application/modules/user/controllers/FilterController.php
index 3a14865..fd1b1a3 100644
--- a/application/modules/user/controllers/FilterController.php
+++ b/application/modules/user/controllers/FilterController.php
@@ -74,7 +74,15 @@ class User_FilterController extends Zend_Controller_Action
$newfilter->setGroupID($this->membership->getGroupID());
$newfilter->setMembershipID($this->membership->getID());
$newfilter2 = new Application_Model_FilterMapper();
- $newfilter2->save($newfilter);
+ $id = $newfilter2->save($newfilter);
+
+ $filterentriesMapper = new Application_Model_FilterEntriesMapper();
+ $filterentry = new Application_Model_FilterEntries();
+ $filterentry->setFilterID($id);
+ $filterentry->setFiltertypeID(6);
+ $filterentry->setFiltervalue($this->membership->getGroupID());
+ $filterentriesMapper->save($filterentry);
+
$this->_redirect('/user/filter/index/addresult/ok');
}catch (Zend_Exception $e) {
echo "Error message 2: " . $e->getMessage() . "\n";
@@ -237,7 +245,6 @@ class User_FilterController extends Zend_Controller_Action
$filterentry->setFiltertypeID($_POST['filtertypeID']) ;
}
$data = $filterentry->toArray();
- # print_a($data);
$editfilterform = new user_Form_FilterEntry(
array('buttontext' => 'Edit Filterentry',
'data' => $data));
@@ -255,7 +262,7 @@ class User_FilterController extends Zend_Controller_Action
} else{
try{
$filterentriesID = $this->_request->getParam('filterentriesID');
- $editfilterform = new user_Form_FilterEntry(array('buttontext' => 'Edit Filterentry'),$_POST);
+ $editfilterform = new user_Form_FilterEntry(array('buttontext' => 'Edit Filterentry','data' => $_POST),$_POST);
if ($editfilterform->isValid($_POST)) {
$filterentry = new Application_Model_FilterEntries();
$filterentriesmapper = new Application_Model_FilterEntriesMapper();
@@ -265,9 +272,10 @@ class User_FilterController extends Zend_Controller_Action
$filter = new Application_Model_Filter();
$filterMapper->find($filterentry->getFilterID(),$filter);
- if($filter->getGroupID() == $this->membership->getGroupID()){
+ if($filter->getGroupID() == $this->membership->getGroupID()){
if($_POST['filterID'] == '')
unset($_POST['filterID']);
+
$newfilterenty = new Application_Model_FilterEntries($_POST);
$newfilterenty->setID($filterentriesID);
if($_POST['filtertypeID'] == 1){
@@ -278,9 +286,30 @@ class User_FilterController extends Zend_Controller_Action
$newfilterenty->setFiltervalue($_POST['filtervalue']);
$newfilterenty->setFiltervalue2($_POST['filtervalue2']);
}
- $newfilter2 = new Application_Model_FilterEntriesMapper();
- $newfilter2->save($newfilterenty);
- $this->_redirect('/user/filter/index/modifyresult/ok');
+
+ // check if it's the last groupID filterentry
+ $allFilters = $filterentriesmapper->findBy('filterID',$filterentry->getFilterID());
+ #print_a($allFilters);
+ $lastfilter = true;
+ foreach($allFilters as $thisFilterentry){
+ if($thisFilterentry['filtertypeID'] == 6 && $thisFilterentry['filterentriesID'] != $filterentriesID){
+ // one other filter with a groupID exists
+ $lastfilter = false;
+ }
+ if($newfilterenty->getFiltertypeID() == 6){
+ // this filter will be a GroupFilter
+ $lastfilter = false;
+ }
+ }
+ if($lastfilter){
+ $pbsNotifier = new Pbs_Notifier();
+ echo $pbsNotifier->notify('You cannot modify the last GroupFilter','forbidden');
+ }
+ else{
+ $newfilter2 = new Application_Model_FilterEntriesMapper();
+ $newfilter2->save($newfilterenty);
+ $this->_redirect('/user/filter/index/modifyresult/ok');
+ }
}
else{
$this->_redirect('/user/filter/index/modifyresult/forbidden');
@@ -309,14 +338,31 @@ class User_FilterController extends Zend_Controller_Action
$filterMapper->find($filterID,$filter);
if($filter->getGroupID() == $this->membership->getGroupID()){
- try{
+ try{
$deletefilterentry = new Application_Model_FilterEntries();
$deletefilterentry->setID($filterentriesID);
-
- $filterentriesmapper = new Application_Model_FilterEntriesMapper();
- $filterentriesmapper->delete($deletefilterentry);
- $this->_redirect('/user/filter/index/deleteresult/ok');
-
+
+ // check if it's the last groupID filterentry
+ $allFilters = $filterentriesmapper->findBy('filterID',$filterID);
+ $lastfilter = true;
+ foreach($allFilters as $thisFilterentry){
+ if($thisFilterentry['filtertypeID'] == 6 && $thisFilterentry['filterentriesID'] != $filterentriesID){
+ // one other filter with a groupID exists
+ $lastfilter = false;
+ }
+ if($deletefilterentry->getFiltertypeID() == 6){
+ // this filter will be a GroupFilter
+ $lastfilter = false;
+ }
+ }
+ if($lastfilter){
+ $this->_redirect('/user/filter/index/deleteresult/forbidden');
+ }
+ else{
+ $filterentriesmapper = new Application_Model_FilterEntriesMapper();
+ $filterentriesmapper->delete($deletefilterentry);
+ $this->_redirect('/user/filter/index/deleteresult/ok');
+ }
}catch (Zend_Exception $e) {
echo "Error message 2: " . $e->getMessage() . "\n";
$this->_redirect('/user/filter/index/deleteresult/error');