From c3daaa2622c08e85f642a4839e22f8a7e71af685 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Tue, 16 Apr 2024 15:22:58 +0800 Subject: [PATCH] * Optimize build dtable config. --- module/build/config.php | 13 +++----- module/build/config/dtable.php | 2 +- module/build/model.php | 34 --------------------- module/build/test/build.class.php | 16 ---------- module/build/test/model/buildactionlist.php | 27 ---------------- module/build/ui/view.html.php | 1 - module/common/model.php | 2 +- module/execution/zen.php | 1 - 8 files changed, 7 insertions(+), 89 deletions(-) delete mode 100755 module/build/test/model/buildactionlist.php diff --git a/module/build/config.php b/module/build/config.php index 4ae3883ff5..73042f9c8f 100644 --- a/module/build/config.php +++ b/module/build/config.php @@ -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; diff --git a/module/build/config/dtable.php b/module/build/config/dtable.php index f4e8afc29a..9a12e14526 100644 --- a/module/build/config/dtable.php +++ b/module/build/config/dtable.php @@ -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(); diff --git a/module/build/model.php b/module/build/model.php index ed4651132f..da457dc062 100644 --- a/module/build/model.php +++ b/module/build/model.php @@ -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. diff --git a/module/build/test/build.class.php b/module/build/test/build.class.php index d0f2dffb82..fefc912c0f 100644 --- a/module/build/test/build.class.php +++ b/module/build/test/build.class.php @@ -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); - } } diff --git a/module/build/test/model/buildactionlist.php b/module/build/test/model/buildactionlist.php deleted file mode 100755 index 597b455e4b..0000000000 --- a/module/build/test/model/buildactionlist.php +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env php -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'); // 看板执行 diff --git a/module/build/ui/view.html.php b/module/build/ui/view.html.php index bab1de65bf..6bfb31b191 100644 --- a/module/build/ui/view.html.php +++ b/module/build/ui/view.html.php @@ -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; } diff --git a/module/common/model.php b/module/common/model.php index 3b50e31e4e..13b22908aa 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -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; diff --git a/module/execution/zen.php b/module/execution/zen.php index 4f68f85be1..fc5f2fe35b 100644 --- a/module/execution/zen.php +++ b/module/execution/zen.php @@ -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) {