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

controllers/grid/users/stageParticipant/form/AddParticipantForm.inc.php

00001 <?php
00002 
00015 import('lib.pkp.classes.form.Form');
00016 
00017 class AddParticipantForm extends Form {
00019    var $_monograph;
00020 
00022    var $_stageId;
00023 
00025    var $_userGroups;
00026 
00030    function AddParticipantForm(&$monograph, $stageId, &$userGroups) {
00031       parent::Form('controllers/grid/users/stageParticipant/addParticipantForm.tpl');
00032       $this->_monograph =& $monograph;
00033       $this->_stageId = $stageId;
00034       $this->_userGroups =& $userGroups;
00035 
00036       $this->addCheck(new FormValidator($this, 'userGroupId', 'required', 'editor.monograph.addStageParticipant.form.userGroupRequired'));
00037       // FIXME: should use a custom validator to check that the user belongs to this group.
00038       // validating in validate method for now.
00039       $this->addCheck(new FormValidator($this, 'userId', 'required', 'editor.monograph.addStageParticipant.form.userRequired'));
00040       $this->addCheck(new FormValidatorPost($this));
00041    }
00042 
00043    //
00044    // Getters and Setters
00045    //
00050    function &getMonograph() {
00051       return $this->_monograph;
00052    }
00053 
00058    function getStageId() {
00059       return $this->_stageId;
00060    }
00061 
00065    function &getUserGroups() {
00066       return $this->_userGroups;
00067    }
00068 
00073    function fetch(&$request) {
00074       $templateMgr =& TemplateManager::getManager();
00075       $userGroups =& $this->getUserGroups();
00076 
00077       $userGroupOptions = array();
00078       foreach ($userGroups as $userGroupId => $userGroup) {
00079          $userGroupOptions[$userGroupId] = $userGroup->getLocalizedName();
00080       }
00081       // assign the user groups options
00082       $templateMgr->assign_by_ref('userGroupOptions', $userGroupOptions);
00083       // assigned the first element as selected
00084       $templateMgr->assign('selectedUserGroupId', array_shift(array_keys($userGroupOptions)));
00085 
00086       // assign the vars required for the request
00087       $monograph =& $this->getMonograph();
00088       $templateMgr->assign('monographId', $monograph->getId());
00089       $templateMgr->assign('stageId', $this->getStageId());
00090 
00091       return parent::fetch($request);
00092    }
00093 
00098    function readInputData() {
00099       $this->readUserVars(array(
00100          'userGroupId',
00101          'userId'
00102       ));
00103    }
00104 
00109    function validate() {
00110       $userGroupId = (int) $this->getData('userGroupId');
00111       $userId = (int) $this->getData('userId');
00112       $monograph =& $this->getMonograph();
00113 
00114       $userGroupDao =& DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */
00115       return parent::validate() && $userGroupDao->userInGroup($userId, $userGroupId) && $userGroupDao->getById($userGroupId, $monograph->getPressId());
00116    }
00117 
00123    function execute() {
00124       $stageAssignmentDao =& DAORegistry::getDAO('StageAssignmentDAO'); /* @var $stageAssignmentDao StageAssignmentDAO */
00125       $userGroupDao =& DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */
00126 
00127       $monograph =& $this->getMonograph();
00128       $userGroupId = (int) $this->getData('userGroupId');
00129       $userId = (int) $this->getData('userId');
00130 
00131       // sanity check
00132       if ($userGroupDao->userGroupAssignedToStage($userGroupId, $this->getStageId())) {
00133          // insert the assignment
00134          $stageAssignment = $stageAssignmentDao->build($monograph->getId(), $userGroupId, $userId);
00135       }
00136       return array($userGroupId, $userId, $stageAssignment->getId());
00137    }
00138 }
00139 
00140 ?>

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