. */ include("./include/include.php"); require_once(FILESYSTEMROOTPATH."jc/include/classes/DefaultLayout.php"); require_once(FILESYSTEMROOTPATH."include/list/ListPager.php"); require_once(FILESYSTEMROOTPATH."include/form/AbstractForm.php"); //require_once('./include/model/Proposals.php'); /** * Helper classes */ class TitleSelectForm extends AbstractForm { private $proposalsService; public function __construct(Layout $layout, IModel $model,$proposal_id) { parent::__construct($layout, $model); } public function save(IModel $model) { if ($_POST['form']!='1'){ return; } $url = 'create_proposal3.php?proposal_id='.$_POST['proposal_id'].'&order='.$_POST['order']; $this->layout->redirect($url); // post to $_SERVER['REQUEST_URI']='create_proposal3.php'; } } class NewTitleForm extends AbstractForm { private $proposals_sentenceService; private $proposal_id; public function __construct(Layout $layout, IModel $model, $service, $proposal_id ) { parent::__construct($layout, $model); $this->proposals_sentenceService = $service; $this->proposal_id = $proposal_id; } public function save(IModel $model) { if ($_POST['form']!='2'){ return; } if( $this->proposals_sentenceService->saveOrUpdate($model) ) { $url='create_proposal3.php?proposal_id='.$this->proposal_id.'&order='.$_POST['order']; $this->layout->redirect($url); } else { $this->layout->echoln('database error'); } } } class FinalForm extends AbstractForm { private $proposalsService; public function __construct(Layout $layout, IModel $model, $service) { parent::__construct($layout, $model); $this->proposalsService = $service; } public function save(IModel $model) { if ($_POST['form']!='3'){ return; } $model->setStatus('Submitted'); $model->setSubmit_date(date('Y-m-d H:i:s')); if ($this->proposalsService->saveOrUpdate($model)){ $url = 'create_proposal0.php'; $this->layout->redirect($url); } else{ $this->layout->echoln('Failed to submit'); } } } /** * End of helper classes */ $proposals_sentencesService = $GLOBALS['ClassFactory']->getProposals_sentencesService(); $proposalsService = $GLOBALS['ClassFactory']->getProposalsService(); $ciaService = $GLOBALS['ClassFactory']->getCIAService(); $agoraService = $GLOBALS['ClassFactory']->getAgoraeService(); $agoraeService = $GLOBALS['ClassFactory']->getAgoraeService(); $last_agora = $agoraeService->getLatestAgora(); $layout = new DefaultLayout(Access::VISITOR, "./jc/"); $layout->init(); // 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*7*2)) {//two weeks before the agora $layout->echoln('Even JC cannot edit after two weeks before the Agora'); $layout->page_footer(); exit(0); }*/ }elseif ($proposal->getProposer_Uid() != $_SESSION['sess_uid']){ $layout->echoln('This proposal does not belong to you!'); $layout->page_footer(); exit(0); }elseif($proposal->getStatus()!='Saved' && $proposal->getStatus()!='Changes Required'){ $layout->redirect('view_proposal2.php?proposal_id='.$proposal_id); } if(isset( $_SESSION['sess_access_bodyCodes']['XJU']['JC_MANAGE'] ) AND $proposal->getProposer_Uid() != $_SESSION['sess_uid']) $layout->echoln($layout->jcwarning); //view affected titles for this proposal $data = $proposals_sentencesService->loadTitlesByProposalId($proposal_id, true); $layout->echoln('Back

'); $layout->echoln('Sections affected by this proposal'); $pager = new ListPager("Changes"); $pager->addColumn(new TextColumn("title", "Title")); $pager->addColumn(new TextColumn("category", "Category")); $pager->addColumn(new TextColumn("view", "View")); $pager->addColumn(new TextColumn("edit", "Edit")); $pager->addColumn(new TextColumn("delete", "Delete")); $layout->echoln($pager->display($data)); //final submission $layout->echoln('
Final Submission
'); $aid = $proposal->getAgora_id(); $agora = $agoraService->load($aid); $open = $agora->getOpen(); $close = $agora->getClose(); $resubmit = $agora->getChanges_deadline(); $layout->echoln('Period for submitting proposals: '.$open.' - '.$close.'
'); $today = date('Y-m-d'); $time = date('H:i:s'); $layout->echoln('Now is '.$today.' '.$time.' (CET Time)
'); $canSubmit = false; if ((strtotime($open) <= strtotime($today)) && (strtotime($close) >= strtotime($today))){ $canSubmit = true; } elseif(isset( $_SESSION['sess_access_bodyCodes']['XJU']['JC_MANAGE'] )){ $layout->echoln('JC can always submit:p
'); $canSubmit = true; } elseif(($proposal->getStatus()=='Changes Required') && (strtotime($today) <= strtotime($resubmit))){ $layout->echoln('Deadline to resubmit your proposal: '.$resubmit.'
'); $canSubmit = true; } if ($canSubmit){ $fform = new FinalForm($layout, $proposal, $proposalsService); $fform->addHiddenField(new HiddenField('form','3')); $fform->setSubmitText('Final Submision'); $fform->display(); } else{ $layout->echoln('You cannot submit a proposal now'); } $layout->echoln('


'); //add new section $layout->echoln('Add more changes in the proposal
'); $titles = $ciaService->loadTitles(); $titleSelectForm = new TitleSelectForm($layout, new Proposals_sentences(''),$proposal_id); $titlesField = new SelectField('order','Title',$titles); $titleSelectForm->addField($titlesField); $titleSelectForm->addHiddenField(new HiddenField('proposal_id',$proposal_id)); $titleSelectForm->addHiddenField(new HiddenField('form','1')); $titleSelectForm->setSubmitText('Add'); $titleSelectForm->display(); $layout->echoln('Note: in the next page save at least a change in order to include this section'); $layout->echoln('


'); //create new section $last_order = $proposals_sentencesService->getNextOrder(); $first_sentence = new Proposals_sentences(''); $first_sentence->setSentence_id(-1); $first_sentence->setLast_change(' '); $first_sentence->setArticle(1); $first_sentence->setArticle_title(' '); $first_sentence->setParagraph(1); $first_sentence->setSentence(1); $first_sentence->setSentence_text(' '); $first_sentence->setAgora_id_start(0); $first_sentence->setAgora_id_end(0); $first_sentence->setProposal_id($proposal_id); $first_sentence->setChange_type('Edit'); $first_sentence->setOrder($last_order); $layout->echoln('Create new title
'); $form = new NewTitleForm($layout, $first_sentence , $proposals_sentencesService, $proposal_id); $field1 = new TextField('title','Title'); $field2 = new SelectField('category','Category',$ciaService->getCategories()); $field3 = new HiddenField('order',$last_order); $form->addField($field1); $form->addField($field2); $form->addHiddenField(new HiddenField('proposal_id',$proposal_id)); $form->addHiddenField($field3); $form->addHiddenField(new HiddenField('form','2')); $form->display(); $layout->echoln('Note: in the next page save at least a change in order to include this section'); $layout->page_footer(); ?>