diff options
-rw-r--r-- | .zfproject.xml | 1 | ||||
-rw-r--r-- | application/modules/user/controllers/PersonController.php | 103 | ||||
-rw-r--r-- | application/modules/user/views/scripts/person/owndetails.phtml | 39 | ||||
-rw-r--r-- | application/modules/user/views/scripts/person/show.phtml | 28 |
4 files changed, 150 insertions, 21 deletions
diff --git a/.zfproject.xml b/.zfproject.xml index 93c6784..b90455d 100644 --- a/.zfproject.xml +++ b/.zfproject.xml @@ -125,6 +125,7 @@ <actionMethod actionName="changemembership"/> <actionMethod actionName="owndetails"/> <actionMethod actionName="show"/> + <actionMethod actionName="deleterequest"/> </controllerFile> <controllerFile controllerName="Group"> <actionMethod actionName="index"/> diff --git a/application/modules/user/controllers/PersonController.php b/application/modules/user/controllers/PersonController.php index 7511233..bbdf232 100644 --- a/application/modules/user/controllers/PersonController.php +++ b/application/modules/user/controllers/PersonController.php @@ -2,13 +2,21 @@ class user_PersonController extends Zend_Controller_Action { + protected $person = null; + protected $personmapper = null; + protected $membershipMapper = null; + protected $memberships = null; + protected $groupMapper = null; + protected $groups = null; + protected $groupRequestMapper = null; + protected $userIDsNamespace = null; public function init() @@ -31,10 +39,10 @@ class user_PersonController extends Zend_Controller_Action foreach($this->memberships as $membership) { $group = $this->groupMapper->find($membership['groupID']); $this->groups[] = array ( - 'groupID' => $group->getID(), - 'title' => $group->getTitle(), - 'description' => $group->getDescription(), - 'membershipID' => $membership['membershipID'] + 'groupID' => $group->getID(), + 'title' => $group->getTitle(), + 'description' => $group->getDescription(), + 'membershipID' => $membership['membershipID'] ); } } @@ -88,6 +96,19 @@ class user_PersonController extends Zend_Controller_Action # $this->_redirect('/user'); #} $this->view->person = $this->person; + $groupRequests = $this->groupRequestMapper->findBy(array('personID' => $this->person->getID()),true); + if(isset($groupRequests)) { + foreach($groupRequests as $groupRequest) { + $group = $this->groupMapper->find($groupRequest['groupID']); + $groupRequestList[] = array( + 'grouprequestID' => $groupRequest['grouprequestID'], + 'group' => $group + ); + } + if(is_array($groupRequestList)) { + $this->view->groupRequestList = $groupRequestList; + } + } // Pagination $pagination = new Pbs_Pagination(); $pagination->setPerPage(3); @@ -217,13 +238,21 @@ class user_PersonController extends Zend_Controller_Action $date = new DateTime(); $groupRequest->setTime($date->getTimestamp()); $groupRequest->setPersonID($this->person->getID()); - try { - $groupRequestMapper->save($groupRequest); - } catch(Zend_Exception $e) - { - echo "Caught exception: " . get_class($e) . "<br/>"; - echo "Message: " . $e->getMessage() . "<br/>"; - return; + foreach($groupRequests as $groupRequestDB) { + if($groupRequestDB['groupID'] == $groupRequest->getGroupID()) { + $requestFound = true; + break; + } + } + if(!$requestFound) { + try { + $groupRequestMapper->save($groupRequest); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } } $this->_helper->redirector('owndetails', 'person'); return; @@ -279,9 +308,9 @@ class user_PersonController extends Zend_Controller_Action $group = $groupMapper->find($membership['groupID']); $role = $roleMapper->find($membership['roleID']); $membershipList[] = array( - 'membershipID' => $membership['membershipID'], - 'group' => $group->getTitle(), - 'role' => $role->getTitle() + 'membershipID' => $membership['membershipID'], + 'group' => $group->getTitle(), + 'role' => $role->getTitle() ); } } @@ -302,7 +331,8 @@ class user_PersonController extends Zend_Controller_Action return; } - public function searchAction(){ + public function searchAction() + { if(!Pbs_Acl::checkRight('pso')) { $this->_redirect('/user'); } @@ -322,15 +352,27 @@ class user_PersonController extends Zend_Controller_Action foreach($memberships as $membership) { $group = $this->groupMapper->find($membership['groupID']); $groups[] = array ( - 'groupID' => $group->getID(), - 'title' => $group->getTitle(), - 'description' => $group->getDescription(), - 'membershipID' => $membership['membershipID'] + 'groupID' => $group->getID(), + 'title' => $group->getTitle(), + 'description' => $group->getDescription(), + 'membershipID' => $membership['membershipID'] ); } } $this->view->person = $person; - + $groupRequests = $this->groupRequestMapper->findBy(array('personID' => $person->getID()),true); + if(isset($groupRequests)) { + foreach($groupRequests as $groupRequest) { + $group = $this->groupMapper->find($groupRequest['groupID']); + $groupRequestList[] = array( + 'grouprequestID' => $groupRequest['grouprequestID'], + 'group' => $group + ); + } + if(is_array($groupRequestList)) { + $this->view->groupRequestList = $groupRequestList; + } + } // Pagination $pagination = new Pbs_Pagination(); $pagination->setPerPage(2); @@ -350,4 +392,23 @@ class user_PersonController extends Zend_Controller_Action return; } } -}
\ No newline at end of file + + public function deleterequestAction() + { + $grouprequestID = $this->_request->getParam('grouprequestID'); + $grouprequest = $this->groupRequestMapper->find($grouprequestID); + try { + $this->groupRequestMapper->delete($grouprequest); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_helper->redirector('owndetails', 'person'); + return; + } + + +} + diff --git a/application/modules/user/views/scripts/person/owndetails.phtml b/application/modules/user/views/scripts/person/owndetails.phtml index 8f91cfd..ac96d25 100644 --- a/application/modules/user/views/scripts/person/owndetails.phtml +++ b/application/modules/user/views/scripts/person/owndetails.phtml @@ -105,4 +105,43 @@ $class= 'highlight checked'; </div> <?php endforeach ?></div> <?php echo $this->pagination; + if(isset($this->groupRequestList)) { + ?> +<br /> +<h2>Requests:</h2> +<div class='listelement'><?php +foreach($this->groupRequestList as $grouprequest) { + $grouprequestID = $grouprequest['grouprequestID']; + $group = $grouprequest['group']; + ?> +<div class='element'> +<div class='content'> +<div class='actions'><a + href="<?php echo $this->url( + array( + 'module' => 'user', + 'controller' => 'person', + 'action' => 'deleterequest', + 'grouprequestID' => $grouprequestID + ), + 'default', + true) ?>"> <img src='/media/img/delete.png' alt='Delete Request' /></a> +</div> +<div class='title'><?php echo $group->getTitle(); ?></div> + <?php if($group->getDescription()) { + ?> +<div class='subtitle'><?php echo $group->getDescription(); ?></div> + <?php + } else { + ?> +<div class='subtitle'> </div> + <?php + } + ?></div> +</div> + <?php +} +?></div> +<?php + } ?>
\ No newline at end of file diff --git a/application/modules/user/views/scripts/person/show.phtml b/application/modules/user/views/scripts/person/show.phtml index 5fb4bde..c43bde3 100644 --- a/application/modules/user/views/scripts/person/show.phtml +++ b/application/modules/user/views/scripts/person/show.phtml @@ -93,4 +93,32 @@ $class= 'highlight checked'; </div> <?php endforeach ?></div> <?php echo $this->pagination; +if(isset($this->groupRequestList)) { + ?> +<br /> +<h2>Requests:</h2> +<div class='listelement'><?php +foreach($this->groupRequestList as $grouprequest) { + $grouprequestID = $grouprequest['grouprequestID']; + $group = $grouprequest['group']; + ?> +<div class='element'> +<div class='content'> +<div class='title'><?php echo $group->getTitle(); ?></div> + <?php if($group->getDescription()) { + ?> +<div class='subtitle'><?php echo $group->getDescription(); ?></div> + <?php + } else { + ?> +<div class='subtitle'> </div> + <?php + } + ?></div> +</div> + <?php +} +?></div> +<?php +} ?>
\ No newline at end of file |