diff --git a/application/controllers/RequestController.php b/application/controllers/RequestController.php index 821a3b072e1ddc37a8698304c5863056911af086..4c8c3652068311695c575190589a8ee9971bf901 100755 --- a/application/controllers/RequestController.php +++ b/application/controllers/RequestController.php @@ -166,7 +166,7 @@ class RequestController extends Nmc_Controller_Action RequestViewTimes::getInstance()->setViewTimeForUserAndRequest($user, $request, $time); $view = new Application_View(); - $view->page = 'viewRequest'; + $view->page = 'request/view'; $view->request = $request; $view->currentGeneration = $currentGeneration; $view->proposedGeneration = $proposedGeneration; @@ -434,12 +434,24 @@ class RequestController extends Nmc_Controller_Action } } - if($submit == 'Submit') { - return $this->_submitRequestAction(); - } else if ($submit == 'SaveforLaterSubmission') { - return $this->_saveUnfinishedRequest(); - } else if ($submit == 'CancelRequest') { - return $this->_cancelRequest(); + switch ($submit) { + case 'Submit': + case 'SaveChanges': + return $this->_submitRequestAction(); + break; + + case 'SaveforLaterSubmission': + return $this->_saveUnfinishedRequest(); + break; + + case 'Cancel': + case 'CancelRequest': + case 'AbandonChanges': + return $this->_cancelRequest(); + break; + + default: + break; } $out = new Application_View(); @@ -450,7 +462,6 @@ class RequestController extends Nmc_Controller_Action 'NotesDescription', 'GraduateTieIn', 'SupportiveMaterial', - //'AdditionalInformation', 'SubmitRequest'); $currentForm = $_SERVER['HTTP_REFERER']; @@ -459,19 +470,24 @@ class RequestController extends Nmc_Controller_Action array_pop($currentForm); } $currentForm = array_pop($currentForm); - $currentForm = array_search(strtolower($currentForm), - array_map("strtolower", $requestFormOrder)); - if($currentForm === false) { - $nextForm = $requestFormOrder[count($requestFormOrder) - 1]; - } else if($currentForm < count($requestFormOrder) - 1) { - $nextForm = $requestFormOrder[$currentForm + 1]; + + $currentFormIndex = array_search(strtolower($currentForm), + array_map("strtolower", $requestFormOrder)); + if($currentFormIndex === false) { + if (strtolower($currentForm) == 'edit') { + $nextForm = 'Preview'; + } else { + $nextForm = $requestFormOrder[count($requestFormOrder) - 1]; + } + } else if($currentFormIndex < count($requestFormOrder) - 1) { + $nextForm = $requestFormOrder[$currentFormIndex + 1]; } else { - $nextForm = $requestFormOrder[$currentForm]; + $nextForm = $requestFormOrder[$currentFormIndex]; } - if($currentForm > 0) { - $prevForm = $requestFormOrder[$currentForm - 1]; + if($currentFormIndex > 0) { + $prevForm = $requestFormOrder[$currentFormIndex - 1]; } else { - $prevForm = $requestFormOrder[$currentForm]; + $prevForm = $requestFormOrder[$currentFormIndex]; } if (in_array($submit, $requestFormOrder)) { @@ -724,6 +740,39 @@ class RequestController extends Nmc_Controller_Action $out->setBody($view->render('unlModernWrapper.xhtml')); } + public function previewAction() + { + + $course = Nmc_Registry_Session::getInstance()->course; + $request = Nmc_Registry_Session::getInstance()->request; + + $proposedGeneration = $course; + $currentGeneration = $proposedGeneration; + while ($currentGeneration && $currentGeneration->type != 'official') { + $currentGeneration = $currentGeneration->getParentGeneration(); + } + + $out = new Application_View(); + //$out->addSidebarModule('requestProgress'); + $out->addSidebarModule('bulletinPreview'); + $out->course = $course; + $out->request = $request; + $out->currentGeneration = $currentGeneration; + $out->proposedGeneration = $proposedGeneration; + $out->page = 'request/view'; + $out->tagline = 'Preview Request'; + $out->addCssFile('/ooss/request/submit'); + + $out->preview = true; + if ($request->getPrimaryKey() > 0) { + $out->initialRequest = false; + } else { + $out->initialRequest = true; + } + + echo $out->render('unlModernWrapper.xhtml'); + } + protected function _submitRequestAction() { try { diff --git a/application/views/request/fullEdit.xhtml b/application/views/request/fullEdit.xhtml index 5ee7f3b08b155707d1e87249ad9fd03ea210968a..d65bb4b8597ce18b12e3cd0cd721e901b161b7a6 100644 --- a/application/views/request/fullEdit.xhtml +++ b/application/views/request/fullEdit.xhtml @@ -654,6 +654,7 @@ -<input type="submit" value="Update Course" /> +<input type="submit" value="Preview" /> +<input id="cancel_request" type="submit" name="submitType" value="Cancel" /> </form> \ No newline at end of file diff --git a/application/views/viewRequest.xhtml b/application/views/request/view.xhtml similarity index 83% rename from application/views/viewRequest.xhtml rename to application/views/request/view.xhtml index 11cf38888508b2035fc09b967bab187bd1eab120..0c2bb23dcf16e0f65b0318a8748c45498c56d6c2 100644 --- a/application/views/viewRequest.xhtml +++ b/application/views/request/view.xhtml @@ -75,6 +75,19 @@ </div> <?php } ?> + <?php if ($this->preview) { ?> + <form method="post" action="/Request/Update"> + <?php if ($this->initialRequest) { ?> + <input id="submit_request" type="submit" name="submitType" value="Submit" /> + <input id="save_request" type="submit" name="submitType" value="Save for Later Submission" /> + <input id="cancel_request" type="submit" name="submitType" value="Cancel Request" /> + <?php } else { ?> + <input id="submit_request" type="submit" name="submitType" value="Save Changes" /> + <input id="cancel_request" type="submit" name="submitType" value="Abandon Changes" /> + <?php } ?> + </form> + <?php } else { ?> + <div id="comments"> <div class="tabBar"> <a href="#" id="commentsTab">Comments</a> @@ -107,6 +120,7 @@ EDITOR COMMENTS! </div> </div> + <?php } ?> <div class="clear"></div> </div> diff --git a/document_root/css/viewrequest.oss b/document_root/css/request/view.oss similarity index 100% rename from document_root/css/viewrequest.oss rename to document_root/css/request/view.oss diff --git a/document_root/javascript/viewRequest.js b/document_root/javascript/request/view.js similarity index 100% rename from document_root/javascript/viewRequest.js rename to document_root/javascript/request/view.js