. */ include("./include/include.php"); require_once(FILESYSTEMROOTPATH."jc/include/classes/DefaultLayout.php"); require_once(FILESYSTEMROOTPATH."include/form/AbstractForm.php"); //include(FILESYSTEMROOTPATH.'jc/include/classes/AbstractForm2.php'); included in helpers include('Helpers.php'); $layout = new DefaultLayout(Access::VISITOR, "./jc/"); $layout->init(); $layout->addJavascript('js/text_diff.js'); $layout->addJavascript('js/visibility.js'); $proposals_sentencesService = $GLOBALS['ClassFactory']->getProposals_sentencesService(); $ciaService = $GLOBALS['ClassFactory']->getCIAService(); $proposalsService = $GLOBALS['ClassFactory']->getProposalsService(); $agoraeService = $GLOBALS['ClassFactory']->getAgoraeService(); $last_agora = $agoraeService->getLatestAgora(); if(isset($_POST['proposal_id'])) { $proposal_id = $_POST['proposal_id']; } else {// GET proposal_id $proposal_id = $_GET['proposal_id']; } if(isset($_POST['order'])) { $order = $_POST['order']; } else {// GET proposal_id $order = $_GET['order']; } $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 echo "Even JC cannot edit after two weeks before the Agora"; exit(0); } }elseif ($proposal->getProposer_Uid() != $_SESSION['sess_uid']){ echo 'This proposal does not belong to you!'; exit(0); }elseif($proposal->getStatus()!='Saved' && $proposal->getStatus()!='Changes Required'){ $layout->redirect('view_proposal2.php?proposal_id='.$proposal_id.'&order='.$order); } $show_comments =true; if ($proposal->getStatus() == 'Saved' || $proposal->getStatus() == 'Submitted'){ $show_comments =false; // if submitted, jc can start writing comments, but don't show them yet! } //load original senteces of this title $sentences = $ciaService->loadByTitleOrder($order); //load changes for this title $proposals_sentences = $proposals_sentencesService->loadByProposalId_Order($proposal_id, $order); if(isset( $_SESSION['sess_access_bodyCodes']['XJU']['JC_MANAGE'] ) AND $proposal->getProposer_Uid() != $_SESSION['sess_uid']) $layout->echoln($layout->jcwarning); //if a new title is created if ($sentences==NULL) { $layout->echoln('New Section
'); $sentence = new CIA('') ; foreach($proposals_sentences as $ps){ $cat= $ps['category']; break; } $sentence=array( 'id'=>'-1', 'category'=>$cat, 'title'=>' ', 'order'=>$order, 'last_change'=>' ', 'title2'=>'', 'order2'=>'', 'article'=>'1', 'article_title'=>' ', 'paragraph'=>'1', 'sentence'=>'1', 'sentence_text'=>' ', 'agora_id_start'=>'0', 'agora_id_end'=>'0', ); $sentences[] = $sentence; if ($proposals_sentences == NULL){ $ps_new = new Proposals_sentences(''); $ps_new->copy_from_cia_array($sentence); $ps_new->setProposal_id($proposal_id); $ps_new->setChange_type('New_v'); $ps_new->setTitle_status('New_v'); $ps_new->setTitle2_status('New_v'); $ps_new->setArticle_title_status('New_v'); $ps_new->setParagraph_status('New_v'); $proposals_sentencesService->saveOrUpdate($ps_new); $proposals_sentences[]=$ps_new; } } /** * Editor: Dislpay CIA sentences or proposed changes */ $layout->echoln('"Save": Saves changes. Press it on each sentence.
"Reset": Deletes change and restores original CIA text
"Delete": Removes a sentence (use this for auto-numbering instead of leaving the box empty)
"New ^": Creates a new sentence before this
"New v": Creates a new sentence after this
"Cancel": Undo unsaved changes

'); $layout->echoln('When finish go back'); $layout->echoln(''); $layout->echoln(''); $lines=1; //display title //get first sentence foreach ($sentences as $sent) { $sentence = $sent; break; } //check if modified version exists $ps = NULL; foreach ($proposals_sentences as $prs){ if($prs['sentence_id'] == $sentence['id']){ $ps = $prs; break;} } if ($ps !=NULL){ $header = new Proposals_sentences($ps); $original = $sentence; }else{ $original = NULL; $header = new Proposals_sentences(''); $header->copy_from_cia_array($sentence); $header->setProposal_id($proposal_id); $header->setChange_type('Edit'); } Field($layout, $header, $proposals_sentencesService, $ciaService, $lines, "title", $original); $lines=2; $empty= new Proposals_sentences(''); $previous = $empty; //$i = -1; $i=0; foreach ($sentences as $sentence) { //check if edited text exists $later = array(); $modified = NULL; foreach($proposals_sentences as $prop_s){ if ($prop_s['sentence_id'] == $sentence['id']){ //an edited version of this sentence exists //simple edited text if($prop_s['change_type']=='Edit'){ $modified = new Proposals_sentences($prop_s); } if($prop_s['change_type']=='Delete'){ $modified = new Proposals_sentences($prop_s); } elseif($prop_s['change_type']=='New_^'){ //display the inserted sentence //$i++; $ps[$i] = new Proposals_sentences($prop_s); $empty_array = $sentence; $empty_array['sentence']=''; $empty_array['sentence_text']=''; $lines = Area($layout, $ps[$i], $proposals_sentencesService, $ciaService, $lines, $empty_array, $previous, $show_comments); $previous = $ps[$i]; } elseif($prop_s['change_type']=='New_v'){ //display later $later []=$prop_s; } } } if ($modified!=NULL){ //$i++; $lines = Area($layout, $modified, $proposals_sentencesService, $ciaService, $lines, $sentence, $previous, $show_comments); $previous = $modified; } else{ //display original cia sentence //$i++; $ps[$i] = new Proposals_sentences(''); $ps[$i]->copy_from_cia_array($sentence); $ps[$i]->setProposal_id($proposal_id); $ps[$i]->setChange_type('Edit'); $lines = Area($layout, $ps[$i], $proposals_sentencesService, $ciaService, $lines, NULL, $previous, $show_comments); $previous = $ps[$i]; } foreach($later as $later_s){ //display the inserted sentence // $i++; $ps[$i] = new Proposals_sentences($later_s); $empty_array = $sentence; $empty_array['sentence']=''; $empty_array['sentence_text']=''; $lines = Area($layout, $ps[$i], $proposals_sentencesService, $ciaService, $lines, $empty_array, $previous, $show_comments); $previous = $ps[$i]; } } $layout->echoln('
Full TextChanges

'); //auto focus if(isset($_GET['fform'])){ $layout->echoln( '' ); } $layout->page_footer(); ?>