Select Git revision
ViewController.php
-
Tim Steiner authoredTim Steiner authored
ViewController.php 3.59 KiB
<?php
class Courses_ViewController extends App_Controller_Action
{
public function indexAction()
{
$requestId = $this->getRequest()->getParam('id');
$myRequestSession = new Zend_Session_Namespace('My Requests');
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.
$roleId = $myRequestSession->lastRoleId;
$list = $myRequestSession->lastList;
if ($roleId) {
$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;
$this->view->canEdit = in_array($request->getId(), $myRequestSession->editableRequests);
$session = new Zend_Session_Namespace(__CLASS__);
if ($session->tabName) {
$this->view->selectedCommentTab = $session->tabName;
} else {
$this->view->selectedCommentTab = 'commentsTab';