Skip to content
Snippets Groups Projects
Select Git revision
  • 8133244e64bea890baf8d0c0ad7076f4026b52dd
  • master default
  • disable-new-requests
  • fix-bulletin-view-missing-notes-error
  • add-missing-queue-managers
  • projects-task-53
  • projects-task-51
  • projects-task-43
  • projects-task-24
  • projects-task-31
  • projects-task-32
  • projects-task-8
  • project-setup-docs
  • projects-task-28
  • projects-task-27
  • projects-task-9
  • projects-task-7
  • mass-update-course-codes-in-sections
  • wdn-four
  • learning-outcomes
  • additional-bulletin-pages
  • svn-redesign
  • svn-popups
  • svn-trunk
  • svn-performance
  • svn-tim
26 results

ViewController.php

Blame
  • ViewController.php 6.94 KiB
    <?php
    
    require_once APPLICATION_PATH . '/modules/requests/controllers/ViewController.php';
    
    class Bulletin_ViewController extends Requests_ViewController
    {
        public function indexAction()
        {
            $this->_commonIndexAction();
    
            $request = $this->view->request;
            $repo = Bulletin_RepositoryModel::getInstance();
    
            $in = $this->getAllParams();
            if ($in['type'] == 'session' && isset($in['id']) && $in['id']) {
                $session = new Zend_Session_Namespace('Edit Request ' . $in['id']);
                $section = $session->section;
    
    
                if ($request->getId()) {
                    $this->view->initialRequest = false;
                } else {
                    $this->view->initialRequest = true;
                }
    
                $this->view->preview = true;
                $this->view->proposedFileContents = $session->fileContents;
            } else {
                $section = Bulletin_SectionModel::findWithRequest($request);
    
                $this->view->initialRequest = false;
                $this->view->preview = false;
                $this->view->proposedFileContents = $repo->getFileNotes(
                    '/data/' . $repo->getFilePathForSection($section), 'request-' . $request->getId()
                );
            }
    
            $this->view->originalFileContents = $repo->getFileContents('/data/' . $repo->getFilePathForSection($section));
    
            $this->view->originalFileContents = Bulletin_SectionModel::getBodyHtml($this->view->originalFileContents);
            $this->view->proposedFileContents = Bulletin_SectionModel::getBodyHtml($this->view->proposedFileContents);
    
            require_once 'UNL/Autoload.php';
            spl_autoload_register('Unl_Autoload');
    
            $this->view->request = $request;
            $this->view->id = $in['id'];
            $this->view->section = $section;
    
            //$this->view->originalFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($this->view->originalFileContents);
            //$this->view->proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($this->view->proposedFileContents);
            $this->view->originalFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::convertHeadings($this->view->originalFileContents);
            $this->view->proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::convertHeadings($this->view->proposedFileContents);
    
            $this->view->isRequestValid = $request->isValid();
        }
    
    	/**
    	 * Preview the bulletin changes as they will appear in the bulletin.
    	 */
    	public function previewAction()
    	{
    		$this->_helper->layout->setLayout('40_template/layout_unl40');
    
            $this->_commonIndexAction();
    
            $request = $this->view->request;
            $repo = Bulletin_RepositoryModel::getInstance();
    
    		$in = $this->getAllParams();
    
    		$section = Bulletin_SectionModel::findWithRequest($request);
    
    		$this->view->request = $request;
    		$this->view->id = $in['id'];
    		$this->view->section = $section;
    		$this->view->initialRequest = false;
    		$this->view->preview = false;
    		$this->view->proposedFileContents = $repo->getFileContents(
    			'/data/' . $repo->getFilePathForSection($section), 'request-' . $request->getId()
    		);
    
    		$this->view->proposedFileContents = Bulletin_SectionModel::getBodyHtml($this->view->proposedFileContents);
    
    		$dom = new DOMDocument();
    		$dom -> loadHTML($this->view->proposedFileContents);
    		$xml = simplexml_import_dom($dom);
    		$this->view->quickPoints = Bulletin_UtilityModel::parseQuickPoints($xml);
    
            $this->view->proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($this->view->proposedFileContents);
    
    		$this->view->proposedFileContents = preg_replace('/href=".+?"/', 'href="#"', $this->view->proposedFileContents);
    	}
    
        public function listAction()
        {
            $colleges = array();
            $collegeMajors = Bulletin_UtilityModel::getMajors();
            foreach ($collegeMajors as $college => $majors) {
                $colleges[$college] = $college;
                asort($collegeMajors[$college]);
                $collegeMajors[$college] = array('_college' => 'College Information') + $collegeMajors[$college];
            }
            $this->view->colleges = $colleges;
            $this->view->collegeMajors = $collegeMajors;
        }
    
        public function listPostAction()
        {
            $in = $this->getAllParams();
            if ($in['college'] == '_null') {
                $in['college'] = NULL;
            }
            if ($in['major'] == '_college') {
                $in['major'] = NULL;
            }
    
            if (!$in['college']) {
                $this->_helper->getHelper('FlashMessenger')->addMessage('You must select a bulletin section to edit.');
                $this->redirect('/bulletin/view/list');
            }
    
            $collegeId = array_search($in['college'], Bulletin_UtilityModel::getColleges());
            $path = "/bulletin/view/public/college/$collegeId";
            if ($in['major']) {
                $majorId = $in['major'];
                $path .= "/major/$majorId";
            }
    
            $this->redirect($path);
        }
    
        public function publicAction()
        {
            $collegeId = $this->getParam('college');
            $majorId = $this->getParam('major');
    
            $repo = Bulletin_RepositoryModel::getInstance();
    
            $colleges = Bulletin_UtilityModel::getColleges();
            $requests = Bulletin_SectionModel::findAllRequestsByCollegeAndMajorId($colleges[$collegeId], $majorId);
    
            $requestSections = Bulletin_SectionModel::findWithRequest($requests);
            foreach ($requests as $request) {
                $section = $requestSections[$request->getId()];
    
                $parentCommit = $repo->getParentCommitForSection($section);
    
                $contents = $repo->getFileNotes(
                    '/data/' . $repo->getFilePathForSection($section), $parentCommit
                );
    
                $originalFileContents = $repo->getFileContents('/data/' . $repo->getFilePathForSection($section), $parentCommit);
    	    $originalFileContents = Bulletin_SectionModel::getBodyHtml($originalFileContents);
                //$originalFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($originalFileContents);
                $originalFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::convertHeadings($originalFileContents);
                $requestOriginalFileContents[$request->getId()] = $originalFileContents;
    
                $proposedFileContents = $repo->getFileNotes(
                    '/data/' . $repo->getFilePathForSection($section), 'request-' . $request->getId()
                );
                $proposedFileContents = Bulletin_SectionModel::getBodyHtml($proposedFileContents);
                //$proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($proposedFileContents);
                $proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::convertHeadings($proposedFileContents);
                $requestProposedFileContents[$request->getId()] = $proposedFileContents;
            }
    
            $this->view->requests = $requests;
            $this->view->requestSections = $requestSections;
            $this->view->requestOriginalFileContents = $requestOriginalFileContents;
            $this->view->requestProposedFileContents = $requestProposedFileContents;
        }
    }