Select Git revision
ViewController.php
-
Tim Steiner authoredTim Steiner authored
ViewController.php 3.52 KiB
<?php
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;
$course = $session->course;
$parentCourse = $session->parentCourse;
if ($request->getId()) {
$initialRequest = false;
} else {
$initialRequest = true;
}
$preview = true;
} else {
$request = Requests_RequestModel::find($requestId);
$course = Courses_CourseModel::findLatestOfRequest($request);
$parentCourse = null;
if (in_array($request->getType(), array('ChangeCourse', 'AddACEAndChangeCourse'))) {
$parentCourse = Courses_CourseModel::findParentOfRequest($request);
}
$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);
$user = Auth_UserModel::findCurrentUser();
$this->view->request = $request;
$this->view->course = $course;
$this->view->parentCourse = $parentCourse;
$this->view->comments = $comments;
$this->view->user = $user;
$this->view->initialRequest = $initialRequest;
$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) {
$this->view->selectedCommentTab = $session->tabName;
} else {
$this->view->selectedCommentTab = 'commentsTab';
}
}
public function setCommentTabAction()
{
$tabName = $this->getRequest()->getParam('tabName');
$session = new Zend_Session_Namespace(__CLASS__);
$session->tabName = $tabName;
exit;
}
protected function _getFutureTerms()
{
$now = new Zend_Date();
$month = $now->get(Zend_Date::MONTH);
$thisYear = $now->get(Zend_Date::YEAR);
$nextYear = $thisYear + 1;
$terms = array();
if ($month < 3) {
$terms[$thisYear . '3'] = 'Summer ' . $thisYear;
}
if ($month < 8) {
$terms[$nextYear . '1'] = 'Fall ' . $thisYear;
}
for ($year = $nextYear; $year < $thisYear + 5; $year++) {
$terms[$year . '2'] = 'Spring ' . $year;
$terms[$year . '3'] = 'Summer ' . $year;
$terms[($year + 1) . '1'] = 'Fall ' . ($year + 1);
}
return $terms;
}
}