From b64081a30e43593d410b22d071469a4ed880683a Mon Sep 17 00:00:00 2001 From: mayue Date: Wed, 24 Aug 2022 14:56:00 +0800 Subject: [PATCH 1/2] * Finish task #65893. --- module/common/model.php | 17 ++++++++++------- module/design/js/browse.js | 13 +++++++++++++ module/design/model.php | 18 +++++++++++++++++- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/module/common/model.php b/module/common/model.php index d86b3d4831..e73c45d9de 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -1335,28 +1335,31 @@ class commonModel extends model $label = $menuItem->text; $dropMenu = ''; + /* Print sub menus. */ if(isset($menuItem->dropMenu)) { - foreach($menuItem->dropMenu as $dropMenuItem) + foreach($menuItem->dropMenu as $dropMenuKey => $dropMenuItem) { - if($dropMenuItem->hidden) continue; + if(isset($dropMenuItem->hidden) and $dropMenuItem->hidden) continue; $subActive = ''; $subModule = ''; $subMethod = ''; $subParams = ''; - $subLabel = $dropMenuItem->text; - if(isset($dropMenuItem->link['module'])) $subModule = $dropMenuItem->link['module']; - if(isset($dropMenuItem->link['method'])) $subMethod = $dropMenuItem->link['method']; - if(isset($dropMenuItem->link['vars'])) $subParams = $dropMenuItem->link['vars']; + $subLabel = ''; + list($dropMenuName, $dropMenuModule, $dropMenuMethod, $dropMenuParams) = explode('|', $dropMenuItem['link']); + if(isset($dropMenuModule)) $subModule = $dropMenuModule; + if(isset($dropMenuMethod)) $subMethod = $dropMenuMethod; + if(isset($dropMenuParams)) $subParams = $dropMenuParams; + if(isset($dropMenuName)) $subLabel = $dropMenuName; $subLink = helper::createLink($subModule, $subMethod, $subParams); if($currentModule == strtolower($subModule) and $currentMethod == strtolower($subMethod)) $subActive = 'active'; $misc = (isset($lang->navGroup->$subModule) and $tab != $lang->navGroup->$subModule) ? "data-app='$tab'" : ''; - $dropMenu .= "
  • " . html::a($subLink, $subLabel, '', $misc) . '
  • '; + $dropMenu .= "
  • " . html::a($subLink, $subLabel, '', $misc) . '
  • '; } if(empty($dropMenu)) continue; diff --git a/module/design/js/browse.js b/module/design/js/browse.js index dd0b30a06d..9abbb03273 100644 --- a/module/design/js/browse.js +++ b/module/design/js/browse.js @@ -7,9 +7,22 @@ $(function() { var type = $(this).parent().attr('data-id'); if(type == 'bysearch') return; + if(type == 'more') + { + $(this).attr('href', '###'); + return; + } type = type == 'all' ? type : type.toLowerCase(); var href = createLink('design', 'browse', 'projectID=' + projectID + '&productID=' + productID + '&type=' + type); $(this).attr('href', href); }); + + if($('#subNavbar .dropdown-menu li[data-id=' + type +']').hasClass('active')) + { + var typeName = $('#subNavbar li[data-id=' + type +'] > a').html(); + + $('#subNavbar').find(".dropdown-hover > a").html(typeName + ""); + $("#subNavbar li[data-id='more']").addClass('active'); + } }) diff --git a/module/design/model.php b/module/design/model.php index 96fe52b191..4d42e601bb 100644 --- a/module/design/model.php +++ b/module/design/model.php @@ -406,10 +406,26 @@ class designModel extends model /* Show custom design types. */ $this->lang->waterfall->menu->design['subMenu'] = new stdclass(); $this->lang->waterfall->menu->design['subMenu']->all = array('link' => "{$this->lang->all}|design|browse|projectID=%s&productID=0&browseType=all"); + $count = 1; foreach(array_filter($this->lang->design->typeList) as $key => $value) { $key = strtolower($key); - $this->lang->waterfall->menu->design['subMenu']->$key = array('link' => "{$value}|design|browse|projectID=%s&productID=0&browseType={$key}"); + + if($count > 4) + { + if($count == 5) + { + $this->lang->waterfall->menu->design['subMenu']->more = array('link' => "更多|design|browse|projectID=%s&productID=0&browseType={$key}", 'class' => 'dropdown dropdown-hover'); + $this->lang->waterfall->menu->design['subMenu']->more['dropMenu'] = new stdclass(); + } + $this->lang->waterfall->menu->design['subMenu']->more['dropMenu']->$key = array('link' => "{$value}|design|browse|projectID=%s&productID=0&browseType={$key}"); + } + else + { + $this->lang->waterfall->menu->design['subMenu']->$key = array('link' => "{$value}|design|browse|projectID=%s&productID=0&browseType={$key}"); + } + + $count ++; } if($this->app->rawMethod == 'browse') $this->lang->waterfall->menu->design['subMenu']->bysearch = array('link' => ' ' . $this->lang->searchAB . ''); From f637523c8fa3cbb1b5365401a9022453a118f201 Mon Sep 17 00:00:00 2001 From: mayue Date: Wed, 24 Aug 2022 15:28:41 +0800 Subject: [PATCH 2/2] * Optimize code. --- module/design/lang/de.php | 1 + module/design/lang/en.php | 1 + module/design/lang/fr.php | 1 + module/design/lang/zh-cn.php | 1 + module/design/model.php | 16 +++++----------- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/module/design/lang/de.php b/module/design/lang/de.php index d78d2bc6ab..8dc1c11869 100644 --- a/module/design/lang/de.php +++ b/module/design/lang/de.php @@ -37,6 +37,7 @@ $lang->design->createdDate = 'CreatedDate'; $lang->design->basicInfo = 'Basic Information'; $lang->design->noAssigned = 'Unassigned'; $lang->design->comment = 'Comment'; +$lang->design->more = 'Mehr'; /* 动作列表. */ $lang->design->common = 'Design'; diff --git a/module/design/lang/en.php b/module/design/lang/en.php index 9a25dfdb79..f006c2c840 100644 --- a/module/design/lang/en.php +++ b/module/design/lang/en.php @@ -37,6 +37,7 @@ $lang->design->createdDate = 'CreatedDate'; $lang->design->basicInfo = 'Basic Information'; $lang->design->noAssigned = 'Unassigned'; $lang->design->comment = 'Comment'; +$lang->design->more = 'More'; /* 动作列表. */ $lang->design->common = 'Design'; diff --git a/module/design/lang/fr.php b/module/design/lang/fr.php index d78d2bc6ab..0e3e8da8a8 100644 --- a/module/design/lang/fr.php +++ b/module/design/lang/fr.php @@ -37,6 +37,7 @@ $lang->design->createdDate = 'CreatedDate'; $lang->design->basicInfo = 'Basic Information'; $lang->design->noAssigned = 'Unassigned'; $lang->design->comment = 'Comment'; +$lang->design->more = 'Suite'; /* 动作列表. */ $lang->design->common = 'Design'; diff --git a/module/design/lang/zh-cn.php b/module/design/lang/zh-cn.php index d96bd18f15..cab82e4748 100644 --- a/module/design/lang/zh-cn.php +++ b/module/design/lang/zh-cn.php @@ -37,6 +37,7 @@ $lang->design->createdDate = '创建时间'; $lang->design->basicInfo = '基本信息'; $lang->design->noAssigned = '未指派'; $lang->design->comment = '注释'; +$lang->design->more = '更多'; /* 动作列表. */ $lang->design->common = '设计'; diff --git a/module/design/model.php b/module/design/model.php index 4d42e601bb..25be18689e 100644 --- a/module/design/model.php +++ b/module/design/model.php @@ -411,19 +411,13 @@ class designModel extends model { $key = strtolower($key); - if($count > 4) + if($count <= 4) $this->lang->waterfall->menu->design['subMenu']->$key = array('link' => "{$value}|design|browse|projectID=%s&productID=0&browseType={$key}"); + if($count == 5) { - if($count == 5) - { - $this->lang->waterfall->menu->design['subMenu']->more = array('link' => "更多|design|browse|projectID=%s&productID=0&browseType={$key}", 'class' => 'dropdown dropdown-hover'); - $this->lang->waterfall->menu->design['subMenu']->more['dropMenu'] = new stdclass(); - } - $this->lang->waterfall->menu->design['subMenu']->more['dropMenu']->$key = array('link' => "{$value}|design|browse|projectID=%s&productID=0&browseType={$key}"); - } - else - { - $this->lang->waterfall->menu->design['subMenu']->$key = array('link' => "{$value}|design|browse|projectID=%s&productID=0&browseType={$key}"); + $this->lang->waterfall->menu->design['subMenu']->more = array('link' => "{$this->lang->design->more}|design|browse|projectID=%s&productID=0&browseType={$key}", 'class' => 'dropdown dropdown-hover'); + $this->lang->waterfall->menu->design['subMenu']->more['dropMenu'] = new stdclass(); } + if($count >= 5) $this->lang->waterfall->menu->design['subMenu']->more['dropMenu']->$key = array('link' => "{$value}|design|browse|projectID=%s&productID=0&browseType={$key}"); $count ++; }