Beispiel #1
0
 /**
  * Save data from editing a page
  * @param integer $pageId
  */
 public function actionSavePage($pageId)
 {
     $data = json_decode($this->post['data']);
     switch ($data->status) {
         case 'delete':
             if ($page = $this->_em->getRepository('\\Jazzee\\Entity\\Page')->findOneBy(array('id' => $pageId, 'isGlobal' => true))) {
                 $applicationPages = $this->_em->getRepository('\\Jazzee\\Entity\\ApplicationPage')->findBy(array('page' => $page->getId()));
                 if ($applicationPages) {
                     $this->setLayoutVar('status', 'error');
                     $this->addMessage('error', $page->getTitle() . ' could not be deleted becuase it is part of at least one application');
                 } else {
                     if ($this->_em->getRepository('\\Jazzee\\Entity\\Page')->hasAnswers($page)) {
                         $this->setLayoutVar('status', 'error');
                         $this->addMessage('error', $page->getTitle() . '  could not be deleted becuase it has applicant information associated with it.');
                     } else {
                         $this->addMessage('success', $page->getTitle() . ' deleted');
                         $this->_em->remove($page);
                     }
                 }
             }
             break;
         case 'import':
             $page = new \Jazzee\Entity\Page();
             $page->makeGlobal();
             $page->setType($this->_em->getRepository('\\Jazzee\\Entity\\PageType')->find($data->typeId));
             $page->setUuid($data->uuid);
             $this->savePage($page, $data);
             break;
         case 'new':
         case 'copy':
             $page = new \Jazzee\Entity\Page();
             $page->makeGlobal();
             $page->setType($this->_em->getRepository('\\Jazzee\\Entity\\PageType')->find($data->typeId));
             //create a fake application page to work with so we can run setupNewPage
             $page->getApplicationPageJazzeePage()->setController($this);
             //only do setup for new pages, copies already have elements
             if ($data->status == 'new') {
                 $page->getApplicationPageJazzeePage()->setupNewPage();
             }
             $this->addMessage('success', $data->title . ' created.');
             $this->savePage($page, $data);
             break;
         default:
             $page = $this->_em->getRepository('\\Jazzee\\Entity\\Page')->findOneBy(array('id' => $pageId, 'isGlobal' => true));
             $this->savePage($page, $data);
     }
 }