SmartIT_Extensions/BMC/smart-it-full/views/change/basic-details.html

344 lines
20 KiB
HTML

<div ng-show="state.selectedWizardTab==tabIds.wizard.basics">
<form name="{{tabIds.wizard.basics}}">
<div class="col-sm-8 create-change-wizard__summary-section">
<label class="label_control-wrap">
<span class="label__text"
potentially-required-field
field-name="summary"
entity="draftTicket">
{{ 'create.change.wizard.basicDetails.summary' | i18n }}
</span>
<div class="create-change-wizard__item">
<input type="text"
potentially-required-field
field-name="summary"
entity="draftTicket"
title="{{ 'create.change.wizard.basicDetails.summary' | i18n }}"
class="custom-input"
name="summary"
ng-model="draftTicket.summary"
placeholder="{{ 'create.change.wizard.basicDetails.summary.placeholder' | i18n }}"
maxlength="100"
tabindex = "0"
auto-focus/>
<character-limit-message field="draftTicket.summary" limit="100"></character-limit-message>
</div>
</label>
</div>
<div class="col-sm-8 create-change-wizard__description-section">
<div class="create-change-wizard__item">
<edit-summary
label="{{'create.change.wizard.basicDetails.description' | i18n}}"
is-desc-required="false"
ticket="draftTicket"
context="'create'"
textplaceholder="'create.change.wizard.basicDetails.description.placeholder' | i18n"
attachment="false">
</edit-summary>
</div>
</div>
<div class="col-sm-12 create-ticket__section-separator"></div>
<div class="row full-width create-change-wizard__section">
<div class="col-sm-8">
<div class="row create-ticket__section">
<div class="col-sm-4">
<label class="label_control-wrap">
<span class="label__text"
potentially-required-field
field-name="timing"
entity="draftTicket">
{{'create.change.wizard.basicDetails.timing' | i18n }}
</span>
<div class="create-change-wizard__item">
<selection selection-items="changeMetadata.timings"
selected-item="draftTicket.timing"
selection-callback="updateTiming()"
title-text="{{'create.change.wizard.basicDetails.timing' | i18n | uppercase}}"
label="label"
value="label"
aria-required="true"
field-name="timing"
entity="draftTicket"
update-selected-item="true">
</selection>
</div>
</label>
</div>
<div class="col-sm-4">
<label class="label_control-wrap" ng-show="isFieldRequired('timingReason')">
<span class="label__text" ng-class="{'required__label' : isFieldRequired('timingReason')}" data-required="{{'common.label.required.bracketed' | i18n}}">
{{'create.change.wizard.basicDetails.timingReason' | i18n }}
</span>
<div class="create-change-wizard__item">
<selection selection-items="changeMetadata.timingReasons"
selected-item="draftTicket.timingReason"
title-text="{{'create.change.wizard.basicDetails.timingReason' | i18n | uppercase}}"
label="label"
value="name"
update-selected-item="true"
required="isFieldRequired('timingReason')">
</selection>
</div>
</label>
</div>
<div class="col-sm-4"></div>
</div>
<div class="row create-ticket__section">
<div class="col-sm-4">
<label class="label_control-wrap">
<span class="label__text"
potentially-required-field
field-name="impact"
entity="draftTicket">
{{'create.change.wizard.basicDetails.impact' | i18n }}
</span>
<div class="create-change-wizard__item">
<selection selection-items="changeMetadata.impacts"
selected-item="draftTicket.impact"
selection-callback="updatePriority()"
title-text="{{'create.change.wizard.basicDetails.impact' | i18n | uppercase}}"
label="label"
value="label"
aria-required="true"
field-name="impact"
entity="draftTicket"
update-selected-item="true">
</selection>
</div>
</label>
</div>
<div class="col-sm-4">
<label class="label_control-wrap">
<span class="label__text"
potentially-required-field
field-name="urgency"
entity="draftTicket">
{{'create.change.wizard.basicDetails.urgency' | i18n }}
</span>
<div class="create-change-wizard__item">
<selection selection-items="changeMetadata.urgencies"
selected-item="draftTicket.urgency"
selection-callback="updatePriority()"
title-text="{{'create.change.wizard.basicDetails.urgency' | i18n | uppercase}}"
label="label"
value="label"
aria-required="true"
field-name="urgency"
entity="draftTicket"
update-selected-item="true">
</selection>
</div>
</label>
</div>
<div class="col-sm-4">
<label class="label_control-wrap">
<span class="label__text"
potentially-required-field
field-name="priority"
entity="draftTicket">
{{ 'create.change.wizard.basicDetails.priority' | i18n }}
</span>
<div class="create-change-wizard__item">
<selection selection-items="changeMetadata.priorities"
selected-item="draftTicket.priority"
selection-callback="validatePriority()"
title-text="{{'create.change.wizard.basicDetails.priority' | i18n}}"
label="label"
value="label"
field-name="priority"
entity="draftTicket"
update-selected-item="true">
</selection>
</div>
</label>
</div>
</div>
<div class="row create-ticket__section">
<div class="col-sm-4">
<label class="label_control-wrap">
<span class="label__text"
potentially-required-field
field-name="impactedService.name"
entity="draftTicket">
{{ 'create.change.wizard.basicDetails.affected.business.services' | i18n }}
</span>
<div class="create-change-wizard__service-item">
<input type="text"
title="{{ 'create.change.wizard.basicDetails.affected.business.services' | i18n }}"
name="service"
ng-model="draftTicket.impactedService"
role="combobox"
typeahead-wait-ms="500"
typeahead-min-length="3"
typeahead-template-url="views/create/custom-add-asset-dropdown.html"
typeahead="service as service.name for service in getList('service', $viewValue)"
placeholder="{{ 'create.change.wizard.basicDetails.affected.business.services.placeholder' | i18n }}"
class="custom-input"
tabindex="0"
potentially-required-field
field-name="impactedService.name"
entity="draftTicket">
<i class="icon-cross item-input__delete-btn" tabindex=0 role="link"
title="{{'common.button.clear' | i18n}} {{ 'create.change.wizard.basicDetails.affected.business.services' | i18n }}"
ng-if="draftTicket.impactedService"
focus-input-on-clear
ng-click="clearImpactedService()"
ng-enter="clearImpactedService()">
</i>
</div>
</label>
</div>
<div class="col-sm-4">
<label class="label_control-wrap">
<span class="label__text"
potentially-required-field
field-name="changeReason"
entity="draftTicket">
{{'create.change.wizard.basicDetails.changeReason' | i18n }}
</span>
<div class="create-change-wizard__item">
<selection selection-items="changeMetadata.changeReasons"
selected-item="draftTicket.changeReason"
title-text="{{'create.change.wizard.basicDetails.changeReason' | i18n | uppercase}}"
label="label"
value="label"
update-selected-item="true"
field-name="changeReason"
entity="draftTicket">
</selection>
</div>
</label>
</div>
<div class="col-sm-4"></div>
</div>
<div class="row create-ticket__section">
<div class="col-xs-12">
<label class="label_control-wrap">
<span class="label__text">
{{'create.change.location' | i18n }}
</span>
</label>
<foundation-selector use-chunking="false" typeahead-mode="true" ng-if="draftCreated" type="site" inline="true" multiple="false" options="siteOptions" selected-foundations="draftTicket.location"></foundation-selector>
</div>
</div>
</div>
<div class="col-sm-4 create-change-wizard__section">
<div class="create-change-wizard__requestedFor create-ticket__section">
<label class="label_control-wrap">
<span class="label__text"
potentially-required-field
field-name="customer.firstName"
entity="draftTicket">
{{'create.change.requestedFor' | i18n }}
</span>
<input type="text"
potentially-required-field
field-name="customer.firstName"
entity="draftTicket"
title="{{ 'create.change.requestedFor' | i18n }}"
class="custom-input"
ng-model="draftTicket.customer"
ng-blur="validateRequestedFor()"
role="combobox"
typeahead-min-length="3"
typeahead-template-url="views/create/custom-add-user-dropdown.html"
typeahead="customer as customer.firstName + ' ' + customer.lastName for customer in getListPersonsByCompany($viewValue)"
placeholder="{{ 'create.change.requestedFor.placeholder' | i18n }}"
tabindex="0" />
<div loading-spinner if="state.searchingPersons" inline="true"></div>
<i class="icon-cross item-input__delete-btn" tabindex=0 role="link"
title="{{'common.button.clear' | i18n}} {{ 'create.change.requestedFor' | i18n }}" ng-if="draftTicket.customer && !state.searchingPersons"
focus-input-on-clear ng-click="clearRequestedFor()" ng-enter="clearRequestedFor()">
</i>
</label>
</div>
<categories-editor ng-if="draftTicket.allCategories" entity="draftTicket" company="draftTicket.company" categories="draftTicket.allCategories"></categories-editor>
</div>
</div>
<div class="col-sm-12 create-ticket__section-separator"></div>
<div class="col-sm-12 create-ticket__section">
<div class="create-ticket__assignment" ng-class="{'create-change-wizard__auto-assign':draftTicket.autoAssignAssignee}">
<div>
<img ng-if="draftTicket.assignee.id && !draftTicket.autoAssignAssignee" alt="{{draftTicket.assignee.fullName}}" class="ticket-assignee__thumbnail" imgplaceholder="user"
thumbnail-img="{{'data:' + draftTicket.assignee.thumbnailMime + ';base64,' + draftTicket.assignee.thumbnail}}" />
<span ng-if="!draftTicket.assignee.id && !draftTicket.autoAssignAssignee" class="ticket-assignee__none icon-question_circle"></span>
<div class="ticket-assignee__info">
<div class="ticket__label-small">{{ 'create.change.wizard.basicDetails.changeCoordinator' | i18n }}</div>
<span class="auto-assign__text" ng-if="draftTicket.autoAssignAssignee">
{{ 'create.ticket.auto.assign' | i18n }}
</span>
<span ng-if="!draftTicket.assignee.id && !draftTicket.autoAssignAssignee" class="ticket__field-value">{{'common.label.noneYet' | i18n }}</span>
<span ng-if="draftTicket.assignee.id && !draftTicket.autoAssignAssignee" class="ticket__field-value">{{draftTicket.assignee.fullName}}</span>
</div>
<div class="ticket-assignee__support-group" ng-if="!draftTicket.autoAssignAssignee">
<div class="ticket__label-small">{{'common.labels.supportGroup' | i18n}}</div>
<span class="ticket__field-value">{{ draftTicket.supportGroup.name || ('common.label.noneYet' | i18n ) }}</span>
</div>
<div class="ticket-incident-assignee__action" ng-click="assignToMe($event, 'changecoordinator')" ng-enter="assignToMe($event, 'changecoordinator')" ng-if="draftTicket.assignee.id !== loggedInUserId">
<i class="icon-user_plus"></i>
<a aria-label="{{ 'create.change.wizard.basicDetails.changeCoordinator' | i18n }} {{'common.labels.assignToMe' | i18n}}" href="">
{{'common.labels.assignToMe' | i18n }}
</a>
</div>
</div>
</div>
<div class="create-ticket__assignment" ng-class="{'create-change-wizard__auto-assign':draftTicket.autoAssignManager}">
<div>
<img ng-if="draftTicket.manager.id && !draftTicket.autoAssignManager" alt="{{draftTicket.manager.fullName}}" class="ticket-assignee__thumbnail" imgplaceholder="user"
thumbnail-img="{{'data:' + draftTicket.manager.thumbnailMime + ';base64,' + draftTicket.manager.thumbnail}}" />
<span ng-if="!draftTicket.manager.id && !draftTicket.autoAssignManager" class="ticket-assignee__none icon-question_circle"></span>
<div class="ticket-assignee__info">
<div class="ticket__label-small">{{ 'create.change.wizard.basicDetails.changeManager' | i18n }}</div>
<span class="auto-assign__text" ng-if="draftTicket.autoAssignManager">
{{ 'create.ticket.auto.assign' | i18n }}
</span>
<span ng-if="!draftTicket.manager.id && !draftTicket.autoAssignManager" class="ticket__field-value">{{'common.label.noneYet' | i18n }}</span>
<span ng-if="draftTicket.manager.id && !draftTicket.autoAssignManager" class="ticket__field-value">{{draftTicket.manager.fullName}}</span>
</div>
<div class="ticket-assignee__support-group" ng-if="!draftTicket.autoAssignManager">
<div class="ticket__label-small">{{'common.labels.supportGroup' | i18n}}</div>
<span class="ticket__field-value">{{ draftTicket.managerGroup.name || ('common.label.noneYet' | i18n ) }}</span>
</div>
<div class="ticket-incident-assignee__action" ng-click="assignToMe($event, 'changemanager')" ng-enter="assignToMe($event, 'changemanager')" ng-if="draftTicket.manager.id !== loggedInUserId">
<i class="icon-user_plus"></i>
<a aria-label="{{ 'create.change.wizard.basicDetails.changeManager' | i18n }} {{'common.labels.assignToMe' | i18n}}" href="">
{{'common.labels.assignToMe' | i18n }}
</a>
</div>
</div>
</div>
<div class="create-ticket__assignment">
<button type="button" class="btn_primary ticket-template__assignment-btn" ng-click="assign($event)">{{ 'create.ticket.assignment' | i18n }}</button>
</div>
</div>
<div class="col-sm-12 create-ticket__section-separator"></div>
<div class="col-sm-12">
<span class="label__text">
{{'create.change.wizard.basicDetails.impactedAreas.title' | i18n}}
</span>
</div>
<div class="col-sm-9" ng-show="draftTicket.impactedAreas && draftTicket.impactedAreas.length > 0">
<impacted-areas ticket="draftTicket" removable="true"></impacted-areas>
</div>
<div class="col-sm-10">
<impacted-areas-editor ticket="draftTicket"></impacted-areas-editor>
</div>
<div class="col-sm-12">
<custom-field-container ticket="draftTicket" fields="basicsCustomFields"></custom-field-container>
</div>
</form>
</div>