diff --git a/module/testcase/control.php b/module/testcase/control.php index 4eb8a80822..e6c1cf4acf 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -93,7 +93,7 @@ class testcase extends control { $this->testcaseZen->checkProducts(); // 如果不存在产品,则跳转到产品创建页面。 - if($from == 'doc') + if($from == 'doc' || $from == 'ai') { $this->app->loadLang('doc'); $realProducts = $this->product->getPairs('nodeleted', 0, '', 'all'); @@ -102,7 +102,7 @@ class testcase extends control /* 把访问的产品ID等状态信息保存到session和cookie中。*/ /* Save the product id user last visited to session and cookie. */ - $productID = ($this->app->tab != 'project' || $from == 'doc') ? $this->product->checkAccess($productID, $this->products) : $productID; + $productID = ($this->app->tab != 'project' || $from == 'doc' || $from == 'ai') ? $this->product->checkAccess($productID, $this->products) : $productID; $branch = $this->testcaseZen->getBrowseBranch($branch); $browseType = strtolower($browseType); $moduleID = $browseType == 'bymodule' ? $param : 0; @@ -114,11 +114,11 @@ class testcase extends control $this->testcaseZen->setBrowseSession($productID, $branch, $moduleID, $browseType, $orderBy); list($productID, $branch) = $this->testcaseZen->setBrowseMenu($productID, $branch, $projectID); - $currentModule = ($this->app->tab == 'project' && $from != 'doc') ? 'project' : 'testcase'; - $currentMethod = ($this->app->tab == 'project' && $from != 'doc') ? 'testcase' : 'browse'; - $projectParam = ($this->app->tab == 'project' && $from != 'doc') ? "projectID={$this->session->project}&" : ''; + $currentModule = ($this->app->tab == 'project' && $from != 'doc' && $from != 'ai') ? 'project' : 'testcase'; + $currentMethod = ($this->app->tab == 'project' && $from != 'doc' && $from != 'ai') ? 'testcase' : 'browse'; + $projectParam = ($this->app->tab == 'project' && $from != 'doc' && $from != 'ai') ? "projectID={$this->session->project}&" : ''; $suffixParam = "&caseType=$caseType&orderBy=$orderBy&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID"; - if($from == 'doc') $suffixParam .= "&projectID=$projectID&from=$from&blockID=$blockID"; + if($from == 'doc' || $from == 'ai') $suffixParam .= "&projectID=$projectID&from=$from&blockID=$blockID"; $actionURL = $this->createLink($currentModule, $currentMethod, $projectParam . "productID=$productID&branch=$branch&browseType=bySearch&queryID=myQueryID" . $suffixParam); $this->testcaseZen->buildBrowseSearchForm($productID, $queryID, $projectID, $actionURL); diff --git a/module/testcase/ui/browse.html.php b/module/testcase/ui/browse.html.php index 82e1766c01..f7ff9795d8 100644 --- a/module/testcase/ui/browse.html.php +++ b/module/testcase/ui/browse.html.php @@ -11,13 +11,15 @@ declare(strict_types=1); namespace zin; $isFromDoc = $from === 'doc'; -if($isFromDoc) $this->app->loadLang('doc'); +$isFromAI = $from === 'ai'; +if($isFromDoc || $isFromAI) $this->app->loadLang('doc'); include 'header.html.php'; jsVar('confirmBatchDeleteSceneCase', $lang->testcase->confirmBatchDeleteSceneCase); jsVar('caseChanged', $lang->testcase->changed); jsVar('isFromDoc', $isFromDoc); +jsVar('isFromAI', $isFromAI); $topSceneCount = count(array_filter(array_map(function($case){return $case->isScene && $case->grade == 1;}, $cases))); @@ -102,6 +104,7 @@ if($isFromDoc) $insertListLink = createLink($app->rawModule, $app->rawMethod, "productID=$product->id&branch=$branch&browseType=$browseType¶m=$param&caseType=$caseType&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&projectID=$projectID&from=$from&blockID={blockID}"); $footToolbar = array(array('text' => $lang->doc->insertText, 'data-on' => 'click', 'data-call' => "insertListToDoc('#testcases', 'productCase', $blockID, '$insertListLink')")); } +if($isFromAI) $footToolbar = array(array('text' => $lang->doc->insertText, 'data-on' => 'click', 'data-call' => "insertListToAI('#testcases', 'case')")); $cols = $this->loadModel('datatable')->getSetting('testcase'); if(!empty($cols['actions']['list'])) @@ -143,7 +146,7 @@ foreach($cases as $case) if(!$canModify) unset($case->actions); } -if($isFromDoc) +if($isFromDoc || $isFromAI) { if(isset($cols['actions'])) unset($cols['actions']); foreach($cols as $key => $col) diff --git a/module/testcase/ui/header.html.php b/module/testcase/ui/header.html.php index 55cd198fc1..cdc3cf91b6 100644 --- a/module/testcase/ui/header.html.php +++ b/module/testcase/ui/header.html.php @@ -31,6 +31,7 @@ $canModify = common::canModify('product', $product); if(!empty($project)) $canModify = $canModify && common::canModify('project', $project); if(!isset($isFromDoc)) $isFromDoc = false; +if(!isset($isFromAI)) $isFromAI = false; if(!isset($suffixParam)) $suffixParam = ''; if(!isset($from)) $from = ''; @@ -41,7 +42,7 @@ $canCreateSuite = $canModify && hasPriv('testsuite', 'create'); $canBrowseUnits = hasPriv('testtask', 'browseunits'); $canBrowseZeroCase = hasPriv('testcase', 'zerocase') && $rawMethod != 'browseunits'; $canBrowseGroupCase = hasPriv('testcase', 'groupcase'); -$canBrowseScene = hasPriv('testcase', 'browseScene') && ($rawMethod == 'browse' || $rawMethod == 'browsescene') && !$isFromDoc; +$canBrowseScene = hasPriv('testcase', 'browseScene') && ($rawMethod == 'browse' || $rawMethod == 'browsescene') && !$isFromDoc && !$isFromAI; $canAutomation = !$isExecutionApp && $canModify && hasPriv('testcase', 'automation') && !empty($productID) && $rawMethod != 'browseunits'; $canExport = !$isExecutionApp && hasPriv('testcase', 'export'); $canExportTemplate = !$isExecutionApp && hasPriv('testcase', 'exportTemplate'); @@ -109,7 +110,7 @@ if($canDisplaySuite) } } -if($isFromDoc) +if($isFromDoc || $isFromAI) { $products = $this->loadModel('product')->getPairs('', 0, '', 'all'); $productChangeLink = createLink($app->rawModule, $app->rawMethod, "productID={productID}&branch=$branch&browseType=$browseType¶m=$param&caseType=$caseType&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}&projectID=$projectID&from=$from&blockID=$blockID"); @@ -159,16 +160,16 @@ if($isFromDoc) $linkParams = $rawMethod == 'groupcase' ? "productID=$productID&branch=$branch&groupBy=$groupBy&objectID=0&caseType=$caseType&browseType={key}" : $projectParam . "productID=$productID&branch=$branch&browseType={key}¶m=0" . $suffixParam; $browseLink = createLink('testcase', 'browse', $linkParams); if($app->tab == 'project') $browseLink = createLink('project', 'testcase', $linkParams); -if($app->tab == 'execution' && $from != 'doc') $browseLink = createLink('execution', 'testcase', "executionID={$executionID}&productID=$productID&branch=$branch&browseType={key}"); +if($app->tab == 'execution' && $from != 'doc' && $from != 'ai') $browseLink = createLink('execution', 'testcase', "executionID={$executionID}&productID=$productID&branch=$branch&browseType={key}"); if($rawMethod == 'browseunits') $browseLink = createLink('testtask', 'browseUnits', "productID=$productID&browseType={key}"); $queryMenuLink = createLink('testcase', 'browse', $projectParam . "productID=$productID&branch=$branch&browseType=bySearch¶m={queryID}" . $suffixParam); $objectID = 0; if($app->tab == 'project') $objectID = $projectID; -if($app->tab == 'execution' && $from != 'doc') $objectID = $executionID; +if($app->tab == 'execution' && $from != 'doc' && $from != 'ai') $objectID = $executionID; featureBar ( - set::isModal($isFromDoc), + set::isModal($isFromDoc || $isFromAI), set::module('testcase'), set::method('browse'), set::linkParams($rawMethod == 'zerocase' || $rawMethod == 'browseunits' || $rawMethod == 'browsescene' ? null : $linkParams), @@ -201,7 +202,7 @@ featureBar set::items($suiteItems) ) ) : null, - !$isFromDoc && ($canBrowseZeroCase && $rawMethod != 'groupcase') ? li + !$isFromDoc && !$isFromAI && ($canBrowseZeroCase && $rawMethod != 'groupcase') ? li ( set::className('nav-item'), a @@ -225,7 +226,7 @@ featureBar $lang->testcase->onlyScene ) ) : null, - !$isFromDoc && $rawMethod != 'browseunits' && $rawMethod != 'zerocase' && $rawMethod != 'groupcase' ? li + !$isFromDoc && !$isFromAI && $rawMethod != 'browseunits' && $rawMethod != 'zerocase' && $rawMethod != 'groupcase' ? li ( set::className('nav-item mr-2'), checkbox @@ -238,19 +239,19 @@ featureBar ) : null, !in_array($rawMethod, array('browseunits', 'groupcase', 'zerocase')) ? searchToggle ( - set::simple($isFromDoc), - $isFromDoc ? set::target('#docSearchForm') : null, + set::simple($isFromDoc || $isFromAI), + ($isFromDoc || $isFromAI) ? set::target('#docSearchForm') : null, set::module($this->app->rawMethod == 'testcase' ? 'testcase' : $this->app->rawModule), set::open($browseType == 'bysearch') ) : null ); -if($isFromDoc) +if($isFromDoc || $isFromAI) { div(setID('docSearchForm')); } -$viewItemUrl = (($isProjectApp || $isExecutionApp) && $from != 'doc') ? createLink($isProjectApp ? 'project' : 'execution', 'testcase', $isProjectApp ? "projectID={$projectID}" : "executionID=$executionID") : inlink('browse', "productID=$productID&branch=$branch&browseType=all"); +$viewItemUrl = (($isProjectApp || $isExecutionApp) && $from != 'doc' && $from != 'ai') ? createLink($isProjectApp ? 'project' : 'execution', 'testcase', $isProjectApp ? "projectID={$projectID}" : "executionID=$executionID") : inlink('browse', "productID=$productID&branch=$branch&browseType=all"); $viewItems = array(array('text' => $lang->testcase->listView, 'url' => $viewItemUrl, 'active' => $rawMethod != 'groupcase' ? true : false)); $exportItems = array(); $importItems = array(); @@ -329,7 +330,7 @@ $currentCreateItem = current($createItems); toolbar ( - setClass(array('hidden' => $isFromDoc)), + setClass(array('hidden' => $isFromDoc || $isFromAI)), $viewItems ? dropdown ( btn @@ -395,7 +396,7 @@ toolbar ) : null ); -if($rawMethod != 'zerocase' && $rawMethod != 'browseunits' && $rawMethod != 'groupcase' && !$isFromDoc) +if($rawMethod != 'zerocase' && $rawMethod != 'browseunits' && $rawMethod != 'groupcase' && !$isFromDoc && !$isFromAI) { $settingLink = $canManageModule ? createLink('tree', 'browse', "productID=$productID&view=case¤tModuleID=0&branch=0&from={$app->tab}") : ''; $closeLink = $isOnlyScene ? createLink('testcase', 'browseScene', "productID=$productID&branch=$branch&moduleID=0&orderBy=$orderBy") : createLink($currentModule, $currentMethod, $projectParam . "productID=$productID&branch=$branch&browseType=$browseType¶m=0&caseType=&orderBy=$orderBy&recTotal=0&recPerPage={$pager->recPerPage}");