* Adsjut footer summary on my testcase page.

This commit is contained in:
wangyuting
2023-06-13 11:12:07 +08:00
parent 6775ef0d5d
commit 1f0c14152d
7 changed files with 113 additions and 63 deletions
+16 -1
View File
@@ -695,14 +695,29 @@ EOF;
$actionURL = $this->createLink('my', $currentMethod, "mode=testcase&type=bysearch&param=myQueryID&orderBy={$orderBy}&recTotal={$recTotal}&recPerPage={$recPerPage}&pageID={$pageID}");
$this->my->buildTestCaseSearchForm($queryID, $actionURL, $currentMethod);
$failCount = 0;
foreach($cases as $case)
{
if($case->lastRunResult && $case->lastRunResult != 'pass') $failCount ++;
if($case->needconfirm)
{
$case->status = $this->lang->story->changed;
}
else if(isset($case->fromCaseVersion) and $case->fromCaseVersion > $case->version and !$case->needconfirm)
{
$case->status = $this->lang->testcase->changed;
}
if(!$case->lastRunResult) $case->lastRunResult = $this->lang->testcase->unexecuted;
}
/* Assign. */
$this->view->title = $this->lang->my->common . $this->lang->colon . $this->lang->my->myTestCase;
$this->view->cases = $cases;
$this->view->users = $this->user->getPairs('noletter');
$this->view->tabID = 'test';
$this->view->type = $type;
$this->view->failCount = $failCount;
$this->view->param = $param;
$this->view->summary = $this->testcase->summary($cases);
$this->view->recTotal = $recTotal;
$this->view->recPerPage = $recPerPage;
$this->view->pageID = $pageID;
+20
View File
@@ -17,3 +17,23 @@ $(document).off('click', '.batch-btn').on('click', '.batch-btn', function()
postAndLoadPage(url, form);
}
});
/**
* 设置表格的统计信息。
* Set summary for table footer.
*
* @param element element
* @param array checkedIDList
* @access public
* @return object
*/
window.setStatistics = function(element, checks)
{
let failCount = 0;
checks.forEach((checkID) => {
const caseInfo = element.getRowInfo(checkID).data;
if(caseInfo.lastRunResult != unexecuted && caseInfo.lastRunResult != 'pass') failCount ++;
})
if(checks.length) return {html: element.options.checkedSummary.replaceAll('%total%', `${checks.length}`).replaceAll('%fail%', failCount)};
return zui.formatString(element.options.defaultSummary);
}
+12 -4
View File
@@ -9,6 +9,7 @@ declare(strict_types=1);
* @link https://www.zentao.net
*/
namespace zin;
jsVar('unexecuted', $lang->testcase->unexecuted);
featureBar
(
@@ -17,9 +18,10 @@ featureBar
li(searchToggle())
);
$footToolbar = array('items' => array
$canBatchEdit = common::hasPriv('testcase', 'batchEdit');
$footToolbar = array('items' => array
(
array('text' => $lang->edit, 'className' => 'batch-btn ' . (common::hasPriv('testcase', 'batchEdit') ? '' : 'hidden'), 'data-url' => helper::createLink('testcase', 'batchEdit', 'productID=0&branch=all&type=case&tab=my'))
$canBatchEdit ? array('text' => $lang->edit, 'className' => 'batch-btn', 'data-url' => helper::createLink('testcase', 'batchEdit', 'productID=0&branch=all&type=case&tab=my')) : null
), 'btnProps' => array('size' => 'sm', 'btnType' => 'secondary'));
if($type == 'openedbyme')
@@ -28,16 +30,22 @@ if($type == 'openedbyme')
unset($config->my->testcase->dtable->fieldList['openedBy']);
}
if($type == 'assigntome') $config->my->testcase->dtable->fieldList['title']['link']['params'] .= "&from=testtask&taskID={task}";
$cases = initTableData($cases, $config->my->testcase->dtable->fieldList, $this->testcase);
$cols = array_values($config->my->testcase->dtable->fieldList);
$data = array_values($cases);
$defaultSummary = sprintf($lang->testcase->failSummary, count($cases), $failCount);
dtable
(
set::cols($cols),
set::data($data),
set::cols($config->my->testcase->dtable->fieldList),
set::userMap($users),
set::fixedLeftWidth('44%'),
set::checkable(true),
set::defaultSummary(array('html' => $defaultSummary)),
set::checkedSummary($lang->testcase->failCheckedSummary),
set::checkInfo(jsRaw('function(checkedIDList){return window.setStatistics(this, checkedIDList);}')),
set::footToolbar($footToolbar),
set::footPager(usePager()),
);
+21 -20
View File
@@ -184,7 +184,6 @@ $lang->testcase->legendLinkBugs = 'Bug';
$lang->testcase->legendOpenAndEdit = 'Erstellt/Bearbeitet';
$lang->testcase->legendComment = 'Bemerkung';
$lang->testcase->summary = "Fälle auf dieser Seite: <strong>%s</strong> insgesamt, <strong>%s</strong> ausgeführt.";
$lang->testcase->confirmDelete = 'Möchten Sie diesen Testfall schließen?';
$lang->testcase->confirmBatchDelete = 'Möchten Sie diese Testfälle schließen?';
$lang->testcase->ditto = 'Dito';
@@ -313,25 +312,27 @@ $lang->testcase->batchChangeScene = "Batch change scene";
$lang->testcase->updateOrder = "Drag Sort";
$lang->testcase->differentProduct = "Different product";
$lang->testcase->newScene = "Add Scene";
$lang->testcase->sceneTitle = 'Scene Title';
$lang->testcase->parentScene = "Parent Scene";
$lang->testcase->scene = "Scene";
$lang->testcase->summary = 'Total %d Top Scene,%d Independent test case.';
$lang->testcase->summaryScene = 'Total %d Top Scene.';
$lang->testcase->checkedSummary = '{checked} checked test cases, {run} run.';
$lang->testcase->deleteScene = 'Delete Scene';
$lang->testcase->editScene = 'Edit Scene';
$lang->testcase->hasChildren = 'This scene has sub scene or test cases. Do you want to delete them all?';
$lang->testcase->confirmDeleteScene = 'Are you sure you want to delete the scene: \"%s\"?';
$lang->testcase->sceneb = "Scene";
$lang->testcase->onlyScene = 'Only Scene';
$lang->testcase->iScene = 'Scene';
$lang->testcase->generalTitle = 'Title';
$lang->testcase->noScene = 'No Scene';
$lang->testcase->rowIndex = 'Row Index';
$lang->testcase->nestTotal = 'nest total';
$lang->testcase->normal = 'normal';
$lang->testcase->newScene = "Add Scene";
$lang->testcase->sceneTitle = 'Scene Title';
$lang->testcase->parentScene = "Parent Scene";
$lang->testcase->scene = "Scene";
$lang->testcase->summary = 'Total %d Top Scene,%d Independent test case.';
$lang->testcase->summaryScene = 'Total %d Top Scene.';
$lang->testcase->failSummary = 'Total %d Cases, which did not pass %d.';
$lang->testcase->checkedSummary = '{checked} checked test cases, {run} run.';
$lang->testcase->failCheckedSummary = '%total% checked test cases,%fail% run fail。';
$lang->testcase->deleteScene = 'Delete Scene';
$lang->testcase->editScene = 'Edit Scene';
$lang->testcase->hasChildren = 'This scene has sub scene or test cases. Do you want to delete them all?';
$lang->testcase->confirmDeleteScene = 'Are you sure you want to delete the scene: \"%s\"?';
$lang->testcase->sceneb = "Scene";
$lang->testcase->onlyScene = 'Only Scene';
$lang->testcase->iScene = 'Scene';
$lang->testcase->generalTitle = 'Title';
$lang->testcase->noScene = 'No Scene';
$lang->testcase->rowIndex = 'Row Index';
$lang->testcase->nestTotal = 'nest total';
$lang->testcase->normal = 'normal';
/* Translation for drag modal message box. */
$lang->testcase->dragModalTitle = 'Drag and drop operation selection';
+21 -19
View File
@@ -312,25 +312,27 @@ $lang->testcase->batchChangeScene = "Batch change scene";
$lang->testcase->updateOrder = "Drag Sort";
$lang->testcase->differentProduct = "Different product";
$lang->testcase->newScene = "Add Scene";
$lang->testcase->sceneTitle = 'Scene Title';
$lang->testcase->parentScene = "Parent Scene";
$lang->testcase->scene = "Scene";
$lang->testcase->summary = 'Total %d Top Scene,%d Independent test case.';
$lang->testcase->summaryScene = 'Total %d Top Scene.';
$lang->testcase->checkedSummary = '{checked} checked test cases, {run} run.';
$lang->testcase->deleteScene = 'Delete Scene';
$lang->testcase->editScene = 'Edit Scene';
$lang->testcase->hasChildren = 'This scene has sub scene or test cases. Do you want to delete them all?';
$lang->testcase->confirmDeleteScene = 'Are you sure you want to delete the scene: \"%s\"?';
$lang->testcase->sceneb = "Scene";
$lang->testcase->onlyScene = 'Only Scene';
$lang->testcase->iScene = 'Scene';
$lang->testcase->generalTitle = 'Title';
$lang->testcase->noScene = 'No Scene';
$lang->testcase->rowIndex = 'Row Index';
$lang->testcase->nestTotal = 'nest total';
$lang->testcase->normal = 'normal';
$lang->testcase->newScene = "Add Scene";
$lang->testcase->sceneTitle = 'Scene Title';
$lang->testcase->parentScene = "Parent Scene";
$lang->testcase->scene = "Scene";
$lang->testcase->summary = 'Total %d Top Scene,%d Independent test case.';
$lang->testcase->summaryScene = 'Total %d Top Scene.';
$lang->testcase->failSummary = 'Total %d Cases, which did not pass %d.';
$lang->testcase->checkedSummary = '{checked} checked test cases, {run} run.';
$lang->testcase->failCheckedSummary = '%total% checked test cases,%fail% run fail。';
$lang->testcase->deleteScene = 'Delete Scene';
$lang->testcase->editScene = 'Edit Scene';
$lang->testcase->hasChildren = 'This scene has sub scene or test cases. Do you want to delete them all?';
$lang->testcase->confirmDeleteScene = 'Are you sure you want to delete the scene: \"%s\"?';
$lang->testcase->sceneb = "Scene";
$lang->testcase->onlyScene = 'Only Scene';
$lang->testcase->iScene = 'Scene';
$lang->testcase->generalTitle = 'Title';
$lang->testcase->noScene = 'No Scene';
$lang->testcase->rowIndex = 'Row Index';
$lang->testcase->nestTotal = 'nest total';
$lang->testcase->normal = 'normal';
/* Translation for drag modal message box. */
$lang->testcase->dragModalTitle = 'Drag and drop operation selection';
+21 -19
View File
@@ -312,25 +312,27 @@ $lang->testcase->batchChangeScene = "Batch change scene";
$lang->testcase->updateOrder = "Drag Sort";
$lang->testcase->differentProduct = "Different product";
$lang->testcase->newScene = "Add Scene";
$lang->testcase->sceneTitle = 'Scene Title';
$lang->testcase->parentScene = "Parent Scene";
$lang->testcase->scene = "Scene";
$lang->testcase->summary = 'Total %d Top Scene,%d Independent test case.';
$lang->testcase->summaryScene = 'Total %d Top Scene.';
$lang->testcase->checkedSummary = '{checked} checked test cases, {run} run.';
$lang->testcase->deleteScene = 'Delete Scene';
$lang->testcase->editScene = 'Edit Scene';
$lang->testcase->hasChildren = 'This scene has sub scene or test cases. Do you want to delete them all?';
$lang->testcase->confirmDeleteScene = 'Are you sure you want to delete the scene: \"%s\"?';
$lang->testcase->sceneb = "Scene";
$lang->testcase->onlyScene = 'Only Scene';
$lang->testcase->iScene = 'Scene';
$lang->testcase->generalTitle = 'Title';
$lang->testcase->noScene = 'No Scene';
$lang->testcase->rowIndex = 'Row Index';
$lang->testcase->nestTotal = 'nest total';
$lang->testcase->normal = 'normal';
$lang->testcase->newScene = "Add Scene";
$lang->testcase->sceneTitle = 'Scene Title';
$lang->testcase->parentScene = "Parent Scene";
$lang->testcase->scene = "Scene";
$lang->testcase->summary = 'Total %d Top Scene,%d Independent test case.';
$lang->testcase->summaryScene = 'Total %d Top Scene.';
$lang->testcase->failSummary = 'Total %d Cases, which did not pass %d.';
$lang->testcase->checkedSummary = '{checked} checked test cases, {run} run.';
$lang->testcase->failCheckedSummary = '%total% checked test cases,%fail% run fail。';
$lang->testcase->deleteScene = 'Delete Scene';
$lang->testcase->editScene = 'Edit Scene';
$lang->testcase->hasChildren = 'This scene has sub scene or test cases. Do you want to delete them all?';
$lang->testcase->confirmDeleteScene = 'Are you sure you want to delete the scene: \"%s\"?';
$lang->testcase->sceneb = "Scene";
$lang->testcase->onlyScene = 'Only Scene';
$lang->testcase->iScene = 'Scene';
$lang->testcase->generalTitle = 'Title';
$lang->testcase->noScene = 'No Scene';
$lang->testcase->rowIndex = 'Row Index';
$lang->testcase->nestTotal = 'nest total';
$lang->testcase->normal = 'normal';
/* Translation for drag modal message box. */
$lang->testcase->dragModalTitle = 'Drag and drop operation selection';
+2
View File
@@ -318,7 +318,9 @@ $lang->testcase->parentScene = "父场景";
$lang->testcase->scene = "所属场景";
$lang->testcase->summary = '本页共 %d 个顶级场景,%d 个独立用例。';
$lang->testcase->summaryScene = '本页共 %d 个顶级场景。';
$lang->testcase->failSummary = '本页共 %d 个用例,未通过 %d。';
$lang->testcase->checkedSummary = '已选中 {checked} 个用例,已执行 {run} 个。';
$lang->testcase->failCheckedSummary = '已选中 %total% 个用例,未通过 %fail%。';
$lang->testcase->deleteScene = '删除场景';
$lang->testcase->editScene = '编辑场景';
$lang->testcase->hasChildren = '该场景有子场景或测试用例存在,要全部删除吗?';