Skip to content
Snippets Groups Projects
Select Git revision
  • f090100790a9f3fadf74cbe9adbbcf8cf32ad117
  • 3.9 default
  • develop
  • 6.0
  • 5.0
  • 4.0
  • scrutinizer-patch-4
  • scrutinizer-patch-3
  • scrutinizer-patch-2
  • scrutinizer-patch-1
  • 3.7
  • 3.8
  • 3.6
  • 3.9_backported
  • 3.8_backported
  • 3.7_backported
  • 3.5
  • 3.6_backported
  • 3.5_backported
  • 3.4
  • 3.3_backported
  • 6.0.4
  • 6.0.3
  • 5.0.7
  • 6.0.2
  • 6.0.1
  • 5.0.6
  • 6.0.0
  • 5.0.5
  • 6.0.0-rc
  • 5.0.4
  • 6.0.0-beta
  • 5.0.3
  • 4.0.6
  • 5.0.2
  • 5.0.1
  • 4.0.5
  • 5.0.0
  • 4.0.4
  • 5.0.0-rc2
  • 5.0.0-rc1
41 results

PgsqlTest.php

Blame
  • NewrequestController.php 17.92 KiB
    <?php
    
    class NewRequestController extends Nmc_Controller_Action
    {
    
        public function __construct()
        {
            parent::__construct();
            $this->_registerPlugin(new Nmc_Controller_Action_Plugin_Authorize());
        }
    
        public function __destruct()
        {
    
        }
    
        public function indexAction()
        {
            return $this->SearchAction();
        }
    
        public function searchAction()
        {
            $in = $this->_action->getParams();
            if($in[0] != '' && $in[1] != '') {
                return $this->searchResultsAction();
            }
    
            $out = new Nmc_View();
            $out->page = 'request/search';
            $out->css_files[] = '/css/request/edit_wrapper.css';
            echo $out->render();
        }
    
        public function searchResultsAction()
        {
            $in = $this->_action->getParams();
    
            $subject = Zend_Filter::getAlpha($in[0]);
            $courseNumber = Zend_Filter::getDigits($in[1]);
            $courseLetter = Zend_Filter::getAlpha($in[2]);
    
            $course = CourseCrosslistings::fetchBySubjectNumberLetter($subject,
                                                                      $courseNumber,
                                                                      $courseLetter);
    
            $out = new Nmc_View();
            $out->subject = $subject;
            $out->courseNumber = $courseNumber;
            $out->courseLetter = $courseLetter;
    
            if(!$course) {
                // course not found
                $out->page = 'request/create_new_course_ask';
                Nmc_Registry_Session::getInstance()->erase('course');
            } else {
                // course found
                Nmc_Registry_Session::getInstance()->erase('course');
                $out->page = 'request/course_found';
                $parentCourse = $course->getParentCourse();
    
                $course = clone $parentCourse;
    
                Nmc_Registry_Session::getInstance()->course = $course;
            }
            echo $out->render();
        }
    
        public function createAction()
        {
            $in = $this->_action->getParams();
    
            $type = Zend_Filter::getAlnum($in[0]);
            $subject = Zend_Filter::getAlpha($in[1]);
            $courseNumber = Zend_Filter::getDigits($in[2]);
            $courseLetter = Zend_Filter::getAlpha($in[3]);
    
            $request = Requests::getInstance()->fetchNew();
            $request->owner = Nmc_User::getInstance()->getUser()->getId();
            $request->type = RequestTypes::getInstance()->stringToType($type);
    
            $course = Nmc_Registry_Session::getInstance()->course;
            if(!$course) {
                $course = CourseGenerations::getInstance()->fetchNew();
                $course->subject = $subject;
                $course->courseNumber = $courseNumber;
                $course->courseLetter = $courseLetter;
            }
    
            $course->request = $request;
            $course->type = 'proposed';
    
            //print_r($course);
    
            Nmc_Registry_Session::getInstance()->request = $request;
            Nmc_Registry_Session::getInstance()->course = $course;
    
            $out = new Nmc_View();
            $out->location = '/newrequest/CourseID';
            echo $out->render();
        }
    
        public function loadAction()
        {
            $in = $this->_action->getParams();
    
            $requestId = Zend_Filter::getInt($in[0]);
            $request = Requests::getInstance()->find($requestId);
            $course = $request->getCourseGeneration();
    
            Nmc_Registry_Session::getInstance()->course = $course;
            Nmc_Registry_Session::getInstance()->request = $request;
    
            $out = new Nmc_View();
            $out->location = '/NewRequest/CourseID';
            $out->render();
        }
    
        public function updateAction() {
    
            $errors = array();
    
            $course = Nmc_Registry_Session::getInstance()->course;
            $request = Nmc_Registry_Session::getInstance()->request;
    
    
    
            $submit = Zend_Filter::getAlpha($_POST['submit']);
    
            if(is_array($_POST['request'])) {
            foreach($_POST['request'] as $key => $val) {
                if(!is_array($val) && $val != '') {
                    //echo '$request->' . $key . ' = ' . $val . "<br />\n";
                    $request->$key = $val;
                }
            } }
            unset($_POST['request']);
    
            unset($_POST['submit']);
            unset($_POST['p_subject']);
            unset($_POST['p_course_number']);
    
    
    
    
    
    
            /*
            foreach($_POST as $key => $val) {
                if(!is_array($val) && $key != 'courseId' && $val != '') {
                    //echo '$course->' . $key . ' = ' . $val . "<br />\n";
                    $course->$key = $val;
                }
            }
    
            foreach($_POST as $key => $val) {
                if($key == 'credits') {
                    foreach($course->credits as $key => $credit) {
                        unset($course->credits[$key]);
                    }
                    foreach($val as $type => $hours) {
                        if($type == 1) {
                            foreach(explode(' ', $hours) as $singeValue) {
                                if(Zend_Filter::getDigits($hours) != '') {
                                    $newAttribute = CourseCredits::getInstance()->fetchNew();
                                    $newAttribute->type = $type;
                                    $newAttribute->hours = $singeValue;
                                    $course->credits[] = $newAttribute;
                                }
                            }
                            continue;
                        }
                        if(Zend_Filter::getDigits($hours) != '') {
                            $newAttribute = CourseCredits::getInstance()->fetchNew();
                            $newAttribute->type = $type;
                            $newAttribute->hours = $hours;
                            $course->credits[] = $newAttribute;
                        }
                    }
                } else if(in_array($key, array('termsOffered','deliveryMethods','campuses'))) {
                    $course->$key = $val;
                } else if($key == 'gradTieIn') {
                    if(!$course->gradTieIn instanceof CourseGradTieIn) {
                        $course->gradTieIn = CourseGradTieIns::getInstance()->fetchNew();
                    }
                    foreach($val as $key2 => $val2) {
                        $course->gradTieIn->$key2 = $val2;
                    }
                } else if(is_array($val)) {
                    $array = $course->$key;
                    foreach($val as $key2 => $val2) {
                        //either create or grab the current attribute
                        if($key2 < 0) {
                            $attributeTable = call_user_func(array('Course' . $key, 'getInstance'));
                            $currentAttribute = $attributeTable->fetchNew();
                            $array[] = $currentAttribute;
                        } else {
                            $currentAttribute = $array[$key2];
                        }
                        //delete it if marked for deletion, otherwise unset the delete field
                        if($val2['delete'] == 'yes') {
                            unset($array[$key2]);
                            continue;
                        } else {
                            unset($val2['delete']);
                        }
    
                        //loop over each attribute and set
                        foreach($val2 as $key3 => $val3) {
                            if($val3 == '') {
                                $val3 = null;
                            }
                            //echo '$course->' . $key . '[' . $key2 . ']->' . $key3 . ' = ' . $val3 . "<br />\n";
                            $currentAttribute->$key3 = $val3;
                        }
                        //save changes
                    }
                }
            }
            */
    
    
    
    
    
    
            foreach($_POST as $key => $val) {
                if(!is_array($val) && $key != 'courseId' /*&& $val != ''*/) {
                    //echo '$course->' . $key . ' = ' . $val . "<br />\n";
                    $course->$key = $val;
                }
            }
    
            foreach($_POST as $key => $val) {
                if($key == 'credits') {
                    $credits = $course->credits;
                    foreach($credits as $key => $credit) {
                        unset($credits[$key]);
                    }
                    foreach($val as $type => $hours) {
                        if($type == 1) {
                            foreach(explode(' ', $hours) as $singeValue) {
                                if(Zend_Filter::getDigits($hours) != '') {
                                    $newAttribute = CourseCredits::getInstance()->fetchNew();
                                    $newAttribute->type = $type;
                                    $newAttribute->hours = $singeValue;
                                    $credits[] = $newAttribute;
                                }
                            }
                            continue;
                        }
                        if(Zend_Filter::getDigits($hours) != '') {
                            $newAttribute = CourseCredits::getInstance()->fetchNew();
                            $newAttribute->type = $type;
                            $newAttribute->hours = $hours;
                            $credits[] = $newAttribute;
                        }
                    }
                } else if(in_array($key, array('termsOffered','deliveryMethods','campuses'))) {
                    $course->$key = $val;
                    //echo '$course->' . $key . ' = '; print_r($val); echo "<br />\n";
                } else if($key == 'gradTieIn') {
                    if(!$course->gradTieIn instanceof CourseGradTieIn) {
                        $course->gradTieIn = CourseGradTieIns::getInstance()->fetchNew();
                    }
                    foreach($val as $key2 => $val2) {
                        $course->gradTieIn->$key2 = $val2;
                    }
                } else if(is_array($val)) {
                    $array = $course->$key;
                    foreach($array as $key2 => $row) {
                        unset($array[$key2]);
                    }
                    foreach($val as $key2 => $val2) {
                        if($val2['delete'] == 'yes') {
                            continue;
                        }
                        $attributeTable = call_user_func(array('Course' . $key, 'getInstance'));
                        $currentAttribute = $attributeTable->fetchNew();
                        unset($val2['delete']);
    
                        //loop over each attribute and set
                        foreach($val2 as $key3 => $val3) {
                            if($val3 == '') {
                                $val3 = null;
                            }
                            //echo '$currentAttribute->' . $key3 . ' = ' . $val3 . "<br />\n";
                            $currentAttribute->$key3 = $val3;
                        }
                        $array[] = $currentAttribute;
                        //save changes
                    }
                    //print_r($array);
                }
            }
    
    
    
    
    
    
    
    
            if(is_array($_FILES['request'])) {
                $newRequestFiles = array();
                foreach($_FILES['request'] as $fieldName => $values) {
                    foreach($values as $key => $value) {
                        $newRequestFiles[$key][$fieldName] = $value;
                    }
                }
    
                foreach($newRequestFiles as $key => $file) {
                    if($file['error'] != 0) {
                        unset($newRequestFiles[$key]);
                        $errors[] = 'request[' . $key . ']';
                    }
                }
    
    
                $fileTypes = array(RequestFile::CROSSLIST_MEMO_TYPE,
                                   RequestFile::IS_NARRATIVE_TYPE,
                                   RequestFile::SYLLABUS_TYPE);
                foreach($fileTypes as $fileType) {
                    if(is_array($newRequestFiles[$fileType])) {
                        $inFile = $newRequestFiles[$fileType];
                        $file = RequestFiles::getInstance()->fetchNew();
    
                        $file->title = $inFile['name'];
                        $file->data = file_get_contents($inFile['tmp_name']);
                        $file->mimeType = $inFile['type'];
    
                        $request->setFileByType($fileType, $file);
                    }
                }
            }
    
            if($submit == 'Submit') {
                return $this->_submitRequestAction();
            }
    
            $out = new Nmc_View();
    
            $requestFormOrder = array('CourseID',
                                      'CreditHours',
                                      'TimeLocation',
                                      'GraduateTieIn',
                                      'SupportiveMaterial',
                                      //'AdditionalInformation',
                                      'SubmitRequest');
    
            $currentForm = $_SERVER['HTTP_REFERER'];
            $currentForm = explode('/', $currentForm);
            while($currentForm[count($currentForm) - 1] == '') {
                array_pop($currentForm);
            }
            $currentForm = array_pop($currentForm);
            $currentForm = array_search(strtolower($currentForm),
                                        array_map("strtolower", $requestFormOrder));
            if($currentForm < count($requestFormOrder) - 1) {
                $nextForm = $requestFormOrder[$currentForm + 1];
            } else {
                $nextForm = $requestFormOrder[$currentForm];
            }
            if($currentForm > 0) {
                $prevForm = $requestFormOrder[$currentForm - 1];
            } else {
                $prevForm = $requestFormOrder[$currentForm];
            }
    
            if($submit == 'Prev') {
                $targetForm = $prevForm;
            } else {
                $targetForm = $nextForm;
            }
    
            $out->assign('refresh', '/NewRequest/' . $targetForm . '/');
            if(true || $_SERVER['REMOTE_ADDR'] != '129.93.39.17') {
                echo $out->render();
            } else {
                //print_r($course);
            }
        }
    
        public function saveAction() {
            try {
                $course = clone Nmc_Registry_Session::getInstance()->course;
                $course->save();
            } catch(Exception $e) {
                print_r($e);
                throw $e;
            }
        }
    
        public function courseIdAction()
        {
            $course = Nmc_Registry_Session::getInstance()->course;
            $out = new Nmc_View();
    
            $out->page = 'request/edit_wrapper';
            $out->requestPage = 'course_id';
            $out->css_files[] = '/css/request/course_id.css';
            $out->js_files[] = '/tinymce/jscripts/tiny_mce/tiny_mce.js';
            $out->js_files[] = '/javascript/mce.js';
    
            $out->course = $course;
    
            echo $out->render();
        }
    
        public function creditHoursAction()
        {
            $out = new Nmc_View();
    
            $out->page = 'request/edit_wrapper';
            $out->requestPage = 'credit_hours';
            $out->css_files[] = '/css/request/credit_hours.css';
    
            $course = Nmc_Registry_Session::getInstance()->course;
            $out->course = $course;
    
            $creditsSingleValues = array();
            foreach($course->credits as $credit) {
                if($credit->type == 1) {
                    $creditsSingleValues[] = $credit->hours;
                } else if($credit->type == 2) {
                    $out->creditsRangeMin = $credit->hours;
                } else if($credit->type == 3) {
                    $out->creditsRangeMax = $credit->hours;
                } else if($credit->type == 4) {
                    $out->creditsMaxPerSemester = $credit->hours;
                } else if($credit->type == 5) {
                    $out->creditsMaxPerDegree = $credit->hours;
                }
            }
            $out->creditsSingleValues = implode(' ', $creditsSingleValues);
    
            echo $out->render();
        }
    
        public function timeLocationAction()
        {
            $out = new Nmc_View();
    
            $out->page = 'request/edit_wrapper';
            $out->requestPage = 'time_location';
            $out->css_files[] = '/css/request/time_location.css';
    
            $course = Nmc_Registry_Session::getInstance()->course;
            $out->course = $course;
    
            echo $out->render();
        }
    
        public function graduateTieInAction()
        {
            $out = new Nmc_View();
    
            $out->page = 'request/edit_wrapper';
            $out->requestPage = 'graduate_tie_in';
            $out->css_files[] = '/css/request/graduate_tie_in.css';
            $out->js_files[] = '/tinymce/jscripts/tiny_mce/tiny_mce.js';
            $out->js_files[] = '/javascript/mce.js';
    
            $course = Nmc_Registry_Session::getInstance()->course;
    
            $hasGradTieIn = false;
            foreach($course->crosslistings as $crosslisting) {
                if($crosslisting->type == 'grad tie-in') {
                    $hasGradTieIn = true;
                }
            }
    
            $out->hasGradTieIn = $hasGradTieIn;
            $out->course = $course;
    
            echo $out->render();
        }
    
        public function supportiveMaterialAction()
        {
            $out = new Nmc_View();
    
            $out->page = 'request/edit_wrapper';
            $out->requestPage = 'supportive_material';
            $out->css_files[] = '/css/request/supportave_material.css';
            $out->js_files[] = '/tinymce/jscripts/tiny_mce/tiny_mce.js';
            $out->js_files[] = '/javascript/mce.js';
    
            $course = Nmc_Registry_Session::getInstance()->course;
            $out->course = $course;
            $request = Nmc_Registry_Session::getInstance()->request;
            $out->request = $request;
    
            echo $out->render();
        }
    
        public function additionalInformationAction()
        {
            $out = new Nmc_View();
    
            $out->page = 'request/edit_wrapper';
            $out->requestPage = 'additional_information';
            $out->css_files[] = '/css/request/additional_information.css';
    
            $course = Nmc_Registry_Session::getInstance()->course;
            $out->course = $course;
    
            echo $out->render();
        }
    
        public function submitRequestAction()
        {
            $course = Nmc_Registry_Session::getInstance()->course;
            $request = Nmc_Registry_Session::getInstance()->request;
    
            $out = new Nmc_View();
            $out->course = $course;
            $out->request = $request;
            $out->page = 'request/edit_wrapper';
            $out->requestPage = 'submit';
            $out->css_files[] = '/css/request/submit.css';
    
            echo $out->render();
        }
    
        protected function _submitRequestAction()
        {
            try {
                $course = Nmc_Registry_Session::getInstance()->course;
    
                $course->save();
    
                Nmc_Registry_Session::getInstance()->erase('course');
                Nmc_Registry_Session::getInstance()->erase('request');
    
                $out = new Nmc_View();
                $out->refresh = '/home';
                echo $out->render();
            } catch(Exception $e) {
                throw $e;
            }
        }
    }
    
    ?>