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 "
";
- if(common::hasPriv('execution', 'linkStory')) echo html::a(inlink('linkStory', "execution=$execution->id"), " {$lang->execution->linkStory}", '', "class='btn btn-primary'");
+
+ $buttonLink = '';
+ $buttonTitle = '';
+ $dataToggle = '';
+ if(common::hasPriv('execution', 'importPlanStories'))
+ {
+ $buttonLink = '#linkStoryByPlan';
+ $buttonTitle = $lang->execution->linkStoryByPlan;
+ $dataToggle = 'data-toggle="modal"';
+ }
+ if(common::hasPriv('execution', 'linkStory'))
+ {
+ $buttonLink = inlink('linkStory', "execution=$execution->id");
+ $buttonTitle = $lang->execution->linkStory;
+ $dataToggle = '';
+ }
+ $hidden = empty($buttonLink) ? 'hidden' : '';
+ echo html::a($buttonLink, " $buttonTitle", '', "class='btn btn-primary $hidden' $dataToggle");
+
if(common::hasPriv('execution', 'linkStory') and common::hasPriv('execution', 'importPlanStories'))
{
echo "";
@@ -111,6 +129,7 @@
echo '
' . html::a('#linkStoryByPlan', $lang->execution->linkStoryByPlan, '', 'data-toggle="modal"') . "";
echo '';
}
+
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");
+ }
}