SmartIT_Extensions/BMC/smart-it-full/views/common/selection-directive.html

77 lines
3.6 KiB
HTML

<div class="dropdown-input full-width" dropdown is-open="state.isOpen">
<button type="button" class="dropdown-input__button dropdown-toggle" ng-class="{'ng-invalid-required' : !selectedItem && required}" aria-required="{{ariaRequired}}" id="{{inputId}}"
ng-disabled="disabledSelection" ng-class="{'dropdown-input__button_placeholder': !selectedItemValue && !firstItemEmpty}"
title="{{titleText}} {{selectedItemLabel ? selectedItemLabel : 'common.placeholder.selectOne' | i18n}}">
{{selectedItemLabel ? selectedItemLabel : 'common.placeholder.selectOne' | i18n}}
</button>
<i class="icon-cross dropdown-clear" title="{{'common.button.clear' | i18n}}" role="link"
ng-if="!disabledSelection && showClear && selectedItemValue" ng-click="clear()" ng-enter="clear()" tabindex="0"></i>
<input ng-if="fieldName" type="text"
potentially-required-field
field-name="{{fieldName}}"
entity="entity"
style="display: none;"
name="selectedItem"
ng-required="required"
ng-model="selectedItem" />
<input ng-if="!fieldName" type="text"
style="display: none;"
name="{{tempFieldName}}"
ng-required="required"
ng-model="selectedItem" />
<ul class="dropdown-menu full-width">
<li class="dropdown-item__header" ng-if="selectionFilter && !typeaheadMode">{{'common.placeholder.search' | i18n}}</li>
<li class="dropdown-item_search-bar" ng-if="selectionFilter && !typeaheadMode">
<i class="icon-search dropdown-item_search-icon"></i>
<input title="{{selectionFilterPlaceholderText | i18n}}"
prevent-click-event
class="dropdown-item_search"
type="text"
ng-model="search.searchFilterText"
ng-keyup="handleKeyup($event)"
ng-keydown="handleKeydown($event)"
placeholder="{{selectionFilterPlaceholderText | i18n}}"/>
</li>
<li class="dropdown-item_typeahead-bar" ng-if="typeaheadMode">
<div class="dropdown-item_typeahead-label" ng-if="!search.typeaheadText || (search.typeaheadText.length > 2 && tooltip.showTooltip)">{{'common.labels.tooManyToDisplay' | i18n}}</div>
<input title="{{selectionFilterPlaceholderText | i18n}}"
prevent-click-event
class="dropdown-item_search-bar-input"
type="text"
ng-model="search.typeaheadText"
ng-blur="onBlur()"
typeahead-min-length="3"
typeahead="{{typeaheadDetails}}"
typeahead-on-select="itemSelected($item);search.typeaheadText='';"
typeahead-wait-ms="500"
typeahead-loading="isTypeaheadLoading"
ng-keydown="handleKeydown($event)"
ng-keyup="handleKeyup($event)"
placeholder="{{selectionFilterPlaceholderText | i18n}}"/>
<div class="dropdown-item_typeahead-bar-bottom-spinner">
<loading-spinner if="isTypeaheadLoading" inline="true"></loading-spinner>
</div>
</li>
<li class="dropdown-item" ng-if="loadingFlag">
<loading-spinner if="loadingFlag" inline="true" centered="true"></loading-spinner>
</li>
<li ng-if="firstItemEmpty && !typeaheadMode">
<a class="dropdown-item"
ng-click="itemSelected()"
ng-keydown="handleKeydown($event)"
href="javascript:void(0)"
role="menuitem">
</a>
</li>
<li ng-if="!search.typeaheadText" ng-repeat="selectionItem in selectionItems | filter : filterDropDown(search.searchFilterText)">
<a class="{{(value ? selectionItem[value] == selectedItem[value] : selectionItem == selectedItem) ? 'dropdown-item_selected' : 'dropdown-item'}}"
ng-click="itemSelected(selectionItem)"
ng-keydown="handleKeydown($event)"
href="javascript:void(0)"
role="menuitem">
{{getLabel(selectionItem)}}
</a>
</li>
</ul>
</div>