111 lines
7.3 KiB
HTML
111 lines
7.3 KiB
HTML
<div ux-id="add-people-blade" role="dialog" aria-labelledby="modalLabel">
|
|
<span class="modal-content__508-hidden-span">{{'common.labels.508BeginContent' | i18n}}</span>
|
|
<div loading-spinner if="state.dataIsLoading" centered="true" overlay="true"></div>
|
|
|
|
<div class="action-blade__header_no-shadow" ng-if="!isConsoleMode">
|
|
<h2 ux-id="blade-title" id="modalLabel" class="action-blade__title">{{'asset.actionBlade.addPeople.title' | i18n }}</h2>
|
|
</div>
|
|
|
|
<div class="add-people__find-people-section clearfix" role="region" aria-label="{{'common.region.search' | i18n}}">
|
|
<div ux-id="people-type-dropdown" class="add-people__type-section">
|
|
<label class="label_control-wrap">
|
|
<div class="control-label">{{'asset.actionBlade.addPeople.peopleType.label' | i18n}}:</div>
|
|
<selection selection-items="peopleTypes"
|
|
selected-item="selectedType"
|
|
selection-callback="selectPeopleType(item)"
|
|
autofocus
|
|
title-text="{{'asset.actionBlade.addPeople.peopleType.label' | i18n}}"
|
|
i18n-prefix="asset.actionBlade.addPeople.peopleType.">
|
|
</selection>
|
|
</label>
|
|
</div>
|
|
<form ng-show="selectedType=='people'" class="add-people__search-form" ng-submit="doSearch()">
|
|
<input ux-id="search-people-text" title="{{'asset.actionBlade.addPeople.searchPeople.placeholder' | i18n}}" type="text" class="add-people__search-bar" ng-model="searchPeople.text"
|
|
placeholder="{{'asset.actionBlade.addPeople.searchPeople.placeholder' | i18n}}" ng-change="searchUserByNameDebounce()">
|
|
</form>
|
|
<div ux-id="company-list-dropdown" ng-hide="selectedType=='people' || selectedType=='company'" class="add-people__company-section">
|
|
<label class="label_control-wrap">
|
|
<div class="control-label">{{'asset.actionBlade.addPeople.company.label' | i18n}}:</div>
|
|
<selection selection-items="companyList"
|
|
selected-item="company"
|
|
selection-callback="changeCompany(item)"
|
|
title-text="{{'asset.actionBlade.addPeople.company.label' | i18n}}"
|
|
label="name"
|
|
value="name"
|
|
selection-filter="true"
|
|
selection-filter-placeholder-text="assignBlade.searchCompany"
|
|
typeahead-mode="state.tooManyCompanies"
|
|
typeahead-details="company as company.name for company in getList($viewValue)"
|
|
typeahead-get-list="getCompaniesByName(name)"
|
|
show-clear=true>
|
|
</selection>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div ng-if="selectedType !== 'people' && !showTypeaheadSearchBox()" class="add-people__filter">
|
|
<input ux-id="search-text" title="{{'search.placeholder' | i18n}}" type='text' class="add-people__search-bar" ng-model='searchPeople.filter'
|
|
placeholder="{{'search.placeholder' | i18n}}">
|
|
</div>
|
|
|
|
<div ng-if="selectedType !== 'people' && showTypeaheadSearchBox()" class="add-people__filter">
|
|
<input ux-id="search-text-typeahead" ng-change="onSearchTextChange()" title="{{'search.placeholder' | i18n}}" type='text' class="add-people__search-bar" ng-model='typeaheadSearch.text'
|
|
placeholder="{{'search.placeholder' | i18n}}">
|
|
</div>
|
|
|
|
<div class="add-people__search-results" role="region" aria-label="{{'common.region.selectionList' | i18n}}">
|
|
<div loading-spinner if="state.isPeopleRelationsLoading" centered="true" overlay="true"></div>
|
|
<div ng-class="{'add-people-blade__list': selectedType=='people',
|
|
'add-people-blade__list-filter': selectedType!='people',
|
|
'add-people-blade__launch-action': (isConsoleMode && selectedType!='people'),
|
|
'add-people-blade__launch-action__people': (isConsoleMode && selectedType=='people')}">
|
|
<div ng-if="!state.dataSearching && (selectedType == 'people' ? (searchPeople.results.length == 0) : (filterResults.length == 0))">{{'asset.actionBlade.addPeople.noResults' | i18n}}</div>
|
|
<div ux-id="people-label" ng-if="typeaheadSearch.isExceedChunkSize && showTypeaheadSearchBox() && searchPeople.results.length !== 0" class="action-blade__assign-list-label">
|
|
{{'common.labels.tooManyToDisplay' | i18n}}
|
|
</div>
|
|
<div loading-spinner if="state.dataSearching" centered="true" overlay="false"></div>
|
|
<div ux-id="search-person-result_{{$index}}" ng-show="selectedType=='people'" class="{{selectedPerson.loginId == person.loginId ? 'add-people__item_selected' : 'add-people__item'}} clearfix"
|
|
ng-repeat="person in searchPeople.results" ng-click="selectPerson(person)" ng-enter="selectPerson(person)" tabindex="0" aria-label="{{person.fullName}}{{'common.aria.labels.clickable' | i18n}}">
|
|
<div class="add-people__user-pic">
|
|
<img alt="{{person.fullName}}" class="add-people__user-avatar" imgplaceholder="user"
|
|
thumbnail-img="{{'data:' + person.thumbnailMime + ';base64,' + person.thumbnail}}" />
|
|
</div>
|
|
<div class="add-people__details">
|
|
<div ux-id="people-name" class="nowrap-line font-semibold">{{person.fullName}}
|
|
<span ng-if="person.profileStatus === 'Offline'">{{'(' + person.profileStatus + ')'}}</span>
|
|
</div>
|
|
<span ux-id="people-organization" ng-if="person.organization">{{person.organization}}, </span><span>{{person.company.name}}</span>
|
|
</div>
|
|
</div>
|
|
<div ng-if="!showTypeaheadSearchBox() || (showTypeaheadSearchBox() && (typeaheadSearch.text.length > 2 || typeaheadSearch.text.length === 0))" ng-hide="selectedType=='people'" class="{{selectedPerson.name == person.name ? 'add-people__item_selected' : 'add-people__item'}} clearfix"
|
|
ng-repeat="person in filterResults = (searchPeople.results | filter : {name: searchPeople.filter})" ng-click="selectPerson(person)" ng-enter="selectPerson(person)" tabindex="0" aria-label="{{person.name}}{{'common.aria.labels.clickable' | i18n}}" >
|
|
<div>
|
|
<div ux-id="name" class="nowrap-line font-semibold">{{person.name}}</div>
|
|
<span ux-id="department" ng-if="selectedType=='department'">{{person.attributeMap.organizationName}}, {{person.attributeMap.companyName}}</span>
|
|
<span ux-id="supportgroup" ng-if="selectedType=='supportgroup'">{{person.organization}}, {{person.company.name}}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="action-blade__footer" role="region" aria-label="{{'common.region.action' | i18n}}">
|
|
<div ux-id="select-relationship-type-dropdown" class="add-people__role-section clearfix">
|
|
<label class="label_control-wrap">
|
|
<div class="control-label pull-left">{{'asset.actionBlade.addPeople.peopleRelationshipType.label' | i18n}}:</div>
|
|
<div class="add-people__role-dropdown">
|
|
<selection selection-items="peopleRelationshipTypes"
|
|
selected-item="selectedRelationshipType"
|
|
selection-callback="selectRelationshipType(item)"
|
|
title-text="{{'asset.actionBlade.addPeople.peopleRelationshipType.label' | i18n}}"
|
|
i18n-prefix="common.relationship.type.">
|
|
</selection>
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div class="action-blade__button-container" ng-if="!isConsoleMode">
|
|
<button ux-id="add-people-to-asset" type="submit" class="btn_primary" ng-disabled="state.dataIsLoading || !selectedPerson"
|
|
ng-click="addPeopleToAsset()">{{'asset.actionBlade.addPeople.add.button' | i18n}}</button>
|
|
<button type="button" class="btn_secondary" ng-disabled="state.dataIsLoading" ng-click="close()">{{'common.button.cancel' | i18n}}</button>
|
|
</div>
|
|
</div>
|
|
<span class="modal-content__508-hidden-span">{{'common.labels.508EndContent' | i18n}}</span>
|
|
</div> |