You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
5.2 KiB
PHP
169 lines
5.2 KiB
PHP
<?php
|
|
require_once("database.php");
|
|
$db = new DB();
|
|
$db->closeVotes();
|
|
$page = is_numeric($_REQUEST['page'])?$_REQUEST['page']:1;
|
|
$user = $db->auth();
|
|
|
|
if ($_REQUEST['withdrawl'] && $_REQUEST['confirm'] && $_REQUEST['id']) {
|
|
if (!$user) {
|
|
header("HTTP/1.0 302 Redirect");
|
|
header("Location: denied.php");
|
|
exit();
|
|
}
|
|
$stmt = $db->getStatement("get decision");
|
|
$stmt->bindParam(":decision",$_REQUEST['id']);
|
|
if ($stmt->execute() && ($decision=$stmt->fetch())) {
|
|
$name = $user['name'];
|
|
$tag = $decision['tag'];
|
|
$title = $decision['title'];
|
|
$content = $decision['content'];
|
|
$body = <<<BODY
|
|
Dear Board,
|
|
|
|
$name has withdrawn the motion $tag that was as follows:
|
|
|
|
$title
|
|
$content
|
|
|
|
Kind regards,
|
|
the voting system
|
|
BODY;
|
|
$db->notify("Re: $tag - $title - withdrawn",$body,$tag);
|
|
}
|
|
$stmt = $db->getStatement("close decision");
|
|
$status = -2;
|
|
$stmt->bindParam(":status",$status);
|
|
$stmt->bindParam(":decision",$_REQUEST['id']);
|
|
$stmt->execute();
|
|
}
|
|
?>
|
|
<html>
|
|
<head>
|
|
<title>CAcert Board Decisions</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset='UTF-8'" />
|
|
<link rel="stylesheet" type="text/css" href="styles.css" />
|
|
</head>
|
|
<body>
|
|
<?php
|
|
if ($user) echo '<a href="?unvoted=1">Show my outstanding votes</a><br/>';
|
|
?>
|
|
<table class="list">
|
|
<tr>
|
|
<th>Status</th>
|
|
<th>Motion</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
<?php
|
|
if ($_REQUEST['motion']) {
|
|
$stmt = $db->getStatement("list decision");
|
|
$stmt->execute(array($_REQUEST['motion']));
|
|
} else {
|
|
if ($user && $_REQUEST['unvoted']) {
|
|
$stmt = $db->getStatement("list my unvoted decisions");
|
|
$stmt->bindParam(":id",$user['id']);
|
|
} else {
|
|
$stmt = $db->getStatement("list decisions");
|
|
}
|
|
$stmt->bindParam(":page",$page);
|
|
$stmt->execute();
|
|
}
|
|
$items = 0;
|
|
$id = -1;
|
|
while ($row = $stmt->fetch()) {
|
|
$items++;
|
|
$id = $row['id'];
|
|
?><tr>
|
|
<td class="<?php switch($row['status']) { case 0: echo "pending"; break; case 1: echo "approved"; break; case -1: echo "declined"; break; case -2: echo "withdrawn"; break; }?>">
|
|
<?php
|
|
switch($row['status']) {
|
|
case 0: echo "Pending<br/><i>".$row['due']." UTC</i>"; break;
|
|
case 1: echo "Approved<br/><i>".$row['modified']." UTC</i>"; break;
|
|
case -1: echo "Declined<br/><i>".$row['modified']." UTC</i>"; break;
|
|
case -2: echo "Withdrawn<br/><i>".$row['modified']." UTC</i>"; break;
|
|
}
|
|
?>
|
|
</td>
|
|
<td>
|
|
<i><a href="motions.php?motion=<?php echo $row['tag'].'">'.$row['tag']; ?></a></i><br/>
|
|
<b><?php echo htmlspecialchars($row['title']); ?></b><br/>
|
|
<pre><?php echo htmlspecialchars($row['content']); ?></pre>
|
|
<br/>
|
|
<i>Due: <?php echo($row['due']); ?> UTC</i><br/>
|
|
<i>Proposed: <?php echo($row['proposer']); ?> (<?php echo($row['proposed']); ?> UTC)</i><br/>
|
|
<i>Vote type: <?php echo(!$row['votetype']?'motion':'veto'); ?></i><br/>
|
|
<i>Aye|Naye|Abstain: <?php echo($row['ayes']); ?>|<?php echo($row['nayes']); ?>|<?php echo($row['abstains']); ?></i><br/>
|
|
<?php
|
|
if ($row['status'] ==0 || $_REQUEST['showvotes']) {
|
|
$state = array('Naye','Abstain','Aye');
|
|
$vstmt = $db->getStatement("list votes");
|
|
$vstmt->execute(array($row['id']));
|
|
echo "<i>Votes:</i><br/>";
|
|
while ($vrow = $vstmt->fetch()) {
|
|
echo "<i>".$vrow['name']." ".$state[$vrow['vote']+1]."</i><br/>";
|
|
}
|
|
} else {
|
|
echo '<i><a href="motions.php?motion='.$row['tag'].'&showvotes=1">Show Votes</a></i><br/>';
|
|
}
|
|
?>
|
|
</td>
|
|
<td class="actions">
|
|
<?php
|
|
if ($row['status'] == 0 && $user ) {
|
|
?>
|
|
<ul>
|
|
<li><a href="vote.php?motion=<?php echo($row['id']); ?>&vote=1">Aye</a></li>
|
|
<li><a href="vote.php?motion=<?php echo($row['id']); ?>&vote=0">Abstain</a></li>
|
|
<li><a href="vote.php?motion=<?php echo($row['id']); ?>&vote=-1">Naye</a></li>
|
|
<li><a href="proxy.php?motion=<?php echo($row['id']); ?>">Proxy Vote</a></li>
|
|
<li><a href="motion.php?motion=<?php echo($row['id']); ?>">Modify</a></li>
|
|
<li><a href="motions.php?motion=<?php echo($row['tag']); ?>&withdrawl=1">Withdrawl</a></li>
|
|
</ul>
|
|
<?php
|
|
} else {
|
|
?>
|
|
|
|
<?php
|
|
}
|
|
?>
|
|
</td>
|
|
</tr><?php
|
|
}
|
|
?>
|
|
<tr>
|
|
<td colspan="2" class="navigation">
|
|
<?php if ($page>1) { ?><a href="?page=<?php echo($page-1); ?>"><</a><?php } else { ?> <?php } ?>
|
|
|
|
<?php if ($items>9) { ?><a href="?page=<?php echo($page+1); ?>">></a><?php } else { ?> <?php } ?>
|
|
</td>
|
|
<td class="actions">
|
|
<?php if ($user) echo('<ul><li><a href="motion.php">New Motion</a></li></ul>'); ?>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
if ($_REQUEST['withdrawl']) {
|
|
?>
|
|
<tr>
|
|
<td colspan="3">
|
|
<?php
|
|
if ($_REQUEST['confirm'] && $_REQUEST['id']) {
|
|
?>
|
|
<a href="motions.php">Motion Withdrawn</a>
|
|
<?php
|
|
} else {
|
|
?>
|
|
<form action="?withdrawl=1&confirm=1&id=<?php echo $id;?>" method="post">
|
|
<input type="submit" value="Withdrawl">
|
|
</form>
|
|
<?php
|
|
}
|
|
?>
|
|
</td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
?>
|
|
</table>
|
|
</body>
|
|
</html>
|