Files
EasySoft-ZenTaoPMS/module/zai/ui/vectorized.html.php
2025-10-09 13:34:49 +08:00

134 lines
5.6 KiB
PHP

<?php
/**
* The zai setting view file of zai module of ZenTaoPMS.
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Hao Sun<sunhao@chandao.com>
* @package zai
* @link https://www.zentao.net
*/
namespace zin;
include './sidebar.html.php';
$toolbarItems = array();
$toolbarItems[] = setting()->text($lang->zai->addSetting)->className('hide-not-unavailable')->type('primary')->url(createLink('zai', 'setting', 'mode=edit'))->toArray();
$toolbarItems[] = setting()->text($lang->zai->syncActions->enable)->className('hide-not-disabled')->type('primary')->set('zui-command', 'enable')->toArray();
$toolbarItems[] = setting()->text($lang->zai->syncActions->startSync)->className('hide-not-wait')->type('primary')->set('zui-command', 'startSync')->toArray();
$toolbarItems[] = setting()->text($lang->zai->syncActions->resync)->className('hide-not-synced')->type('primary')->set('zui-command', 'resync')->toArray();
$toolbarItems[] = setting()->text($lang->zai->syncActions->resetSync)->className('show-on-failed-success-paused')->type('danger-pale')->set('zui-command', 'resetSync')->toArray();
$toolbarItems[] = setting()->text($lang->zai->syncActions->pauseSync)->className('hide-not-syncing')->type('primary')->set('zui-command', 'pauseSync')->toArray();
$toolbarItems[] = setting()->text($lang->zai->syncActions->resumeSync)->className('hide-not-paused')->type('primary')->set('zui-command', 'resumeSync')->toArray();
$progressItems = array();
foreach($syncTypes as $type => $text)
{
$progressItems[] = wg
(
div
(
setClass('vectorized-progress row items-center border-t'),
setData('type', $type),
div
(
setClass('vectorized-sync-type border-r pr-4 mr-4 pt-2 w-24 text-right pb-6'),
$text
),
div
(
setClass('flex-none'),
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>'),
div
(
setClass('text-sm mt-1 flex items-center gap-1'),
div
(
setClass('vectorized-finished-info flex-none'),
$lang->zai->finished . ' ',
span(setClass('vectorized-finished-count'))
),
div
(
setClass('vectorized-failed-info pl-2 flex-none'),
$lang->zai->failed . ' ',
span(setClass('vectorized-failed-count'))
),
icon('spinner-indicator spin mx-2 text-gray vectorized-loading-icon')
)
)
)
);
}
panel
(
set::title($lang->zai->vectorized),
set::size('lg'),
setClass('vectorized-panel mb-4 load-indicator loading relative'),
zui::vectorizedPanel
(
set((array)$info),
set::langData($lang->zai->vectorizedPanelLang),
set::zaiSetting($zaiSetting)
),
on::init()->call('updateVectorizedState', jsRaw('$element')),
div
(
setClass('vectorized-alert alert bg-gray-pale'),
div
(
setClass('alert-content p-2'),
h4
(
setClass('alert-heading flex items-center gap-1'),
text($lang->zai->vectorizedStatus . $lang->colon),
span(setClass('vectorized-status'), $lang->zai->vectorizedStatusList[$info->status]),
icon('spinner-indicator spin text-gray hide-not-syncing-loop'),
icon('check-circle text-lg text-success hide-not-synced hide-on-synced-failed')
),
div
(
setClass('vectorized-last-sync-info hidden'),
text($lang->zai->lastSyncTime . $lang->colon),
span(setClass('vectorized-last-sync-time')),
span(setClass('vectorized-synced-with-failed hidden ml-2 text-danger'), $lang->zai->syncedWithFailedHint)
),
div
(
setClass('hide-not-syncing text-gray'),
$lang->zai->syncingHint
),
div
(
setClass('alert-text'),
p(setClass('vectorized-intro mb-3 hide-not-disabled'), $lang->zai->vectorizedIntro),
p(setClass('vectorized-intro mb-3 hide-not-unavailable'), $lang->zai->vectorizedUnavailableHint),
toolbar(setClass('vectorized-actions gap-4'), set::items($toolbarItems))
)
)
),
div
(
setClass('vectorized-states hide-on-disabled hide-on-unavailable border rounded p-4 pb-2 mt-4'),
div
(
setClass('mb-2 row items-center'),
h4(setClass('flex-none'), $lang->zai->syncProgress),
div
(
setClass('text-gray ml-4'),
$lang->zai->totalSync . $lang->colon . ' ',
$lang->zai->finished,
span(setClass('vectorized-finished-total-count ml-2 mr-4'), 0),
$lang->zai->failed,
span(setClass('vectorized-failed-total-count ml-2'), 0)
)
),
div
(
setClass('vectorized-progresses'),
$progressItems
)
)
);