From 9638d2ff944d18761b83072ee4e70e250f18c16b Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Fri, 27 Aug 2021 19:37:27 +0800 Subject: [PATCH] * Code for task#41787. --- module/common/lang/menu.php | 1 + module/common/model.php | 184 +++++++++++++++++++++++------------- 2 files changed, 118 insertions(+), 67 deletions(-) diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 03b9269b43..27d0816859 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -255,6 +255,7 @@ $lang->execution->menu->doc = array('link' => "{$lang->doc->common}|doc|tab $lang->execution->menu->build = array('link' => "{$lang->build->common}|execution|build|executionID=%s", 'subModule' => 'build'); $lang->execution->menu->action = array('link' => "$lang->dynamic|execution|dynamic|executionID=%s"); $lang->execution->menu->settings = array('link' => "$lang->settings|execution|view|executionID=%s", 'subModule' => 'personnel', 'alias' => 'edit,manageproducts,team,whitelist,addwhitelist,managemembers', 'class' => 'dropdown dropdown-hover'); +if($config->systemMode == 'new') $lang->execution->menu->more = array('link' => "$lang->more|execution|more|%s"); /* Execution menu order. */ $lang->execution->menuOrder[5] = 'task'; diff --git a/module/common/model.php b/module/common/model.php index ca9eb8ab85..4a487c32a5 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -741,77 +741,85 @@ class commonModel extends model $active = 'active'; } - if($menuItem->link) + if($menuItem->link['module'] == 'execution' and $menuItem->link['method'] == 'more') { - $target = ''; - $module = ''; - $method = ''; - $link = commonModel::createMenuLink($menuItem, $openApp); - if(is_array($menuItem->link)) - { - if(isset($menuItem->link['target'])) $target = $menuItem->link['target']; - if(isset($menuItem->link['module'])) $module = $menuItem->link['module']; - if(isset($menuItem->link['method'])) $method = $menuItem->link['method']; - } - if($module == $currentModule and ($method == $currentMethod or strpos(",$alias,", ",$currentMethod,") !== false) and strpos(",$exclude,", ",$currentMethod,") === false) - { - $activeMenu = $menuItem->name; - $active = 'active'; - } - - $label = $menuItem->text; - $dropMenu = ''; - - /* Print drop menus. */ - if(isset($menuItem->dropMenu)) - { - foreach($menuItem->dropMenu as $dropMenuName => $dropMenuItem) - { - if(isset($dropMenuItem->hidden) and $dropMenuItem->hidden) continue; - - /* Parse drop menu link. */ - $dropMenuLink = $dropMenuItem; - if(is_array($dropMenuItem) and isset($dropMenuItem['link'])) $dropMenuLink = $dropMenuLink['link']; - - list($subLabel, $subModule, $subMethod, $subParams) = explode('|', $dropMenuLink); - $subLink = helper::createLink($subModule, $subMethod, $subParams); - - $subActive = ''; - $activeMainMenu = false; - if($currentModule == strtolower($subModule) && $currentMethod == strtolower($subMethod)) - { - $activeMainMenu = true; - } - else - { - $subModule = isset($dropMenuItem['subModule']) ? explode(',', $dropMenuItem['subModule']) : array(); - if($subModule and in_array($currentModule, $subModule) and strpos(",$exclude,", ",$currentModule-$currentMethod,") === false) $activeMainMenu = true; - } - - if($activeMainMenu) - { - $activeMenu = $dropMenuName; - $active = 'active'; - $subActive = 'active'; - $label = $subLabel; - } - $dropMenu .= "
  • " . html::a($subLink, $subLabel, '', "data-app='$openApp'") . '
  • '; - } - - if(empty($dropMenu)) continue; - - $label .= ""; - $dropMenu = ""; - } - - $misc = (isset($lang->navGroup->$module) and $openApp != $lang->navGroup->$module) ? "data-app='$openApp'" : ''; - $menuItemHtml = "
  • " . html::a($link, $label, $target, $misc) . $dropMenu . "
  • \n"; - - echo $menuItemHtml; + $executionID = $menuItem->link['vars']; + commonModel::buildMoreButton($executionID); } else { - echo "
  • $menuItem->text
  • \n"; + if($menuItem->link) + { + $target = ''; + $module = ''; + $method = ''; + $link = commonModel::createMenuLink($menuItem, $openApp); + if(is_array($menuItem->link)) + { + if(isset($menuItem->link['target'])) $target = $menuItem->link['target']; + if(isset($menuItem->link['module'])) $module = $menuItem->link['module']; + if(isset($menuItem->link['method'])) $method = $menuItem->link['method']; + } + if($module == $currentModule and ($method == $currentMethod or strpos(",$alias,", ",$currentMethod,") !== false) and strpos(",$exclude,", ",$currentMethod,") === false) + { + $activeMenu = $menuItem->name; + $active = 'active'; + } + + $label = $menuItem->text; + $dropMenu = ''; + + /* Print drop menus. */ + if(isset($menuItem->dropMenu)) + { + foreach($menuItem->dropMenu as $dropMenuName => $dropMenuItem) + { + if(isset($dropMenuItem->hidden) and $dropMenuItem->hidden) continue; + + /* Parse drop menu link. */ + $dropMenuLink = $dropMenuItem; + if(is_array($dropMenuItem) and isset($dropMenuItem['link'])) $dropMenuLink = $dropMenuLink['link']; + + list($subLabel, $subModule, $subMethod, $subParams) = explode('|', $dropMenuLink); + $subLink = helper::createLink($subModule, $subMethod, $subParams); + + $subActive = ''; + $activeMainMenu = false; + if($currentModule == strtolower($subModule) && $currentMethod == strtolower($subMethod)) + { + $activeMainMenu = true; + } + else + { + $subModule = isset($dropMenuItem['subModule']) ? explode(',', $dropMenuItem['subModule']) : array(); + if($subModule and in_array($currentModule, $subModule) and strpos(",$exclude,", ",$currentModule-$currentMethod,") === false) $activeMainMenu = true; + } + + if($activeMainMenu) + { + $activeMenu = $dropMenuName; + $active = 'active'; + $subActive = 'active'; + $label = $subLabel; + } + $dropMenu .= "
  • " . html::a($subLink, $subLabel, '', "data-app='$openApp'") . '
  • '; + } + + if(empty($dropMenu)) continue; + + $label .= ""; + $dropMenu = ""; + } + + $misc = (isset($lang->navGroup->$module) and $openApp != $lang->navGroup->$module) ? "data-app='$openApp'" : ''; + $menuItemHtml = "
  • " . html::a($link, $label, $target, $misc) . $dropMenu . "
  • \n"; + + echo $menuItemHtml; + } + else + { + echo "
  • $menuItem->text
  • \n"; + } } } echo "\n"; @@ -1324,6 +1332,48 @@ EOD; } } + /** + * Build more executions button. + * + * @param int $executionID + * @static + * @access public + * @return void + */ + public static function buildMoreButton($executionID) + { + global $lang, $app; + + $executionPairs = array(); + $object = $app->dbh->query('SELECT project FROM ' . TABLE_EXECUTION . " WHERE `id` = '$executionID'")->fetch(); + $executionList = $app->dbh->query("SELECT id,name FROM " . TABLE_EXECUTION . " WHERE `project` = '{$object->project}' ORDER BY `id` DESC")->fetchAll(); + foreach($executionList as $execution) + { + if($execution->id == $executionID) continue; + $executionPairs[$execution->id] = $execution->name; + } + + if(empty($executionPairs)) return; + + $html = "\n"; + + echo $html; + } + /** * Print link icon. *