<?php
if ( ! is_admin() ) { die( 'Access denied.' ); }

// Database roll back feature.
/* rollback()
 *
 * Displayed in page by iframe via _rollback.php
 * Expects GET variables:
 * 		step		Numeric step number to run.
 * 		archive		Zip archive filename (basename only).
 *
 */
pb_backupbuddy::$ui->ajax_header();
pb_backupbuddy::load_script( 'jquery' );
echo '<div id="pb_backupbuddy_working" style="width: 100px; margin-bottom: 30px;"><br><center><img src="' . pb_backupbuddy::plugin_url() . '/images/working.gif" title="Working... Please wait as this may take a moment..."></center></div>';
?>


<script>
function pb_status_append( status_string ) {
	var win = window.dialogArguments || opener || parent || top;
	win.pb_status_append( status_string );
}
function pb_status_undourl( undo_url ) {
	var win = window.dialogArguments || opener || parent || top;
	win.pb_status_undourl( undo_url );
}

var win = window.dialogArguments || opener || parent || top;
win.window.scrollTo(0,0);
</script>


<?php
global $pb_backupbuddy_js_status;
$pb_backupbuddy_js_status = true;
pb_backupbuddy::set_status_serial( 'restore' );


$step = strip_tags( pb_backupbuddy::_GET( 'step' ) );
if ( ( '' == $step ) || ( ! is_numeric( $step ) ) ) {
	$step = 0;
}
$backupFile = strip_tags( pb_backupbuddy::_GET( 'archive' ) );
if ( '' == $backupFile ) {
	pb_backupbuddy::alert( 'The backup file to restore from must be specified.' );
	die();
}
$stepFile = pb_backupbuddy::plugin_path() . '/controllers/pages/rollback/_step' . $step . '.php';
if ( ! file_exists( $stepFile ) ) {
	pb_backupbuddy::alert( 'Error #849743. Invalid roll back step `' . htmlentities( pb_backupbuddy::_GET( 'step' ) ) . '` (' . $step . ').' );
	die();
}
require( $stepFile );

echo '<br><br><br>';
echo '<script type="text/javascript">jQuery("#pb_backupbuddy_working").hide();</script>';
pb_backupbuddy::$ui->ajax_footer();
pb_backupbuddy::flush();

die();