From 5fe18df3ba79acf95646fc92297c97cb0c75eecd Mon Sep 17 00:00:00 2001 From: Tim Steiner <tsteiner2@unl.edu> Date: Fri, 27 Jun 2008 15:30:52 +0000 Subject: [PATCH] Basic sorting of requests on My Requests page re-added. --- .../requests/controllers/IndexController.php | 28 +++++++++++++++++++ .../requests/views/scripts/index/index.phtml | 24 ++++++++-------- 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/application/modules/requests/controllers/IndexController.php b/application/modules/requests/controllers/IndexController.php index 47a62c3c..9f6b67f9 100644 --- a/application/modules/requests/controllers/IndexController.php +++ b/application/modules/requests/controllers/IndexController.php @@ -17,6 +17,7 @@ class Requests_IndexController extends App_Controller_Action public function indexAction() { $this->_authorize->requireLogin(); + $in = $this->getRequest()->getParams(); $user = Auth_UserModel::findCurrentUser(); $userRoles = Requests_ApprovalRoleModel::findByUser($user); @@ -45,6 +46,7 @@ class Requests_IndexController extends App_Controller_Action $savedRequests = array(); } + $sortKeys = array(); $userRequestsData = array(); foreach ($userRequests as $requestId => $userRequest) { @@ -62,8 +64,16 @@ class Requests_IndexController extends App_Controller_Action if ($requestVotes[$requestId] instanceof Requests_ApproverVoteModel) { $request['vote'] = $requestVotes[$requestId]; } + if ($in['sortBy'] == 'courseCode') { + $sortKeys[] = $request['currentCourse']->getCourseCode(); + } else if ($in['sortBy'] == 'college') { + $sortKeys[] = $request['currentCourse']->getCollege(); + } else if ($in['sortBy'] == 'requestType') { + $sortKeys[] = $request['request']->getType(); + } $userRequestsData[] = $request; } + array_multisort($sortKeys, $userRequestsData); $roleData = array(); foreach ($userRoles as $roleId => $userRole) { @@ -72,6 +82,7 @@ class Requests_IndexController extends App_Controller_Action $role['requests'] = array(); if (Unl_Util::isArray($roleRequests[$roleId])) { + $sortKeys = array(); foreach($roleRequests[$roleId] as $requestId => $roleRequest) { $request = array(); $request['request'] = $roleRequest; @@ -87,11 +98,20 @@ class Requests_IndexController extends App_Controller_Action if ($requestVotes[$requestId] instanceof Requests_ApproverVoteModel) { $request['vote'] = $requestVotes[$requestId]; } + if ($in['sortBy'] == 'courseCode') { + $sortKeys[] = $request['currentCourse']->getCourseCode(); + } else if ($in['sortBy'] == 'college') { + $sortKeys[] = $request['currentCourse']->getCollege(); + } else if ($in['sortBy'] == 'requestType') { + $sortKeys[] = $request['request']->getType(); + } $role['requests'][] = $request; } + array_multisort($sortKeys, $role['requests']); } if (Unl_Util::isArray($watchingRequests[$roleId])) { + $sortKeys = array(); foreach($watchingRequests[$roleId] as $requestId => $watchingRequest) { $request = array(); $request['request'] = $watchingRequest; @@ -104,8 +124,16 @@ class Requests_IndexController extends App_Controller_Action } else { $request['viewTime'] = 0; } + if ($in['sortBy'] == 'courseCode') { + $sortKeys[] = $request['currentCourse']->getCourseCode(); + } else if ($in['sortBy'] == 'college') { + $sortKeys[] = $request['currentCourse']->getCollege(); + } else if ($in['sortBy'] == 'requestType') { + $sortKeys[] = $request['request']->getType(); + } $role['watchingRequests'][] = $request; } + array_multisort($sortKeys, $role['watchingRequests']); } $roleData[] = $role; } diff --git a/application/modules/requests/views/scripts/index/index.phtml b/application/modules/requests/views/scripts/index/index.phtml index c5d7a0af..1fe31dde 100644 --- a/application/modules/requests/views/scripts/index/index.phtml +++ b/application/modules/requests/views/scripts/index/index.phtml @@ -48,9 +48,9 @@ <table class="course_list"> <tr> <!-- th id="check"> </th --> - <th id="course">Course</th> - <th id="college">College</th> - <th id="type">Type</th> + <th class="course"><a href="<?php echo $this->url(array('sortBy' => 'courseCode')); ?>">Course</a></th> + <th class="college"><a href="<?php echo $this->url(array('sortBy' => 'college')); ?>">College</a></th> + <th class="type"><a href="<?php echo $this->url(array('sortBy' => 'requestType')); ?>">Type</a></th> <th id="view_edit">View/Edit</th> </tr> <?php @@ -112,9 +112,9 @@ <table class="course_list"> <tr> <!-- th id="check"> </th --> - <th id="course"><a href="#">Course</a></th> - <th id="college"><a href="#">College</a></th> - <th id="type"><a href="#">Type</a></th> + <th id="course"><a href="<?php echo $this->url(array('sortBy' => 'courseCode')); ?>">Course</a></th> + <th id="college"><a href="<?php echo $this->url(array('sortBy' => 'college')); ?>">College</a></th> + <th id="type"><a href="<?php echo $this->url(array('sortBy' => 'requestType')); ?>">Type</a></th> <th id="approval_body">Approval Body</th> <th id="status">Status</th> <th id="view_edit">View/Edit</th> @@ -249,9 +249,9 @@ foreach($this->roles as $roleData) { <table class="course_list"> <tr> <!-- th id="check"> </th --> - <th class="course"><a href="#">Course</a></th> - <th class="college"><a href="#">College</a></th> - <th class="type"><a href="#">Type</a></th> + <th class="course"><a href="<?php echo $this->url(array('sortBy' => 'courseCode')); ?>">Course</a></th> + <th class="college"><a href="<?php echo $this->url(array('sortBy' => 'college')); ?>">College</a></th> + <th class="type"><a href="<?php echo $this->url(array('sortBy' => 'requestType')); ?>">Type</a></th> <th class="pending_action">Pending Action</th> <th class="status">Status</th> <th class="view_edit">View/Edit</th> @@ -358,9 +358,9 @@ foreach($this->roles as $roleData) { <table class="course_list"> <tr> <!-- th id="check"> </th --> - <th class="course">Course</th> - <th class="college">College</th> - <th class="type">Type</th> + <th class="course"><a href="<?php echo $this->url(array('sortBy' => 'courseCode')); ?>">Course</a></th> + <th class="college"><a href="<?php echo $this->url(array('sortBy' => 'college')); ?>">College</a></th> + <th class="type"><a href="<?php echo $this->url(array('sortBy' => 'requestType')); ?>">Type</a></th> <th class="approval_body">Approval Body</th> <th class="status">Status</th> <th class="view_edit">View/Edit</th> -- GitLab