doctype html
div.wrapper(
ng-controller="IssueDetailController as ctrl",
ng-init="section='issues'"
)
tg-project-menu
div.main.us-detail
div.us-detail-header.header-with-actions
include ../includes/components/mainTitle
section.us-story-main-data
header
tg-vote-button.upvote-btn(
item="issue"
on-upvote="ctrl.onUpvote"
on-downvote="ctrl.onDownvote"
)
.us-title(ng-class="{blocked: issue.is_blocked}")
h2.us-title-text
span.us-number(tg-bo-ref="issue.ref")
span.us-name(tg-editable-subject, ng-model="issue", required-perm="modify_issue")
p.us-related-task(ng-if="issue.generated_user_stories.length")
| {{ 'ISSUES.PROMOTED'|translate }}
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)")
div.issue-nav
a.icon.icon-arrow-left(
ng-show="previousUrl"
tg-bo-href="previousUrl"
title="{{'ISSUES.TITLE_PREVIOUS_ISSUE' | translate}}"
)
a.icon.icon-arrow-right(
ng-show="nextUrl"
tg-bo-href="nextUrl"
title="{{'ISSUES.TITLE_NEXT_ISSUE' | translate}}"
)
div.tags-block(tg-tag-line, ng-model="issue", required-perm="modify_issue")
section.duty-content(tg-editable-description, ng-model="issue", required-perm="modify_issue")
// Custom Fields
tg-custom-attributes-values(
ng-model="issue"
type="issue"
project="project"
required-edition-perm="modify_issue"
)
tg-attachments(ng-model="issue", type="issue")
tg-history(ng-model="issue", type="issue")
sidebar.menu-secondary.sidebar.ticket-data
section.status
.ticket-title(tg-issue-status-display, ng-model="issue")
tg-created-by-display.ticket-created-by(ng-model="issue")
div.ticket-data-container
div.ticket-status(tg-issue-type-button, ng-model="issue")
div.ticket-status(tg-issue-severity-button, ng-model="issue")
div.ticket-status(tg-issue-priority-button, ng-model="issue")
div.ticket-status(tg-issue-status-button, ng-model="issue")
section.ticket-assigned-to(tg-assigned-to, ng-model="issue", required-perm="modify_issue")
section.track-buttons-container.ticket-track-buttons
div.watch-button
tg-watch-button(
item="issue"
on-watch="ctrl.onWatch"
on-unwatch="ctrl.onUnwatch"
)
div.ticket-watchers(
tg-watchers
ng-model="issue"
required-perm="modify_issue"
)
section.ticket-detail-settings
tg-promote-issue-to-us-button(tg-check-permission="add_us", ng-model="issue")
tg-block-button(tg-check-permission="modify_issue", ng-model="issue")
tg-delete-button(
tg-check-permission="delete_issue",
on-delete-title="{{'ISSUES.ACTION_DELETE' | translate}}",
on-delete-go-to-url="onDeleteGoToUrl",
ng-model="issue"
)
div.lightbox.lightbox-block(tg-lb-block, ng-model="issue", title="ISSUES.LIGHTBOX_TITLE_BLOKING_ISSUE")
div.lightbox.lightbox-select-user(tg-lb-assignedto)
div.lightbox.lightbox-select-user(tg-lb-watchers)