znt/module/testsuite/ui/view.html.php

109 lines
4.2 KiB
PHP

<?php
declare(strict_types=1);
/**
* The view view file of testsuite 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 Mengyi Liu <liumengyi@easycorp.ltd>
* @package testsuite
* @link https://www.zentao.net
*/
namespace zin;
data('testsuite', $suite);
$config->testsuite->actionList['edit']['text'] = $config->testsuite->actionList['edit']['hint'] = $lang->edit;
$config->testsuite->actionList['delete']['text'] = $config->testsuite->actionList['delete']['hint'] = $lang->delete;
$actions = $this->loadModel('common')->buildOperateMenu($suite);
foreach($actions as $actionType => $typeActions)
{
foreach($typeActions as $key => $action)
{
$actions[$actionType][$key]['className'] = isset($action['className']) ? $action['className'] . ' ghost' : 'ghost';
$actions[$actionType][$key]['iconClass'] = isset($action['iconClass']) ? $action['iconClass'] . ' text-primary' : 'text-primary';
$actions[$actionType][$key]['url'] = str_replace('{id}', (string)$suite->id, $action['url']);
}
}
detailHeader
(
to::title
(
entityLabel
(
set::entityID($suite->id),
set::level(1),
set::text($suite->name)
),
$suite->deleted ? span(setClass('label danger'), $lang->testsuite->deleted) : null
),
to::suffix
(
toolbar
(
set::items($actions['mainActions'])
)
)
);
$canBatchEdit = common::hasPriv('testcase', 'batchEdit');
$canBatchUnlink = common::hasPriv('testsuite', 'batchUnlinkCases');
$canBatchRun = common::hasPriv('testtask', 'batchRun');
$hasCheckbox = ($canBeChanged && ($canBatchEdit || $canBatchUnlink || $canBatchRun));
$batchItems = array(
$canBatchUnlink ? array('text' => $lang->testsuite->unlinkCase, 'innerClass' => 'batch-btn ajax-btn not-open-url', 'data-url' => helper::createLink('testsuite', 'batchUnlinkCases', "suiteID={$suite->id}")) : null,
$canBatchRun ? array('text' => $lang->testtask->runCase, 'innerClass' => 'batch-btn not-open-url', 'data-url' => helper::createLink('testtask', 'batchRun', "productID={$productID}&&orderBy={$orderBy}")) : null,
);
$footToolbar = array('items' => array(
array('type' => 'btn-group', 'items' => array
(
array('text' => $lang->edit, 'className' => 'batch-btn', 'data-url' => createLink('testcase', 'batchEdit', "productID={$productID}")),
array('caret' => 'up', 'className' => 'btn btn-caret size-sm not-open-url', 'data-placement' => 'top-start', 'items' => $batchItems),
)),
), 'btnProps' => array('size' => 'sm', 'btnType' => 'secondary'));
$config->testsuite->testcase->dtable->fieldList['module']['map'] = $modules;
$config->testsuite->testcase->dtable->fieldList['status']['statusMap']['changed'] = $lang->testcase->changed;
foreach($cases as $case)
{
if($case->version > $case->caseVersion) $case->status = 'changed';
}
$tableData = initTableData($cases, $config->testsuite->testcase->dtable->fieldList);
detailBody
(
sectionList
(
dtable
(
set::cols(array_values($config->testsuite->testcase->dtable->fieldList)),
set::data(array_values($tableData)),
set::fixedLeftWidth('0.5'),
set::checkable($hasCheckbox),
set::orderBy($orderBy),
set::sortLink(createLink('testsuite', 'view', "suiteID={$suite->id}&orderBy={name}_{sortType}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}")),
set::footToolbar($footToolbar),
set::footPager(usePager('pager'))
)
),
history
(
set::hasComment(false),
set::commentBtn(false),
set::methodName('view_1'),
set::objectID($suite->id)
),
detailSide
(
section
(
setClass('py-4'),
set::title($lang->testsuite->legendDesc),
set::content(!empty($suite->desc) ? $suite->desc : "<span class='text-gray'>{$lang->noDesc}</span>"),
set::useHtml(true)
)
)
);