Start re-working admin styles in SASS.
Start re-working admin styles in SASS.

File last commit:

dc98d7eb2bb1
cb8490c8fb1e
Show More
manage-statusbox.php
167 lines | 4.3 KiB | text/x-php | XmlPhpLexer
/ manage-statusbox.php
Add most necessary files for admin interface.
r1 <?php
/* This page displays and modifies the Status Box */
require_once('include/admin.inc.php');
auth_redirect(); // Require logged in user to access this page.
/* Handle form submission of new updates */
function handle_update_form() {
global $error,$info,$mtdb;
check_nonce('update-statusbox');
$percent = $_POST['update_percentage'];
$eta = strtotime($_POST['update_eta']);
$text = $_POST['update_text'];
$now = time();
$percent = trim($percent, "% ");
if( !is_numeric ( $percent ) ) {
$error = '<p>Percentage complete must be numeric.</p>';
return;
}
if( $percent < 0 || $percent > 100 ) {
$error = '<p>Supply percentages between 0 and 100 (inclusive), please.</p>';
return;
}
// ETA must be sane
if( ($eta < $now && $percent < 100) || ($eta<mktime(0,0,0,1,1,2000) ) ) {
$error = '<p>Supply estimated time in the future, please. Current time is ' . date("F j, Y, g:i a", $now) . '</p>';
return;
}
Switch to mysqli_* in other php files.
r5 $mtdb->query( 'INSERT INTO status (published,eta,percentage,text) VALUES( NOW(), FROM_UNIXTIME(' . (int)$eta . '), '. (int)$percent . ', "' . mysqli_real_escape_string($mtdb->link, $text) . '")' );
Add most necessary files for admin interface.
r1
$_POST['update_percentage']=$_POST['update_eta']=$_POST['update_text']='';
$info = '<p>Statusbox updated successfully.</p>';
}
if( isset($_POST['action']) && $_POST['action'] == 'create-update' )
handle_update_form();
adminhead('Status Box');
adminmenu('manage-statusbox.php');
/* Simple Presets, Select things said before */
$presets = $mtdb->getAll('SELECT COUNT(*) as c, percentage, text, CONCAT( percentage, "% - ", text ) as p FROM status GROUP BY p HAVING c>1 ORDER BY c DESC');
?>
<form enctype="multipart/form-data" name="create-update" id="create-update" action="manage-statusbox.php" method="post">
<?php nonce_field('update-statusbox'); ?>
<input type="hidden" name="action" value="create-update" />
<h2>Update Status Box</h2>
<div class="narrow">
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th scope="row">Current Time</th>
<td width="66%"><?php echo date("F j, Y, g:i a"); ?></td>
</tr>
<tr>
<th scope="row">Estimated Time Of Next Update</th>
<td width="66%"><input name="update_eta" type="text" id="update_eta" value="<?php echo htmlentities($_POST['update_eta']); ?>" /></td>
</tr>
<tr>
<th scope="row">Percentage Complete</th>
<td width="66%"><input name="update_percentage" type="text" id="update_percentage" value="<?php echo htmlentities($_POST['update_percentage']); ?>" /></td>
</tr>
<tr>
<th scope="row">Status Description</th>
<td width="66%"><textarea name="update_text" row="6" cols="30" id="update_text"><?php echo htmlentities($_POST['update_text']); ?></textarea></td>
</tr>
Switch to mysqli_* in other php files.
r5
Add most necessary files for admin interface.
r1 <script type="text/javascript">
function PresetHandler( f ) {
Switch to mysqli_* in other php files.
r5
Add most necessary files for admin interface.
r1 var i = f.preset.selectedIndex;
var v = f.preset.options[i].value;
Switch to mysqli_* in other php files.
r5
Add most necessary files for admin interface.
r1 var parts = v.split("% - ");
Switch to mysqli_* in other php files.
r5
Add most necessary files for admin interface.
r1 if( parts[0] == undefined ) {
parts[0] = "";
}
if( parts[1] == undefined ) {
parts[1] = "";
}
Switch to mysqli_* in other php files.
r5
Add most necessary files for admin interface.
r1 f.update_percentage.value = parts[0];
f.update_text.value = parts[1];
Switch to mysqli_* in other php files.
r5
Add most necessary files for admin interface.
r1 return true;
}
document.write('<tr><th scope="row">Presets</th><td width="66%"><select name="preset" onchange="PresetHandler(this.form);"><option value="">-none-</option><?php
foreach( $presets as $p )
echo '<option value="' . addslashes(htmlentities($p->p)) . '">' . addslashes(htmlentities($p->p)) . '</option>';
?></select></td></tr>');
Switch to mysqli_* in other php files.
r5
Add most necessary files for admin interface.
r1 </script>
</table>
<p class="submit"><input type="submit" value="Set Update Status &raquo;" name="submit" /></p>
</div>
</form>
</div>
<div class="wrap">
<h2>Status Box History</h2>
<p>Status updates that have gone before.</p>
<?php
$stats = $mtdb->getAll("SELECT published,eta,percentage,text FROM status ORDER BY published DESC limit 5");
?>
<table class="widefat">
<thead>
<tr>
<th scope="col">Published</th>
<th scope="col">ETA</th>
<th scope="col">Percentage</th>
<th scope="col">Text</th>
</tr>
</thead>
<tbody id="the-list">
<?php
$alternate=false;
foreach( $stats as $s ) {
$alternate=!$alternate;
?>
<tr <?php if($alternate) echo 'class="alternate"'; ?>>
<th scope="row" style="text-align: center;"><?php echo $s->published; ?></th>
<td><?php echo $s->eta; ?></td>
<td><?php echo $s->percentage; ?></td>
<td><?php echo htmlentities($s->text); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
adminfooter();
?>