diff --git a/module/execution/control.php b/module/execution/control.php
index 0c8b13db27..1858ec99e5 100644
--- a/module/execution/control.php
+++ b/module/execution/control.php
@@ -2454,7 +2454,7 @@ class execution extends control
*/
public function ajaxGetDropMenu(int $executionID, string $module, string $method, string $extra)
{
- $projects = $this->loadModel('program')->getProjectList(0, 'all', 0, 'order_asc', null, 0, 0, true); /* 获取所有项目的列表。*/
+ $projects = $this->loadModel('program')->getProjectList(0, 'all', 0, 'order_asc', 0, 0, true); /* 获取所有项目的列表。*/
$executionGroups = $this->dao->select('*')->from(TABLE_EXECUTION) /* 按照项目分组,获取有权限访问的执行列表。*/
->where('deleted')->eq('0')
->andWhere('multiple')->eq('1')
diff --git a/module/program/model.php b/module/program/model.php
index e50b0bec78..98713f136f 100644
--- a/module/program/model.php
+++ b/module/program/model.php
@@ -622,14 +622,14 @@ class programModel extends model
* @param string $browseType all|wait|undone|doing|suspended|closed|bysearch|review
* @param string $queryID
* @param string $orderBy
- * @param object|null $pager
* @param string $programTitle 0|base|end
* @param int $involved
* @param bool $queryAll
+ * @param object|null $pager
* @access public
* @return object[]
*/
- public function getProjectList(int $programID = 0, string $browseType = 'all', int $queryID = 0, string $orderBy = 'id_desc', object|null $pager = null, string $programTitle = '', int $involved = 0, bool $queryAll = false): array
+ public function getProjectList(int $programID = 0, string $browseType = 'all', int $queryID = 0, string $orderBy = 'id_desc', string $programTitle = '', int $involved = 0, bool $queryAll = false, object $pager = null): array
{
$path = '';
if($programID) $path = $this->getByID($programID)->path;
@@ -1066,61 +1066,6 @@ class programModel extends model
return true;
}
- /**
- * Get the tree menu of program.
- *
- * @param int $programID
- * @param string $from
- * @param string $vars
- * @param string $moduleName
- * @param string $methodName
- * @access public
- * @return string
- */
- public function getTreeMenu($programID = 0, $from = 'program', $vars = '', $moduleName = '', $methodName = '')
- {
- $programMenu = array();
- $query = $this->dao->select('*')->from(TABLE_PROJECT)
- ->where('deleted')->eq('0')
- ->beginIF($from == 'program')
- ->andWhere('type')->eq('program')
- ->andWhere('id')->in($this->app->user->view->programs)
- ->fi()
- ->beginIF($from == 'product')
- ->andWhere('type')->eq('program')
- ->andWhere('grade')->eq(1)
- ->andWhere('id')->in($this->app->user->view->programs)
- ->fi()
- ->beginIF(!$this->cookie->showClosed)->andWhere('status')->ne('closed')->fi()
- ->orderBy('grade desc, `order`')->get();
- $stmt = $this->dbh->query($query);
-
- while($program = $stmt->fetch())
- {
- $link = $this->getLink($moduleName, $methodName, $program->id, $vars, $from);
- $linkHtml = html::a($link, $program->name, '', "id='program$program->id' class='text-ellipsis programName' title=$program->name");
-
- if(isset($programMenu[$program->id]) and !empty($programMenu[$program->id]))
- {
- if(!isset($programMenu[$program->parent])) $programMenu[$program->parent] = '';
- $programMenu[$program->parent] .= "
$linkHtml";
- $programMenu[$program->parent] .= "" . $programMenu[$program->id] . "
\n";
- }
- else
- {
- if(empty($programMenu[$program->parent])) $programMenu[$program->parent] = '';
- $programMenu[$program->parent] .= "$linkHtml\n";
- }
- $programMenu[$program->parent] .= "\n";
- }
-
- krsort($programMenu);
- $programMenu = array_pop($programMenu);
- $lastMenu = "\n";
-
- return $lastMenu;
- }
-
/**
* Get link for drop tree menu.
*
@@ -1506,7 +1451,7 @@ class programModel extends model
if(commonModel::isTutorialMode()) return $this->loadModel('tutorial')->getProjectStats($browseType);
/* Init vars. */
- $projects = $this->getProjectList($programID, $browseType, $queryID, $orderBy, $pager, $programTitle, $involved, $queryAll);
+ $projects = $this->getProjectList($programID, $browseType, $queryID, $orderBy, $programTitle, $involved, $queryAll, $pager);
if(empty($projects)) return array();
$projectKeys = array_keys($projects);
@@ -1578,97 +1523,6 @@ class programModel extends model
return $users;
}
- /**
- * Build program action menu.
- *
- * @param object $program
- * @param string $type
- * @access public
- * @return string
- */
- public function buildOperateMenu($program, $type = 'view')
- {
- $menu = '';
- $params = "programID=$program->id";
- if($program->type == 'program' && strpos(",{$this->app->user->view->programs},", ",$program->id,") !== false)
- {
- if($program->status == 'wait' || $program->status == 'suspended')
- {
- $menu .= $this->buildMenu('program', 'start', $params, $program, $type, 'play', '', 'iframe', true, '', $this->lang->program->start);
- }
- if($program->status == 'doing')
- {
- $menu .= $this->buildMenu('program', 'close', $params, $program, $type, 'off', '', 'iframe', true);
- }
- if($program->status == 'closed')
- {
- $menu .= $this->buildMenu('program', 'activate', $params, $program, $type, 'magic', '', 'iframe', true);
- }
- if(common::hasPriv('program', 'suspend') || (common::hasPriv('program', 'close') && $program->status != 'doing') || (common::hasPriv('program', 'activate') && $program->status != 'closed'))
- {
- $menu .= "";
- $menu .= "";
- $menu .= "";
- $menu .= "
";
- }
-
- $disabled = $program->status == 'closed' ? " disabled='disabled' style='pointer-events: none;'" : '';
- $menu .= $this->buildMenu('program', 'edit', $params, $program, $type, 'edit');
- $menu .= $this->buildMenu('program', 'create', $params, $program, $type, 'split', '', '', '', $disabled, $this->lang->program->children);
- if(common::hasPriv('program', 'delete'))
- {
- $menu .= $this->buildMenu('program', 'delete', $params, $program, $type, 'trash', 'hiddenwin', '', '', '', $this->lang->program->delete);
- }
- }
- elseif($program->type == 'project')
- {
- if($program->status == 'wait' || $program->status == 'suspended')
- {
- $menu .= $this->buildMenu('project', 'start', $params, $program, $type, 'play', '', 'iframe', true);
- }
- if($program->status == 'doing') $menu .= $this->buildMenu('project', 'close', $params, $program, $type, 'off', '', 'iframe', true);
- if($program->status == 'closed') $menu .= $this->buildMenu('project', 'activate', $params, $program, $type, 'magic', '', 'iframe', true);
- if(common::hasPriv('project', 'suspend') || (common::hasPriv('project', 'close') && $program->status != 'doing') || (common::hasPriv('project', 'activate') && $program->status != 'closed'))
- {
- $menu .= "";
- $menu .= "";
- $menu .= "";
- $menu .= "
";
- }
-
- $menu .= $this->buildMenu('project', 'edit', $params, $program, $type, 'edit', '', 'iframe', true);
- $menu .= $this->buildMenu('project', 'team', $params, $program, $type, 'group', '', '', '', 'data-app="project"');
-
- $disabledGroup = $program->model == 'kanban' ? " disabled='disabled' style='pointer-events: none;'" : '';
- $menu .= $this->buildMenu('project', 'group', $params, $program, $type, 'lock', '', '', '', 'data-app="project"' . $disabledGroup);
- if(common::hasPriv('project', 'manageProducts') || common::hasPriv('project', 'whitelist') || common::hasPriv('project', 'delete'))
- {
- $menu .= "";
- $menu .= "";
- $menu .= "";
- $menu .= "
";
- }
- }
- return $menu;
- }
-
/**
* Create default program.
*
diff --git a/module/program/test/model/batchprocessprogramname.php b/module/program/test/model/batchprocessprogramname.php
index c97245bdf3..4a16792fd8 100644
--- a/module/program/test/model/batchprocessprogramname.php
+++ b/module/program/test/model/batchprocessprogramname.php
@@ -42,8 +42,8 @@ $programTester = new programTest();
$allProjects = $programTester->program->getProjectList(0);
$undoneProjects = $programTester->program->getProjectList(0, 'undone');
-$withProgramProjects = $programTester->program->getProjectList(0, 'undone', 0, 'id_desc', null, 1);
-$involvedProjects = $programTester->program->getProjectList(0, 'undone', 0, 'id_desc', null, 1, true);
+$withProgramProjects = $programTester->program->getProjectList(0, 'undone', 0, 'id_desc', 1);
+$involvedProjects = $programTester->program->getProjectList(0, 'undone', 0, 'id_desc', 1, true);
r($programTester->program->batchProcessProgramName($allProjects)) && p('3:name') && e('项目集1/项目1'); // 测试处理所有项目
r($programTester->program->batchProcessProgramName($undoneProjects)) && p('3:name') && e('项目集1/项目1'); // 测试处理未关闭项目
diff --git a/module/program/test/model/buildoperatemenu.php b/module/program/test/model/buildoperatemenu.php
deleted file mode 100644
index d8cd39c43a..0000000000
--- a/module/program/test/model/buildoperatemenu.php
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env php
-id->range('1,2');
-$program->name->range('父项目集1,父项目集2');
-$program->type->range('program');
-$program->budget->range('900000,899900');
-$program->path->range('1,2')->prefix(',')->postfix(',');
-$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
-$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
-$program->gen(2);
-
-su('admin');
-/**
-
-title=测试 programModel::buildOperateMenu();
-cid=1
-pid=1
-
-项目集不存在 >> 0
-项目集存在 >> div
-
-*/
-
-$programTester = new programTest();
-$menus1 = $programTester->buildOperateMenuTest(0);
-$menus2 = $programTester->buildOperateMenuTest(1);
-
-r($menus1) && p() && e('0'); // 项目集不存在
-r(substr($menus2, 1, 3)) && p() && e('div'); // 项目集存在
diff --git a/module/program/test/model/getprojectlist.php b/module/program/test/model/getprojectlist.php
index fd64e075b4..4da32be3bf 100755
--- a/module/program/test/model/getprojectlist.php
+++ b/module/program/test/model/getprojectlist.php
@@ -52,10 +52,10 @@ $programTester = $tester->loadModel('program');
$allProjects = $programTester->getProjectList(0);
$undoneProjects = $programTester->getProjectList(0, 'undone');
$sortProjects = $programTester->getProjectList(0, 'undone');
-$withProgramProjects = $programTester->getProjectList(0, 'undone', 0, 'begin_desc', null, 'end');
-$withBaseProgramProjects = $programTester->getProjectList(0, 'undone', 0, 'begin_desc', null, 'base');
-$involvedProjects = $programTester->getProjectList(0, 'undone', 0, 'id_desc', null, 'end', true);
-$queryAllProjects = $programTester->getProjectList(0, 'undone', 0, 'id_desc', null, 'end', true, true);
+$withProgramProjects = $programTester->getProjectList(0, 'undone', 0, 'begin_desc', 'end');
+$withBaseProgramProjects = $programTester->getProjectList(0, 'undone', 0, 'begin_desc', 'base');
+$involvedProjects = $programTester->getProjectList(0, 'undone', 0, 'id_desc', 'end', true);
+$queryAllProjects = $programTester->getProjectList(0, 'undone', 0, 'id_desc', 'end', true, true);
$programAllProjects = $programTester->getProjectList(1, 'all');
$programWaitProjects = $programTester->getProjectList(1, 'wait');
$programUndoneProjects = $programTester->getProjectList(1, 'undone');
diff --git a/module/program/test/model/gettreemenu.php b/module/program/test/model/gettreemenu.php
deleted file mode 100755
index ea85553984..0000000000
--- a/module/program/test/model/gettreemenu.php
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env php
-id->range('1-5');
-$program->name->range('项目集1,项目集2');
-$program->type->range('program');
-$program->status->range('wait');
-$program->parent->range('0,0,1,1,2');
-$program->path->range('1,2,`1,3`,`1,4`,`2,5`')->prefix(',')->postfix(',');
-$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
-$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
-$program->gen(5);
-
-/**
-
-title=测试 programModel::getTreeMenu();
-cid=1
-pid=1
-
-查看返回的字符个数 >> 项目集1项目集2
-
-*/
-$programTester = new programTest();
-$programs1 = $programTester->getTreeMenuTest(1);
-$programs1 = preg_replace('/\s*/', '', strip_tags($programs1));
-
-r($programs1) && p() && e('项目集1项目集2'); // 查看返回的字符个数
diff --git a/module/program/test/program.class.php b/module/program/test/program.class.php
index 0ae50e5583..36e0c27bb0 100644
--- a/module/program/test/program.class.php
+++ b/module/program/test/program.class.php
@@ -300,18 +300,6 @@ class programTest
return $this->program->getInvolvedPrograms($account);
}
- /*
- * Get Tree menu.
- *
- * @param string $programID
- * @access public
- * @return array
- */
- public function getTreeMenuTest($programID)
- {
- return $this->program->getTreeMenu($programID);
- }
-
/**
* Get kanban group.
*
@@ -372,21 +360,6 @@ class programTest
return $this->program->checkAccess($programID, $programs);
}
- /**
- * Test build operate menu.
- *
- * @param int $programID
- * @access public
- * @return string
- */
- public function buildOperateMenuTest($programID = 0)
- {
- $program = $this->program->getByID($programID);
- if(empty($program)) return '0';
-
- return $this->program->buildOperateMenu($program);
- }
-
/**
* 修改子项目集和项目的层级。
* Modify the subProgram and project grade.