From e7a35999236923eda22facdb52a17be9aa104994 Mon Sep 17 00:00:00 2001
From: Tim Steiner <tsteiner2@unl.edu>
Date: Thu, 6 Sep 2007 17:08:34 +0000
Subject: [PATCH] Add prev/next links to bottom of request view screen.

---
 application/controllers/HomeController.php    |  8 ++++++++
 application/controllers/RequestController.php | 18 ++++++++++++++++++
 application/views/request/view.xhtml          |  6 ++++++
 document_root/css/request/view.oss            |  7 +++++++
 4 files changed, 39 insertions(+)

diff --git a/application/controllers/HomeController.php b/application/controllers/HomeController.php
index b43b6e94..15efab75 100644
--- a/application/controllers/HomeController.php
+++ b/application/controllers/HomeController.php
@@ -77,6 +77,14 @@ class HomeController extends Nmc_Controller_Action
             $rolesData[] = $roleData;
         }
 
+        $requestOrder = array();
+        foreach($rolesData as $roleData) {
+            foreach($roleData['requests'] as $request) {
+                $requestOrder[] = $request->getPrimaryKey();
+            }
+        }
+        Nmc_Registry_Session::getInstance('requests')->order = $requestOrder;
+
         $out = new Application_View();
         $out->user = $user;
         $out->roles = $rolesData;
diff --git a/application/controllers/RequestController.php b/application/controllers/RequestController.php
index bfdda601..a50b0723 100755
--- a/application/controllers/RequestController.php
+++ b/application/controllers/RequestController.php
@@ -165,12 +165,30 @@ class RequestController extends Nmc_Controller_Action
         $time = new Zend_Date();
         RequestViewTimes::getInstance()->setViewTimeForUserAndRequest($user, $request, $time);
 
+        $requestOrder = Nmc_Registry_Session::getInstance('requests')->order;
+        $currentRequestIndex = array_search($request->getPrimaryKey(), $requestOrder);
+        if ($currentRequestIndex !== false) {
+            $nextRequestId = $requestOrder[$currentRequestIndex+1];
+            $prevRequestId = $requestOrder[$currentRequestIndex-1];
+
+            if ($currentRequestIndex == 0) {
+                $prevRequestId = -1;
+            } else if ($currentRequestIndex == count($requestOrder)) {
+                $nextRequestId = -1;
+            }
+        } else {
+            $nextRequestId = -1;
+            $prevRequestId = -1;
+        }
+
         $view = new Application_View();
         $view->page = 'request/view';
         $view->request = $request;
         $view->currentGeneration = $currentGeneration;
         $view->proposedGeneration = $proposedGeneration;
         $view->comments = $comments;
+        $view->nextRequestId = $nextRequestId;
+        $view->prevRequestId = $prevRequestId;
         $view->tagline = 'View Request';
         $view->addHelperPath(APPLICATION_PATH . '/library/View/Helper', 'Application_View_Helper');
 
diff --git a/application/views/request/view.xhtml b/application/views/request/view.xhtml
index 472ad49b..a3d2a1a8 100644
--- a/application/views/request/view.xhtml
+++ b/application/views/request/view.xhtml
@@ -154,6 +154,12 @@
             </form>
         </div>
     </div>
+    <?php if ($this->prevRequestId > 0) { ?>
+    <a id="prevRequestLink" href="/Request/View/<?php echo $this->prevRequestId; ?>">&lt;--Prev</a>
+    <?php } ?>
+    <?php if ($this->nextRequestId > 0) { ?>
+    <a id="nextRequestLink" href="/Request/View/<?php echo $this->nextRequestId; ?>">Next--&gt;</a>
+    <?php } ?>
     <?php } ?>
 
     <div class="clear"></div>
diff --git a/document_root/css/request/view.oss b/document_root/css/request/view.oss
index 06f55f1b..ba4e361b 100644
--- a/document_root/css/request/view.oss
+++ b/document_root/css/request/view.oss
@@ -94,3 +94,10 @@ div#comments {
         display: none;
     }
 }
+
+#prevRequestLink {
+    float: left;
+}
+#nextRequestLink {
+    float: right;
+}
\ No newline at end of file
-- 
GitLab