. */ include("./include/include.php"); require_once(FILESYSTEMROOTPATH."jc/include/classes/DefaultLayout.php"); require_once(FILESYSTEMROOTPATH."include/list/ListPager.php"); require_once(FILESYSTEMROOTPATH."jc/include/classes/RemainingForm.php"); class CountVotesForm extends RemainingForm { public function __construct(Layout $layout, IModel $model) { parent::__construct($layout, $model,'CountVotesForm'); } public function save(IModel $model) { $GLOBALS['ClassFactory']->getRankedVoteService()->countVotes($model->getId()); $this->layout->redirect('ranked3.php?id='.$model->getId()); } } $layout = new DefaultLayout("JC_MANAGE", "./jc/"); $layout->init(); $layout->echoln('Back

'); //get id if set if (isset($_GET['id'])){ $id = $_GET['id']; $poll = $GLOBALS['ClassFactory']->getRankedVoteService()->load($id); } //how many votes, how many available votes? //bodies voted? if (date("Y-m-d H:i:s") < $poll->getClose()){ $layout->echoln('Ranked Voting has not closed yet!'); } else { //results $ba = $poll->getBodies_available(); $bv = $poll->getBodies_voted(); $va = $poll->getVotes_available(); $vc = $poll->getVotes_cast(); if ($ba){ $bp = sprintf('%.2f', 100 * $bv / $ba); }else{ $bp = '0.00'; } if ($va){ $vp = sprintf('%.2f', 100 * $vc / $va); }else{ $vp = '0.00'; } $layout->echoln(''); $layout->echoln(''); $layout->echoln(''); $layout->echoln('
Bodies Registered'.$ba.'
Bodies Voted'.$bv.' ('.$bp.'%)
Votes Available'.$va.'
Votes Cast'.$vc.' ('.$vp.'%)

'); $rvoService = $GLOBALS['ClassFactory']->getRankedVoteOptionsService(); $data = $rvoService->loadByRankedVote($poll->getId()); $pager = new ListPager($poll->getTitle()); $pager->addColumn(new TextColumn('rankedVoteOption', 'Option')); $pager->addColumn(new TextColumn('ranking', 'Ranking')); $layout->echoln($pager->display($data)); //count votes button $form = new CountVotesForm($layout, $poll); $form->setSubmitText('Count Votes'); $form->display(); $layout->echoln('View All Ballots
'); $C = count($data); //visualize d, p $d = json_decode($poll->getSchultze_d()); $p = json_decode($poll->getSchultze_p()); if ($d ){ $candidate_names = array(); $d_viz = ''; foreach($data as $candidate){ $d_viz .= ''; $candidate_names[] = $candidate["rankedVoteOption"]; } $d_viz .= ''; for($i=0;$i<$C;$i++){ $d_viz .= ''; for($j=0;$j<$C;$j++){ $color = '#FFFFFF'; if ($d[$i][$j] > $d[$j][$i]){ $color = '#D0F0D0'; }elseif($d[$i][$j] < $d[$j][$i]){ $color = '#F0D0D0'; } $d_viz .= "'; } $d_viz .= ''; } $d_viz .= '
'.$candidate["rankedVoteOption"].'
'.$candidate_names[$i].'".$d[$i][$j].'
'; $p_viz = ''; foreach($data as $candidate){ $p_viz .= ''; } $p_viz .= ''; for($i=0;$i<$C;$i++){ $p_viz .= ''; for($j=0;$j<$C;$j++){ $color = '#FFFFFF'; if ($p[$i][$j] > $p[$j][$i]){ $color = '#D0F0D0'; }elseif($p[$i][$j] < $p[$j][$i]){ $color = '#F0D0D0'; } $p_viz .= "'; } $p_viz .= ''; } $p_viz .= '
'.$candidate["rankedVoteOption"].'
'.$candidate_names[$i].'".$p[$i][$j].'
'; $layout->echoln('

Preference Table
'.$d_viz); $layout->echoln('

Path Strength Table
'.$p_viz); } } $layout->page_footer(); ?>