| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- /**
- * 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();
|