backuplist.html.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * The maintain view file of repo module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2024 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Zhai Xiaojian<zhaixiaojian@easycorp.ltd>
  7. * @package repo
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $backups = initTableData($backupList, $config->backup->dtable->fieldList, $this->instance);
  12. $hasRestoreLog = false;
  13. foreach($backupList as &$backup)
  14. {
  15. /* Initialization calculation and assignment. */
  16. $status = $backup->status;
  17. $restoreStatus = '';
  18. $backupSize = isset($backup->backup_details->db[0]) ? intval(zget($backup->backup_details->db[0], 'size', 0)) : 0;
  19. $backupSize += isset($backup->backup_details->volume[0]) ? intval(zget($backup->backup_details->volume[0], 'doneBytes', 0)) : 0;
  20. $backup->instanceId = $instance->id;
  21. $backup->operator = zget($lang->instance->backup->operators, $backup->username, $backup->username);
  22. $backup->status = zget($lang->instance->backup->statusList, strtolower($backup->status));
  23. $backup->backupSize = helper::formatKB($backupSize);
  24. /* Mark recently restored information. */
  25. $backup->latestRestoreTime = 0;
  26. $backup->latestRestoreStatus = '';
  27. foreach($backup->restores as $restore)
  28. {
  29. $hasRestoreLog = true;
  30. if($restore->create_time > $backup->latestRestoreTime)
  31. {
  32. $backup->latestRestoreTime = $restore->create_time;
  33. $restoreStatus = $restore->status;
  34. $backup->latestRestoreStatus = zget($lang->instance->restore->statusList, $restore->status, $restore->status);
  35. }
  36. }
  37. $backup->latestRestoreTime = $backup->latestRestoreTime == 0 ? '' : date('Y-m-d H:i:s', $backup->latestRestoreTime);
  38. $backup->restoreTime = zget($lang->instance->backup->operators, $backup->username, $backup->username);
  39. $actionIdx = 0;
  40. foreach($config->backup->dtable->fieldList['actions']['actionsMap'] as $actionType => $actionItems)
  41. {
  42. $backup->actions[$actionIdx]['name'] = $actionType;
  43. $backup->actions[$actionIdx]['disabled'] = (!in_array($status, array('success', 'completed', 'deleting')) || (!empty($restoreStatus) && in_array($restoreStatus, array('pending', 'inprogress')))) ? true : false;
  44. if($actionType == 'delete' && $status == 'failed') $backup->actions[$actionIdx]['disabled'] = false;
  45. $actionIdx++;
  46. }
  47. }
  48. dtable
  49. (
  50. set::cols($config->backup->dtable->fieldList),
  51. set::data($backups),
  52. set::sortLink(createLink('instance', 'backuplist', "id={$instance->id}&recTotal={$pager->recTotal}&pageID={$pager->pageID}")),
  53. set::loadPartial(true),
  54. set::footPager(usePager())
  55. );