Ejemplo n.º 1
0
 public function editAction()
 {
     $record = null;
     $id = $this->_request->getParam('id');
     $this->view->id = $id;
     if (!empty($id)) {
         $record = My_Model::get('Tests')->getById($id);
     }
     $form = new TestForm();
     $form->setAction($this->_helper->url->url());
     if ($record === null) {
         $this->view->title = 'Add Test';
     } else {
         $this->view->title = 'Edit Test: ' . $record->getName() . ' [' . $record->getId() . ']';
         $form->setModifyMode();
     }
     if ($this->_request->isPost()) {
         if ($form->isValid($this->_request->getPost())) {
             $formValues = $form->getValues();
             if ($record === null) {
                 $record = My_Model::get('Tests')->createRow();
                 $record->updateFromArray($formValues, true);
             } else {
                 $record->updateFromArray($formValues, false);
             }
             $this->_helper->flashMessenger->setNamespace("success")->addMessage("Your changes have been saved!");
             $this->_helper->redirector->gotoUrl('/test/');
         }
     } else {
         if ($record !== null) {
             $form->populate($record->toArray());
         }
     }
     $this->view->form = $form;
 }
Ejemplo n.º 2
0
 /**
  * @dataProvider invalidDataProvider
  */
 public function testHandleRequestWithExistingEntityAndInvalidData($data)
 {
     $initialName = 'Initial namn';
     $this->entity->setId(1)->setName($initialName);
     $this->request->setData($data);
     $this->form->handleRequest($this->request);
     $this->assertFalse($this->form->isValid());
     $this->assertEquals($this->entity->getName(), $initialName);
 }
Ejemplo n.º 3
0
 public function indexAction()
 {
     $form = new TestForm();
     $form->setMethod('post')->setLegend('Legend form')->setDescription('My super hyper genial form description')->setAction($this->_helper->url('index', 'test', 'admin'));
     if ($this->getRequest()->isPost()) {
         $posts = $this->getRequest()->getPost();
         if ($form->isValid($posts)) {
         } else {
             $form->populate($posts);
         }
     }
     $this->view->form = $form;
 }
Ejemplo n.º 4
0
 public function editAction()
 {
     $this->view->messages = $this->_helper->flashMessenger->getMessages();
     $testId = $this->_request->getParam('id');
     // Creates form instance
     $testFrom = new TestForm();
     $this->view->testForm = $testFrom;
     // Loads data from database
     $technologies = My_Model::get('Technologies')->fetchAll();
     $seniorities = My_Model::get('Seniorities')->fetchAll();
     // Fills form selects
     $testFrom->getElement('id_technologie')->setMultiOptions($this->transformTechnologies($technologies));
     $testFrom->getElement('id_seniorita')->setMultiOptions($this->transformSeniorities($seniorities));
     // Edit test page
     if (!empty($testId)) {
         $this->view->testId = $testId;
         $this->view->title = 'Edit Test';
         $test = My_Model::get('Tests')->getById($testId);
         $testData = $test->get_data();
         $testFrom->setDefaults($testData);
         // Loads questions with options
         $questions = $test->getQuestions();
         $questionForms = array();
         foreach ($questions as $q) {
             $questionForm = new QuestionForm(array('questionId' => $q->getid_otazka()));
             $questionForm->setName('q' . strval($q->getid_otazka()));
             $questionForm->setAction($this->view->url(array('controller' => 'test', 'action' => 'save-question', 'testId' => $testId, 'questionId' => $q->getid_otazka()), 'default', true));
             $questionForms[] = $questionForm;
         }
         $newQuestionForm = new QuestionForm(array('count' => 3));
         $newQuestionForm->setName('new');
         $newQuestionForm->setAction($this->view->url(array('controller' => 'test', 'action' => 'save-question', 'testId' => $testId), 'default', true));
         $questionForms[] = $newQuestionForm;
         $this->view->questionForms = $questionForms;
     } else {
         $this->view->title = 'Add new Test';
     }
     // ########################### POST ###########################
     // Handles form submission
     if ($this->_request->isPost()) {
         if ($testFrom->isValid($this->_request->getPost())) {
             $formValues = $testFrom->getValues();
             $test;
             // Editing existing test
             if (!empty($testId)) {
                 $test = My_Model::get('Tests')->getById($testId);
             } else {
                 date_default_timezone_set('UTC');
                 $formValues['datum_vytvoreni'] = date("Y-n-j");
                 $formValues['id_kdo_vytvoril'] = $this->getUser()->id_uzivatel;
                 $test = My_Model::get('Tests')->createRow();
             }
             // Updates test object in DB
             $test->updateFromArray($formValues);
             $this->_helper->redirector->gotoRoute(array('controller' => 'test', 'action' => 'edit', 'id' => $test->id_test), 'default', true);
         }
     }
 }