/**
  * Show the form to allow the user to select review files
  * (bring in/take out files from submission stage to review stage)
  *
  * FIXME: Move to its own handler so that it can be re-used among grids.
  *
  * @param $args array
  * @param $request PKPRequest
  * @return JSONMessage JSON object
  */
 function selectFiles($args, $request)
 {
     $submission = $this->getSubmission();
     import('lib.pkp.controllers.grid.files.review.form.ManageReviewFilesForm');
     $manageReviewFilesForm = new ManageReviewFilesForm($submission->getId(), $this->getRequestArg('stageId'), $this->getRequestArg('reviewRoundId'));
     $manageReviewFilesForm->initData($args, $request);
     return new JSONMessage(true, $manageReviewFilesForm->fetch($request));
 }
 /**
  * Show the form to allow the user to select review files
  * (bring in/take out files from submission stage to review stage)
  *
  * FIXME: Move to it's own handler so that it can be re-used among grids.
  *
  * @param $args array
  * @param $request PKPRequest
  * @return string Serialized JSON object
  */
 function selectFiles($args, &$request)
 {
     $monograph =& $this->getMonograph();
     import('controllers.grid.files.review.form.ManageReviewFilesForm');
     $manageReviewFilesForm = new ManageReviewFilesForm($monograph->getId(), $this->getRequestArg('reviewType'), $this->getRequestArg('round'));
     $manageReviewFilesForm->initData($args, $request);
     $json = new JSON(true, $manageReviewFilesForm->fetch($request));
     return $json->getString();
 }
 /**
  * Save 'manage review files' form
  * @param $args array
  * @param $request PKPRequest
  * @return string Serialized JSON object
  */
 function updateReviewFiles($args, &$request)
 {
     $monograph =& $this->getMonograph();
     import('controllers.grid.files.review.form.ManageReviewFilesForm');
     $manageReviewFilesForm = new ManageReviewFilesForm($monograph->getId(), $this->getRequestArg('reviewType'), $this->getRequestArg('round'));
     $manageReviewFilesForm->readInputData();
     if ($manageReviewFilesForm->validate()) {
         $manageReviewFilesForm->execute($args, $request);
         // Let the calling grid reload itself
         return DAO::getDataChangedEvent();
     } else {
         $json = new JSON(false);
         return $json->getString();
     }
 }
 /**
  * Save 'manage review files' form.
  * @param $args array
  * @param $request PKPRequest
  * @return JSONMessage JSON object
  */
 function updateReviewFiles($args, $request)
 {
     $submission = $this->getSubmission();
     import('lib.pkp.controllers.grid.files.review.form.ManageReviewFilesForm');
     $manageReviewFilesForm = new ManageReviewFilesForm($submission->getId(), $this->getRequestArg('stageId'), $this->getRequestArg('reviewRoundId'));
     $manageReviewFilesForm->readInputData();
     if ($manageReviewFilesForm->validate()) {
         $dataProvider = $this->getDataProvider();
         $manageReviewFilesForm->execute($args, $request, $this->getGridCategoryDataElements($request, $this->getStageId()));
         $this->setupTemplate($request);
         $user = $request->getUser();
         NotificationManager::createTrivialNotification($user->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.updatedReviewFiles')));
         // Let the calling grid reload itself
         return DAO::getDataChangedEvent();
     } else {
         return new JSONMessage(false);
     }
 }
 /**
  * Save 'manage review files' form
  * @param $args array
  * @param $request PKPRequest
  * @return string Serialized JSON object
  */
 function updateReviewFiles($args, &$request)
 {
     $monographId = $request->getUserVar('monographId');
     import('controllers.grid.files.reviewFiles.form.ManageReviewFilesForm');
     $manageReviewFilesForm = new ManageReviewFilesForm($monographId);
     $manageReviewFilesForm->readInputData();
     if ($manageReviewFilesForm->validate()) {
         $selectedFiles =& $manageReviewFilesForm->execute($args, $request);
         // Re-render the grid with the updated files
         $this->setData($selectedFiles);
         $this->initialize($request);
         // Pass to modal.js to reload the grid with the new content
         // FIXME: Calls to private methods of superclasses are not allowed!
         $gridBodyParts = $this->_renderGridBodyPartsInternally($request);
         if (count($gridBodyParts) == 0) {
             // The following should usually be returned from a
             // template also so we remain view agnostic. But as this
             // is easy to migrate and we want to avoid the additional
             // processing overhead, let's just return plain HTML.
             $renderedGridRows = '<tbody> </tbody>';
         } else {
             assert(count($gridBodyParts) == 1);
             $renderedGridRows = $gridBodyParts[0];
         }
         $json = new JSON('true', $renderedGridRows);
     } else {
         $json = new JSON('false');
     }
     return $json->getString();
 }