PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.13.4
JetBackup – Backup, Restore & Migrate v3.1.13.4
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / src / JetBackup / Restore / restore.template.php
backup / src / JetBackup / Restore Last commit date
.htaccess 9 months ago Restore.php 9 months ago index.html 9 months ago restore.template.php 9 months ago web.config 9 months ago
restore.template.php
129 lines
1 <?php
2 if(!defined('__JETBACKUP_RESTORE__')) exit;
3
4 if (function_exists('opcache_get_status')) ini_set('opcache.enable', 0);
5 ini_set('display_errors', 1);
6 ini_set('display_startup_errors', 1);
7 error_reporting(E_ALL);
8
9 header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0');
10 header('Pragma: no-cache');
11 header('Expires: 0');
12
13 use JetBackup\Cache\CacheHandler;
14 use JetBackup\Queue\Queue;
15 use JetBackup\Queue\QueueItem;
16 use JetBackup\Restore\Restore;
17 use JetBackup\Wordpress\Wordpress;
18
19 define('__JETBACKUP__', true);
20
21 define('PLUGIN_PATH', 'wp-content' . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . 'backup');
22 define('JB_ROOT', WP_ROOT . DIRECTORY_SEPARATOR . PLUGIN_PATH);
23
24 require_once(JB_ROOT . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'JetBackup' . DIRECTORY_SEPARATOR . 'autoload.php');
25
26 $queue_id = isset($_REQUEST['id']) ? Wordpress::sanitizeTextField(Wordpress::getUnslash($_REQUEST['id'])) : '';
27
28 if(!$queue_id) die('Queue id not provided');
29 CacheHandler::pre();
30 $queue = new QueueItem();
31 $queue->loadByUniqueId($queue_id);
32 if(!$queue->getId()) die('Queue not found');
33 if($queue->getType() != Queue::QUEUE_TYPE_RESTORE) die('Queue type not supported');
34 //if($queue->getStatus() >= Queue::STATUS_DONE) die('Queue already completed');
35 if($queue->getStatus() < Queue::STATUS_RESTORE_WAITING_FOR_RESTORE) die('Queue not ready yet');
36
37 $action = isset($_REQUEST['action']) ? Wordpress::sanitizeTextField(Wordpress::getUnslash($_REQUEST['action'])) : null;
38 if ($action) ( new Restore( $queue ) )->execute($action);
39
40 ?>
41 <!DOCTYPE html>
42 <html lang="en">
43 <head>
44 <meta charset="UTF-8">
45 <meta name="viewport" content="width=device-width, initial-scale=1.0">
46 <title>Restore Progress Status Page</title>
47 <link href="<?php echo PUBLIC_PATH.PLUGIN_PATH; ?>/public/libraries/bootstrap/css/bootstrap.min.css" rel="stylesheet">
48 <link href="<?php echo PUBLIC_PATH.PLUGIN_PATH; ?>/public/css/restore.css" rel="stylesheet">
49
50 <script type="text/javascript" src="<?php echo PUBLIC_PATH.PLUGIN_PATH; ?>/public/js/restore.js"></script>
51 <script type="text/javascript">
52 const restore = new Restore({
53 queue_id: '<?php echo $queue_id; ?>',
54 interval: 1000
55 });
56 </script>
57 </head>
58 <body>
59 <div class="container">
60 <img src="<?php echo PUBLIC_PATH.PLUGIN_PATH; ?>/public/images/logo.png" class="logo" alt="JetBackup Logo">
61 <div class="status-header">
62 Restore Progress
63 </div>
64 <div class="status-container">
65
66 <div class="alert alert-danger alert-dismissible fade show" role="alert" id="error-alert" style="display: none;">
67 <strong>Error:</strong> <span id="error-message"></span>
68 <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close" onclick="restore.closeError()"></button>
69 </div>
70
71 <div class="alert alert-success alert-dismissible fade show" role="alert" id="success-alert" style="display: none;">
72 <strong>Success:</strong> <span id="success-message"></span>
73 <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close" onclick="restore.closeSuccess()"></button>
74 </div>
75
76
77 <!--div class="details">
78
79 {if $is_multisite}MultiSite Environment{/if}
80
81 {if $backup_contains == {$BACKUP_TYPE_HOMEDIR}}
82 <div><strong>Type: </strong> Homedir Files Only</div>
83 {elseif $backup_contains == {$BACKUP_TYPE_DATABASE}}
84 <div><strong>Type: </strong> Database Only</div>
85 {elseif $backup_contains == {$BACKUP_TYPE_FULL}}
86 <div><strong>Type: </strong>Full Backup</div>
87 {/if}
88 <div><strong>Backup Source: </strong>{$destination}</div>
89 <div><strong>Backup Date: </strong>{$backup_date}</div>
90 </div-->
91
92 <div class="status-item">
93 <div class="progress-container">
94 <label>Overall Progress:</label>
95 <div class="progress">
96 <div id="progress" class="progress-bar progress-bar-striped progress-bar-animated bg-primary" role="progressbar" style="width: 0;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">0%</div>
97 </div>
98 </div>
99 </div>
100 <div class="status-item" id="subprogress-container" style="display: none;">
101 <div class="progress-container">
102 <label id="subprogress-title"></label>
103 <div class="progress">
104 <div id="subprogress" class="progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar" style="width: 0;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">0%</div>
105 </div>
106 </div>
107 </div>
108 <div class="status-item">
109 <label>Status Log:</label>
110 <div class="log-container" id="log-container">
111 <div class="log-entry"></div>
112 </div>
113 </div>
114 <div class="d-flex justify-content-center gap-2">
115 <button type="button" class="btn btn-danger" id="cancel-btn" onclick="restore.cancel();">Cancel</button>
116 <button type="button" class="btn btn-secondary" id="force-refresh" onclick="restore.refresh();">Force Refresh</button>
117 <button type="button" class="btn btn-success btn-lg" id="finalize-btn" onclick="restore.completed();" style="display: none; width: 200px;">Complete Restore</button>
118 </div>
119
120 </div>
121 <div class="footer">
122 &copy; <?php echo date("Y") ?> JetBackup v<?php echo \JetBackup\JetBackup::VERSION ?>. All rights reserved.
123 </div>
124 </div>
125
126 <script type="text/javascript">restore.start();</script>
127
128 </body>
129 </html>