SmartIT_Extensions/BMC/smart-it-full/views/create/create-asset.html

1035 lines
43 KiB
HTML

<div class="create-asset clearfix">
<div class="create-form-wrapper">
<div loading-spinner class="create-ticket__loading-spinner" if="state.dataIsLoading" centered="true" overlay="true"></div>
<div class="clearfix">
<form name="createAssetForm" novalidate>
<div class="create-ticket__header create-asset__header" >
<h3 class="create-ticket__header-title">{{ 'create.asset.header' | i18n }}</h3>
<span ng-if="!state.selectType">{{ 'create.asset.sub.header' | i18n }}</span>
<span ng-if="state.selectType">{{ 'create.asset.type.sub.header' | i18n }}</span>
</div>
<div class="create-asset-wizard__content">
<div class="create-change-wizard__tab-bar">
<div class="create-change-wizard__tab-holder">
<div tabindex="0" ng-class="{'create-change-wizard__tab': !state.selectType, 'create-change-wizard__tab-active': state.selectType}"
ng-click="state.selectType=true" ng-enter="state.selectType=true">
<i class="icon-cube_o create-change-wizard__tab-icon"></i>
<span class="create-change-wizard__tab-title">
{{'common.labels.type' | i18n}}
</span>
</div>
</div>
<div class="create-change-wizard__tab-holder">
<div tabindex="0" ng-class="{'create-change-wizard__tab': state.selectType, 'create-change-wizard__tab-active': !state.selectType}"
ng-click="state.selectType=false" ng-enter="state.selectType=false">
<i class="icon-file_info_o create-change-wizard__tab-icon"></i>
<h1 class="create-change-wizard__tab-invalid" ng-if="createAssetForm.$invalid">*</h1>
<span class="create-change-wizard__tab-title">
{{'create.asset.tab.otherInfo' | i18n}}
</span>
</div>
</div>
<div class="create-asset-wizard__tab-spacer"><span></span></div>
</div>
<div class="create-change-wizard__tab-content">
<div ng-show="state.selectType" class="create-asset__full-width-section col-sm-4">
<div class="create-ticket__section">
<label class="label_control-wrap">
<span class="label__text required__label" data-required="{{'common.label.required.bracketed' | i18n}}">
{{'common.labels.type' | i18n }}
</span>
<div class="create-ticket__item">
<selection selection-items="assetMetadata.assetTypes"
selected-item="asset.selectedType"
selection-callback="updateType()"
title-text="{{'common.labels.type' | i18n | uppercase}}"
label="label"
value="label"
field-name="type"
entity="asset"
update-selected-item="true"
required="true"
aria-required="true">
</selection>
</div>
</label><br>
<label class="label_control-wrap">
<span class="label__text required__label" data-required="{{'common.label.required.bracketed' | i18n}}">
{{ 'common.labels.subtype' | i18n }}
</span>
<div class="create-ticket__item">
<selection selection-items="asset.selectedType.subType"
selected-item="asset.selectedSubtype"
selection-callback="updateSubtype()"
title-text="{{'common.labels.subtype' | i18n | uppercase}}"
label="label"
value="label"
field-name="subtype"
entity="asset"
update-selected-item="true"
disabled-selection="!asset.selectedType || asset.selectedType.subType.length === 1"
required="true"
aria-required="true">
</selection>
</div>
</label>
</div>
<div class="col-sm-4 create-ticket__section"></div>
</div>
<div ng-show="!state.selectType" class="create-asset__form">
<div class="create-ticket__full-width-section">
<div class="row">
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="name" entity="asset">
{{ 'create.asset.name' | i18n }}
</span>
<input type="text"
title="{{ 'create.asset.name' | i18n }}"
class="custom-input"
ng-model="asset.name"
placeholder="{{ 'create.asset.name.placeholder' | i18n }}"
potentially-required-field
field-name="name"
entity="asset">
</label>
</div>
<div class="col-sm-6 create-ticket__section">
<div class="col-sm-4 create-ticket__section asset__secondary-attributes">
<label class="label_control-wrap">
<span class="label__text">
{{ 'common.labels.type' | i18n }}
</span>
<div>
{{asset.selectedType.label}}
</div>
</label>
</div>
<div class="col-sm-4 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text">
{{ 'common.labels.subtype' | i18n }}
</span>
<div>
{{asset.selectedSubtype.label}}
</div>
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="row">
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="status.value" entity="asset">
{{ 'ticket.status' | i18n }}
</span>
<div class="create-ticket__item">
<selection selection-items="statuses"
selected-item="asset.selectedStatus"
selection-callback="updateStatusReason()"
title-text="{{'ticket.status' | i18n | uppercase}}"
label="label"
value="label"
entity="asset"
update-selected-item="true"
field-name="status.value"
entity="asset">
</selection>
</div>
</label>
</div>
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="company.name" entity="asset">
{{ 'common.label.company' | i18n }}
</span>
<selection
selection-items="selections.companies"
selected-item="asset.company"
selection-callback="setCompany(item)"
title-text="{{ 'common.label.company' | i18n }}"
label="name"
value="name"
update-selected-item="true" auto-focus
selection-filter="true"
selection-filter-placeholder-text="{{ 'assignBlade.searchCompany' | i18n }}"
show-chunking-tooltip="true"
typeahead-mode="state.tooManyCompanies"
typeahead-details="company as company.name for company in getList($viewValue)"
typeahead-get-list="getCompaniesByName(name)"
field-name="company.name"
entity="asset"
show-clear=true
clear-callback="setCompany(item)">
</selection>
</label>
</div>
</div>
<div class="row" ng-if="asset.selectedStatus.statusReasons">
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="status.reason" entity="asset">
{{ 'asset.attributes.statusReason' | i18n }}
</span>
<div class="create-ticket__item">
<selection selection-items="asset.selectedStatus.statusReasons"
selected-item="asset.selectedStatusReason"
title-text="{{'asset.attributes.statusReason' | i18n | uppercase}}"
label="label"
value="label"
entity="asset"
update-selected-item="true"
field-name="status.reason"
entity="asset"
show-clear="true">
</selection>
</div>
</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="tagNumber" entity="asset">
{{ 'asset.attributes.tag' | i18n }}
</span>
<input type="text"
title="{{ 'asset.attributes.tag' | i18n }}"
class="custom-input"
ng-model="asset.tagNumber"
placeholder="{{ 'create.asset.tagNumber.placeholder' | i18n }}"
potentially-required-field
field-name="tagNumber"
entity="asset">
</label>
</div>
</div>
</div>
</div>
<!-- type specific area -->
<div class="create-ticket__full-width-section" ng-if="asset.selectedType.name === asset.advancedType">
<div class="row">
<div class="col-sm-3 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text">{{'asset.attributes.hostName' | i18n}}</span>
<input type="text" class="text-input form-control" ng-model="asset.hostName">
</label>
</div>
<div class="col-sm-3 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text">
{{'asset.attributes.primaryCapability' | i18n}}
</span>
<selection selection-items="primaryCapabilities"
selected-item="asset.primaryCapability"
selection-callback="selectPrimaryCapability(item)"
title-text="{{'common.labels.startTyping' | i18n}}"
label="label"
value="value"
selection-filter="true"
show-chunking-tooltip="true"
typeahead-mode="state.tooManyPrimaryCapabilities"
typeahead-details="item as item.label for item in getList($viewValue)"
typeahead-get-list="getPrimaryCapabilitiesByName(name)">
</selection>
</label>
</div>
<div class="col-sm-3 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text">{{'asset.attributes.capabilityList' | i18n}}</span>
<div class="dropdown-input full-width" dropdown>
<button type="button" class="dropdown-toggle dropdown-input__button">{{getCapabilities()}}</button>
<ul class="dropdown-menu full-width" vertical-fit="true">
<li class="dropdown-item_search-bar">
<i class="icon-search dropdown-item_search-icon"></i>
<input prevent-click-event="" class="dropdown-item_search" type="text" ng-model="capabilityFilterText" placeholder="{{'common.placeholder.search' | i18n}}">
</li>
<li ng-repeat="item in capabilityList | filter: {label: capabilityFilterText}">
<div ng-class="isCapabilityChecked(item) ? 'dropdown-item_selected' : 'dropdown-item'" role="menuitemcheckbox" aria-checked="{{subType.checked}}" title="{{item.label}}" ng-click="addCapability(item)" ng-enter="addCapability(item)" tabindex="0">
{{item.label}}
</div>
</li>
</ul>
</div>
</label>
</div>
<div class="col-sm-3 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text">{{'asset.attributes.systemType' | i18n}}</span>
<div class="create-ticket__item">
<selection selection-items="assetMetadata.systemType"
selected-item="asset.selectedSystemType"
title-text="{{'asset.attributes.systemType' | i18n | uppercase}}"
label="label"
value="label"
entity="asset"
show-clear="true"
update-selected-item="true">
</selection>
</div>
</label>
</div>
<div class="col-sm-3 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text">
{{ 'asset.attributes.virtualSystemType' | i18n }}
</span>
<div class="create-ticket__item">
<selection selection-items="assetMetadata.virtualSystemType"
selected-item="asset.selectedVirtualSystemType"
title-text="{{'asset.attributes.virtualSystemType' | i18n | uppercase}}"
label="label"
value="label"
entity="asset"
show-clear="true"
update-selected-item="true">
</selection>
</div>
</label>
</div>
</div>
</div>
<!-- end -->
<!-- type specific custom fields -->
<div class="create-ticket__full-width-section" ng-if="validTypeCustomFields.length">
<div class="row">
<custom-field-container ticket="asset" fields="validTypeCustomFields"></custom-field-container>
</div>
</div>
<div class="create-ticket__full-width-section">
<div class="row">
<div class="col-sm-6">
<div class="row">
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="impact" entity="asset">
{{'asset.attributes.impact' | i18n}}
</span>
<selection selection-items="assetMetadata.impacts"
label="label"
value="label"
show-clear="true"
selection-callback="updateAssetField('impact',item)"
selected-item="asset.selectedImpact"
update-selected-item="true"
field-name="impact"
entity="asset">
</selection>
</label>
</div>
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="urgency" entity="asset">
{{'asset.attributes.urgency' | i18n}}
</span>
<selection selection-items="assetMetadata.urgencies"
label="label"
value="label"
show-clear="true"
selection-callback="updateAssetField('urgency',item)"
selected-item="asset.selectedUrgency"
update-selected-item="true"
field-name="urgency"
entity="asset">
</selection>
</label>
</div>
</div>
<div class="row">
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="serialNumber" entity="asset">
{{ 'asset.attributes.serialNumber' | i18n }}
</span>
<input type="text"
title="{{ 'asset.attributes.serialNumber' | i18n }}"
class="custom-input"
ng-model="asset.serialNumber"
placeholder="{{ 'create.asset.serialNumber.placeholder' | i18n }}"
potentially-required-field
field-name="serialNumber"
entity="asset">
</label>
</div>
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="systemRole" entity="asset">
{{ 'asset.attributes.systemRole' | i18n }}
</span>
<input type="text"
title="{{ 'asset.attributes.systemRole' | i18n }}"
class="custom-input"
ng-model="asset.systemRole"
placeholder="{{ 'create.asset.systemRole.placeholder' | i18n }}"
potentially-required-field
field-name="systemRole"
entity="asset">
</label>
</div>
</div>
<div class="row">
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="assetId" entity="asset">
{{ 'asset.attributes.classId' | i18n }}
</span>
<input type="text"
title="{{ 'asset.attributes.classId' | i18n }}"
class="custom-input"
ng-model="asset.assetId"
placeholder="{{ 'create.asset.classId.placeholder' | i18n }}"
potentially-required-field
field-name="assetId"
entity="asset">
</label>
</div>
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="partNumber" entity="asset">
{{ 'asset.attributes.partNumber' | i18n }}
</span>
<input type="text"
title="{{ 'asset.attributes.partNumber' | i18n }}"
class="custom-input"
ng-model="asset.partNumber"
placeholder="{{ 'create.asset.partNumber.placeholder' | i18n }}"
potentially-required-field
field-name="partNumber"
entity="asset">
</label>
</div>
</div>
<div class="row">
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="manufacturer" entity="asset">
{{ 'asset.attributes.manufacturer' | i18n }}
</span>
<div class="relative-position">
<input type="text" class="text-input form-control"
ng-model="asset.manufacturer"
placeholder="{{'common.labels.startTyping' | i18n}}"
typeahead="item as item.name for item in getCompaniesByType($viewValue,'Manufacturer')"
typeahead-wait-ms="500"
typeahead-on-select="setCompanyByType($item, 'manufacturer')"
potentially-required-field
field-name="manufacturer"
entity="asset"
ng-blur="hideTooManyResultsMessage()"
uib-tooltip="{{'search.category.exceedsChunkSize' | i18n}}"
tooltip-is-open="isTooltipOpenManufacturer"
tooltip-enable="exceedsChunkSizeManufacturer"
tooltip-trigger="'none'"
tooltip-placement="auto"
typeahead-focus-first="false"
/>
<i class="icon-cross item-input__delete-btn" tabindex=0 role="link"
title="{{'common.button.clear' | i18n}} {{ 'asset.attributes.manufacturer' | i18n }}" ng-if="asset.manufacturer"
focus-input-on-clear ng-click="clearValuesByType('manufacturer')" ng-enter="clearValuesByType('manufacturer')">
</i>
</div>
</label>
</div>
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="supplier" entity="asset">
{{ 'asset.attributes.supplier' | i18n }}
</span>
<div class="relative-position">
<input type="text" class="text-input form-control"
ng-model="asset.supplier"
placeholder="{{'common.labels.startTyping' | i18n}}"
typeahead="item as item.name for item in getCompaniesByType($viewValue,'Supplier')"
typeahead-wait-ms="500"
typeahead-on-select="setCompanyByType($item, 'supplier')"
potentially-required-field
field-name="supplier"
entity="asset"
ng-blur="hideTooManyResultsMessage()"
uib-tooltip="{{'search.category.exceedsChunkSize' | i18n}}"
tooltip-is-open="isTooltipOpenSupplier"
tooltip-enable="exceedsChunkSizeSupplier"
tooltip-trigger="'none'"
tooltip-placement="top"
typeahead-focus-first="false"
/>
<i class="icon-cross item-input__delete-btn" tabindex=0 role="link"
title="{{'common.button.clear' | i18n}} {{ 'asset.attributes.supplier' | i18n }}" ng-if="asset.supplier"
focus-input-on-clear ng-click="clearValuesByType('supplier')" ng-enter="clearValuesByType('supplier')">
</i>
</div>
</label>
</div>
</div>
<div class="row">
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="room" entity="asset">
{{ 'console.column.room' | i18n }}
</span>
<input type="text"
title="{{ 'console.column.room' | i18n }}"
class="custom-input"
ng-model="asset.room"
placeholder="{{ 'create.asset.room.placeholder' | i18n }}"
potentially-required-field
field-name="room"
entity="asset">
</label>
</div>
<div class="col-sm-6 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="floor" entity="asset">
{{ 'console.column.floor' | i18n }}
</span>
<input type="text"
title="{{ 'console.column.floor' | i18n }}"
class="custom-input"
ng-model="asset.floor"
placeholder="{{ 'create.asset.floor.placeholder' | i18n }}"
potentially-required-field
field-name="floor"
entity="asset">
</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="row">
<div class="col-sm-12 create-ticket__section">
<edit-summary label="{{'create.asset.description' | i18n}}" ticket="asset" context="'create'" is-desc-required="true">
</edit-summary>
</div>
</div>
<div class="row">
<div class="col-sm-12 create-ticket__section">
<categories-editor ng-if="asset.allCategories" entity="asset" company="company" categories="asset.allCategories"></categories-editor>
</div>
</div>
</div>
</div>
</div>
<!-- generic custom fields -->
<div class="create-ticket__full-width-section" ng-if="genericCustomFields.length">
<div class="row">
<custom-field-container ticket="asset" fields="genericCustomFields"></custom-field-container>
</div>
</div>
<!-- lifecycle dates -->
<div class="create-ticket__full-width-section create-asset__collapsible-section">
<a ng-click="asset.lifecycleDates=!asset.lifecycleDates" ng-enter="asset.lifecycleDates=!asset.lifecycleDates" tabindex="0">{{'asset.attributes.lifecycleDates' | i18n}} <i ng-class="(!!asset.lifecycleDates)?'icon-angle_up':'icon-angle_down'"></i></a>
<div class="row" ng-show="asset.lifecycleDates">
<div class="col-sm-2 create-ticket__section-dates">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="lifecycleDates.availableDate" entity="asset">
{{'asset.attributes.availableDate' | i18n}}
</span>
<div class="create-ticket__date-time-item">
<div class="custom-field__date">
<input type="text"
class="form-control"
datepicker-popup="mediumDate"
ng-model="asset.availableDate.date"
is-open="assetDate.availableDatePicker.open"
show-button-bar="false"
ng-click="openDatePicker(assetDate.availableDatePicker, $event)"
ng-enter="openDatePicker(assetDate.availableDatePicker)"
datepicker-options="datePickerOptions"
ng-change="updateDateTime('availableDate')"
potentially-required-field
field-name="lifecycleDates.availableDate"
entity="asset"
aria-label="{{'asset.attributes.availableDate' | i18n}} {{'common.aria.labels.dateField' | i18n}}"
/>
<i class="icon-calendar custom-field__date-icon"></i>
</div>
<div class="custom-field__time">
<div class="dropdown timepicker" ng-disabled="!asset.availableDate.date">
<div class="dropdown-toggle">
<input class="form-control custom-field__time-input"
type="text"
value="{{asset.availableDate.time | date : 'shortTime'}}"
ng-disabled="!asset.availableDate.date"
aria-label="{{'asset.attributes.availableDate' | i18n}} {{'common.aria.labels.timeField' | i18n}}"
/>
<i class="icon-clock_o custom-field__time-icon"></i>
</div>
<div class="dropdown-menu" prevent-click-event ng-if="asset.availableDate.date">
<timepicker ng-model="asset.availableDate.time"
ng-change="updateDateTime('availableDate')"
show-meridian="showMeridian">
</timepicker>
</div>
</div>
</div>
</div>
</label>
</div>
<div class="col-sm-2 create-ticket__section-dates">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="lifecycleDates.installationDate" entity="asset">
{{'asset.attributes.installationDate' | i18n}}
</span>
<div class="create-ticket__date-time-item">
<div class="custom-field__date">
<input type="text"
class="form-control"
datepicker-popup="mediumDate"
ng-model="asset.installationDate.date"
is-open="assetDate.installationDatePicker.open"
show-button-bar="false"
ng-click="openDatePicker(assetDate.installationDatePicker, $event)"
ng-enter="openDatePicker(assetDate.installationDatePicker)"
datepicker-options="datePickerOptions"
ng-change="updateDateTime('installationDate')"
potentially-required-field
field-name="lifecycleDates.installationDate"
entity="asset"
aria-label="{{'asset.attributes.installationDate' | i18n}} {{'common.aria.labels.dateField' | i18n}}"
/>
<i class="icon-calendar custom-field__date-icon"></i>
</div>
<div class="custom-field__time">
<div class="dropdown timepicker">
<div class="dropdown-toggle">
<input class="form-control custom-field__time-input"
type="text"
value="{{asset.installationDate.time | date : 'shortTime'}}"
ng-disabled="!asset.installationDate.date"
aria-label="{{'asset.attributes.installationDate' | i18n}} {{'common.aria.labels.timeField' | i18n}}"
/>
<i class="icon-clock_o custom-field__time-icon"></i>
</div>
<div class="dropdown-menu" prevent-click-event ng-if="asset.installationDate.date">
<timepicker ng-model="asset.installationDate.time"
ng-change="updateDateTime('installationDate')"
show-meridian="showMeridian">
</timepicker>
</div>
</div>
</div>
</div>
</label>
</div>
<div class="col-sm-2 create-ticket__section-dates">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="lifecycleDates.receivedDate" entity="asset">
{{'asset.attributes.receivedDate' | i18n}}
</span>
<div class="create-ticket__date-time-item">
<div class="custom-field__date">
<input type="text"
class="form-control"
datepicker-popup="mediumDate"
ng-model="asset.receivedDate.date"
is-open="assetDate.receivedDatePicker.open"
show-button-bar="false"
ng-click="openDatePicker(assetDate.receivedDatePicker, $event)"
ng-enter="openDatePicker(assetDate.receivedDatePicker)"
datepicker-options="datePickerOptions"
ng-change="updateDateTime('receivedDate')"
potentially-required-field
field-name="lifecycleDates.receivedDate"
entity="asset"
aria-label="{{'asset.attributes.receivedDate' | i18n}} {{'common.aria.labels.dateField' | i18n}}"
/>
<i class="icon-calendar custom-field__date-icon"></i>
</div>
<div class="custom-field__time">
<div class="dropdown timepicker">
<div class="dropdown-toggle">
<input class="form-control custom-field__time-input"
type="text"
value="{{asset.receivedDate.time | date : 'shortTime'}}"
ng-disabled="!asset.receivedDate.date"
aria-label="{{'asset.attributes.receivedDate' | i18n}} {{'common.aria.labels.timeField' | i18n}}"
/>
<i class="icon-clock_o custom-field__time-icon"></i>
</div>
<div class="dropdown-menu" prevent-click-event ng-if="asset.receivedDate.date">
<timepicker ng-model="asset.receivedDate.time"
ng-change="updateDateTime('receivedDate')"
show-meridian="showMeridian">
</timepicker>
</div>
</div>
</div>
</div>
</label>
</div>
<div class="col-sm-2 create-ticket__section-dates">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="lifecycleDates.returnDate" entity="asset">
{{'asset.attributes.returnDate' | i18n}}
</span>
<div class="create-ticket__date-time-item">
<div class="custom-field__date">
<input type="text"
class="form-control"
datepicker-popup="mediumDate"
ng-model="asset.returnDate.date"
is-open="assetDate.returnDatePicker.open"
show-button-bar="false"
ng-click="openDatePicker(assetDate.returnDatePicker, $event)"
ng-enter="openDatePicker(assetDate.returnDatePicker)"
datepicker-options="datePickerOptions"
ng-change="updateDateTime('returnDate')"
potentially-required-field
field-name="lifecycleDates.returnDate"
entity="asset"
aria-label="{{'asset.attributes.returnDate' | i18n}} {{'common.aria.labels.dateField' | i18n}}"
/>
<i class="icon-calendar custom-field__date-icon"></i>
</div>
<div class="custom-field__time">
<div class="dropdown timepicker">
<div class="dropdown-toggle">
<input class="form-control custom-field__time-input"
type="text"
value="{{asset.returnDate.time | date : 'shortTime'}}"
ng-disabled="!asset.returnDate.date"
aria-label="{{'asset.attributes.returnDate' | i18n}} {{'common.aria.labels.timeField' | i18n}}"
/>
<i class="icon-clock_o custom-field__time-icon"></i>
</div>
<div class="dropdown-menu" prevent-click-event ng-if="asset.returnDate.date">
<timepicker ng-model="asset.returnDate.time"
ng-change="updateDateTime('returnDate')"
show-meridian="showMeridian">
</timepicker>
</div>
</div>
</div>
</div>
</label>
</div>
<div class="col-sm-2 create-ticket__section-dates">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="lifecycleDates.disposalDate" entity="asset">
{{'asset.attributes.disposalDate' | i18n}}
</span>
<div class="create-ticket__date-time-item">
<div class="custom-field__date">
<input type="text"
class="form-control"
datepicker-popup="mediumDate"
ng-model="asset.disposalDate.date"
is-open="assetDate.disposalDatePicker.open"
show-button-bar="false"
ng-click="openDatePicker(assetDate.disposalDatePicker, $event)"
ng-enter="openDatePicker(assetDate.disposalDatePicker)"
datepicker-options="datePickerOptions"
ng-change="updateDateTime('disposalDate')"
potentially-required-field
field-name="lifecycleDates.disposalDate"
entity="asset"
aria-label="{{'asset.attributes.disposalDate' | i18n}} {{'common.aria.labels.dateField' | i18n}}"
/>
<i class="icon-calendar custom-field__date-icon"></i>
</div>
<div class="custom-field__time">
<div class="dropdown timepicker">
<div class="dropdown-toggle">
<input class="form-control custom-field__time-input"
type="text"
value="{{asset.disposalDate.time | date : 'shortTime'}}"
ng-disabled="!asset.disposalDate.date"
aria-label="{{'asset.attributes.disposalDate' | i18n}} {{'common.aria.labels.timeField' | i18n}}"
/>
<i class="icon-clock_o custom-field__time-icon"></i>
</div>
<div class="dropdown-menu" prevent-click-event ng-if="asset.disposalDate.date">
<timepicker ng-model="asset.disposalDate.time"
ng-change="updateDateTime('disposalDate')"
show-meridian="showMeridian">
</timepicker>
</div>
</div>
</div>
</div>
</label>
</div>
<div class="col-sm-2 create-ticket__section-dates">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="lifecycleDates.purchaseDate" entity="asset">
{{'asset.attributes.purchaseDate' | i18n}}
</span>
<div class="create-ticket__date-time-item">
<div class="custom-field__date">
<input type="text"
class="form-control"
datepicker-popup="mediumDate"
ng-model="asset.purchaseDate.date"
is-open="assetDate.purchaseDatePicker.open"
show-button-bar="false"
ng-click="openDatePicker(assetDate.purchaseDatePicker, $event)"
ng-enter="openDatePicker(assetDate.purchaseDatePicker)"
datepicker-options="datePickerOptions"
ng-change="updateDateTime('purchaseDate')"
potentially-required-field
field-name="lifecycleDates.purchaseDate"
entity="asset"
aria-label="{{'asset.attributes.purchaseDate' | i18n}} {{'common.aria.labels.dateField' | i18n}}"
/>
<i class="icon-calendar custom-field__date-icon"></i>
</div>
<div class="custom-field__time">
<div class="dropdown timepicker">
<div class="dropdown-toggle">
<input class="form-control custom-field__time-input"
type="text"
value="{{asset.purchaseDate.time | date : 'shortTime'}}"
ng-disabled="!asset.purchaseDate.date"
aria-label="{{'asset.attributes.purchaseDate' | i18n}} {{'common.aria.labels.timeField' | i18n}}"
/>
<i class="icon-clock_o custom-field__time-icon"></i>
</div>
<div class="dropdown-menu" prevent-click-event ng-if="asset.purchaseDate.date">
<timepicker ng-model="asset.purchaseDate.time"
ng-change="updateDateTime('purchaseDate')"
show-meridian="showMeridian">
</timepicker>
</div>
</div>
</div>
</div>
</label>
</div>
<div class="col-sm-2 create-ticket__section-dates" potentially-required-field field-name="lifecycleDates.lastScanDate" entity="asset">
<label class="label_control-wrap">
<span class="label__text">{{'asset.attributes.lastScanDate' | i18n}}</span>
<div class="create-ticket__date-time-item">
<div class="custom-field__date">
<input type="text"
class="form-control"
datepicker-popup="mediumDate"
ng-model="asset.lastScanDate.date"
is-open="assetDate.lastScanDatePicker.open"
show-button-bar="false"
ng-click="openDatePicker(assetDate.lastScanDatePicker, $event)"
ng-enter="openDatePicker(assetDate.lastScanDatePicker)"
datepicker-options="datePickerOptions"
ng-change="updateDateTime('lastScanDate')"
potentially-required-field
field-name="lifecycleDates.lastScanDate"
entity="asset"
aria-label="{{'asset.attributes.lastScanDate' | i18n}} {{'common.aria.labels.dateField' | i18n}}"
/>
<i class="icon-calendar custom-field__date-icon"></i>
</div>
<div class="custom-field__time">
<div class="dropdown timepicker">
<div class="dropdown-toggle">
<input class="form-control custom-field__time-input"
type="text"
value="{{asset.lastScanDate.time | date : 'shortTime'}}"
ng-disabled="!asset.lastScanDate.date"
aria-label="{{'asset.attributes.lastScanDate' | i18n}} {{'common.aria.labels.timeField' | i18n}}"
/>
<i class="icon-clock_o custom-field__time-icon"></i>
</div>
<div class="dropdown-menu" prevent-click-event ng-if="asset.lastScanDate.date">
<timepicker ng-model="asset.lastScanDate.time"
ng-change="updateDateTime('lastScanDate')"
show-meridian="showMeridian">
</timepicker>
</div>
</div>
</div>
</div>
</label>
</div>
</div>
</div>
<!-- end lifecycle dates -->
<!-- financial -->
<div class="create-ticket__full-width-section create-asset__collapsible-section">
<a ng-click="asset.financialExpand=!asset.financialExpand" ng-enter="asset.financialExpand=!asset.financialExpand" tabindex="0">{{'asset.attributes.financial' | i18n}} <i ng-class="(!!asset.financialExpand)?'icon-angle_up':'icon-angle_down'"></i></a>
<div class="row" ng-show="asset.financialExpand">
<div class="col-sm-3 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="invoiceNumber" entity="asset">
{{'asset.attributes.invoiceNumber' | i18n}}
</span>
<input type="text" class="text-input form-control" ng-model="asset.invoiceNumber"
potentially-required-field field-name="invoiceNumber" entity="asset">
</label>
</div>
<div class="col-sm-3 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="financial.costCenter" entity="asset">
{{'asset.attributes.costCenter' | i18n}}
</span>
<div class="relative-position">
<input type="text"
class="text-input form-control"
autocomplete="off"
placeholder="{{'common.labels.startTyping' | i18n}}"
ng-model="asset.costCenter"
typeahead="item as item.label for item in getCostCentersByCompany($viewValue)"
typeahead-on-select="updateCostCenter($item)"
ng-disabled="!asset.company || !asset.company.name"
potentially-required-field
field-name="financial.costCenter"
entity="asset"
typeahead-wait-ms="500"
typeahead-loading="loadingCostCenters"
ng-blur="hideTooManyResultsMessage()"
uib-tooltip="{{'search.category.exceedsChunkSize' | i18n}}"
tooltip-is-open="isTooltipOpenCostCenter"
tooltip-enable="showTooManyResultsMessage"
tooltip-trigger="'none'"
tooltip-placement="top"
typeahead-focus-first="false"
/>
<i class="icon-cross item-input__delete-btn" tabindex=0 role="link"
title="{{'common.button.clear' | i18n}} {{ 'asset.attributes.costCenter' | i18n }}" ng-if="asset.costCenter && !loadingCostCenters"
focus-input-on-clear ng-click="clearValuesByType('costCenter')" ng-enter="clearValuesByType('costCenter')">
</i>
<loading-spinner class="typeahead-loader" if="loadingCostCenters" inline="true"></loading-spinner>
</div>
</label>
</div>
<div class="col-sm-3 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="financial.budgetCode" entity="asset">
{{'asset.attributes.budgetCode' | i18n}}
</span>
<input type="text" class="text-input form-control" ng-model="asset.budgetCode"
potentially-required-field field-name="financial.budgetCode" entity="asset">
</label>
</div>
<div class="col-sm-3 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text" potentially-required-field field-name="financial.projectNumber" entity="asset">
{{'asset.attributes.projectNumber' | i18n}}
</span>
<input type="text" class="text-input form-control" ng-model="asset.projectNumber"
potentially-required-field field-name="financial.projectNumber" entity="asset">
</label>
</div>
<!-- SW00503167 - hiding currency fields for the time being till this issue is resolved -->
<!--<div class="col-sm-2 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text">{{'asset.attributes.unitPrice' | i18n}}</span>
<currency-input
field-name="unitPrice"
model="asset.unitPrice"
title="{{'asset.attributes.unitPrice' | i18n}}">
</currency-input>
</label>
</div>
<div class="col-sm-2 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text">{{'asset.attributes.salesTax' | i18n}}</span>
<currency-input
field-name="salesTax"
model="asset.salesTax"
title="{{'asset.attributes.salesTax' | i18n}}">
</currency-input>
</label>
</div>
<div class="col-sm-2 create-ticket__section">
<label class="label_control-wrap">
<span class="label__text">{{'asset.attributes.marketValue' | i18n}}</span>
<currency-input
field-name="marketValue"
model="asset.marketValue"
title="{{'asset.attributes.marketValue' | i18n}}">
</currency-input>
</label>
</div>-->
<!--<div class="col-sm-2 create-ticket__section">-->
<!--<label class="label_control-wrap">-->
<!--<span class="label__text">{{'asset.attributes.depreciated' | i18n}}</span>-->
<!--<selection selection-items="assetMetadata.depreciated"-->
<!--selected-item="selectedDepreciation"-->
<!--label="label"-->
<!--value="label"-->
<!--selection-callback="updateAssetField('depreciated',item)"-->
<!--update-selected-item="true">-->
<!--</selection>-->
<!--</label>-->
<!--</div>-->
</div>
</div>
<!-- end financial -->
<div class="create-ticket__full-width-section create-asset__collapsible-section">
<div class="row">
<div class="col-lg-12">
<label class="label_control-wrap">
<span class="label__text">
{{'personInfoCard.asset.caption.primaryOffice' | i18n}}
</span>
</label>
<foundation-selector use-chunking="false" multiple="false" typeahead-mode="true" type="site"
options="siteOptions" selected-foundations="siteSelected">
</foundation-selector>
</div>
</div>
</div>
</div><!-- end if !state.selectType -->
</div>
</div>
</form>
</div>
</div>
<div class="create-ticket__action-panel">
<span class="create-ticket__form_invalid" ng-if="createAssetForm.$invalid && !state.selectType">
<i class="icon-exclamation_triangle"></i>
<span ng-if="createAssetForm.$error.required.length">{{createAssetForm.$error.required.length}} {{ 'create.ticket.more.required.fields' | i18n }}</span>
<span ng-if="formContainsInvalidFields(createAssetForm)">{{ 'create.ticket.invalid.fields' | i18n }}</span>
</span>
<span class="font-size-m" ng-if="createAssetForm.$valid">
<i class="icon-check"></i>
{{ 'create.ticket.all.required.fields.complete' | i18n }}
</span>
<div class="pull-right">
<button type="submit" class="btn_primary create-ticket__action-btn" ng-if="state.selectType" ng-disabled="state.dataIsLoading" ng-click="showAssetForm(true)">
{{ 'common.button.continue' | i18n }}
</button>
<button type="submit" class="btn_primary create-ticket__action-btn" ng-if="!state.selectType" ng-disabled="createAssetForm.$invalid || state.dataIsLoading" ng-click="createAsset()">
{{ 'common.button.saveAsset' | i18n }}
</button>
<button type="button" class="btn_secondary action-panel__cancel-btn" ng-if="state.selectType" ng-disabled="state.dataIsLoading" ng-click="cancel()">
{{ 'common.button.discard' | i18n }}
</button>
<button type="button" class="btn_secondary action-panel__cancel-btn" ng-if="!state.selectType" ng-disabled="state.dataIsLoading" ng-click="showAssetForm(false)">
{{ 'smartrecorder.button.clearRecord' | i18n }}
</button>
</div>
</div>
</div>