예제 #1
0
 public function deleteAction()
 {
     $request = $this->getRequest();
     $docId = $this->getRequest()->getParam(self::PARAM_DOCUMENT_ID);
     $document = $this->getHelper('documents')->getDocumentForId($docId);
     if (!isset($document)) {
         // missing or bad parameter => go back to main page
         return $this->_redirectTo('index', array('failure' => 'admin_document_error_novalidid'), 'documents', 'admin');
     }
     $fileId = $this->getRequest()->getParam(self::PARAM_FILE_ID);
     $fileHelper = new Admin_Model_FileImport();
     if (!$fileHelper->isValidFileId($fileId)) {
         return $this->_redirectTo('index', array('failure' => 'admin_filemanager_error_novalidid'), 'filemanager', 'admin', array(self::PARAM_DOCUMENT_ID => $docId));
     }
     if (!$fileHelper->isFileBelongsToDocument($docId, $fileId)) {
         return $this->_redirectTo('index', array('failure' => 'admin_filemanager_error_filenotlinkedtodoc'), 'filemanager', 'admin', array(self::PARAM_DOCUMENT_ID => $docId));
     }
     $form = new Application_Form_Confirmation('Opus_File');
     if ($request->isPost()) {
         $post = $request->getPost();
         if ($form->isConfirmed($post)) {
             // Delete file
             $fileId = $form->getModelId();
             try {
                 $fileHelper->deleteFile($docId, $fileId);
             } catch (Opus_Model_Exception $ome) {
                 $this->getLogger()->err(__METHOD__ . ' Error deleting file. (' . $ome->getMessage . ')');
                 return $this->_redirectTo('index', array('failure' => 'admin_filemanager_delete_failure'), 'filemanager', 'admin', array(self::PARAM_DOCUMENT_ID => $docId, 'continue' => 'true'));
             }
             return $this->_redirectTo('index', 'admin_filemanager_delete_success', 'filemanager', 'admin', array(self::PARAM_DOCUMENT_ID => $docId, 'continue' => 'true', self::PARAM_FILE_ID => $fileId));
         } else {
             // Delete cancelled
             return $this->_redirectTo('index', null, 'filemanager', 'admin', array(self::PARAM_DOCUMENT_ID => $docId, 'continue' => 'true'));
         }
     } else {
         // Show confirmation page
         $file = new Opus_File($fileId);
         $form->setModel($file);
         $form->setModelDisplayName($file->getPathName());
     }
     $this->_breadcrumbs->setDocumentBreadcrumb($document);
     $this->_breadcrumbs->setParameters('admin_filemanager_index', array(self::PARAM_DOCUMENT_ID => $docId));
     $this->renderForm($form);
 }
예제 #2
0
 public function testIsConfirmedNoInvalidForm()
 {
     $form = new Application_Form_Confirmation('Opus_Language');
     $post = array('Id' => '', 'ConfirmYes' => 'Ja');
     $this->assertFalse($form->isConfirmed($post));
     $this->assertEquals(1, count($form->getErrors()));
 }