* @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 : "{$lang->noDesc}"), set::useHtml(true) ) ) );