Header Detail

stable
Xavier Julián 2016-08-16 17:54:58 +02:00 committed by David Barragán Merino
parent 0905c2b56f
commit 140bc1d3f8
5 changed files with 51 additions and 70 deletions

View File

@ -35,6 +35,8 @@
"ONE_ITEM_LINE": "One item per line...", "ONE_ITEM_LINE": "One item per line...",
"NEW_BULK": "New bulk insert", "NEW_BULK": "New bulk insert",
"RELATED_TASKS": "Related tasks", "RELATED_TASKS": "Related tasks",
"PREVIOUS": "Previous",
"NEXT": "Next",
"LOGOUT": "Logout", "LOGOUT": "Logout",
"EXTERNAL_USER": "an external user", "EXTERNAL_USER": "an external user",
"GENERIC_ERROR": "One of our Oompa Loompas says {{error}}.", "GENERIC_ERROR": "One of our Oompa Loompas says {{error}}.",
@ -1060,8 +1062,6 @@
"EXTERNAL_REFERENCE": "This US has been created from", "EXTERNAL_REFERENCE": "This US has been created from",
"GO_TO_EXTERNAL_REFERENCE": "Go to origin", "GO_TO_EXTERNAL_REFERENCE": "Go to origin",
"BLOCKED": "This user story is blocked", "BLOCKED": "This user story is blocked",
"PREVIOUS": "previous user story",
"NEXT": "next user story",
"TITLE_DELETE_ACTION": "Delete User Story", "TITLE_DELETE_ACTION": "Delete User Story",
"LIGHTBOX_TITLE_BLOKING_US": "Blocking us", "LIGHTBOX_TITLE_BLOKING_US": "Blocking us",
"TASK_COMPLETED": "{{totalClosedTasks}}/{{totalTasks}} tasks completed", "TASK_COMPLETED": "{{totalClosedTasks}}/{{totalTasks}} tasks completed",
@ -1295,8 +1295,6 @@
"ORIGIN_US": "This task has been created from", "ORIGIN_US": "This task has been created from",
"TITLE_LINK_GO_ORIGIN": "Go to user story", "TITLE_LINK_GO_ORIGIN": "Go to user story",
"BLOCKED": "This task is blocked", "BLOCKED": "This task is blocked",
"PREVIOUS": "previous task",
"NEXT": "next task",
"TITLE_DELETE_ACTION": "Delete Task", "TITLE_DELETE_ACTION": "Delete Task",
"LIGHTBOX_TITLE_BLOKING_TASK": "Blocking task", "LIGHTBOX_TITLE_BLOKING_TASK": "Blocking task",
"FIELDS": { "FIELDS": {
@ -1341,8 +1339,6 @@
"EXTERNAL_REFERENCE": "This issue has been created from", "EXTERNAL_REFERENCE": "This issue has been created from",
"GO_TO_EXTERNAL_REFERENCE": "Go to origin", "GO_TO_EXTERNAL_REFERENCE": "Go to origin",
"BLOCKED": "This issue is blocked", "BLOCKED": "This issue is blocked",
"TITLE_PREVIOUS_ISSUE": "previous issue",
"TITLE_NEXT_ISSUE": "next issue",
"ACTION_DELETE": "Delete issue", "ACTION_DELETE": "Delete issue",
"LIGHTBOX_TITLE_BLOKING_ISSUE": "Blocking issue", "LIGHTBOX_TITLE_BLOKING_ISSUE": "Blocking issue",
"FIELDS": { "FIELDS": {

View File

@ -36,20 +36,19 @@ class StoryHeaderController
console.log @.item console.log @.item
_checkNav: () -> _checkNav: () ->
if @.item.neighbors.previous?.ref? if @.item.neighbors.previous?.ref?
ctx = { ctx = {
project: @.project.slug project: @.project.slug
ref: @.item.neighbors.previous.ref ref: @.item.neighbors.previous.ref
} }
@.previousUrl = @navUrls.resolve("project-userstories-detail", ctx) @.previousUrl = @navUrls.resolve("project-" + @.item._name + "-detail", ctx)
if @.item.neighbors.next?.ref? if @.item.neighbors.next?.ref?
ctx = { ctx = {
project: @.project.slug project: @.project.slug
ref: @.item.neighbors.next.ref ref: @.item.neighbors.next.ref
} }
@.nextUrl = @navUrls.resolve("project-userstories-detail", ctx) @.nextUrl = @navUrls.resolve("project-" + @.item._name + "-detail", ctx)
_checkPermissions: () -> _checkPermissions: () ->
@.permissions = { @.permissions = {

View File

@ -33,6 +33,8 @@
tg-svg( tg-svg(
svg-icon="icon-save" svg-icon="icon-save"
) )
//- User Story belongs to epic
.belong-to-epics-wrapper(ng-if="vm.item.epics") .belong-to-epics-wrapper(ng-if="vm.item.epics")
span This User Story belongs to span This User Story belongs to
tg-belong-to-epics( tg-belong-to-epics(
@ -42,20 +44,41 @@
project="project" project="project"
) )
.task-belongs-to(ng-if="vm.item.user_story") //- Task belongs to US
.task-belongs-to(
ng-if="vm.item.user_story_extra_info"
tg-check-permission="view_us"
)
span(translate="TASK.OWNER_US") span(translate="TASK.OWNER_US")
a( a(
href="" tg-nav="project-userstories-detail:project=vm.project.slug,ref=vm.item.user_story_extra_info.ref"
tg-check-permission="view_us"
tg-nav="project-userstories-detail:project=project.slug,ref=vm.item.user_story.ref"
title="{{'TASK.TITLE_LINK_GO_OWNER' | translate}}" title="{{'TASK.TITLE_LINK_GO_OWNER' | translate}}"
) )
span.item-ref {{'#' + vm.item.ref}} span.item-ref {{'#' + vm.item.user_story_extra_info.ref}}
span {{::vm.item.subject}} span {{::vm.item.user_story_extra_info.subject}}
.item-origin-issue(
ng-if="vm.item.origin_issue" //- User Stories generated from issue
) .item-generated-us(ng-if="vm.item.generated_user_stories.length")
span(translate="ISSUES.PROMOTED")
a(
ng-repeat="userstory in vm.item.generated_user_stories track by userstory.id"
tg-check-permission="view_us"
tg-nav="project-userstories-detail:project=vm.project.slug,ref=userstory.ref"
) {{'#' + userstory.ref}} {{userstory.subject}}
//- Issue origin from github
.issue-external-reference(ng-if="vm.item.external_reference")
span(translate="ISSUES.EXTERNAL_REFERENCE")
a(
target="_blank"
ng-href="::vm.item.external_reference[1]"
ng-title="{{'ISSUES.GO_TO_EXTERNAL_REFERENCE' | translate}}"
)
span {{ ::vm.item.external_reference[1] }}
//- User Story promoted from issue
.item-origin-issue(ng-if="vm.item.origin_issue")
span(translate="US.PROMOTED") span(translate="US.PROMOTED")
a( a(
href="" href=""
@ -63,25 +86,25 @@
tg-nav="project-issues-detail:project=vm.project.slug,ref=vm.item.origin_issue.ref" tg-nav="project-issues-detail:project=vm.project.slug,ref=vm.item.origin_issue.ref"
title="{{'US.TITLE_LINK_GO_TO_ISSUE' | translate}}" title="{{'US.TITLE_LINK_GO_TO_ISSUE' | translate}}"
) )
span {{'#' + vm.item.origin_issue.ref}} span.item-ref {{'#' + vm.item.origin_issue.ref}}
span {{vm.item.origin_issue.subject}} span {{vm.item.origin_issue.subject}}
//- Blocked description
.block-desc-container(ng-show="vm.item.is_blocked") .block-desc-container(ng-show="vm.item.is_blocked")
span.block-description-title(translate="COMMON.BLOCKED") span.block-description-title(translate="COMMON.BLOCKED")
span.block-description( span.block-description(ng-if="vm.item.blocked_note") {{vm.item.blocked_note}}
ng-if="vm.item.blocked_note"
) {{vm.item.blocked_note}}
//- Navigation
.issue-nav .issue-nav
a( a(
ng-if="vm.previousUrl" ng-if="vm.previousUrl"
ng-href="{{vm.previousUrl}}" ng-href="{{vm.previousUrl}}"
title="{{'US.PREVIOUS' | translate}}" title="{{'COMMON.PREVIOUS' | translate}}"
) )
tg-svg(svg-icon="icon-arrow-left") tg-svg(svg-icon="icon-arrow-left")
a( a(
ng-if="vm.nextUrl" ng-if="vm.nextUrl"
ng-href="{{vm.nextUrl}}" ng-href="{{vm.nextUrl}}"
title="{{'US.NEXT' | translate}}" title="{{'COMMON.NEXT' | translate}}"
) )
tg-svg(svg-icon="icon-arrow-right") tg-svg(svg-icon="icon-arrow-right")

View File

@ -21,6 +21,7 @@
fill: $white; fill: $white;
} }
} }
.item-generated-us,
.item-origin-issue, .item-origin-issue,
.task-belongs-to, .task-belongs-to,
.belong-to-epics-wrapper, .belong-to-epics-wrapper,
@ -28,6 +29,7 @@
@include font-size(small); @include font-size(small);
margin-top: .5rem; margin-top: .5rem;
} }
.item-generated-us,
.task-belongs-to, .task-belongs-to,
.item-origin-issue { .item-origin-issue {
a { a {

View File

@ -17,52 +17,13 @@ div.wrapper(
on-upvote="ctrl.onUpvote" on-upvote="ctrl.onUpvote"
on-downvote="ctrl.onDownvote" on-downvote="ctrl.onDownvote"
) )
.us-title(ng-class="{blocked: issue.is_blocked}") tg-detail-header.detail-header-container(
h2.us-title-text item="issue"
span.us-number(tg-bo-ref="issue.ref") project="project"
span.us-name(tg-editable-subject, ng-model="issue", required-perm="modify_issue") required-perm="modify_issue"
ng-class="{blocked: issue.is_blocked}"
p.us-related-task(ng-if="issue.generated_user_stories.length") {{ 'ISSUES.PROMOTED'|translate }} ng-if="project && issue"
a( )
href=""
ng-repeat="us in issue.generated_user_stories"
tg-check-permission="view_us"
tg-bo-title="'#' + us.ref + ' ' + us.subject"
tg-nav="project-userstories-detail:project=project.slug,ref=us.ref"
)
span(tg-bo-ref="us.ref")
p.external-reference(ng-if="issue.external_reference")
| {{ 'ISSUES.EXTERNAL_REFERENCE'|translate }}
a(
target="_blank"
tg-bo-href="issue.external_reference[1]"
title="{{'ISSUES.GO_TO_EXTERNAL_REFERENCE' | translate}}"
)
span {{ issue.external_reference[1] }}
p.block-desc-container(ng-show="issue.is_blocked")
span.block-description-title(translate="COMMON.BLOCKED")
span.block-description(ng-bind="issue.blocked_note || ('ISSUES.BLOCKED' | translate)")
.issue-nav
a(
ng-show="previousUrl"
tg-bo-href="previousUrl"
title="{{'ISSUES.TITLE_PREVIOUS_ISSUE' | translate}}"
)
tg-svg(
svg-icon="icon-arrow-left"
)
a(
ng-show="nextUrl"
tg-bo-href="nextUrl"
title="{{'ISSUES.TITLE_NEXT_ISSUE' | translate}}"
)
tg-svg(
svg-icon="icon-arrow-right"
)
.subheader .subheader
tg-tag-line.tags-block( tg-tag-line.tags-block(
ng-if="issue && project" ng-if="issue && project"