znt/module/productplan/ui/bug.html.php

114 lines
4.4 KiB
PHP

<?php
declare(strict_types=1);
/**
* The bug view file of product plan 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 Tingting Dai <daitingting@easycorp.ltd>
* @package productplan
* @link https://www.zentao.net
*/
namespace zin;
$bugCols = array();
foreach($config->productplan->defaultFields['bug'] as $field) $bugCols[$field] = zget($config->bug->dtable->fieldList, $field, array());
$bugCols['assignedTo']['type'] = 'user';
foreach($bugCols as $bugColKey => $bugCol)
{
$bugCols[$bugColKey]['sortType'] = false;
if(isset($bugCol['link'])) unset($bugCols[$bugColKey]['link']);
if($bugColKey == 'pri') $bugCols[$bugColKey]['priList'] = $lang->bug->priList;
if($bugColKey == 'severity') $bugCols[$bugColKey]['severityList'] = $lang->bug->severityList;
if($bugColKey == 'title') $bugCols[$bugColKey]['link'] = array('url' => createLink('bug', 'view', "bugID={id}"), 'data-toggle' => 'modal', 'data-size' => 'lg');
}
unset($bugCols['actions']);
$productsWithShadow = $this->loadModel('product')->getPairs('', 0, '', 'all');
$productChangeLink = createLink('productplan', 'bug', "productID={productID}&planID=0&blockID=$blockID&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&from=$from");
$planChangeLink = createLink('productplan', 'bug', "productID=$productID&planID={planID}&blockID=$blockID&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&from=$from");
$insertListLink = createLink('productplan', 'bug', "productID=$productID&planID=$planID&blockID={blockID}&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&from=$from");
$footToolbar = array(array('text' => $lang->doc->insertText, 'data-on' => 'click', 'data-call' => "insertListToDoc('#planBugs', 'planBug', $blockID, '$insertListLink')"));
if($from == 'ai') $footToolbar = array(array('text' => $lang->doc->insertText, 'data-on' => 'click', 'data-call' => "insertListToAI('#planBugs', 'bug')"));
formPanel
(
setID('zentaolist'),
setClass('mb-4-important'),
set::title(sprintf($this->lang->doc->insertTitle, $this->lang->doc->zentaoList['planBug'])),
set::actions(array()),
set::showExtra(false),
to::titleSuffix
(
span
(
setClass('text-muted text-sm text-gray-600 font-light'),
span
(
setClass('text-warning mr-1'),
icon('help'),
),
$lang->doc->previewTip
)
),
formRow
(
formGroup
(
set::width('1/2'),
set::name('product'),
set::label($lang->doc->product),
set::control(array('required' => false)),
set::items($productsWithShadow),
set::value($productID),
set::required(),
span
(
setClass('error-tip text-danger hidden'),
$lang->doc->emptyError
),
on::change('[name="product"]')->do("loadModal('$productChangeLink'.replace('{productID}', $(this).val()))")
)
),
formRow
(
formGroup
(
set::width('1/2'),
set::name('plan'),
set::label($lang->doc->plan),
set::control(array('required' => false)),
set::items($plans),
set::value($planID),
set::required(),
span
(
setClass('error-tip text-danger hidden'),
$lang->doc->emptyError
),
on::change('[name="plan"]')->do("loadModal('$planChangeLink'.replace('{planID}', $(this).val()))")
)
)
);
dtable
(
setID('planBugs'),
set::userMap($users),
set::checkable(),
set::cols($bugCols),
set::data(array_values($bugs)),
set::noNestedCheck(),
set::orderBy($orderBy),
set::footPager(usePager()),
set::emptyTip($lang->bug->notice->noBug),
set::footToolbar($footToolbar),
set::height(400),
set::afterRender(jsCallback()->call('toggleCheckRows', $idList)),
set::onCheckChange(jsRaw('window.checkedChange'))
);
render();