• Main Page
  • Modules
  • Classes
  • Files
  • File List

controllers/modals/submissionMetadata/form/CatalogEntrySubmissionReviewForm.inc.php

00001 <?php
00002 
00015 import('lib.pkp.classes.form.Form');
00016 
00017 // Use this class to handle the submission metadata.
00018 import('controllers.modals.submissionMetadata.form.SubmissionMetadataViewForm');
00019 
00020 class CatalogEntrySubmissionReviewForm extends SubmissionMetadataViewForm {
00021 
00028    function CatalogEntrySubmissionReviewForm($monographId, $stageId = null, $formParams = null) {
00029       parent::SubmissionMetadataViewForm($monographId, $stageId, $formParams, 'controllers/modals/submissionMetadata/form/catalogEntrySubmissionReviewForm.tpl');
00030       AppLocale::requireComponents(LOCALE_COMPONENT_APPLICATION_COMMON, LOCALE_COMPONENT_OMP_SUBMISSION);
00031    }
00032 
00036    function readInputData() {
00037       parent::readInputData();
00038 
00039       // Read in the additional confirmation checkbox
00040       $this->readUserVars(array('confirm'));
00041    }
00042 
00046    function execute(&$request) {
00047       parent::execute($request);
00048 
00049       $monograph =& $this->getMonograph();
00050       $monographDao =& DAORegistry::getDAO('MonographDAO');
00051       $publishedMonographDao =& DAORegistry::getDAO('PublishedMonographDAO');
00052       $publishedMonograph =& $publishedMonographDao->getById($monograph->getId(), null, false);
00053       $isExistingEntry = $publishedMonograph?true:false;
00054 
00055       import('classes.publicationFormat.PublicationFormatTombstoneManager');
00056       $publicationFormatTombstoneMgr = new PublicationFormatTombstoneManager();
00057       $press =& $request->getPress();
00058       $publicationFormatDao =& DAORegistry::getDAO('PublicationFormatDAO');
00059       $publicationFormatFactory =& $publicationFormatDao->getByMonographId($monograph->getId());
00060       $publicationFormats =& $publicationFormatFactory->toAssociativeArray();
00061       $notificationMgr = new NotificationManager();
00062 
00063       if ($this->getData('confirm')) {
00064          // Update the monograph status.
00065          $monograph->setStatus(STATUS_PUBLISHED);
00066          $monographDao->updateMonograph($monograph);
00067 
00068          if (!$isExistingEntry) {
00069             unset($publishedMonograph);
00070             $publishedMonograph = $publishedMonographDao->newDataObject();
00071             $publishedMonograph->setId($monograph->getId());
00072             $publishedMonographDao->insertObject($publishedMonograph);
00073          }
00074          $publishedMonograph->setDatePublished(Core::getCurrentDate());
00075          $publishedMonographDao->updateObject($publishedMonograph);
00076 
00077          // Remove "need to approve submission" notifications.
00078          $notificationMgr->updateApproveSubmissionNotificationTypes($request, $publishedMonograph);
00079 
00080          // Remove publication format tombstones.
00081          $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats($publicationFormats);
00082 
00083          // Update the search index for this published monograph.
00084          import('classes.search.MonographSearchIndex');
00085          MonographSearchIndex::indexMonographMetadata($monograph);
00086 
00087          // Log the publication event.
00088          import('classes.log.MonographLog');
00089          MonographLog::logEvent($request, $monograph, MONOGRAPH_LOG_METADATA_PUBLISH, 'submission.event.metadataPublished');
00090       } else {
00091          if ($isExistingEntry) {
00092             // Update the monograph status.
00093             $monograph->setStatus(STATUS_QUEUED);
00094 
00095             // Unpublish monograph.
00096             $publishedMonograph->setDatePublished(null);
00097             $publishedMonographDao->updateObject($publishedMonograph);
00098 
00099             // Create "need to approve submission" notification.
00100             $notificationMgr->updateApproveSubmissionNotificationTypes($request, $publishedMonograph);
00101 
00102             // Create tombstones for each publication format.
00103             $publicationFormatTombstoneMgr->insertTombstonesByPublicationFormats($publicationFormats, $press);
00104 
00105             // Log the unpublication event.
00106             import('classes.log.MonographLog');
00107             MonographLog::logEvent($request, $monograph, MONOGRAPH_LOG_METADATA_UNPUBLISH, 'submission.event.metadataUnpublished');
00108          }
00109 
00110          // regular submission without publish in catalog.
00111          $monographDao->updateMonograph($monograph);
00112       }
00113    }
00114 }
00115 
00116 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1