restore.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. use common\helpers\Url;
  3. use common\helpers\Html;
  4. $this->title = '数据备份';
  5. $this->params['breadcrumbs'][] = ['label' => $this->title];
  6. ?>
  7. <div class="row">
  8. <div class="col-sm-12">
  9. <div class="nav-tabs-custom">
  10. <ul class="nav nav-tabs">
  11. <li><a href="<?= Url::to(['backups']) ?>"> 数据备份</a></li>
  12. <li class="active"><a href="<?= Url::to(['restore']) ?>"> 数据还原</a></li>
  13. </ul>
  14. <div class="tab-content">
  15. <div class="active tab-pane">
  16. <table class="table table-hover">
  17. <thead>
  18. <tr>
  19. <th>备份名称</th>
  20. <th>卷数</th>
  21. <th>压缩</th>
  22. <th>数据大小</th>
  23. <th>备份时间</th>
  24. <th>操作</th>
  25. </tr>
  26. </thead>
  27. <tbody>
  28. <?php foreach ($list as $key => $row) { ?>
  29. <tr data-time="<?= $row['time'] ?>">
  30. <td><?= date('Ymd-His', $row['time']) ?></td>
  31. <td><?= $row['part'] ?></td>
  32. <td><?= $row['compress'] ?></td>
  33. <td><?= Yii::$app->formatter->asShortSize($row['size'], 0) ?></td>
  34. <td><?= Yii::$app->formatter->asDatetime($row['time']) ?></td>
  35. <td>
  36. <?php Html::a('还原', 'javascript:void(0);', [
  37. 'class' => 'btn btn-info btn-sm table-restore'
  38. ]) ?>
  39. <?= Html::delete(['delete', 'time' => $row['time']]) ?>
  40. </td>
  41. </tr>
  42. <?php } ?>
  43. </tbody>
  44. </table>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. <script type="text/javascript">
  51. $(document).ready(function () {
  52. var time;
  53. // 还原
  54. $(".table-restore").click(function () {
  55. time = $(this).parent().parent().attr('data-time');
  56. $.ajax({
  57. type: "post",
  58. url: "<?= Url::to(['restore-init'])?>",
  59. dataType: 'json',
  60. data: {time: time},
  61. success: function (data) {
  62. if (data.code == 200) {
  63. var part = data.data.part;
  64. var start = data.data.start;
  65. startRestore(part, start);
  66. rfAffirm('还原中,请不要关闭本页面,可能会造成服务器卡顿');
  67. } else {
  68. rfAffirm(data.message);
  69. }
  70. }
  71. })
  72. });
  73. // 开始还原
  74. function startRestore(part, start) {
  75. $.ajax({
  76. type: "post",
  77. url: "<?= Url::to(['restore-start'])?>",
  78. dataType: 'json',
  79. data: {part: part, start: start},
  80. success: function (data) {
  81. if (data.code == 200) {
  82. var achieveStatus = data.data.achieveStatus;
  83. if (achieveStatus == 0) {
  84. startRestore(data.data.part, data.data.start);
  85. rfAffirm('还原中,请不要关闭本页面,可能会造成服务器卡顿[' + data.data.start + ']......');
  86. } else {
  87. rfAffirm(data.message);
  88. }
  89. } else {
  90. rfAffirm(data.message);
  91. }
  92. }
  93. })
  94. }
  95. })
  96. </script>
粤ICP备19079148号