* Optimize build dtable config.

This commit is contained in:
wangyuting
2024-04-16 15:22:58 +08:00
parent 59de53ffdf
commit c3daaa2622
8 changed files with 7 additions and 89 deletions
+5 -8
View File
@@ -55,14 +55,11 @@ $config->build->actionList['bugList']['url'] = array('module' => 'build', 'meth
$config->build->actionList['projectBugList'] = $config->build->actionList['bugList'];
$config->build->actionList['projectBugList']['url'] = array('module' => 'projectbuild', 'method' => 'view', 'params' => 'buildID={id}&type=generatedBug');
$config->build->actionList['buildEdit']['icon'] = 'edit';
$config->build->actionList['buildEdit']['text'] = $lang->build->edit;
$config->build->actionList['buildEdit']['hint'] = $lang->build->edit;
$config->build->actionList['buildEdit']['url'] = array('module' => 'build', 'method' => 'edit', 'params' => 'buildID={id}');
$config->build->actionList['buildEdit']['data-app'] = $app->tab;
$config->build->actionList['projectbuildEdit'] = $config->build->actionList['buildEdit'];
$config->build->actionList['projectbuildEdit']['url'] = array('module' => 'projectbuild', 'method' => 'edit', 'params' => 'buildID={id}');
$config->build->actionList['edit']['icon'] = 'edit';
$config->build->actionList['edit']['text'] = $lang->build->edit;
$config->build->actionList['edit']['hint'] = $lang->build->edit;
$config->build->actionList['edit']['url'] = array('module' => $app->tab == 'project' ? 'projectbuild' : 'build', 'method' => 'edit', 'params' => 'buildID={id}');
$config->build->actionList['edit']['data-app'] = $app->tab;
$config->build->actionList['delete']['icon'] = 'trash';
$config->build->actionList['delete']['text'] = $lang->build->delete;
+1 -1
View File
@@ -48,7 +48,7 @@ $config->build->dtable->fieldList['actions']['title'] = $lang->actions;
$config->build->dtable->fieldList['actions']['name'] = 'actions';
$config->build->dtable->fieldList['actions']['type'] = 'actions';
$config->build->dtable->fieldList['actions']['list'] = $config->build->actionList;
$config->build->dtable->fieldList['actions']['menu'] = array('linkStory', 'createTest', 'viewBug', 'buildEdit', 'delete');
$config->build->dtable->fieldList['actions']['menu'] = array('linkStory', 'createTest', 'viewBug', 'edit', 'delete');
$config->build->story = new stdclass();
$config->build->bug = new stdclass();
-34
View File
@@ -792,40 +792,6 @@ class buildModel extends model
->fetchAll();
}
/**
* 根据权限生成列表中操作列按钮。
* Build table action menu for build browse page.
*
* @param object $build
* @param int $executionID
* @param string $from execution|projectbuild
* @access public
* @return array
*/
public function buildActionList(object $build, int $executionID = 0, string $from = 'execution'): array
{
$actions = array();
$executionID = $executionID ? $executionID : (int)$build->execution;
$execution = $this->loadModel('execution')->fetchByID($executionID);
$module = $from == 'projectbuild' ? 'projectbuild' : 'build';
$build->executionDeleted = $execution ? $execution->deleted : 0;
if(common::hasPriv($module, 'linkstory', $build)) $actions[] = $from == 'projectbuild' ? 'linkProjectStory' : 'linkStory';
if(common::hasPriv('testtask', 'create', $build)) $actions[] = $execution && $execution->deleted === '1' ? '-createTest' : 'createTest';
$isNotKanban = $from == 'execution' && !empty($execution->type) && $execution->type != 'kanban';
$isFromProject = $from == 'projectbuild' || empty($execution->type) || $execution->type == 'kanban';
if($isNotKanban && common::hasPriv('execution', 'bug', $build)) $actions[] = 'viewBug';
if($isFromProject && common::hasPriv($module, 'view', $build)) $actions[] = $from == 'projectbuild' ? 'projectBugList' : 'bugList';
if(common::hasPriv($module, 'edit', $build)) $actions[] = 'edit';
if(common::hasPriv($module, 'delete', $build)) $actions[] = 'delete';
return $actions;
}
/**
* 处理版本编辑前没有执行的情况。
* Process build for update when the build has no execution.
-16
View File
@@ -476,20 +476,4 @@ class buildTest
return $objectModels;
}
/**
* 根据状态和权限生成列表中操作列按钮。
* Build table action menu for build browse page.
*
* @param int $buildID
* @param int $executionID
* @access public
* @return string
*/
public function buildActionListObject(int $buildID, int $executionID = 0): string
{
$build = $this->objectModel->getByID($buildID);
$actions = $this->objectModel->buildActionList($build, $executionID);
return implode('|', $actions);
}
}
@@ -1,27 +0,0 @@
#!/usr/bin/env php
<?php
/**
title=测试 buildModel->buildActionList();
timeout=0
cid=1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/build.class.php';
su('admin');
zdTable('build')->config('build')->gen(7);
$execution = zdTable('project')->config('execution');
$execution->deleted->range('0,1');
$execution->gen(30);
$buildIdList = range(2, 7);
$executions = array('normal' => 11, 'deleted' => 60, 'kanban' => 124);
$buildTester = new buildTest();
r($buildTester->buildActionListObject($buildIdList[0], $executions['normal'])) && p() && e('linkStory|createTest|viewBug|buildEdit|delete'); // 正常的执行
r($buildTester->buildActionListObject($buildIdList[1], $executions['deleted'])) && p() && e('linkStory|-createTest|viewBug|buildEdit|delete'); // 已删除的执行
r($buildTester->buildActionListObject($buildIdList[1], $executions['kanban'])) && p() && e('linkStory|-createTest|bugList|buildEdit|delete'); // 看板执行
-1
View File
@@ -32,7 +32,6 @@ foreach($actions as $actionType => $typeActions)
{
$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)$build->id, $action['url']);
if($action['icon'] == 'edit') $actions[$actionType][$key]['text'] = $lang->edit;
if($action['icon'] == 'trash') $actions[$actionType][$key]['text'] = $lang->delete;
}
+1 -1
View File
@@ -2307,7 +2307,7 @@ class commonModel extends model
$actions = array();
foreach($actionList as $action)
{
$actionData = $config->{$moduleName}->actionList[$action];
$actionData = !empty($config->{$moduleName}->actionList[$action]) ? $config->{$moduleName}->actionList[$action] : array();
if($isInModal && !empty($actionData['notInModal'])) continue;
if(isset($actionData['data-app']) && $actionData['data-app'] == 'my') $actionData['data-app'] = $this->app->tab;
-1
View File
@@ -1024,7 +1024,6 @@ class executionZen extends execution
}
$build->branchName = trim($build->branchName, ',');
}
$build->actions = $this->build->buildActionList($build, $executionID, 'execution');
if($build->scmPath && $build->filePath)
{