diff options
Diffstat (limited to 'src/usr/local/www/diag_confbak.php')
-rw-r--r-- | src/usr/local/www/diag_confbak.php | 419 |
1 files changed, 168 insertions, 251 deletions
diff --git a/src/usr/local/www/diag_confbak.php b/src/usr/local/www/diag_confbak.php index 7116f2e..b048f5e 100644 --- a/src/usr/local/www/diag_confbak.php +++ b/src/usr/local/www/diag_confbak.php @@ -51,24 +51,25 @@ if (isset($_POST['backupcount'])) { $changedescr = "(platform default)"; } write_config("Changed backup revision count to {$changedescr}"); -} elseif ($_POST) { - if (!isset($_POST['confirm']) || ($_POST['confirm'] != gettext("Confirm")) || (!isset($_POST['newver']) && !isset($_POST['rmver']))) { +} elseif ($_GET) { + if (!isset($_GET['newver']) && !isset($_GET['rmver']) && !isset($_GET['getcfg']) && !isset($_GET['diff'])) { header("Location: diag_confbak.php"); return; } conf_mount_rw(); $confvers = unserialize(file_get_contents($g['cf_conf_path'] . '/backup/backup.cache')); - if ($_POST['newver'] != "") { - if (config_restore($g['conf_path'] . '/backup/config-' . $_POST['newver'] . '.xml') == 0) { - $savemsg = sprintf(gettext('Successfully reverted to timestamp %1$s with description "%2$s".'), date(gettext("n/j/y H:i:s"), $_POST['newver']), htmlspecialchars($confvers[$_POST['newver']]['description'])); + + if ($_GET['newver'] != "") { + if (config_restore($g['conf_path'] . '/backup/config-' . $_GET['newver'] . '.xml') == 0) { + $savemsg = sprintf(gettext('Successfully reverted to timestamp %1$s with description "%2$s".'), date(gettext("n/j/y H:i:s"), $_GET['newver']), htmlspecialchars($confvers[$_GET['newver']]['description'])); } else { $savemsg = gettext("Unable to revert to the selected configuration."); } } - if ($_POST['rmver'] != "") { - unlink_if_exists($g['conf_path'] . '/backup/config-' . $_POST['rmver'] . '.xml'); - $savemsg = sprintf(gettext('Deleted backup with timestamp %1$s and description "%2$s".'), date(gettext("n/j/y H:i:s"), $_POST['rmver']), htmlspecialchars($confvers[$_POST['rmver']]['description'])); + if ($_GET['rmver'] != "") { + unlink_if_exists($g['conf_path'] . '/backup/config-' . $_GET['rmver'] . '.xml'); + $savemsg = sprintf(gettext('Deleted backup with timestamp %1$s and description "%2$s".'), date(gettext("n/j/y H:i:s"), $_GET['rmver']), htmlspecialchars($confvers[$_GET['rmver']]['description'])); } conf_mount_ro(); } @@ -112,256 +113,172 @@ unset($confvers['versions']); $pgtitle = array(gettext("Diagnostics"), gettext("Configuration History")); include("head.inc"); -if ($savemsg) - print_info_box($savemsg); +if ($savemsg) { + print_info_box($savemsg, 'success'); +} + +if ($diff) { ?> - <?php if ($diff):?> - <h3><?=gettext("Configuration diff from")?><?=date(gettext("n/j/y H:i:s"), $oldtime)?><?=gettext("to")?><?=date(gettext("n/j/y H:i:s"), $newtime)?></h3> - <pre><?php foreach ($diff as $line) { - switch (substr($line, 0, 1)) { - case "+": - $color = "#caffd3"; - break; - case "-": - $color = "#ffe8e8"; - break; - case "@": - $color = "#a0a0a0"; - break; - default: - $color = "#ffffff"; - } +<div class="panel panel-default"> + <div class="panel-heading"><?=gettext("Configuration diff from ")?><?=date(gettext("n/j/y H:i:s"), $oldtime); ?><?=gettext(" to ")?><?=date(gettext("n/j/y H:i:s"), $newtime); ?></div> + <div class="panel-body table-responsive"> + <!-- This table is left un-bootstrapped to maintain the original diff format output --> + <table style="padding-top: 4px; padding-bottom: 4px; vertical-align:middle;"> - print '<span style="background-color: '.$color .'">'. htmlentities($line) .'</span><br/>'; - } - ?></pre> -<?php endif?> -<?PHP if ($_GET["newver"] || $_GET["rmver"]):?> - <h2><?=gettext("Confirm Action")?></h2> - <form action="diag_confbak.php" method="post"> - <div class="alert alert-danger"> - <p><?=gettext("Please confirm you wish to ")?> - <?PHP - if (!empty($_GET["newver"])) { - echo gettext("restore from Configuration Backup"); - $target_config = $_GET["newver"]?> - <input type="hidden" name="newver" value="<?PHP echo htmlspecialchars($_GET["newver"])?>" /> - <?PHP - } elseif (!empty($_GET["rmver"])) { - echo gettext("remove Configuration Backup"); - $target_config = $_GET["rmver"]?> - <input type="hidden" name="rmver" value="<?PHP echo htmlspecialchars($_GET["rmver"])?>" /> - <?PHP - } ?> - <?PHP echo gettext("revert to configuration from ")?> <?=date(gettext("n/j/y H:i:s"), $target_config)?> - <br /> - <input type="submit" name="confirm" value="<?PHP echo gettext("Confirm")?>" /> - </p> - </div> - </form> -<?PHP else:?> <?php - $tab_array = array(); - $tab_array[0] = array(gettext("Config History"), true, "diag_confbak.php"); - $tab_array[1] = array(gettext("Backup/Restore"), false, "diag_backup.php"); - display_top_tabs($tab_array); + foreach ($diff as $line) { + switch (substr($line, 0, 1)) { + case "+": + $color = "#caffd3"; + break; + case "-": + $color = "#ffe8e8"; + break; + case "@": + $color = "#a0a0a0"; + break; + default: + $color = "#ffffff"; + } +?> + <tr> + <td valign="middle" bgcolor="<?=$color; ?>" style="white-space: pre-wrap;"><?=htmlentities($line)?></td> + </tr> +<?php + } ?> - <form action="diag_confbak.php" method="post"> - <div class="form-group"> - <label for="backupcount" class="col-sm-2 control-label"><?=gettext("Backup Count")?></label> - <div class="col-sm-10"> - <input name="backupcount" type="number" class="form-control" size="5" value="<?=htmlspecialchars($config['system']['backupcount'])?>" /> - <?=gettext("Maximum number of old configurations to keep. By default this is 30 for a full install or 5 on NanoBSD.")?> - </div> - </div> + </table> + </div> +</div> +<?php +} - <div class="form-group"> - <div class="col-sm-offset-2 col-sm-10"> - <input name="Submit" type="submit" class="btn btn-primary" value="<?=gettext("Save")?>" /> - <p><?=gettext("Current space used by backups: ")?><?=exec("/usr/bin/du -sh /conf/backup | /usr/bin/awk '{print $1;}'")?></p> - </div> - </div> - </form> -<?php if (!is_array($confvers)): ?> - <?php print_info_box(gettext("No backups found."))?> -<?php else: ?> - <form action="diag_confbak.php" method="get"> - <div class="table-responsive"> - <table class="table table-striped table-hover"> - <thead> - <tr> - <th><input type="submit" name="diff" class="btn btn-default" value="<?=gettext("Diff")?>" /></th> - <th><?=gettext("Date")?></th> - <th><?=gettext("Version")?></th> - <th><?=gettext("Size")?></th> - <th><?=gettext("Configuration Change")?></th> - <th></th> - </tr> - </thead> +$tab_array = array(); +$tab_array[] = array(gettext("Config History"), true, "diag_confbak.php"); +$tab_array[] = array(gettext("Backup/Restore"), false, "diag_backup.php"); +display_top_tabs($tab_array); - <tbody> - <tr> - <td> - <input type="radio" name="oldtime" disabled="disabled" /> - <input type="radio" name="newtime" value="current" <?=($_GET['newtime']==$version['time'] ? ' checked="checked"' : '')?>/> - </td> - <td><?=date(gettext("n/j/y H:i:s"), $config['revision']['time'])?></td> - <td><?=$config['version']?></td> - <td><?=format_bytes(filesize("/conf/config.xml"))?></td> - <td><?=$config['revision']['description']?></td> - <td><i><?=gettext("Current")?></i></td> - </tr> - <?php - foreach ($confvers as $version): - if ($version['time'] != 0) - $date = date(gettext("n/j/y H:i:s"), $version['time']); - else - $date = gettext("Unknown"); - ?> - <tr> - <td> - <div id="mainarea"> - <form action="diag_confbak.php" method="post"> - <table class="tabcont" align="center" width="100%" border="0" cellpadding="6" cellspacing="0" summary="tabcont"> +require('classes/Form.class.php'); -<?php if ($_GET["newver"] || $_GET["rmver"]): ?> - <tr> - <td colspan="2" valign="top" class="listtopic"><?php echo gettext("Confirm Action"); ?></td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell"> </td> - <td width="78%" class="vtable"> +$form = new Form(new Form_Button( + 'Submit', + gettext("Save") +)); - <strong><?php echo gettext("Please confirm the selected action"); ?></strong>: - <br /> - <br /><strong><?php echo gettext("Action"); ?>:</strong> - <?php if (!empty($_GET["newver"])) { - echo gettext("Restore from Configuration Backup"); - $target_config = $_GET["newver"]; ?> - <input type="hidden" name="newver" value="<?php echo htmlspecialchars($_GET["newver"]); ?>" /> - <?php } elseif (!empty($_GET["rmver"])) { - echo gettext("Remove Configuration Backup"); - $target_config = $_GET["rmver"]; ?> - <input type="hidden" name="rmver" value="<?php echo htmlspecialchars($_GET["rmver"]); ?>" /> - <?php } ?> - <br /><strong><?php echo gettext("Target Configuration"); ?>:</strong> - <?php echo sprintf(gettext('Timestamp %1$s'), date(gettext("n/j/y H:i:s"), $target_config)); ?> - <br /><input type="submit" name="confirm" value="<?php echo gettext("Confirm"); ?>" /> - </td> - </tr> -<?php else: ?> +$section = new Form_Section('Saved Configurations'); - <tr> - <td width="10%"> </td> - <td width="15%" valign="top"><?=gettext("Backup Count");?></td> - <td width="10%"> - <input name="backupcount" type="text" class="formfld unknown" size="5" value="<?=htmlspecialchars($config['system']['backupcount']);?>"/> - </td> - <td width="60%"> - <?= gettext("Enter the number of older configurations to keep in the local backup cache. By default this is 30 for a full install or 5 on NanoBSD."); ?> - </td> - <td width= "5%"><input name="save" type="submit" class="formbtn" value="<?=gettext("Save"); ?>" /></td> - </tr> - <tr> - <td class="vncell"> </td> - <td colspan="4" class="vncell"> - <?= gettext("NOTE: Be aware of how much space is consumed by backups before adjusting this value. Current space used by backups: "); ?> <?= exec("/usr/bin/du -sh /conf/backup | /usr/bin/awk '{print $1;}'") ?> - </td> - </tr> - </table> - </form> - <form action="diag_confbak.php" method="get"> - <table class="tabcont" align="center" width="100%" border="0" cellpadding="6" cellspacing="0" summary="difference"> - <?php if (is_array($confvers)): ?> - <tr> - <td colspan="7" class="list"> - <?= gettext("To view the differences between an older configuration and a newer configuration, select the older configuration using the left column of radio options and select the newer configuration in the right column, then press the Diff button."); ?> - <br /><br /> - </td> - </tr> - <tr> - <td width="5%" colspan="2" valign="middle" align="center" class="list nowrap"><input type="submit" name="diff" value="<?=gettext("Diff"); ?>" /></td> - <td width="20%" class="listhdrr"><?=gettext("Date");?></td> - <td width="5%" class="listhdrr"><?=gettext("Version");?></td> - <td width="5%" class="listhdrr"><?=gettext("Size");?></td> - <td width="60%" class="listhdrr"><?=gettext("Configuration Change");?></td> - <td width="5%" class="list"> </td> - </tr> - <tr valign="top"> - <td valign="middle" class="list nowrap"></td> - <td class="list"> - <input type="radio" name="newtime" value="current" /> - </td> - <td class="listlr"> <?= date(gettext("n/j/y H:i:s"), $config['revision']['time']) ?></td> - <td class="listr"> <?= $config['version'] ?></td> - <td class="listr"> <?= format_bytes(filesize("/conf/config.xml")) ?></td> - <td class="listr"> <?= htmlspecialchars($config['revision']['description']) ?></td> - <td valign="middle" class="list nowrap"><b><?=gettext("Current");?></b></td> - </tr> - <?php - $c = 0; - foreach ($confvers as $version): - if ($version['time'] != 0) { - $date = date(gettext("n/j/y H:i:s"), $version['time']); - } else { - $date = gettext("Unknown"); - } - ?> - <tr valign="top"> - <td class="list"> - <input type="radio" name="oldtime" value="<?php echo $version['time'];?>" /> - </td> - <td class="list"> - <?php if ($c < (count($confvers) - 1)) { ?> - <input type="radio" name="newtime" value="<?php echo $version['time'];?>" /> - <?php } else { ?> - - <?php } - $c++; ?> - </td> - <td class="listlr"> <?= $date ?></td> - <td class="listr"> <?= $version['version'] ?></td> - <td class="listr"> <?= format_bytes($version['filesize']) ?></td> - <td class="listr"> <?= htmlspecialchars($version['description']) ?></td> - <td valign="middle" class="list nowrap"> - <a href="diag_confbak.php?newver=<?=$version['time'];?>"> - <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" width="17" height="17" border="0" alt="<?=gettext("Revert to this configuration");?>" title="<?=gettext("Revert to this configuration");?>" /> - </a> - <a href="diag_confbak.php?rmver=<?=$version['time'];?>"> - <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="<?=gettext("Remove this backup");?>" title="<?=gettext("Remove this backup");?>" /> - </a> - <a href="diag_confbak.php?getcfg=<?=$version['time'];?>"> - <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_down.gif" width="17" height="17" border="0" alt="<?=gettext("Download this backup");?>" title="<?=gettext("Download this backup");?>" /> - </a> - </td> - </tr> - <?php endforeach; ?> - <tr> - <td colspan="2"><input type="submit" name="diff" value="<?=gettext("Diff"); ?>" /></td> - <td colspan="5"></td> - </tr> - <?php else: ?> - <tr> - <td> - <?php print_info_box(gettext("No backups found.")); ?> - </td> - </tr> - <?php endif; ?> -<?php endif; ?> - </table> - </form> - </div> - </td> - </tr> - <?php endforeach?> - </tbody> - <tfoot> - <tr> - <td colspan="6"><input type="submit" name="diff" class="btn btn-default" value="<?=gettext("Compare selected")?>" /></td> - </tr> - <?php endif; ?> -<?php endif?> - </table> - </div> +$section->addInput(new Form_Input( + 'backupcount', + 'Backup Count', + 'number', + $config['system']['backupcount'] +))->setHelp('Maximum number of old configurations to keep. By default this is 30 for a full install or 5 on NanoBSD. '); + +$space = exec("/usr/bin/du -sh /conf/backup | /usr/bin/awk '{print $1;}'"); + +$section->addInput(new Form_StaticText( + 'Current space used by backups', + $space +)); + +$form->add($section); + +print($form); + +if (is_array($confvers)) { + print_info_box(gettext('To view the differences between an older configuration and a newer configuration, ' . + 'select the older configuration using the left column of radio options and select the newer configuration in the right column, ' . + 'then press the "Diff" button.')); +} +?> + +<form action="diag_confbak.php" method="get"> + <div class="table-resposive"> + <table class="table table-striped table-hover table-condensed"> +<?php +if (is_array($confvers)): +?> + <thead> + <tr> + <th colspan="2"> + <input type="submit" name="diff" class="btn btn-info btn-xs" value="<?=gettext("Diff"); ?>" /> + </th> + <th><?=gettext("Date")?></th> + <th><?=gettext("Version")?></th> + <th><?=gettext("Size")?></th> + <th><?=gettext("Configuration Change")?></th> + <th><?=gettext("Actions")?></th> + </tr> + </thead> + <tbody> + <!-- First row is the current configuration --> + <tr valign="top"> + <td></td> + <td> + <input type="radio" name="newtime" value="current" /> + </td> + <td><?= date(gettext("n/j/y H:i:s"), $config['revision']['time']) ?></td> + <td><?= $config['version'] ?></td> + <td><?= format_bytes(filesize("/conf/config.xml")) ?></td> + <td><?= htmlspecialchars($config['revision']['description']) ?></td> + <td><?=gettext("Current configuration")?></td> + </tr> +<?php + // And now for hte table of prior backups + $c = 0; + foreach ($confvers as $version): + if ($version['time'] != 0) { + $date = date(gettext("n/j/y H:i:s"), $version['time']); + } else { + $date = gettext("Unknown"); + } +?> + <tr> + <td> + <input type="radio" name="oldtime" value="<?=$version['time']?>" /> + </td> + <td> +<?php + if ($c < (count($confvers) - 1)) { +?> + <input type="radio" name="newtime" value="<?=$version['time']?>" /> +<?php + } + $c++; +?> + </td> + <td><?= $date ?></td> + <td><?= $version['version'] ?></td> + <td><?= format_bytes($version['filesize']) ?></td> + <td><?= htmlspecialchars($version['description']) ?></td> + <td> + <a href="diag_confbak.php?newver=<?=$version['time']?>" class="btn btn-xs btn-success" + onclick="return confirm('<?=gettext("Are you sure you want to replace the current configuration with this backup?")?>')"> + <?=gettext("Revert")?> + </a> + <a href="diag_confbak.php?rmver=<?=$version['time']?>" class="btn btn-xs btn-danger"> + <?=gettext("Delete")?> + </a> + <a href="diag_confbak.php?getcfg=<?=$version['time']?>" class="btn btn-xs btn-default"> + <?=gettext("Download")?> + </a> + </td> + </tr> +<?php + endforeach; +?> + <tr> + <td colspan="2"><input type="submit" name="diff" class="btn btn-info btn-xs" value="<?=gettext("Diff"); ?>" /></td> + <td colspan="5"></td> + </tr> +<?php +else: + print_info_box(gettext("No backups found."), 'danger'); +endif; +?> + </tbody> + </table> </form> -<?php include("foot.inc")?>
\ No newline at end of file +</div> + +<?php include("foot.inc"); |