.
*/
include("./include/include.php");
require_once(FILESYSTEMROOTPATH."jc/include/classes/DefaultLayout.php");
require_once(FILESYSTEMROOTPATH."include/form/AbstractForm.php");
/**
* Helper classes
*/
class ProposalForm extends AbstractForm {
private $proposalsService;
public function __construct(Layout $layout, IModel $model, ProposalsService $proposalsService) {
parent::__construct($layout, $model);
$this->proposalsService = $proposalsService;
}
public function save(IModel $model) {
if( $this->proposalsService->saveOrUpdate($model) ) {
if( $model->getId()==NULL ) {
//$this->layout->echoln(_("Proposal created successfully."));
$id=mysql_insert_id();
$this->layout->redirect('create_proposal2.php?proposal_id='.$id);
}else {
//$this->layout->echoln(_("Proposal updated successfully."));
$this->layout->redirect('create_proposal2.php?proposal_id='.$model->getId());
}
}else {
if( $model->getId()==NULL ) {
// New Proposal
$this->layout->echoln(_("Failed creating Proposal."));
}else {
// Proposal edited
$this->layout->echoln(_("Failed saving Proposal."));
}
}
}
}
/**
* End of helper classes
*/
$layout = new DefaultLayout(Access::VISITOR, "./jc/");
$layout->init();
$proposalsService = $GLOBALS['ClassFactory']->getProposalsService();
$agoraeService = $GLOBALS['ClassFactory']->getAgoraeService();
$last_agora = $agoraeService->getLatestAgora();
$layout->echoln('Back
');
$proposal = NULL;
if (isset($_GET['proposal_id'])){
$proposal_id = $_GET['proposal_id'];
$proposal = $proposalsService->load($proposal_id);
if(isset( $_SESSION['sess_access_bodyCodes']['XJU']['JC_MANAGE'] )) {//JC can edit someone else's proposal
if(time() > (strtotime($last_agora->getA_open())-60*60*24*14)) {//two weeks before the agora
echo "Even JC cannot edit two weeks before the Agora";
$layout->page_footer();
exit(0);
}
}elseif ($proposal->getProposer_Uid() != $_SESSION['sess_uid']){
echo 'This proposal does not belong to you!';
$layout->page_footer();
exit(0);
}elseif($proposal->getStatus()!='Saved' && $proposal->getStatus()!='Changes Required'){
$layout->redirect('view_proposal1.php?proposal_id='.$proposal_id);
}
}
if($proposal == NULL){
$proposal = new Proposals('');
$proposal->setProposer_Uid($_SESSION['sess_uid']);
$proposal->setAgora_id($last_agora->getId());
$proposal->setStatus('Saved');
$proposal->setSubmit_date(date('Y-m-d H:i:s'));
}
if(isset( $_SESSION['sess_access_bodyCodes']['XJU']['JC_MANAGE'] ) AND $proposal->getProposer_Uid() != $_SESSION['sess_uid']) $layout->echoln($layout->jcwarning);
$form = new ProposalForm($layout, $proposal, $proposalsService);
$proposer_uidField = new TextField('proposer_uid','proposer uid');
$proposer_uidField->setReadOnly(true);
$proposer_uidField->setClass('disabled');
$form->addField($proposer_uidField);
$titleField = new TextField('title','Title');
$form->addField($titleField->setCompulsory(true));
$proposersField = new TextField('proposers','Proposers');
$proposersField->setExplanation('eg George Dimitrakopoulos, Manos Valasis on behalf of AEGEE-Patra');
$form->addField($proposersField->setCompulsory(true));
$motivationArea = new TextAreaField('motivation','Motivation',5,70);
$motivationArea->setExplanation($layout->bbcodeexplanation);
$form->addField($motivationArea->setCompulsory(true));
if (($proposal->getStatus() != 'Saved') && ($proposal->getStatus() != 'Submitted')){
$jc_comment = new TextAreaField('jc_comment','JC Comment',5,70);
$jc_comment->setReadOnly(true);
$jc_comment->setClass('disabled');
$form->addField($jc_comment);
}
$form->display();
$layout->page_footer();
?>