From 74568631ac53bc6faa6bfcd7e468ff26eb363a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=BB=B6=E4=B9=89?= Date: Thu, 29 Sep 2022 15:20:30 +0800 Subject: [PATCH 1/3] * Finish task #70499. --- module/productplan/css/browse.css | 4 +++ module/productplan/js/browse.js | 20 +++++++++++++++ module/productplan/model.php | 15 ++++++----- module/productplan/view/browsebylist.html.php | 25 ++++++++++++++++++- 4 files changed, 55 insertions(+), 9 deletions(-) diff --git a/module/productplan/css/browse.css b/module/productplan/css/browse.css index 2b51775b97..8c82139ecf 100644 --- a/module/productplan/css/browse.css +++ b/module/productplan/css/browse.css @@ -39,3 +39,7 @@ td.c-branch {overflow: hidden; text-align: left !important; text-overflow: ellip #productplanList .c-actions .btn+.btn {margin-left: -1px;} #productplanList .c-actions .btn {display: block; float: left;} #productplanList td.c-actions .dividing-line {width: 1px; height: 16px; display: inline-block; vertical-align: middle; background: #F4F5F7; margin: 6px 0 0 0; float: left;} + +.popover.right {left: 40px; top: -5px; white-space: nowrap;} +.popover.right .popover-content {padding: 5px 20px 0px 0px;} +.execution-tip {list-style: none;} diff --git a/module/productplan/js/browse.js b/module/productplan/js/browse.js index f9b4ea064d..d679c438e7 100644 --- a/module/productplan/js/browse.js +++ b/module/productplan/js/browse.js @@ -99,6 +99,26 @@ $(function() { $.zui.ContextMenu.hide(); }); + + $('.project-popover').on('click', function() + { + var showPopover = $(this).next().css('display') == 'block'; + $('.popover.right').hide(); + if(!showPopover) $(this).next().show(); + }); + + $('.project-link').on('click', function() + { + $('.popover.right').hide(); + }); + + /* Hide popover tip. */ + $(document).on('mousedown', function(e) + { + var $target = $(e.target); + var $toggle = $target.closest('.popover'); + if(!$toggle.length) $('.popover.right').hide(); + }); }); /* Define menu creators. */ diff --git a/module/productplan/model.php b/module/productplan/model.php index d07ec90341..e8815795ac 100644 --- a/module/productplan/model.php +++ b/module/productplan/model.php @@ -122,14 +122,14 @@ class productplanModel extends model foreach($planIdList as $planID) { - $planProjects[$planID] = $this->dao->select('t1.*,t2.type')->from(TABLE_PROJECTPRODUCT)->alias('t1') + $planProjects[$planID] = $this->dao->select('t1.project,t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project=t2.id') ->where('t1.product')->eq($product) ->andWhere('t2.deleted')->eq(0) ->andWhere('t1.plan')->like(",$planID,") ->andWhere('t2.type')->in('sprint,stage,kanban') ->orderBy('project_desc') - ->fetch('project'); + ->fetchAll('project'); } $storyCountInTable = $this->dao->select('plan,count(story) as count')->from(TABLE_PLANSTORY)->where('plan')->in($planIdList)->groupBy('plan')->fetchPairs('plan', 'count'); @@ -159,12 +159,11 @@ class productplanModel extends model ->andWhere('deleted')->eq(0) ->fetchPairs('id', 'estimate'); } - $plan->stories = count($storyPairs); - $plan->bugs = isset($bugs[$plan->id]) ? count($bugs[$plan->id]) : 0; - $plan->hour = array_sum($storyPairs); - $plan->project = zget($planProjects, $plan->id, ''); - $plan->projectID = $plan->project; - $plan->expired = $plan->end < $date ? true : false; + $plan->stories = count($storyPairs); + $plan->bugs = isset($bugs[$plan->id]) ? count($bugs[$plan->id]) : 0; + $plan->hour = array_sum($storyPairs); + $plan->projects = zget($planProjects, $plan->id, ''); + $plan->expired = $plan->end < $date ? true : false; /* Sync linked stories. */ if(!isset($storyCountInTable[$plan->id]) or $storyCountInTable[$plan->id] != $plan->stories) diff --git a/module/productplan/view/browsebylist.html.php b/module/productplan/view/browsebylist.html.php index e488ec94f8..45aaaa7fa8 100644 --- a/module/productplan/view/browsebylist.html.php +++ b/module/productplan/view/browsebylist.html.php @@ -140,7 +140,30 @@ stories;?> bugs;?> hour;?> - projectID)) echo html::a(helper::createLink('execution', 'task', 'projectID=' . $plan->projectID), '');?> + + projects)) + { + if(count($plan->projects) === 1) + { + echo html::a(helper::createLink('execution', 'task', 'projectID=' . key($plan->projects)), ''); + } + else + { + $projectHtml = '
'; + $projectHtml .= '
'; + $projectHtml .= '
'; + $projectHtml .= '
    '; + foreach($plan->projects as $projectID => $project) $projectHtml .= '
  • ' . html::a(helper::createLink('execution', 'task', "projectID=$projectID"), $project->name, '', 'class="project-link"') . '
  • '; + $projectHtml .= '
'; + $projectHtml .= '
'; + $projectHtml .= '
'; + echo ""; + echo $projectHtml; + } + } + ?> + ', '
', '
', '
'), "\n", str_replace(array("\n", "\r"), '', $plan->desc)), ''));?>
From 1ef99f0b1d3e4fe4292b79f417b60b8b2e5017ad Mon Sep 17 00:00:00 2001 From: wangzemei Date: Thu, 29 Sep 2022 16:16:54 +0800 Subject: [PATCH 2/3] * modify stopPropagation --- module/productplan/js/browse.js | 6 +++--- module/productplan/view/browsebylist.html.php | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/module/productplan/js/browse.js b/module/productplan/js/browse.js index d679c438e7..6f7053c196 100644 --- a/module/productplan/js/browse.js +++ b/module/productplan/js/browse.js @@ -99,9 +99,9 @@ $(function() { $.zui.ContextMenu.hide(); }); - - $('.project-popover').on('click', function() + $('.project-popover').on('click', function(e) { + e.stopPropagation(); var showPopover = $(this).next().css('display') == 'block'; $('.popover.right').hide(); if(!showPopover) $(this).next().show(); @@ -116,7 +116,7 @@ $(function() $(document).on('mousedown', function(e) { var $target = $(e.target); - var $toggle = $target.closest('.popover'); + var $toggle = $target.closest('.popover, .project-popover'); if(!$toggle.length) $('.popover.right').hide(); }); }); diff --git a/module/productplan/view/browsebylist.html.php b/module/productplan/view/browsebylist.html.php index 45aaaa7fa8..b98f20e17c 100644 --- a/module/productplan/view/browsebylist.html.php +++ b/module/productplan/view/browsebylist.html.php @@ -9,6 +9,9 @@ * @link https://www.zentao.net */ ?> +