152 lines
8.7 KiB
HTML
152 lines
8.7 KiB
HTML
<div>
|
|
<div class="ci-search__header">{{'create.change.wizard.ci.search' | i18n}}</div>
|
|
<div class="ci-search__panel">
|
|
<div class="ci-search-section" ng-repeat="search in model.searches">
|
|
<div class="ci-search-section__summary">
|
|
<div class="ci-search-section__count">
|
|
<h1>{{search.totalMatchCount || '0'}}</h1>
|
|
<h3>{{'create.change.wizard.cis' | i18n}}</h3>
|
|
<button type="button" ng-if="search.results.length" class="btn_no-fill ci-search-section__results-toggle" ng-click="toggleResultsGrid(search)" tabindex="0">
|
|
<i ng-class="{'icon-plus' : !search.showResults}"></i>
|
|
<span>{{(search.showResults? 'create.change.wizard.ci.hide' : 'create.change.wizard.ci.select') | i18n}}</span>
|
|
</button>
|
|
</div>
|
|
|
|
<div class="ci_search-section_search_bar">
|
|
<div class="search_bar">
|
|
<form>
|
|
<label class="control-label"> </label>
|
|
<input type="text" class="assign-search" ng-model="search.searchKeywords" title="{{ (changeMetadata.systemConfigurations.isExclude_TAG_and_CI_ID ? 'create.change.wizard.ci.search.bar.isExcludedTag' :'create.change.wizard.ci.search.bar.isIncludedTag') | i18n}}" placeholder="{{ (changeMetadata.systemConfigurations.isExclude_TAG_and_CI_ID ? 'create.change.wizard.ci.search.bar.isExcludedTag' :'create.change.wizard.ci.search.bar.isIncludedTag') | i18n}}" ng-enter="searchCIs(search)" auto-focus />
|
|
</form>
|
|
<div class="ci-search-section__filters">
|
|
<search-filter filter-config="filterConfig" config="search.config" selected-filters="search.selectedFilters" search-keywords="search.searchKeywords" label="create.change.wizard.ci.addFilter" hide-pills="false" hide-closeicon="search.isSearching" display-limit="4" auto-focus></search-filter>
|
|
</div>
|
|
</div>
|
|
<div class="ci-search-section__relate_unrelate_section">
|
|
<div class="ci-search-section__action dropdown-input dropdown ci-search-section__relate_btn" ng-if="search.selectedCount">
|
|
<button type="button" class="dropdown-input__button btn_primary dropdown-toggle">
|
|
{{'create.change.wizard.ci.link' | i18n}} ({{search.allQueryResultsSelected ? search.totalMatchCount : search.selectedCount}})
|
|
</button>
|
|
<ul class="dropdown-menu">
|
|
<li ng-repeat="relation in selections.relations">
|
|
<div ng-click="linkCIs(search, relation)" class="dropdown-item" role="menuitem" tabindex="0">
|
|
{{'common.relationship.type.' + relation | i18n}}
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="ci-search-section__action ci-search-section__unrelate_btn" ng-if="search.selectedCount">
|
|
<button type="button" class="btn_secondary" ng-click="unlinkCIs(search)">{{'create.change.wizard.ci.unlink' | i18n}} ({{search.selectedCount}})</button>
|
|
</div>
|
|
</div>
|
|
<div class="ci-search-section__action-panel">
|
|
<div class="ci-search-section__searchBtn">
|
|
<button type="button" class="btn_secondary"
|
|
ng-disabled="(search.selectedFilters.length === 0 && search.searchKeywords.length === 0) || search.isSearching"
|
|
ng-click="searchCIs(search)">
|
|
{{'create.change.wizard.ci.performSearch' | i18n}}
|
|
</button>
|
|
<div loading-spinner if="search.isSearching" inline="true" centered="true" overlay="true"></div>
|
|
</div>
|
|
</div>
|
|
<div class="ci-search-section__save_presets" ng-if="search.selectedFilters.length > 0 || search.searchKeywords.length > 0">
|
|
<button type="button" class="btn_secondary" ng-click="savePresets(search, showCINameAsLink)">{{'create.change.wizard.ci.save.preset.button' | i18n}}</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ci-search-section__selected-count" ng-class="{'ci-search-section__selected-count_zero':search.linkedCount != null && search.linkedCount>=0, 'ci-search-section__selected-count_nonzero': search.linkedCount>0}" ng-if="search.linkedCount != null && search.linkedCount>=0">
|
|
<div class="icon-angle_right ci-search-section__selected-count_arrow" ng-click="toggleResultsGrid(search)" ng-enter="toggleResultsGrid(search)"
|
|
ng-class="{'icon-angle_right' : !search.showResults, 'icon-angle_down': search.showResults}" tabindex="0" aria-label="Toggle Results" role="link"></div>
|
|
<h1>{{search.linkedCount}}</h1>
|
|
<h5>{{'create.change.wizard.cis.linked' | i18n}}</h5>
|
|
</div>
|
|
</div>
|
|
<div class="ci-search-section__results" ng-if="search.showResults">
|
|
<div class="ci-search-selection__info" ng-if="search.allVisibleItemsSelected && !search.allQueryResultsSelected && search.totalMatchCount > search.results.length">
|
|
<span>{{'change.configurationItems.selectedCIsAmount.text' | i18n:search.selectedCount}}</span>
|
|
<span class="ci-search-selection__all-items-selector" ng-click="selectAllItemsInThisQuery(search,true)" ng-enter="selectAllItemsInThisQuery(search,true)" tabindex="0">{{"change.configurationItems.selectAllCIs.text" | i18n:search.totalMatchCount}}</span>
|
|
</div>
|
|
<div class="ci-search-selection__info" ng-if="search.allVisibleItemsSelected && search.allQueryResultsSelected">
|
|
<span>{{"change.configurationItems.allItemsAreSelected" | i18n:search.selectedCount}}</span>
|
|
<span class="ci-search-selection__all-items-selector" ng-click="selectAllItemsInThisQuery(search,false)" ng-enter="selectAllItemsInThisQuery(search,false)" tabindex="0">{{"change.configurationItems.clearSelection" | i18n}}</span>
|
|
</div>
|
|
<div ng-if="!userModel.isAccessibleUser" class="tc__list">
|
|
<div loading-spinner if="search.dataLoading" centered="true" overlay="true"></div>
|
|
<!--EW--><div class="gridStyle" ng-grid="search.gridOptions" ng-style="setGridWidth"></div>
|
|
</div>
|
|
<div ng-if="userModel.isAccessibleUser" class="tc__accessible">
|
|
<table>
|
|
<tbody>
|
|
<tr>
|
|
<th scope="col" id="ciselection">
|
|
<input type="checkbox" ng-model="selectAll" ng-change="selectAllCIs(search, selectAll, 'table')"
|
|
title="{{'filter.control.selectAll' | i18n}}" />
|
|
</th>
|
|
<th ng-repeat="column in search.tableColumns" ng-if="column.visible" scope="col">
|
|
<a ng-if="column.attributeName != 'type'" href ng-click="sortColumn(search, column)">
|
|
{{column.displayName | i18n}}
|
|
<i ng-class="{'icon-triangle_up' : column.sortOrder=='ASC', 'icon-triangle_down': column.sortOrder=='DESC'}"></i>
|
|
</a>
|
|
<div class="ci-search-section_linked_type_column" ng-if="column.attributeName == 'type'">
|
|
{{column.displayName | i18n}}
|
|
</div>
|
|
</th>
|
|
<th scope="col" id="cirelations" class="ci-search-section_linked">
|
|
{{'create.change.wizard.ci.linked' | i18n}}
|
|
</th>
|
|
</tr>
|
|
<tr ng-repeat="item in search.results" ng-class="{'row-selected': item.selected}" tabindex="0">
|
|
<td headers="ciselection">
|
|
<input type="checkbox" ng-model="item.selected" ng-change="selectCI(search, item, 'table')"
|
|
title="{{'common.button.select' | i18n}} {{item.name}}" />
|
|
</td>
|
|
<td headers="ciname">
|
|
{{item.name}}
|
|
</td>
|
|
<td headers="classid">
|
|
{{item.id}}
|
|
</td>
|
|
<td headers="type">
|
|
{{item.type}}
|
|
</td>
|
|
<td headers="cistatus">
|
|
{{item.status.value}}
|
|
</td>
|
|
<td headers="serialnumber">
|
|
{{item.assetExtension.serialNumber}}
|
|
</td>
|
|
<td headers="sitename">
|
|
{{item.site.name}}
|
|
</td>
|
|
<td headers="productname">
|
|
{{item.product.name}}
|
|
</td>
|
|
<td headers="cirelations">
|
|
<div class="tag_removable" ng-repeat="tag in item.relations">
|
|
{{'common.relationship.type.' + tag | i18n}}
|
|
<i class="icon-cross tag__remove" ng-click="removeLink(search, item, tag)" ng-enter="removeLink(search, item, tag)"
|
|
title="{{'common.button.remove' | i18n}}"
|
|
aria-label="{{'common.button.remove' | i18n}} {{'common.relationship.type.' + tag | i18n}} {{'resourceSlice.linkedItem.label' | i18n}}" role="link" tabindex="0"></i>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div ng-if="search.totalMatchCount > 100 && search.totalMatchCount > search.results.length" class="ci-search-section__show-more">
|
|
|
|
<a ng-if="!search.isSearching" ng-click="showMoreCIs(search)" ng-enter="showMoreCIs(search)" tabindex="0">
|
|
<span>{{"common.labels.showMore" | i18n}}</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<button type="button" class="btn_secondary ci-search-section__add_query" ng-click="addAdditionalQuery($event)">{{'create.change.wizard.ci.addQuery' | i18n}}</button>
|
|
</div>
|
|
<div class="ci-related-section" ng-if="currentRelatedCIs.length">
|
|
<div class="ci-related__header">{{'create.change.wizard.ci.template' | i18n}}</div>
|
|
<div ng-grid="relatedCIgridOtions" ng-style="getTableStyle()"></div>
|
|
</div>
|
|
</div>
|
|
</div> |