znt/module/custom/ui/mode.html.php

116 lines
4.5 KiB
PHP

<?php
declare(strict_types=1);
/**
* The code view file of custom 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 Shujie Tian<tianshujie@easycorp.ltd>
* @package custom
* @link https://www.zentao.net
*/
namespace zin;
jsVar('changeModeTips', sprintf($lang->custom->changeModeTips, $lang->custom->modeList[$mode == 'light' ? 'ALM' : 'light']));
jsVar('mode', $mode);
jsVar('hasProgram', !empty($programs));
$featureItems = array();
foreach($disabledFeatures as $feature)
{
if(is_array($feature) && empty($disabledProjectFeatures)) continue;
if(is_string($feature) && !in_array($feature, $config->custom->allFeatures)) continue;
$featureItems[] = h::tr
(
setClass('text-center'),
h::td(setClass('text-left'), (is_array($feature) && !empty($disabledProjectFeatures)) ? implode($lang->comma, $disabledProjectFeatures) : $this->lang->custom->features[$feature]),
h::td(setClass('text-center'), icon(setClass('text-danger'), 'ban-circle')),
h::td(setClass('text-center'), icon(setClass('text-success'), 'check'))
);
}
foreach($config->custom->allFeatures as $feature)
{
if(in_array($feature, $disabledFeatures)) continue;
if($feature == 'projectDetail' and empty($enabledProjectFeatures)) continue;
$featureItems[] = h::tr
(
setClass('text-center'),
h::td(setClass('text-left'), ($feature == 'projectDetail' and !empty($enabledProjectFeatures)) ? implode($lang->comma, $enabledProjectFeatures) : $this->lang->custom->features[$feature]),
h::td(setClass('text-center'), icon(setClass('text-success'), 'check')),
h::td(setClass('text-center'), icon(setClass('text-success'), 'check'))
);
}
formPanel
(
set::title($lang->custom->modeManagement),
p(setClass('font-bold'), $currentModeTips),
set::actions(false),
h::table
(
setClass('modeTable'),
h::thead
(
h::tr
(
h::th($lang->custom->mode),
h::th(setClass('text-center'), $lang->custom->modeList['light']),
h::th(setClass('text-center'), $lang->custom->modeList['ALM'])
)
),
h::tbody
(
h::tr
(
h::td($lang->custom->usage),
h::td(setClass('text-center'), $lang->custom->modeIntroductionList['light']),
h::td(setClass('text-center'), $lang->custom->modeIntroductionList['ALM'])
),
$featureItems,
h::tr
(
setClass('text-center select-mode'),
h::td(setClass('text-left font-bold'), $lang->custom->selectUsage),
h::td
(
$mode == 'light' ? set::title($currentModeTips) : null,
btn
(
setID('useLight'),
setClass('primary wide'),
set('data-mode', 'light'),
$mode != 'light' && empty($programs) ? null : set('data-toggle', 'modal'),
$mode != 'light' && empty($programs) ? null : set('data-target', '#selectProgramModal'),
$mode == 'light' ? set('disabled', true) : null,
set('onclick', 'saveMode(this)'),
$lang->custom->useLight
)
),
h::td
(
$mode == 'ALM' ? set::title($currentModeTips) : null,
btn(setID('useALM'), setClass('primary wide'), set('data-mode', 'ALM'), $mode == 'ALM' ? set::disabled(true) : null, set('onclick', 'saveMode(this)'), $lang->custom->useALM),
formHidden('mode', $mode)
)
)
)
)
);
modal
(
setID('selectProgramModal'),
set::title($lang->custom->selectDefaultProgram),
set::size('sm'),
form
(
div(setClass('alert secondary-pale'), $lang->custom->selectProgramTips),
formGroup(set::label($lang->custom->defaultProgram), picker(setID('program'), set::name('program'), set::items($programs), set::value(!empty($programs) ? $programID : ''), set::required(true))),
formHidden('mode', 'light'),
set::actions(array('submit'))
)
);
/* ====== Render page ====== */
render();