SmartIT_Extensions/BMC/smart-it-full/views/change/dates-v2.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> &nbsp;{{'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> &nbsp;{{'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>