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

controllers/grid/submissions/mySubmissions/MySubmissionsListGridHandler.inc.php

00001 <?php
00002 
00015 // Import grid base classes.
00016 import('controllers.grid.submissions.SubmissionsListGridHandler');
00017 import('controllers.grid.submissions.SubmissionsListGridRow');
00018 
00019 // Import 'my submissions' list specific grid classes.
00020 import('controllers.grid.submissions.mySubmissions.MySubmissionsListGridCellProvider');
00021 
00022 class MySubmissionsListGridHandler extends SubmissionsListGridHandler {
00026    function MySubmissionsListGridHandler() {
00027       parent::SubmissionsListGridHandler();
00028 
00029       $this->addRoleAssignment(array(ROLE_ID_PRESS_MANAGER, ROLE_ID_SERIES_EDITOR, ROLE_ID_PRESS_ASSISTANT, ROLE_ID_AUTHOR),
00030             array('fetchGrid', 'fetchRow', 'deleteSubmission'));
00031    }
00032 
00033    //
00034    // Implement template methods from PKPHandler
00035    //
00039    function initialize(&$request) {
00040       parent::initialize($request);
00041 
00042       $titleColumn =& $this->getColumn('title');
00043       $titleColumn->setCellProvider(new MySubmissionsListGridCellProvider());
00044    }
00045 
00046 
00047    //
00048    // Public Handler Actions
00049    //
00056    function deleteSubmission($args, &$request) {
00057       $monographDao =& DAORegistry::getDAO('MonographDAO');
00058       $monograph = $monographDao->getById(
00059          (int) $request->getUserVar('monographId')
00060       );
00061 
00062       // If the submission is incomplete, allow it to be deleted
00063       if ($monograph && $monograph->getSubmissionProgress() != 0) {
00064          $monographDao =& DAORegistry::getDAO('MonographDAO'); /* @var $monographDao MonographDAO */
00065          $monographDao->deleteById($monograph->getId());
00066 
00067          $user =& $request->getUser();
00068          NotificationManager::createTrivialNotification($user->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.removedSubmission')));
00069          return DAO::getDataChangedEvent($monograph->getId());
00070       } else {
00071          $json = new JSONMessage(false);
00072          return $json->getString();
00073       }
00074    }
00075 
00076 
00077    //
00078    // Implement template methods from SubmissionListGridHandler
00079    //
00083    function getSubmissions(&$request, $userId) {
00084       $this->setTitle('submission.mySubmissions');
00085 
00086       $monographDao =& DAORegistry::getDAO('MonographDAO');
00087       $submissions = $monographDao->getByUserId($userId);
00088       $data = array();
00089       while ($submission =& $submissions->next()) {
00090          if ($submission->getDatePublished() == null) {
00091             $submissionId = $submission->getId();
00092             $data[$submissionId] =& $submission;
00093          }
00094          unset($submission);
00095       }
00096 
00097       return $data;
00098    }
00099 
00100 
00101    //
00102    // Overridden methods from GridHandler
00103    //
00108    function &getRowInstance() {
00109       $row = new SubmissionsListGridRow(true);
00110       return $row;
00111    }
00112 }
00113 
00114 ?>

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