00001 <?php
00002
00017 import('form.Form');
00018
00019 class ReviewFormElementForm extends Form {
00020
00022 var $reviewFormId;
00023
00025 var $reviewFormElementId;
00026
00032 function ReviewFormElementForm($reviewFormId, $reviewFormElementId = null) {
00033 parent::Form('manager/reviewForms/reviewFormElementForm.tpl');
00034
00035 $this->reviewFormId = $reviewFormId;
00036 $this->reviewFormElementId = $reviewFormElementId;
00037
00038
00039 $this->addCheck(new FormValidatorLocale($this, 'question', 'required', 'manager.reviewFormElements.form.questionRequired'));
00040 $this->addCheck(new FormValidator($this, 'elementType', 'required', 'manager.reviewFormElements.form.elementTypeRequired'));
00041 $this->addCheck(new FormValidatorPost($this));
00042 }
00043
00048 function getLocaleFieldNames() {
00049 $reviewFormElementDao =& DAORegistry::getDAO('ReviewFormElementDAO');
00050 return $reviewFormElementDao->getLocaleFieldNames();
00051 }
00052
00056 function display() {
00057 $templateMgr =& TemplateManager::getManager();
00058 $templateMgr->assign('reviewFormId', $this->reviewFormId);
00059 $templateMgr->assign('reviewFormElementId', $this->reviewFormElementId);
00060 $templateMgr->assign_by_ref('multipleResponsesElementTypes', ReviewFormElement::getMultipleResponsesElementTypes());
00061
00062 $templateMgr->assign('multipleResponsesElementTypesString', ';'.implode(';', ReviewFormElement::getMultipleResponsesElementTypes()).';');
00063 import('reviewForm.ReviewFormElement');
00064 $templateMgr->assign_by_ref('reviewFormElementTypeOptions', ReviewFormElement::getReviewFormElementTypeOptions());
00065 $templateMgr->assign('helpTopicId','journal.managementPages.reviewForms');
00066 parent::display();
00067 }
00068
00072 function initData() {
00073 if ($this->reviewFormElementId != null) {
00074 $journal =& Request::getJournal();
00075 $reviewFormElementDao =& DAORegistry::getDAO('ReviewFormElementDAO');
00076 $reviewFormElement =& $reviewFormElementDao->getReviewFormElement($this->reviewFormElementId);
00077
00078 if ($reviewFormElement == null) {
00079 $this->reviewFormElementId = null;
00080 } else {
00081 $this->_data = array(
00082 'question' => $reviewFormElement->getQuestion(null),
00083 'required' => $reviewFormElement->getRequired(),
00084 'elementType' => $reviewFormElement->getElementType(),
00085 'possibleResponses' => $reviewFormElement->getPossibleResponses(null)
00086 );
00087 }
00088 }
00089 }
00090
00094 function readInputData() {
00095 $this->readUserVars(array('question', 'required', 'elementType', 'possibleResponses'));
00096 }
00097
00101 function execute() {
00102 $reviewFormElementDao =& DAORegistry::getDAO('ReviewFormElementDAO');
00103
00104 if ($this->reviewFormElementId != null) {
00105 $reviewFormElement =& $reviewFormElementDao->getReviewFormElement($this->reviewFormElementId);
00106 }
00107
00108 if (!isset($reviewFormElement)) {
00109 $reviewFormElement =& new ReviewFormElement();
00110 $reviewFormElement->setReviewFormId($this->reviewFormId);
00111 $reviewFormElement->setSequence(REALLY_BIG_NUMBER);
00112 }
00113
00114 $reviewFormElement->setQuestion($this->getData('question'), null);
00115 $reviewFormElement->setRequired($this->getData('required') ? 1 : 0);
00116 $reviewFormElement->setElementType($this->getData('elementType'));
00117
00118 if (in_array($this->getData('elementType'), ReviewFormElement::getMultipleResponsesElementTypes())) {
00119 $reviewFormElement->setPossibleResponses($this->getData('possibleResponses'), null);
00120 } else {
00121 $reviewFormElement->setPossibleResponses(null, null);
00122 }
00123
00124 if ($reviewFormElement->getReviewFormElementId() != null) {
00125 $reviewFormElementDao->deleteSetting($reviewFormElement->getReviewFormElementId(), 'possibleResponses');
00126 $reviewFormElementDao->updateReviewFormElement($reviewFormElement);
00127 $this->reviewFormElementId = $reviewFormElement->getReviewFormElementId();
00128 } else {
00129 $this->reviewFormElementId = $reviewFormElementDao->insertReviewFormElement($reviewFormElement);
00130 $reviewFormElementDao->resequenceReviewFormElements($this->reviewFormId);
00131 }
00132
00133 }
00134 }
00135
00136 ?>