127 lines
9.0 KiB
HTML
127 lines
9.0 KiB
HTML
<div class="status-bar__section" ng-class="{'status-bar__section-edit': $parent.editMode, 'status-bar__section-new' : fieldLengthForSm6 || fieldLengthForSm4}" aria-label="{{'ticket.region.status' | i18n}}" role="region" tabindex="0">
|
|
<div ng-hide="!accessible">
|
|
<div ng-if="!$parent.editMode">
|
|
<div class="status-bar__status" ng-if="selected.status.label"
|
|
aria-label="{{'ticket.region.status' | i18n}} {{ selected.status.value }}">
|
|
<div class="status-bar__status-value" ng-click=" !isEditable || editTicketStatus()"
|
|
ng-enter="!isEditable || editTicketStatus()" tabindex="0">
|
|
{{ selected.status.label }} <i class="icon-angle_down"></i>
|
|
</div>
|
|
</div>
|
|
<div class="status-bar__sla" ng-if="!$parent.editMode && !$parent.isNew && !ticket.SLA.slaProgressBarValid" >
|
|
<sla-reach-time sla="ticket.SLA"></sla-reach-time>
|
|
</div>
|
|
|
|
<div ng-if="!$parent.editMode && !$parent.isNew" class="ticket-status-section__sla-box clearfix">
|
|
<div class="sla-progress-bar__wrapper">
|
|
<sla-progress-bar ticket="ticket" class="sla-progress-bar" ng-if="ticket.SLA.slaProgressBarValid"></sla-progress-bar>
|
|
</div>
|
|
<div ng-if="ticket.SLA.slaProgressBarValid">
|
|
<sla-reach-time sla="ticket.SLA"></sla-reach-time>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="status-bar__status-reason" ng-if="selected.statusReason.label"
|
|
aria-label="{{'ticket.region.status.reason' | i18n}} {{ ticket.status.reason | localizeLabel: 'status':'incident' }}">
|
|
<label class="status-bar__label">{{'ticket.statusReason' | i18n}}:</label>
|
|
<div class="status-bar__status-reason-value">
|
|
{{ selected.statusReason.label }}
|
|
</div>
|
|
</div>
|
|
<div class="status-bar__info-resolution" ng-if="selected.resolutionNote !== ''">
|
|
<label class="status-bar__label">{{'ticket.resolutionNote' | i18n}}:</label>
|
|
<div class="status-bar__resolution-note-value" ng-bind-html="selected.expanded ? (selected.resolutionNote | mention) : ((selected.resolutionNote | mention) | characters : 110)"></div>
|
|
<button type="button" class="btn_link status-bar-resolution-note__more-link" ng-if="(selected.resolutionNote | mention) | isTextTruncated:null:110" ng-click="loadMore()">
|
|
{{ (selected.expanded ? 'timeline.message.showLess' :'timeline.message.showMore') | i18n}}
|
|
<i ng-class="{'icon-angle_up' : selected.expanded, 'icon-angle_down': !selected.expanded}"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="row" ng-if="$parent.editMode" ng-hide="statusField.isHidden">
|
|
<div class="{{fieldLengthForSm6 ? 'col-sm-12 status-bar__item' : (fieldLengthForSm4 ? 'col-sm-12 status-bar__item' : 'col-sm-4')}} update-status__dropdown">
|
|
<label class="label_control-wrap">
|
|
<span class="label__text" ng-class="{'required__label': statusField.isRequired}"
|
|
data-required="{{'common.label.required.bracketed' | i18n}}">
|
|
{{'ticket.status' | i18n}}
|
|
</span>
|
|
<selection selection-items="availableStatuses"
|
|
selected-item="selected.status"
|
|
selection-callback="changeStatus(item)"
|
|
title-text="{{'common.labels.' + ticket.type | i18n}} {{'ticket.status' | i18n}}"
|
|
aria-required="statusField.isRequired"
|
|
required="statusField.isRequired"
|
|
disabled-selection="statusField.isReadOnly || isStatusDisabled()"
|
|
label="label"
|
|
value="label">
|
|
</selection>
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-4 col-md-2 ticket__status-buttons btn_group-container" ng-if="ticket.type === 'change' && !(statusField.isReadOnly || selected.isDisabled || !ticket.accessMappings.statusEditAllowed || !isEditable || !isCopyChange)">
|
|
<div class="btn-group" role="group" aria-label="button group">
|
|
<button type="button" class="btn small-btn_secondary small-btn_navigation icon-angle_left" ng-click="switchState('prev', ticket.type)"
|
|
ng-disabled="checkStatusSwitcherIsDisabled('prev', ticket.type) || !ticket.accessMappings.statusEditAllowed">
|
|
<span class="sr-only">{{"common.labels.prev" | i18n}}</span>
|
|
</button>
|
|
<button type="button" class="btn small-btn_secondary small-btn_navigation icon-angle_right" ng-click="switchState('next', ticket.type)"
|
|
ng-disabled="checkStatusSwitcherIsDisabled('next', ticket.type) || !ticket.accessMappings.statusEditAllowed">
|
|
<span class="sr-only">{{"common.labels.next" | i18n}}</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="{{fieldLengthForSm6 ? 'col-sm-12 status-bar__item' : (fieldLengthForSm4 ? 'col-sm-12 status-bar__item' : 'col-sm-4 update-status-reason_section')}}">
|
|
<div ng-if="selected.status.statusReasons.length">
|
|
<label class="label_control-wrap">
|
|
<span class="label__text"
|
|
ng-class="{'required__label': isFieldRequired('statusReason')}"
|
|
data-required="{{'common.label.required.bracketed' | i18n}}">
|
|
{{'ticket.region.status.reason' | i18n}}
|
|
</span>
|
|
|
|
<selection selection-items="selected.status.statusReasons"
|
|
selected-item="selected.statusReason"
|
|
selection-callback="changeStatusReason(item)"
|
|
title-text="{{'ticket.region.status.reason' | i18n}}"
|
|
aria-required="isFieldRequired('statusReason')"
|
|
required="isFieldRequired('statusReason')"
|
|
show-clear="!isFieldRequired('statusReason')"
|
|
clear-callback="clearStatusReason(item)"
|
|
disabled-selection="statusField.isReadOnly || isStatusReasonDisabled()"
|
|
label="label"
|
|
value="label">
|
|
</selection>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-12 status-bar__error" ng-if="fixScheduledDates">
|
|
<div>{{'change.detail.status.scheduledForApproval.scheduledDatedError' | i18n}}</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div ng-hide="statusField.isHidden" ng-if="$parent.editMode && selected.status.name && needResolutionNote()"
|
|
class="{{fieldLengthForSm6 ? 'status-bar__item row' : (fieldLengthForSm4 ? 'status-bar__item row' : 'col-sm-4')}} update-status-note__section">
|
|
<div class="col-sm-12 update-status__section">
|
|
<label class="label_control-wrap">
|
|
<span ng-if="selected.status.name === 'Resolved' || selected.status.name === 'Closed'"class="label__text required__label"
|
|
data-required="{{'common.label.required.bracketed' | i18n}}">
|
|
{{'ticket.resolutionNote' | i18n}}
|
|
</span>
|
|
<span ng-if="selected.status.name !== 'Resolved' && selected.status.name !== 'Closed'" class="label__text required__label">
|
|
{{'ticket.resolutionNote' | i18n}}
|
|
</span>
|
|
<textarea ng-if="selected.status.name === 'Resolved' || selected.status.name === 'Closed'"
|
|
title="{{'ticket.placeholder.statusResolution' | i18n}}" class="textarea full-width"
|
|
ng-model="selected.resolutionNote" rows="3" ng-required="'true'" aria-required="true"
|
|
placeholder="{{'ticket.placeholder.statusResolution' | i18n}}" ng-change="changeResolutionNote()"
|
|
ng-disabled="statusField.isReadOnly || isResolutionDisabled()">
|
|
</textarea>
|
|
<textarea ng-if="selected.status.name !== 'Resolved' && selected.status.name !== 'Closed'"
|
|
title="{{'ticket.placeholder.statusResolution' | i18n}}" class="textarea full-width"
|
|
ng-model="selected.resolutionNote" rows="3" aria-required="true"
|
|
placeholder="{{'ticket.placeholder.statusResolution' | i18n}}" ng-change="changeResolutionNote()"
|
|
ng-disabled="statusField.isReadOnly || isResolutionDisabled()">
|
|
</textarea>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> |