summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.zfproject.xml1
-rw-r--r--application/modules/user/controllers/PersonController.php103
-rw-r--r--application/modules/user/views/scripts/person/owndetails.phtml39
-rw-r--r--application/modules/user/views/scripts/person/show.phtml28
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'>&nbsp;</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'>&nbsp;</div>
+ <?php
+ }
+ ?></div>
+</div>
+ <?php
+}
+?></div>
+<?php
+}
?> \ No newline at end of file