diff --git a/app/coffee/modules/tasks/detail.coffee b/app/coffee/modules/tasks/detail.coffee index 326c55d8..31bc91af 100644 --- a/app/coffee/modules/tasks/detail.coffee +++ b/app/coffee/modules/tasks/detail.coffee @@ -92,6 +92,14 @@ class TaskDetailController extends mixOf(taiga.Controller, taiga.PageMixin) } @scope.nextUrl = @navUrls.resolve("project-tasks-detail", ctx) + if task.milestone + @rs.sprints.get(task.project, task.milestone).then (sprint) => + @scope.sprint = sprint + + if task.user_story + @rs.userstories.get(task.project, task.user_story).then (us) => + @scope.us = us + loadInitialData: -> params = { pslug: @params.pslug diff --git a/app/coffee/modules/userstories/detail.coffee b/app/coffee/modules/userstories/detail.coffee index 1a628a98..f7393fe7 100644 --- a/app/coffee/modules/userstories/detail.coffee +++ b/app/coffee/modules/userstories/detail.coffee @@ -100,6 +100,10 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin) } @scope.nextUrl = @navUrls.resolve("project-userstories-detail", ctx) + if us.milestone + @rs.sprints.get(us.project, us.milestone).then (sprint) => + @scope.sprint = sprint + return us loadTasks: -> diff --git a/app/partials/task-detail.jade b/app/partials/task-detail.jade index 6e1b4924..1f9727d3 100644 --- a/app/partials/task-detail.jade +++ b/app/partials/task-detail.jade @@ -10,13 +10,27 @@ block content div.us-detail-header.header-with-actions include views/components/mainTitle .action-buttons - a.button.button-green(tg-check-permission="modify_task", href="", title="Edit", tg-nav="project-tasks-detail-edit:project=project.slug,ref=task.ref") Edit + a.button.button-gray( + tg-check-permission="view_milestones", + href="", title="Go to taskboard", + tg-nav="project-taskboard:project=project.slug,sprint=sprint.slug", + ng-if="sprint && project.is_backlog_activated") Taskboard + a.button.button-green( + tg-check-permission="modify_task", href="", + title="Edit", + tg-nav="project-tasks-detail-edit:project=project.slug,ref=task.ref") Edit section.us-story-main-data div.us-title(ng-class="{blocked: task.is_blocked}") h2.us-title-text span.us-number(tg-bo-ref="task.ref") span.us-name(ng-bind="task.subject") + h3.us-related-task This task belongs to + a(tg-check-permission="view_us", href="", title="Go to user story", + tg-nav="project-userstories-detail:project=project.slug, ref=us.ref", + ng-if="us") + span(tg-bo-ref="us.ref") + span(tg-bo-bind="us.subject") p.block-desc-container(ng-show="task.is_blocked") span.block-description-title Blocked span.block-description(tg-bind-html="task.blocked_note || 'This task is blocked'") diff --git a/app/partials/us-detail.jade b/app/partials/us-detail.jade index 6985bccb..b36f976e 100644 --- a/app/partials/us-detail.jade +++ b/app/partials/us-detail.jade @@ -10,7 +10,15 @@ block content div.us-detail-header.header-with-actions include views/components/mainTitle .action-buttons - a.button.button-green(tg-check-permission="modify_us", href="", title="Edit", tg-nav="project-userstories-detail-edit:project=project.slug,ref=us.ref") Edit + a.button.button-gray( + tg-check-permission="view_milestones", + href="", title="Edit", + tg-nav="project-taskboard:project=project.slug,sprint=sprint.slug", + ng-if="sprint && project.is_backlog_activated") Taskboard + a.button.button-green( + tg-check-permission="modify_us", href="", + title="Edit", + tg-nav="project-userstories-detail-edit:project=project.slug,ref=us.ref") Edit section.us-story-main-data div.us-title(ng-class="{blocked: us.is_blocked}") diff --git a/app/styles/layout/us-detail.scss b/app/styles/layout/us-detail.scss index 2f9f7809..82f5c64b 100644 --- a/app/styles/layout/us-detail.scss +++ b/app/styles/layout/us-detail.scss @@ -62,6 +62,19 @@ line-height: 2.2rem; padding-right: 1rem; } + .us-related-task { + @extend %small; + color: $gray-light; + margin-top: .5rem; + a { + @include transition(color .3s linear); + color: lighten($grayer, 30%); + margin-left: .2rem; + &:hover { + color: $green-taiga; + } + } + } .block-desc-container { @extend %small; margin: 0 0 1.2rem;