Skip to content
Snippets Groups Projects
Commit b36c5497 authored by Tim Steiner's avatar Tim Steiner
Browse files

Request viewing now has previous and next links (again)

parent 73053e39
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,7 @@ class Courses_ViewController extends App_Controller_Action
public function indexAction()
{
$requestId = $this->getRequest()->getParam('id');
$roleId = $this->getRequest()->getParam('role');
if ($requestId == 'session') {
$session = new Zend_Session_Namespace('Edit Request');
$request = $session->request;
......@@ -26,6 +27,24 @@ class Courses_ViewController extends App_Controller_Action
}
$initialRequest = false;
$preview = false;
// if we can know our role, we can create next and prev links.
if ($roleId) {
$list = $this->getRequest()->getParam('list');
$myRequestSession = new Zend_Session_Namespace('My Requests');
$requestOrder = $myRequestSession->requestOrder[$roleId][$list];
$listPosition = array_search($request->getId(), $requestOrder);
if ($listPosition == 0) {
$prevRequestId = $requestOrder[count($requestOrder) - 1];
} else {
$prevRequestId = $requestOrder[$listPosition - 1];
}
if ($listPosition == count($requestOrder) - 1) {
$nextRequestId = $requestOrder[0];
} else {
$nextRequestId = $requestOrder[$listPosition + 1];
}
}
}
$comments = Requests_CommentsModel::findByRequest($request);
......@@ -40,6 +59,8 @@ class Courses_ViewController extends App_Controller_Action
$this->view->preview = $preview;
$this->view->terms = $this->_getFutureTerms();
$this->view->isRequestValid = $course->isValid() && $request->isValid();
$this->view->prevRequestId = $prevRequestId;
$this->view->nextRequestId = $nextRequestId;
$session = new Zend_Session_Namespace(__CLASS__);
if ($session->tabName) {
......
......@@ -283,10 +283,10 @@
</div>
</div>
<?php if ($this->prevRequestId > 0) { ?>
<a id="prevRequestLink" href="/Request/View/<?php echo $this->prevRequestId; ?>">&lt;--Prev</a>
<a id="prevRequestLink" href="<?php echo $this->url(array('id' => $this->prevRequestId)); ?>">&lt;--Prev</a>
<?php } ?>
<?php if ($this->nextRequestId > 0) { ?>
<a id="nextRequestLink" href="/Request/View/<?php echo $this->nextRequestId; ?>">Next--&gt;</a>
<a id="nextRequestLink" href="<?php echo $this->url(array('id' => $this->nextRequestId)); ?>">Next--&gt;</a>
<?php } ?>
<?php } ?>
......
......@@ -178,6 +178,24 @@ class Requests_IndexController extends App_Controller_Action
$this->view->roles = $roleData;
$this->view->user = $user;
$this->view->userRequests = $userRequestsData;
// save the order of requests to the session so we can have next/previous links on other pages.
$session = new Zend_Session_Namespace('My Requests');
$session->requestOrder = array();
foreach ($roleData as $role) {
$roleId = $role['role']->getId();
$session->requestOrder[$roleId] = array();
$session->requestOrder[$roleId]['normal'];
foreach ($role['requests'] as $request) {
$requestId = $request['request']->getId();
$session->requestOrder[$roleId]['normal'][] = $requestId;
}
$session->requestOrder[$roleId]['watching'];
foreach ($role['watchingRequests'] as $request) {
$requestId = $request['request']->getId();
$session->requestOrder[$roleId]['watching'][] = $requestId;
}
}
}
public function decidePostAction()
......
......@@ -6,10 +6,20 @@ class Requests_ViewController extends App_Controller_Action
public function indexAction()
{
$id = $this->getRequest()->getParam('id');
$roleId = $this->getRequest()->getParam('role');
$list = $this->getRequest()->getParam('list');
$request = Requests_RequestModel::find($id);
$module = $request->getModule();
$redirectUrl = Zend_Controller_Action::getFrontController()->getBaseUrl()
. '/' . $module . '/view/index/id/' . $id;
if ($roleId) {
$redirectUrl .= '/role/' . $roleId;
}
if ($list) {
$redirectUrl .= '/list/' . $list;
}
$this->getResponse()->setRedirect($redirectUrl);
}
......
......@@ -321,7 +321,7 @@ foreach($this->roles as $roleData) {
*/ ?>
<a class="requestLink<?php echo $linkClass; ?>"
href="<?php echo $this->baseUrl(); ?>/requests/view/index/id/<?php echo $request->getId(); ?>">
href="<?php echo $this->baseUrl(); ?>/requests/view/index/id/<?php echo $request->getId(); ?>/role/<?php echo $role->getId(); ?>/list/normal">
View
</a>
<?php if ($request->isEditable()) { ?>
......@@ -399,10 +399,7 @@ foreach($this->roles as $roleData) {
?>
</td>
<td>
<a href="<?php echo $this->baseUrl(); ?>/requests/view/index/id/<?php echo $request->getId(); ?>">View</a>
<!-- /
<a href="<?php echo $this->baseUrl(); ?>/requests/edit/load/id/<?php echo $request->getId(); ?>">Edit</a>
-->
<a href="<?php echo $this->baseUrl(); ?>/requests/view/index/id/<?php echo $request->getId(); ?>/role/<?php echo $role->getId(); ?>/list/watching">View</a>
</td>
<td>
<?php
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment