vectorized.html.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. /**
  3. * The zai setting view file of zai module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(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 Hao Sun<sunhao@chandao.com>
  7. * @package zai
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. include './sidebar.html.php';
  12. $toolbarItems = array();
  13. $toolbarItems[] = setting()->text($lang->zai->addSetting)->className('hide-not-unavailable')->type('primary')->url(createLink('zai', 'setting', 'mode=edit'))->toArray();
  14. $toolbarItems[] = setting()->text($lang->zai->syncActions->enable)->className('hide-not-disabled')->type('primary')->set('zui-command', 'enable')->toArray();
  15. $toolbarItems[] = setting()->text($lang->zai->syncActions->startSync)->className('hide-not-wait')->type('primary')->set('zui-command', 'startSync')->toArray();
  16. $toolbarItems[] = setting()->text($lang->zai->syncActions->resync)->className('hide-not-synced')->type('primary')->set('zui-command', 'resync')->toArray();
  17. $toolbarItems[] = setting()->text($lang->zai->syncActions->resetSync)->className('show-on-failed-success-paused')->type('danger-pale')->set('zui-command', 'resetSync')->toArray();
  18. $toolbarItems[] = setting()->text($lang->zai->syncActions->pauseSync)->className('hide-not-syncing')->type('primary')->set('zui-command', 'pauseSync')->toArray();
  19. $toolbarItems[] = setting()->text($lang->zai->syncActions->resumeSync)->className('hide-not-paused')->type('primary')->set('zui-command', 'resumeSync')->toArray();
  20. $progressItems = array();
  21. foreach($syncTypes as $type => $text)
  22. {
  23. $progressItems[] = wg
  24. (
  25. div
  26. (
  27. setClass('vectorized-progress row items-center border-t'),
  28. setData('type', $type),
  29. div
  30. (
  31. setClass('vectorized-sync-type border-r pr-4 mr-4 pt-2 w-24 text-right pb-6'),
  32. $text
  33. ),
  34. div
  35. (
  36. setClass('flex-none'),
  37. html('<div class="vectorized-sync-progress progress progress-striped overflow-hidden h-4"><div class="progress-bar is-synced" style="width: 100%; min-width: 1px"></div><div class="progress-bar is-failed danger" style="width: 0%"></div></div>'),
  38. div
  39. (
  40. setClass('text-sm mt-1 flex items-center gap-1'),
  41. div
  42. (
  43. setClass('vectorized-finished-info flex-none'),
  44. $lang->zai->finished . ' ',
  45. span(setClass('vectorized-finished-count'))
  46. ),
  47. div
  48. (
  49. setClass('vectorized-failed-info pl-2 flex-none'),
  50. $lang->zai->failed . ' ',
  51. span(setClass('vectorized-failed-count'))
  52. ),
  53. icon('spinner-indicator spin mx-2 text-gray vectorized-loading-icon')
  54. )
  55. )
  56. )
  57. );
  58. }
  59. panel
  60. (
  61. set::title($lang->zai->vectorized),
  62. set::size('lg'),
  63. setClass('vectorized-panel mb-4 load-indicator loading relative'),
  64. zui::vectorizedPanel
  65. (
  66. set((array)$info),
  67. set::langData($lang->zai->vectorizedPanelLang),
  68. set::zaiSetting($zaiSetting)
  69. ),
  70. on::init()->call('updateVectorizedState', jsRaw('$element')),
  71. div
  72. (
  73. setClass('vectorized-alert alert bg-gray-pale'),
  74. div
  75. (
  76. setClass('alert-content p-2'),
  77. h4
  78. (
  79. setClass('alert-heading flex items-center gap-1'),
  80. text($lang->zai->vectorizedStatus . $lang->colon),
  81. span(setClass('vectorized-status'), $lang->zai->vectorizedStatusList[$info->status]),
  82. icon('spinner-indicator spin text-gray hide-not-syncing-loop'),
  83. icon('check-circle text-lg text-success hide-not-synced hide-on-synced-failed')
  84. ),
  85. div
  86. (
  87. setClass('vectorized-last-sync-info hidden'),
  88. text($lang->zai->lastSyncTime . $lang->colon),
  89. span(setClass('vectorized-last-sync-time')),
  90. span(setClass('vectorized-synced-with-failed hidden ml-2 text-danger'), $lang->zai->syncedWithFailedHint)
  91. ),
  92. div
  93. (
  94. setClass('hide-not-syncing text-gray'),
  95. $lang->zai->syncingHint
  96. ),
  97. div
  98. (
  99. setClass('alert-text'),
  100. p(setClass('vectorized-intro mb-3 hide-not-disabled'), $lang->zai->vectorizedIntro),
  101. p(setClass('vectorized-intro mb-3 hide-not-unavailable'), $lang->zai->vectorizedUnavailableHint),
  102. toolbar(setClass('vectorized-actions gap-4'), set::items($toolbarItems))
  103. )
  104. )
  105. ),
  106. div
  107. (
  108. setClass('vectorized-states hide-on-disabled hide-on-unavailable border rounded p-4 pb-2 mt-4'),
  109. div
  110. (
  111. setClass('mb-2 row items-center'),
  112. h4(setClass('flex-none'), $lang->zai->syncProgress),
  113. div
  114. (
  115. setClass('text-gray ml-4'),
  116. $lang->zai->totalSync . $lang->colon . ' ',
  117. $lang->zai->finished,
  118. span(setClass('vectorized-finished-total-count ml-2 mr-4'), 0),
  119. $lang->zai->failed,
  120. span(setClass('vectorized-failed-total-count ml-2'), 0)
  121. )
  122. ),
  123. div
  124. (
  125. setClass('vectorized-progresses'),
  126. $progressItems
  127. )
  128. )
  129. );