251 lines
20 KiB
HTML
251 lines
20 KiB
HTML
<div class="create-change-wizard__active-content">
|
|
<form class="create-change-wizard__dates-form" name="{{tabIds.wizard.dates}}">
|
|
<table class="create-change-wizard__dates-content">
|
|
<tr>
|
|
<td class="dates-column">
|
|
<div class="change-dates_container">
|
|
<div class="row change-dates_header" ng-if="panelChildrenCount(scheduledDatesSection.name) > 0">
|
|
<div class="col-xs-1">
|
|
<i class="create-change-wizard__scheduled_header_marker"></i>
|
|
</div>
|
|
<div class="col-xs-11 ticket__name" ng-class="{'required' : isFieldRequired('scheduledStartDate') || isFieldRequired('scheduledEndDate')}"
|
|
potentially-required-field
|
|
field-name="scheduledStartDate"
|
|
entity="draftTicket"
|
|
potentially-required-field
|
|
field-name="scheduledEndDate"
|
|
entity="draftTicket">
|
|
{{'create.change.wizard.dates.scheduled' | i18n}}
|
|
</div>
|
|
</div>
|
|
<div class="row change-wizard__dates_custom-field-area">
|
|
<custom-field-area ticket="context"
|
|
metadata="metadata"
|
|
ng-if="panelChildrenCount(scheduledDatesSection.name) > 0"
|
|
panel-id="{{screenLayout.name}}.{{scheduledDatesSection.name}}"
|
|
stacked="true"
|
|
edit-mode="editMode"
|
|
is-dates-panel="true"
|
|
class="editable-content-section-block"
|
|
update-is-handled-by-parent="true">
|
|
</custom-field-area>
|
|
</div>
|
|
<div class="row change-dates_header" ng-if="panelChildrenCount(actualDatesSection.name) > 0">
|
|
<div class="col-xs-1">
|
|
<i class="create-change-wizard__actual_header_marker"></i>
|
|
</div>
|
|
<div class="col-xs-11 ticket__name" ng-class="{'required' : isFieldRequired('actualStartDate') || isFieldRequired('actualEndDate')}"
|
|
potentially-required-field
|
|
field-name="actualStartDate"
|
|
entity="draftTicket"
|
|
potentially-required-field
|
|
field-name="actualEndDate"
|
|
entity="draftTicket">
|
|
{{'create.change.wizard.dates.actual' | i18n}}
|
|
</div>
|
|
</div>
|
|
<div class="row change-wizard__dates_custom-field-area">
|
|
<custom-field-area ticket="context"
|
|
metadata="metadata"
|
|
ng-if="panelChildrenCount(actualDatesSection.name) > 0"
|
|
panel-id="{{screenLayout.name}}.{{actualDatesSection.name}}"
|
|
stacked="true"
|
|
edit-mode="editMode"
|
|
is-dates-panel="true"
|
|
class="editable-content-section-block"
|
|
update-is-handled-by-parent="true">
|
|
</custom-field-area>
|
|
</div>
|
|
<div class="row create-change-wizard__target_header_content" ng-if="useTargetDateCheckboxVisible()">
|
|
<div ng-class="{'dropdown-item_selected': context.useTargetDate, 'dropdown-item': !context.useTargetDate}"
|
|
ng-click="useTargetDateDisabled() || toggleUseTargetDate()"
|
|
ng-enter="useTargetDateDisabled() || toggleUseTargetDate()"
|
|
ng-disabled="useTargetDateDisabled() || !isFieldEditable('targetDate')"
|
|
aria-checked="{{!!context.useTargetDate}}"
|
|
title="{{'create.change.wizard.dates.target' | i18n}}"
|
|
tabindex="0"
|
|
role="menuitemcheckbox">
|
|
{{'create.change.wizard.dates.target' | i18n}}
|
|
</div>
|
|
</div>
|
|
<div class="row change-dates_header" ng-if="targetDateFieldVisible() && panelChildrenCount(targetDateSection.name) > 0">
|
|
<div class="col-xs-1">
|
|
<i class="create-change-wizard__target_header_marker"></i>
|
|
</div>
|
|
<div class="col-xs-11 ticket__name">
|
|
{{'create.change.wizard.dates.target.header' | i18n}}
|
|
</div>
|
|
</div>
|
|
<div class="row change-wizard__dates_custom-field-area" ng-if="targetDateFieldVisible()">
|
|
<custom-field-area ticket="context"
|
|
metadata="metadata"
|
|
ng-if="panelChildrenCount(targetDateSection.name) > 0"
|
|
panel-id="{{screenLayout.name}}.{{targetDateSection.name}}"
|
|
stacked="true"
|
|
edit-mode="editMode"
|
|
is-dates-panel="true"
|
|
class="editable-content-section-block"
|
|
update-is-handled-by-parent="true">
|
|
</custom-field-area>
|
|
</div>
|
|
|
|
<div class="change__edit-update-collisions" ng-show="isNew && collisionStates.shouldRefreshCollisions">
|
|
<span>{{'create.change.wizard.dates.update.collisions' | i18n}}</span>
|
|
<button ng-click="editDatesView()" ng-enter="editDatesView()" class="btn_secondary" tabindex="0">
|
|
{{'collision.update.schedule' | i18n }}
|
|
</button>
|
|
</div>
|
|
|
|
<div class="change__edit-update-collisions" ng-show="!isNew && editMode && collisionStates.saveDatesAndUpdate">
|
|
<button ng-click="saveDates()" ng-enter="saveDates()" class="btn_secondary">
|
|
{{'edit.dates.save.schedule' | i18n}}
|
|
</button>
|
|
</div>
|
|
|
|
<div class="row create-ticket__section-separator" ng-if="collisionsCopy.changeList.length > 0"></div>
|
|
<div loading-spinner if="state.loadingCollisions" centered="true" overlay="true"></div>
|
|
<div ng-if="collisionsCopy.changeList.length > 0">
|
|
<div class="row create-change-wizard__target_header">
|
|
<label class="label_control-wrap">
|
|
<div class="col-xs-1">
|
|
<div class="create-change-wizard__dates_collisions">{{collisionsCopy.changeList.length}}</div>
|
|
</div>
|
|
<div class="col-xs-11" ng-show="isNew">
|
|
<h6>{{collisionsCopy.totalUnaddressedCount === 1 ? 'create.change.wizard.dates.collisions.singular' : 'create.change.wizard.dates.collisions.plural' | i18n:(collisionsCopy.totalUnaddressedCount)}}</h6>
|
|
|
|
</div>
|
|
<div class="col-xs-11" ng-show="!isNew">
|
|
<h6>{{collisionsCopy.totalUnaddressedCount === 1 ? 'edit.dates.collisions.singular' : 'edit.dates.collisions.plural' | i18n:(collisionsCopy.totalUnaddressedCount)}}</h6>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div class="row" ng-show="!collisionStates.editCollisionStatus || (collisionStates.editCollisionStatus && disableCollisionManagement)">
|
|
<div class="create-change-wizard__dates-change-header col-sm-12">
|
|
<label>
|
|
<div class="col-sm-10 create-change-wizard__dates-change-icon">
|
|
{{'create.change.wizard.dates.changeRequestId' | i18n}}
|
|
</div>
|
|
<div class="col-sm-1 create-change-wizard__dates-change-icon"><i class="{{asc ? 'icon-triangle_down' : 'icon-triangle_up'}}" ng-click="asc = !asc" ng-enter="asc = !asc" tabindex="0"></i></div>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="row" ng-show="collisionStates.editCollisionStatus && !disableCollisionManagement">
|
|
<div class="create-change-wizard__dates-change-header col-sm-7">
|
|
<label>
|
|
<div class="col-xs-10">
|
|
<div class="{{changeFlag ? 'dropdown-item_selected' : 'dropdown-item'}}" role="menuitemcheckbox" aria-checked="" ng-click="selectAllChanges(changeFlag)" ng-enter="selectAllChanges(changeFlag)" tabindex="0">
|
|
{{'create.change.wizard.dates.changeRequestId' | i18n}}
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-2 create-change-wizard__dates-change-icon"><i class="{{asc ? 'icon-triangle_down' : 'icon-triangle_up'}}" ng-click="asc = !asc" ng-enter="asc = !asc" tabindex="0"></i></div>
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-5 create-change-wizard__dates-change-mark-selected" align="center">
|
|
<div class="dropdown-input dropdown" tabindex="0">
|
|
<button class="dropdown-input__button btn_primary dropdown-toggle" aria-haspopup="true" aria-expanded="false" ng-disabled="collisionsSelected === 0">
|
|
{{'create.change.wizard.dates.markSelected' | i18n}}</button>
|
|
<ul class="dropdown-menu">
|
|
<li ng-repeat="item in collisionStatuses">
|
|
<div ng-click="markStatus(item)" ng-enter="markStatus(item)" class="dropdown-item" role="menuitem" tabindex="0">
|
|
{{item.label}}
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<table class="create-change-wizard__dates-change-table">
|
|
<tbody>
|
|
<tr ng-repeat="changeItem in (collisionsCopy.changeList | orderBy:'displayId':asc)">
|
|
<td>
|
|
<div class="col-sm-12 create-change-wizard__dates-dropdown-item">
|
|
<div class="col-sm-1"><i class="{{changeItem.show ? 'icon-angle_up' : 'icon-angle_down'}} create-change-wizard__dates-dropdown-chevron" ng-click="changeItem.show = !changeItem.show" ng-enter="changeItem.show = !changeItem.show" tabindex="0" ></i></div>
|
|
<div class="col-sm-10">
|
|
<div ng-if="collisionStates.editCollisionStatus && !disableCollisionManagement" class="{{changeItem.selected ? 'dropdown-item_selected' : 'dropdown-item'}}" role="menuitemcheckbox" aria-checked="" ng-click="selectChange(changeItem)" ng-enter="selectChange(changeItem)" title={{changeItem.displayId}} tabindex="0">
|
|
{{changeItem.displayId}}
|
|
<label>{{changeItem.ciCount === 1 ? 'collision.labels.collisionCI.singular' : 'collision.labels.collisionCI.plural' | i18n:(changeItem.ciCount)}}</label><label ng-if="(changeItem.configurationItems.length - changeItem.ciCount) > 0">{{'collision.labels.addressed' | i18n:(changeItem.configurationItems.length - changeItem.ciCount)}}</label>
|
|
</div>
|
|
<div ng-if="!collisionStates.editCollisionStatus || (collisionStates.editCollisionStatus && disableCollisionManagement)" title={{changeItem.displayId}} tabindex="0">
|
|
{{changeItem.displayId}}
|
|
<label>{{changeItem.ciCount === 1 ? 'collision.labels.collisionCI.singular' : 'collision.labels.collisionCI.plural' | i18n:(changeItem.ciCount)}}</label><label ng-if="(changeItem.configurationItems.length - changeItem.ciCount) > 0">{{'collision.labels.addressed' | i18n:(changeItem.configurationItems.length - changeItem.ciCount)}}</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-1">
|
|
<div class="create-change-wizard__dates_collisions-weekend" ng-if="!showWeekends && changeItem.fallsOnWeekend">
|
|
<span class="icon-exclamation_triangle" tooltip-placement="top" tooltip="{{'collision.warning.weekend' | i18n}}"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div ng-show="changeItem.show">
|
|
<div class="col-sm-12 create-change-wizard__dates-dropdown-item" ng-repeat="ci in (changeItem.configurationItems | orderBy:'name':asc) ">
|
|
<div class="col-sm-1">
|
|
</div>
|
|
<div ng-if="!collisionStates.editCollisionStatus || (collisionStates.editCollisionStatus && disableCollisionManagement)" class="col-sm-11">
|
|
<div class="row">
|
|
<div class="col-sm-8" title={{ci.name}} tabindex="0">
|
|
{{ci.name}}
|
|
</div>
|
|
<div class="col-sm-4" >
|
|
<div class="create-change-wizard__dates-rationale-label" ng-if="ci.status">
|
|
<span>{{ci.status.name | localizeLabel: 'collisionStatus':'change'}}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-8" ng-if="ci.rationale"><label>{{ci.rationale}}</label></div>
|
|
<div class="pull-right">
|
|
<div><a href="#/person/{{ci.rationaleUser.loginId | escape}}">{{ci.rationaleUser.fullName}}</a></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div ng-if="collisionStates.editCollisionStatus && !disableCollisionManagement" class="col-sm-11">
|
|
<div class="row">
|
|
<div class="col-sm-8 {{ci.selected ? 'dropdown-item_selected' : 'dropdown-item'}}" role="menuitemcheckbox" ng-click="selectCIs(ci, changeItem)" ng-enter="selectCIs(ci, changeItem)" aria-checked="" title={{ci.name}} tabindex="0">
|
|
{{ci.name}}
|
|
</div>
|
|
<div class="col-sm-4" >
|
|
<div class="create-change-wizard__dates-rationale-label" ng-if="ci.status">
|
|
<span>
|
|
{{ci.status.name | localizeLabel: 'collisionStatus':'change'}}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-8" ng-if="ci.rationale"><label>{{ci.rationale}}</label></div>
|
|
<div class="pull-right"><a href="#/person/{{ci.rationaleUser.loginId | escape}}">{{ci.rationaleUser.fullName}}</a></div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="row" ng-if="!isNew">
|
|
<div class="col-md-12">
|
|
<a class="collision-banner__send-email-link" ng-click="showEmailForm()" ng-if="collisionsCopy.count === 1" ng-enter="showEmailForm()" tabindex="0">
|
|
<span class="icon-envelope"></span> {{'collision.sendEmail.label.singular' |i18n }}
|
|
</a>
|
|
<a class="collision-banner__send-email-link" ng-click="showEmailForm()" ng-if="collisionsCopy.count > 1" ng-enter="showEmailForm()" tabindex="0">
|
|
<span class="icon-envelope"></span> {{'collision.sendEmail.label.plural' |i18n:collisionsCopy.count}}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</td>
|
|
<td class="calendar-column">
|
|
<div class="create-change-wizard__calendar_container"
|
|
ng-class="{'create-change-wizard__calendar_container_expanded': expanded}">
|
|
<div ui-view></div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</form>
|
|
</div> |