From e638da0be74f8b3687d10c511aafad43f4666ae7 Mon Sep 17 00:00:00 2001 From: qiyu-xie Date: Wed, 21 Apr 2021 15:19:41 +0800 Subject: [PATCH] * Fix bug#12087. --- module/execution/view/story.html.php | 21 ++++++++++++++++++++- module/product/js/browse.js | 2 +- module/product/view/browse.html.php | 20 +++++++++++++++++++- module/projectstory/control.php | 14 ++++++++++++++ 4 files changed, 54 insertions(+), 3 deletions(-) diff --git a/module/execution/view/story.html.php b/module/execution/view/story.html.php index 09ca6e739f..a349accc04 100644 --- a/module/execution/view/story.html.php +++ b/module/execution/view/story.html.php @@ -102,7 +102,25 @@ else { echo "'; } } diff --git a/module/product/js/browse.js b/module/product/js/browse.js index ff8eda1ffe..fe86a31b9a 100644 --- a/module/product/js/browse.js +++ b/module/product/js/browse.js @@ -27,7 +27,7 @@ $(function() var planID = $('#plan').val(); if(planID) { - parent.location.href = createLink('execution', 'importPlanStories', 'projectID=' + projectID + '&planID=' + planID + '&productID=' + productID); + parent.location.href = createLink('projectstory', 'importPlanStories', 'projectID=' + projectID + '&planID=' + planID + '&productID=' + productID); } }) diff --git a/module/product/view/browse.html.php b/module/product/view/browse.html.php index 6f2bdfcfce..9b10f31353 100644 --- a/module/product/view/browse.html.php +++ b/module/product/view/browse.html.php @@ -195,7 +195,25 @@ $projectIDParam = $isProjectStory ? "projectID=$projectID&" : ''; } else { - if(common::hasPriv('projectstory', 'linkStory')) echo html::a($this->createLink('projectstory', 'linkStory', "project=$projectID"), " {$lang->execution->linkStory}", '', "class='btn btn-primary'"); + $buttonLink = ''; + $buttonTitle = ''; + $dataToggle = ''; + if(common::hasPriv('projectstory', 'importPlanStories')) + { + $buttonLink = empty($productID) ? '' : '#linkStoryByPlan'; + $buttonTitle = $lang->execution->linkStoryByPlan; + $dataToggle = 'data-toggle="modal"'; + } + if(common::hasPriv('projectstory', 'linkStory')) + { + $buttonLink = $this->createLink('projectstory', 'linkStory', "project=$projectID"); + $buttonTitle = $lang->execution->linkStory; + $dataToggle = ''; + } + + $hidden = empty($buttonLink) ? 'hidden' : ''; + echo html::a($buttonLink, " $buttonTitle", '', "class='btn btn-primary $hidden' $dataToggle"); + if(!empty($productID) and common::hasPriv('projectstory', 'linkStory') and common::hasPriv('projectstory', 'importPlanStories')) { echo ""; diff --git a/module/projectstory/control.php b/module/projectstory/control.php index f9fde8c05d..ce582bc4ba 100644 --- a/module/projectstory/control.php +++ b/module/projectstory/control.php @@ -103,5 +103,19 @@ class projectStory extends control { echo $this->fetch('execution', 'unlinkStory', "projectID=$projectID&storyID=$storyID&confirm=$confirm"); } + + /** + * Import plan stories. + * + * @param int $projectID + * @param int $planID + * @param int $productID + * @access public + * @return void + */ + public function importPlanStories($projectID, $planID, $productID = 0) + { + echo $this->fetch('execution', 'importPlanStories', "projectID=$projectID&planID=$planID&productID=$productID"); + } }