* Optimize build dtable config.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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'); // 看板执行
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user