From 8b54ae5c3d179d542b17e6abae0e8fc9f94bb87d Mon Sep 17 00:00:00 2001
From: Tim Steiner <tsteiner2@unl.edu>
Date: Thu, 23 Aug 2007 13:05:20 +0000
Subject: [PATCH] Allow saving requests to an array in the session

---
 application/controllers/HomeController.php    |  2 +
 application/controllers/RequestController.php | 26 ++++++++---
 application/views/home.xhtml                  | 43 +++++++++++++++++++
 3 files changed, 66 insertions(+), 5 deletions(-)

diff --git a/application/controllers/HomeController.php b/application/controllers/HomeController.php
index 33ac2d2f..00e6b45f 100644
--- a/application/controllers/HomeController.php
+++ b/application/controllers/HomeController.php
@@ -19,6 +19,8 @@ class HomeController extends Nmc_Controller_Action
         $out->user = $user;
         $out->roles = $roles;
         $out->myRequests = $requests;
+        $out->savedRequests = Nmc_Registry_Session::getInstance()->savedRequests;
+        $out->savedCourses = Nmc_Registry_Session::getInstance()->savedCourses;
         $out->page = 'home';
         $out->tagline = 'My Requests';
 
diff --git a/application/controllers/RequestController.php b/application/controllers/RequestController.php
index 9c7b0894..1c5a4336 100755
--- a/application/controllers/RequestController.php
+++ b/application/controllers/RequestController.php
@@ -115,9 +115,11 @@ class RequestController extends Nmc_Controller_Action
         $in = $this->getRequest();
         $requestId = $in->getParam(0);
 
-        if ($requestId == 'saved') {
-            $course = Nmc_Registry_Session::getInstance()->savedCourse;
-            $request = Nmc_Registry_Session::getInstance()->savedRequest;
+        if (strtolower($requestId) == 'saved') {
+            $requestId = $in->getParam(1);
+            $requestId = Zend_Filter_Int::filter($requestId);
+            $course = Nmc_Registry_Session::getInstance()->savedCourses[$requestId];
+            $request = Nmc_Registry_Session::getInstance()->savedRequests[$requestId];
         } else {
             $requestId = Zend_Filter_Int::filter($requestId);
             $request = Requests::getInstance()->findOne($requestId);
@@ -724,8 +726,22 @@ class RequestController extends Nmc_Controller_Action
         $course = Nmc_Registry_Session::getInstance()->course;
         $request = Nmc_Registry_Session::getInstance()->request;
 
-        Nmc_Registry_Session::getInstance()->savedCourse = $course;
-        Nmc_Registry_Session::getInstance()->savedRequest = $request;
+        if (!is_array(Nmc_Registry_Session::getInstance()->savedCourses)) {
+            Nmc_Registry_Session::getInstance()->savedCourses = array();
+        }
+        if (!is_array(Nmc_Registry_Session::getInstance()->savedRequests)) {
+            Nmc_Registry_Session::getInstance()->savedRequests = array();
+        }
+
+
+        Nmc_Registry_Session::getInstance()->savedCourses = array_merge(
+            Nmc_Registry_Session::getInstance()->savedCourses,
+            array($course)
+        );
+        Nmc_Registry_Session::getInstance()->savedRequests = array_merge(
+            Nmc_Registry_Session::getInstance()->savedRequests,
+            array($request)
+        );
 
         Nmc_Registry_Session::getInstance()->erase('course');
         Nmc_Registry_Session::getInstance()->erase('request');
diff --git a/application/views/home.xhtml b/application/views/home.xhtml
index 33a29394..bb6b9957 100755
--- a/application/views/home.xhtml
+++ b/application/views/home.xhtml
@@ -38,6 +38,49 @@ function MM_swapImage() { //v3.0
         Welcome to Curriculum Action Request.  Items in your activity basket indicate.....    </div>
 </div>
 
+<?php if(count($this->savedRequests) > 0) { ?>
+<div id="activity" class="titled_box">
+    <div class="box_shadow_2">
+        <div class="tr"></div>
+        <div class="tl">
+            <h2>Saved Requests</h2>
+            <h3><em></em></h3>
+      </div>
+      <div class="bl"></div>
+    </div>
+    <div class="content">
+        <table class="course_list">
+            <tr>
+                <th id="check">&#160;</th>
+                <th id="course">Course</th>
+                <th id="college">College</th>
+                <th id="type">Type</th>
+                <th id="view_edit">View/Edit</th>
+            </tr>
+            <?php
+            $row = 0;
+            foreach($this->savedRequests as $savedId => $request) {
+                $course = $this->savedCourses[$savedId];
+            ?>
+            <tr <?php echo (++$row % 2 ? 'class="odd"' : ''); ?>>
+                <td><input type="checkbox" /></td>
+                <td><?php echo $course->subject . ' '
+                             . $course->courseNumber
+                             . $course->courseLetter; ?></td>
+                <td>NONC</td>
+                <td><?php echo $request->type->name; ?></td>
+                <td>
+                <td>
+                    <a href="/Request/Load/Saved/<?php echo $savedId; ?>">Edit</a>
+                </td>
+            </tr>
+            <?php } ?>
+        </table>
+    </div>
+</div>
+<?php } ?>
+
+
 <div id="activity" class="titled_box">
     <div class="box_shadow_2">
         <div class="tr"></div>
-- 
GitLab