00001 <?php
00002
00015 import('lib.pkp.classes.form.Form');
00016
00017
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
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
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
00078 $notificationMgr->updateApproveSubmissionNotificationTypes($request, $publishedMonograph);
00079
00080
00081 $publicationFormatTombstoneMgr->deleteTombstonesByPublicationFormats($publicationFormats);
00082
00083
00084 import('classes.search.MonographSearchIndex');
00085 MonographSearchIndex::indexMonographMetadata($monograph);
00086
00087
00088 import('classes.log.MonographLog');
00089 MonographLog::logEvent($request, $monograph, MONOGRAPH_LOG_METADATA_PUBLISH, 'submission.event.metadataPublished');
00090 } else {
00091 if ($isExistingEntry) {
00092
00093 $monograph->setStatus(STATUS_QUEUED);
00094
00095
00096 $publishedMonograph->setDatePublished(null);
00097 $publishedMonographDao->updateObject($publishedMonograph);
00098
00099
00100 $notificationMgr->updateApproveSubmissionNotificationTypes($request, $publishedMonograph);
00101
00102
00103 $publicationFormatTombstoneMgr->insertTombstonesByPublicationFormats($publicationFormats, $press);
00104
00105
00106 import('classes.log.MonographLog');
00107 MonographLog::logEvent($request, $monograph, MONOGRAPH_LOG_METADATA_UNPUBLISH, 'submission.event.metadataUnpublished');
00108 }
00109
00110
00111 $monographDao->updateMonograph($monograph);
00112 }
00113 }
00114 }
00115
00116 ?>