789 lines
38 KiB
HTML
789 lines
38 KiB
HTML
<editable-content-section ux-id="asset-generic" id="asset-generic"
|
|
class="no-border"
|
|
edit-mode-allowed="isFullVersion ? asset.accessMappings.detailsEditAllowed : false"
|
|
role="region"
|
|
tabindex="0"
|
|
aria-label="{{'common.aria.labels.asset-detail' | i18n}}"
|
|
ng-if="!asset.isPoiOnly"
|
|
edit-button-label = "'Asset Details'"
|
|
>
|
|
|
|
|
|
<div ux-id="asset-generic-view" class="row asset-generic-section" ng-if="!editMode">
|
|
<div class="col-md-6 col-sm-12">
|
|
<div class="row">
|
|
<div ux-id="ci-id-value" class="asset-point col-sm-6" ng-if="asset.assetId">
|
|
<div class="asset-point__label">{{'asset.attributes.classId' | i18n}}: </div> {{asset.assetId}}
|
|
</div>
|
|
<div ux-id="impact-value" class="asset-point col-sm-6" ng-if="asset.impact">
|
|
<div class="asset-point__label">{{'asset.attributes.impact' | i18n}}: </div>
|
|
{{asset.impact | localizeLabel: 'impact': asset.ticketType}}
|
|
</div>
|
|
<div ux-id="manufacturer-value" class="asset-point col-sm-6" ng-if="asset.manufacturer">
|
|
<div class="asset-point__label">{{'asset.attributes.manufacturer' | i18n}}: </div> {{asset.manufacturer}}
|
|
</div>
|
|
<div ux-id="urgency-value" class="asset-point col-sm-6" ng-if="asset.urgency">
|
|
<div class="asset-point__label">{{'asset.attributes.urgency' | i18n}}: </div>
|
|
{{asset.urgency | localizeLabel: 'urgency': asset.ticketType}}
|
|
|
|
</div>
|
|
<div ux-id="system-role-value" class="asset-point col-sm-6" ng-if="asset.systemRole">
|
|
<div class="asset-point__label">{{'asset.attributes.systemRole' | i18n}}: </div> {{asset.systemRole}}
|
|
</div>
|
|
<div ux-id="product-name-value" class="asset-point col-sm-6" ng-if="asset.product && asset.product.name">
|
|
<div class="asset-point__label">{{'asset.attributes.productName' | i18n}}: </div> {{asset.product.name}}
|
|
</div>
|
|
<div ux-id="product-model-value" class="asset-point col-sm-6" ng-if="asset.product && asset.product.model">
|
|
<div class="asset-point__label">{{'asset.attributes.model' | i18n}}: </div> {{asset.product.model}}
|
|
</div>
|
|
<div ux-id="supplier-value" class="asset-point col-sm-6" ng-if="asset.supplier">
|
|
<div class="asset-point__label">{{'asset.attributes.supplier' | i18n}}: </div> {{asset.supplier}}
|
|
</div>
|
|
<div ux-id="attribute-id-value" class="asset-point col-sm-6" ng-if="asset.id">
|
|
<div class="asset-point__label">{{'asset.attributes.id' | i18n}}: </div>{{asset.id}}
|
|
</div>
|
|
<div ux-id="supported-value" class="asset-point col-sm-6" ng-if="asset.supported != null">
|
|
<div class="asset-point__label">{{'asset.attributes.supported' | i18n}}: </div>{{asset.supported? ('common.labels.yes' | i18n) : ('common.labels.no' | i18n)}}
|
|
</div>
|
|
<div ux-id="floor-value" class="asset-point col-sm-6" ng-if="asset.floor">
|
|
<div class="asset-point__label">{{'console.column.floor' | i18n}}: </div>{{asset.floor}}
|
|
</div>
|
|
<div ux-id="room-value" class="asset-point col-sm-6" ng-if="asset.room">
|
|
<div class="asset-point__label">{{'console.column.room' | i18n}}: </div>{{asset.room}}
|
|
</div>
|
|
<div ux-id="submitter-value" class="asset-point col-sm-6" ng-if="asset.submitter && asset.submitter.loginId && asset.submitter.fullName">
|
|
<div class="asset-point__label">{{'console.filter.name.submitter' | i18n}}: </div><a href="#/person/{{asset.submitter.loginId | escape}}">{{asset.submitter.fullName}}</a>
|
|
</div>
|
|
<div ux-id="last-modified-by-value" class="asset-point col-sm-6" ng-if="asset.lastModifiedBy && asset.lastModifiedBy.loginId && asset.lastModifiedBy.fullName">
|
|
<div class="asset-point__label">{{'asset.attributes.lastModifiedBy' | i18n}}: </div><a href="#/person/{{asset.lastModifiedBy.loginId | escape}}">{{asset.lastModifiedBy.fullName}}</a>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="asset-point col-sm-6" ng-if="asset.financial && asset.accessMappings.financialReadAllowed">
|
|
<div class="asset-point__label">{{'asset.attributes.financial' | i18n}}</div>
|
|
<a ux-id="financial-hide-link" ng-if="!!asset.financialExpand" ng-click="asset.financialExpand=!asset.financialExpand" ng-enter="asset.financialExpand=!asset.financialExpand" tabindex="0" aria-label="{{'asset.attributes.financial' | i18n}} {{'common.labels.hide' | i18n}} {{'common.aria.labels.clickable' | i18n}}" role="list">{{'common.labels.hide' | i18n}} <i class="icon-angle_up"></i></a>
|
|
<a ux-id="financial-show-link" ng-if="!asset.financialExpand" ng-click="asset.financialExpand=!asset.financialExpand" ng-enter="asset.financialExpand=!asset.financialExpand" tabindex="0" aria-label="{{'asset.attributes.financial' | i18n}} {{'common.labels.show' | i18n}} {{'common.aria.labels.clickable' | i18n}}" role="list">{{'common.labels.show' | i18n}} <i class="icon-angle_down"></i></a>
|
|
<div ux-id="financial-attribute_{{key}}" class="asset-point__financial" ng-show="(!!asset.financialExpand)" ng-repeat="(key, value) in asset.financial">
|
|
<div ng-if="!value.currencycode"><div class="asset-point__label">{{'asset.attributes.'+key | i18n}}: </div> {{value}}</div>
|
|
<div ng-if="value.currencycode"><div class="asset-point__label">{{'asset.attributes.'+key | i18n}}: </div> {{value.value | currency : value.currencycode+" ": 2}}</div>
|
|
</div>
|
|
</div>
|
|
<div class="asset-point col-sm-6" ng-if="asset.lifecycleDates">
|
|
<div class="asset-point__label">{{'asset.attributes.lifecycleDates' | i18n}}</div>
|
|
<a ux-id="lifecycle-hide-link" ng-if="!!asset.lifecycleDatesExpand" ng-click="asset.lifecycleDatesExpand=!asset.lifecycleDatesExpand" ng-enter="asset.lifecycleDatesExpand=!asset.lifecycleDatesExpand" aria-label="{{'asset.attributes.lifecycleDates' | i18n}} {{'common.labels.hide' | i18n}} {{'common.aria.labels.clickable' | i18n}}" tabindex="0" role="list">{{'common.labels.hide' | i18n}} <i class="icon-angle_up"></i></a>
|
|
<a ux-id="lifecycle-show-link" ng-if="!asset.lifecycleDatesExpand" ng-click="asset.lifecycleDatesExpand=!asset.lifecycleDatesExpand" ng-enter="asset.lifecycleDatesExpand=!asset.lifecycleDatesExpand" aria-label="{{'asset.attributes.lifecycleDates' | i18n}} {{'common.labels.show' | i18n}} {{'common.aria.labels.clickable' | i18n}}" tabindex="0" role="list">{{'common.labels.show' | i18n}} <i class="icon-angle_down"></i></a>
|
|
<div ux-id="lifecycle-date_{{key}}" class="asset-point__dates" ng-show="(!!asset.lifecycleDatesExpand)" ng-repeat="(key, value) in asset.lifecycleDates">
|
|
<div class="asset-point__label">{{'asset.attributes.'+key | i18n}}: </div> {{(value | date:'mediumDate') + ' ' + (value | date:'shortTime')}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6 col-sm-12">
|
|
<div ux-id="part-number" class="asset-point" ng-if="asset.partNumber">
|
|
<div class="asset-point__label">{{'asset.attributes.partNumber' | i18n}}: </div>{{asset.partNumber}}
|
|
</div>
|
|
<div ux-id="serial-number" class="asset-point" ng-if="asset.serialNumber">
|
|
<div class="asset-point__label">{{'asset.attributes.serialNumber' | i18n}}: </div> {{asset.serialNumber}}
|
|
</div>
|
|
<div ux-id="asset-point-categories" class="asset-point" ng-if="!editMode">
|
|
<categories-section context="asset"></categories-section>
|
|
</div>
|
|
<div ux-id="asset-point-summary" class="asset-point" ng-if="asset.desc">
|
|
<edit-summary ticket="asset" context="'detail'" attachment="false"
|
|
class="editable-content-section-block" update-is-handled-by-parent="true">
|
|
</edit-summary>
|
|
</div>
|
|
</div>
|
|
<div ux-id="asset-point-custom-fields" class="asset-point asset-point__custom-field-area">
|
|
<custom-field-area ticket="asset"
|
|
metadata="metadata"
|
|
panel-id="assetScreen.Generic">
|
|
</custom-field-area>
|
|
</div>
|
|
</div>
|
|
<form ux-id="asset-generic-edit" name="assetGenericAttrForm">
|
|
<div class="asset-generic-section editable-content-section-block" ng-show="editMode" ng-controller="AssetEditDetailsController">
|
|
<div loading-spinner if="isAssetSaving" centered="true" overlay="true"></div>
|
|
<div class="row">
|
|
<div class="col-md-3 col-sm-6">
|
|
<div ux-id="class-id" class="asset-point">
|
|
<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" class="text-input form-control" ng-model="updatedModel.assetId"
|
|
potentially-required-field field-name="assetId" entity="asset"/>
|
|
</label>
|
|
</div>
|
|
<div ux-id="impact-dropdown" class="asset-point">
|
|
<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="metadata.impacts"
|
|
selected-item="selectedImpact"
|
|
label="label"
|
|
value="label"
|
|
show-clear=true
|
|
selection-callback="updateAssetField('impact',item)"
|
|
update-selected-item="true"
|
|
field-name="impact"
|
|
entity="asset">
|
|
</selection>
|
|
</label>
|
|
</div>
|
|
<div ux-id="manufacturer" class="asset-point">
|
|
<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="updatedModel.manufacturer"
|
|
placeholder="{{'common.labels.startTyping' | i18n}}"
|
|
autocomplete="off"
|
|
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="onInputFocusBlur()"
|
|
uib-tooltip="{{'search.category.exceedsChunkSize' | i18n}}"
|
|
tooltip-is-open="state.isTooltipOpenManufacturer"
|
|
tooltip-enable="state.exceedsChunkSizeManufacturer"
|
|
tooltip-trigger="'none'"
|
|
tooltip-placement="auto"
|
|
/>
|
|
<i class="icon-cross item-input__delete-btn" tabindex=0 role="link"
|
|
title="{{'common.button.clear' | i18n}} {{ 'asset.attributes.manufacturer' | i18n }}" ng-if="updatedModel.manufacturer"
|
|
focus-input-on-clear ng-click="setCompanyByType({}, 'manufacturer')" ng-enter="setCompanyByType({}, 'manufacturer')">
|
|
</i>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div ux-id="serial-number" class="asset-point">
|
|
<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" class="text-input form-control" ng-model="updatedModel.serialNumber"
|
|
potentially-required-field field-name="serialNumber" entity="asset">
|
|
</label>
|
|
</div>
|
|
<div ux-id="floor" class="asset-point">
|
|
<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" class="text-input form-control" ng-model="updatedModel.floor"
|
|
potentially-required-field field-name="floor" entity="asset">
|
|
</label>
|
|
</div>
|
|
<div ux-id="room" class="asset-point">
|
|
<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" class="text-input form-control" ng-model="updatedModel.room"
|
|
potentially-required-field field-name="room" entity="asset">
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3 col-sm-6">
|
|
<div ux-id="urgency-dropdown" class="asset-point">
|
|
<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="metadata.urgencies"
|
|
selected-item="selectedUrgency"
|
|
label="label"
|
|
value="label"
|
|
show-clear=true
|
|
selection-callback="updateAssetField('urgency',item)"
|
|
update-selected-item="true"
|
|
field-name="urgency"
|
|
entity="asset">
|
|
</selection>
|
|
</label>
|
|
</div>
|
|
<div ux-id="system-role" class="asset-point">
|
|
<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" class="text-input form-control" ng-model="updatedModel.systemRole"
|
|
potentially-required-field field-name="systemRole" entity="asset">
|
|
</label>
|
|
</div>
|
|
<div ux-id="supplier" class="asset-point">
|
|
<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="updatedModel.supplier"
|
|
placeholder="{{'common.labels.startTyping' | i18n}}"
|
|
autocomplete="off"
|
|
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="state.isTooltipOpenSupplier"
|
|
tooltip-enable="state.exceedsChunkSizeSupplier"
|
|
tooltip-trigger="'none'"
|
|
tooltip-placement="top"
|
|
/>
|
|
<i class="icon-cross item-input__delete-btn" tabindex=0 role="link"
|
|
title="{{'common.button.clear' | i18n}} {{ 'asset.attributes.supplier' | i18n }}" ng-if="updatedModel.supplier"
|
|
focus-input-on-clear ng-click="setCompanyByType({}, 'supplier')" ng-enter="setCompanyByType({}, 'supplier')">
|
|
</i>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div ux-id="part-number" class="asset-point">
|
|
<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" class="text-input form-control" ng-model="updatedModel.partNumber"
|
|
potentially-required-field field-name="partNumber" entity="asset">
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6 col-sm-12">
|
|
<div class="asset-point">
|
|
<categories-section context="asset" class="editable-content-section-block" update-is-handled-by-parent="true"></categories-section>
|
|
</div>
|
|
<div ux-id="edit-summary" class="asset-point">
|
|
<label class="label_control-wrap">
|
|
<span class="label__text" potentially-required-field field-name="desc" entity="asset"> {{'common.label.desc' | i18n}} </span>
|
|
<textarea ux-id="edit-summary-input" ng-model="updatedModel.desc" name="desc" class="text-input form-control"
|
|
potentially-required-field field-name="desc" entity="asset"></textarea>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row" ng-if="asset.accessMappings.financialEditAllowed">
|
|
<div ux-id="invoice-number" class="asset-point col-md-3 col-sm-6">
|
|
<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="updatedModel.invoiceNumber"
|
|
potentially-required-field field-name="invoiceNumber" entity="asset">
|
|
</label>
|
|
</div>
|
|
<div ux-id="cost-center" class="asset-point col-md-3 col-sm-6">
|
|
<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"
|
|
potentially-required-field
|
|
field-name="financial.costCenter"
|
|
entity="asset"
|
|
name="costCenter"
|
|
ng-model="updatedModel.financial.costCenter"
|
|
placeholder="{{'common.labels.startTyping' | i18n}}"
|
|
typeahead-editable="false"
|
|
autocomplete="off"
|
|
typeahead="item as item.label for item in getCostCentersByCompany($viewValue)"
|
|
typeahead-on-select="updateCostCenter($item)"
|
|
typeahead-wait-ms="500"
|
|
typeahead-loading="loadingCostCenters"
|
|
ng-blur="onInputFocusBlur()"
|
|
uib-tooltip="{{'search.category.exceedsChunkSize' | i18n}}"
|
|
tooltip-is-open="state.isTooltipOpenCostCenter"
|
|
tooltip-enable="state.exceedsChunkSizeCostCenter"
|
|
tooltip-trigger="'none'"
|
|
/>
|
|
<i class="icon-cross item-input__delete-btn" tabindex=0 role="link"
|
|
title="{{'common.button.clear' | i18n}} {{ 'asset.attributes.costCenter' | i18n }}" ng-if="updatedModel.financial.costCenter"
|
|
focus-input-on-clear ng-click="updateCostCenter({})" ng-enter="updateCostCenter({})">
|
|
</i>
|
|
<loading-spinner class="typeahead-loader" if="loadingCostCenters" inline="true"></loading-spinner>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div ux-id="budget-code" class="asset-point col-md-3 col-sm-6">
|
|
<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="updatedModel.financial.budgetCode"
|
|
potentially-required-field field-name="financial.budgetCode" entity="asset">
|
|
</label>
|
|
</div>
|
|
<div ux-id="project-number" class="asset-point col-md-3 col-sm-6">
|
|
<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="updatedModel.financial.projectNumber"
|
|
potentially-required-field field-name="financial.projectNumber" entity="asset">
|
|
</label>
|
|
</div>
|
|
<!--<div class="asset-point col-md-3 col-sm-6">-->
|
|
<!--<label class="label_control-wrap">-->
|
|
<!--<span class="label__text">{{'asset.attributes.depreciated' | i18n}}</span>-->
|
|
<!--<selection selection-items="metadata.depreciated"-->
|
|
<!--selected-item="selectedDepreciated"-->
|
|
<!--label="label"-->
|
|
<!--value="label"-->
|
|
<!--selection-callback="updateAssetField('depreciated',item)"-->
|
|
<!--update-selected-item="true">-->
|
|
<!--</selection>-->
|
|
<!--</label>-->
|
|
<!--</div>-->
|
|
<!--SW00503167 - hiding currency fields for the time being till this issue is resolved-->
|
|
<!--<div class="asset-point col-md-3 col-sm-6">
|
|
<label class="label_control-wrap">
|
|
<span class="label__text">{{'asset.attributes.unitPrice' | i18n}}</span>
|
|
<currency-input
|
|
field-name="unitPrice"
|
|
model="updatedModel.financial.unitPrice"
|
|
title="{{'asset.attributes.unitPrice' | i18n}}">
|
|
</currency-input>
|
|
</label>
|
|
</div>
|
|
<div class="asset-point col-md-3 col-sm-6">
|
|
<label class="label_control-wrap">
|
|
<span class="label__text">{{'asset.attributes.salesTax' | i18n}}</span>
|
|
<currency-input
|
|
field-name="salesTax"
|
|
model="updatedModel.financial.salesTax"
|
|
title="{{'asset.attributes.salesTax' | i18n}}">
|
|
</currency-input>
|
|
</label>
|
|
</div>
|
|
<div class="asset-point col-md-3 col-sm-6">
|
|
<label class="label_control-wrap">
|
|
<span class="label__text">{{'asset.attributes.marketValue' | i18n}}</span>
|
|
<currency-input
|
|
field-name="marketValue"
|
|
model="updatedModel.financial.marketValue"
|
|
title="{{'asset.attributes.marketValue' | i18n}}">
|
|
</currency-input>
|
|
</label>
|
|
</div>-->
|
|
</div>
|
|
<div class="row">
|
|
<div ux-id="field_availableDate" class="asset-point col-md-4 col-sm-6">
|
|
|
|
|
|
<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 ux-id="start-date-picker" type="text"
|
|
class="form-control"
|
|
datepicker-popup="mediumDate"
|
|
ng-model="lifecycleDates.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 ux-id="start-time-picker" class="dropdown timepicker">
|
|
<div class="dropdown-toggle">
|
|
<input class="form-control custom-field__time-input"
|
|
type="text"
|
|
value="{{lifecycleDates.availableDate.time | date : 'shortTime'}}"
|
|
ng-disabled="!lifecycleDates.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>
|
|
<timepicker ng-model="lifecycleDates.availableDate.time"
|
|
ng-change="updateDateTime('availableDate')"
|
|
show-meridian="showMeridian">
|
|
</timepicker>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div ux-id="field_installationDate" class="asset-point col-md-4 col-sm-6">
|
|
<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 ux-id="start-date-picker" type="text"
|
|
class="form-control"
|
|
datepicker-popup="mediumDate"
|
|
ng-model="lifecycleDates.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 ux-id="start-time-picker" class="dropdown timepicker">
|
|
<div class="dropdown-toggle">
|
|
<input class="form-control custom-field__time-input"
|
|
type="text"
|
|
value="{{lifecycleDates.installationDate.time | date : 'shortTime'}}"
|
|
ng-disabled="!lifecycleDates.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>
|
|
<timepicker ng-model="lifecycleDates.installationDate.time"
|
|
ng-change="updateDateTime('installationDate')"
|
|
show-meridian="showMeridian">
|
|
</timepicker>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div ux-id="field_receivedDate" class="asset-point col-md-4 col-sm-6">
|
|
<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 ux-id="start-date-picker" type="text"
|
|
class="form-control"
|
|
datepicker-popup="mediumDate"
|
|
ng-model="lifecycleDates.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 ux-id="start-time-picker" class="dropdown timepicker">
|
|
<div class="dropdown-toggle">
|
|
<input class="form-control custom-field__time-input"
|
|
type="text"
|
|
value="{{lifecycleDates.receivedDate.time | date : 'shortTime'}}"
|
|
ng-disabled="!lifecycleDates.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>
|
|
<timepicker ng-model="lifecycleDates.receivedDate.time"
|
|
ng-change="updateDateTime('receivedDate')"
|
|
show-meridian="showMeridian">
|
|
</timepicker>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div ux-id="field_returnDate" class="asset-point col-md-4 col-sm-6">
|
|
<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 ux-id="start-date-picker" type="text"
|
|
class="form-control"
|
|
datepicker-popup="mediumDate"
|
|
ng-model="lifecycleDates.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 ux-id="start-time-picker" class="dropdown timepicker">
|
|
<div class="dropdown-toggle">
|
|
<input class="form-control custom-field__time-input"
|
|
type="text"
|
|
value="{{lifecycleDates.returnDate.time | date : 'shortTime'}}"
|
|
ng-disabled="!lifecycleDates.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>
|
|
<timepicker ng-model="lifecycleDates.returnDate.time"
|
|
ng-change="updateDateTime('returnDate')"
|
|
show-meridian="showMeridian">
|
|
</timepicker>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div ux-id="field_disposalDate" class="asset-point col-md-4 col-sm-6">
|
|
<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 ux-id="start-date-picker" type="text"
|
|
class="form-control"
|
|
datepicker-popup="mediumDate"
|
|
ng-model="lifecycleDates.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 ux-id="start-time-picker" class="dropdown timepicker">
|
|
<div class="dropdown-toggle">
|
|
<input class="form-control custom-field__time-input"
|
|
type="text"
|
|
value="{{lifecycleDates.disposalDate.time | date : 'shortTime'}}"
|
|
ng-disabled="!lifecycleDates.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>
|
|
<timepicker ng-model="lifecycleDates.disposalDate.time"
|
|
ng-change="updateDateTime('disposalDate')"
|
|
show-meridian="showMeridian">
|
|
</timepicker>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div ux-id="field_purchaseDate" class="asset-point col-md-4 col-sm-6">
|
|
<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 ux-id="start-date-picker" type="text"
|
|
class="form-control"
|
|
datepicker-popup="mediumDate"
|
|
ng-model="lifecycleDates.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 ux-id="start-time-picker" class="dropdown timepicker">
|
|
<div class="dropdown-toggle">
|
|
<input class="form-control custom-field__time-input"
|
|
type="text"
|
|
value="{{lifecycleDates.purchaseDate.time | date : 'shortTime'}}"
|
|
ng-disabled="!lifecycleDates.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>
|
|
<timepicker ng-model="lifecycleDates.purchaseDate.time"
|
|
ng-change="updateDateTime('purchaseDate')"
|
|
show-meridian="showMeridian">
|
|
</timepicker>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div ux-id="field_lastScanDate" class="asset-point col-md-4 col-sm-6">
|
|
<label class="label_control-wrap">
|
|
<span class="label__text" potentially-required-field field-name="lifecycleDates.lastScanDate" entity="asset">
|
|
{{'asset.attributes.lastScanDate' | i18n}}
|
|
</span>
|
|
<div class="create-ticket__date-time-item">
|
|
<div class="custom-field__date">
|
|
<input ux-id="start-date-picker" type="text"
|
|
class="form-control"
|
|
datepicker-popup="mediumDate"
|
|
ng-model="lifecycleDates.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 ux-id="start-time-picker" class="dropdown timepicker">
|
|
<div class="dropdown-toggle">
|
|
<input class="form-control custom-field__time-input"
|
|
type="text"
|
|
value="{{lifecycleDates.lastScanDate.time | date : 'shortTime'}}"
|
|
ng-disabled="!lifecycleDates.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>
|
|
<timepicker ng-model="lifecycleDates.lastScanDate.time"
|
|
ng-change="updateDateTime('lastScanDate')"
|
|
show-meridian="showMeridian">
|
|
</timepicker>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="asset-point asset-point__custom-field-area">
|
|
<custom-field-area ticket="asset"
|
|
panel-id="assetScreen.Generic"
|
|
class="editable-content-section-block"
|
|
update-is-handled-by-parent="true">
|
|
</custom-field-area>
|
|
<!--<custom-field-container ticket="updatedModel" fields="genericCustomFields"></custom-field-container>-->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</editable-content-section>
|
|
<editable-content-section ux-id="asset-owner-section" id="asset-owner-card" class="no-border" edit-mode-allowed="isFullVersion ? asset.accessMappings.detailsEditAllowed : false"
|
|
role="region" tabindex="0" aria-label="{{'asset.owner.site' | i18n}}" ng-if="!asset.isPoiOnly"
|
|
edit-button-label = "'Asset Owner'"
|
|
>
|
|
<div ux-id="asset-owner-edit" class="asset-owner__editable-content" ng-show="editMode">
|
|
<form name="editAssetOwnerCardSection">
|
|
<edit-asset-owner asset = "asset" update="updateAssetOwner(data)"></edit-asset-owner>
|
|
</form>
|
|
</div>
|
|
<div ux-id="asset-owner-view" ng-show="!editMode" class="asset__owner col-sm-12">
|
|
<div ng-include="'views/asset/asset-owner-details.html'"></div>
|
|
</div>
|
|
</editable-content-section>
|
|
|
|
<div ux-id="asset-poi-section" class="asset__poi-section row" ng-if="asset.isPoi">
|
|
<div class="col-md-6">
|
|
<div class="asset__poi-title col-sm-12">
|
|
<span class="icon-users_o asset__poi-title-icon"></span>
|
|
<span>{{'asset.details.crowdsourcedInfo' | i18n}}</span>
|
|
<a ux-id="poi-link" class="asset__poi-link" href="{{asset.poiLink}}" aria-label="{{'asset.details.viewInMyIT' | i18n}}">{{'asset.details.viewInMyIT' | i18n}}</a>
|
|
</div>
|
|
<div>
|
|
<div class="asset__primary-attributes col-sm-6" ng-if="asset.poiInfo.name">
|
|
<div class="asset-point__label">{{'asset.details.poi.name' | i18n}}</div>
|
|
<div ux-id="poi-info-name" class="asset-point__value">{{asset.poiInfo.name}}</div>
|
|
</div>
|
|
<div class="asset__primary-attributes col-sm-6" ng-if="asset.poiInfo.desc">
|
|
<div class="asset-point__label">{{'asset.details.poi.desc' | i18n}}</div>
|
|
<div ux-id="poi-info-description" class="asset-point__value">{{asset.poiInfo.desc}}</div>
|
|
</div>
|
|
<div ux-id="poi-attribute_{{$index}}" class="asset__primary-attributes col-sm-6" ng-repeat="poiAttribute in asset.poiAttributes" ng-if="poiAttribute[1].length">
|
|
<div class="asset-point__label">{{'asset.details.poi.' + poiAttribute[0] | i18n}}</div>
|
|
<div class="asset-point__value">{{ poiAttribute[1] }}</div>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<div class="asset__primary-attributes">
|
|
<div class="asset-point__label">{{'asset.details.poi.owner' | i18n}}</div>
|
|
<span ng-if="!poiOwner.id" class="asset-owner__no-owner">{{poiOwnerNoAccess ? ('asset.owner.noAccess' | i18n) : ('common.label.noneYet' | i18n) }}</span>
|
|
<a ux-id="poi-owner" ng-if="poiOwner.id" aria-label="{{'asset.details.poi.owner' | i18n}} {{poiOwner.fullName}}"
|
|
href="#/person/{{asset.poiInfo.owner | escape}}">{{poiOwner.fullName || asset.poiInfo.owner}}</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div ux-id="poi-floor-map" class="col-md-6" ng-if="poiFloorMap">
|
|
<a ng-if="poiLocationLink" href="{{poiLocationLink}}"><img class="asset__poi-map" ng-src="{{poiFloorMap}}" /></a>
|
|
<img ng-if="!poiLocationLink" class="asset__poi-map" ng-src="{{poiFloorMap}}" />
|
|
</div>
|
|
</div> |