[CST-6056] Fix issue with authority suggestion by adding the filter query in the input suggestion object

This commit is contained in:
Giuseppe Digilio
2022-06-21 13:37:42 +02:00
parent ac41e7b3d6
commit 20314d4620
6 changed files with 18 additions and 19 deletions

View File

@@ -27,7 +27,7 @@
<div class="autocomplete dropdown-menu" [ngClass]="{'show': (show | async) && isNotEmpty(suggestions)}">
<div class="dropdown-list">
<div *ngFor="let suggestionOption of suggestions">
<a href="javascript:void(0);" class="d-block dropdown-item" (click)="onClickSuggestion(suggestionOption.value)" #suggestion>
<a href="javascript:void(0);" class="d-block dropdown-item" (click)="onClickSuggestion(suggestionOption)" #suggestion>
<span [innerHTML]="suggestionOption.displayValue"></span>
</a>
</div>

View File

@@ -51,7 +51,7 @@ describe('FilterInputSuggestionsComponent', () => {
fixture.detectChanges();
});
it('should call onClickSuggestion() with the suggestion as a parameter', () => {
expect(comp.onClickSuggestion).toHaveBeenCalledWith(suggestions[clickedIndex].value);
expect(comp.onClickSuggestion).toHaveBeenCalledWith(suggestions[clickedIndex]);
});
});
});

View File

@@ -32,8 +32,8 @@ export class FilterInputSuggestionsComponent extends InputSuggestionsComponent {
this.submitSuggestion.emit(data);
}
onClickSuggestion(data) {
this.value = data;
onClickSuggestion(data: InputSuggestion) {
this.value = data.value;
this.clickSuggestion.emit(data);
this.close();
this.blockReopen = true;

View File

@@ -7,6 +7,14 @@ export interface InputSuggestion {
*/
displayValue: string;
/**
* The search query that can be used with filter suggestion.
* It contains the value within the operator :
* - value,equals
* - value,authority
*/
query?: string;
/**
* The actual value of the suggestion
*/

View File

@@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core';
import { FilterType } from '../../../models/filter-type.model';
import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component';
import { renderFacetFor } from '../search-filter-type-decorator';
import { addOperatorToFilterValue } from '../../../search.utils';
@Component({
selector: 'ds-search-authority-filter',
@@ -16,13 +15,4 @@ import { addOperatorToFilterValue } from '../../../search.utils';
*/
@renderFacetFor(FilterType.authority)
export class SearchAuthorityFilterComponent extends SearchFacetFilterComponent implements OnInit {
/**
* Submits a selected filter value to the filter
* Adds the "authority" operator to the received data before passing it on
* @param data The string selected from input suggestions
*/
onClick(data: any) {
this.applyFilterValue(addOperatorToFilterValue(data, 'authority'));
}
}

View File

@@ -29,7 +29,7 @@ import { InputSuggestion } from '../../../../input-suggestions/input-suggestions
import { SearchOptions } from '../../../models/search-options.model';
import { SEARCH_CONFIG_SERVICE } from '../../../../../my-dspace-page/my-dspace-page.component';
import { currentPath } from '../../../../utils/route.utils';
import { addOperatorToFilterValue, getFacetValueForType, stripOperatorFromFilterValue } from '../../../search.utils';
import { getFacetValueForType, stripOperatorFromFilterValue } from '../../../search.utils';
import { createPendingRemoteDataObject } from '../../../../remote-data.utils';
@Component({
@@ -239,11 +239,11 @@ export class SearchFacetFilterComponent implements OnInit, OnDestroy {
/**
* Submits a selected filter value to the filter
* Adds the "equals" operator to the received data before passing it on
* @param data The string selected from input suggestions
* Take the query from the InputSuggestion object
* @param data The input suggestion selected
*/
onClick(data: any) {
this.applyFilterValue(addOperatorToFilterValue(data, 'equals'));
onClick(data: InputSuggestion) {
this.applyFilterValue(data.query);
}
/**
@@ -279,6 +279,7 @@ export class SearchFacetFilterComponent implements OnInit, OnDestroy {
return rd.payload.page.map((facet) => {
return {
displayValue: this.getDisplayValue(facet, data),
query: this.getFacetValue(facet),
value: stripOperatorFromFilterValue(this.getFacetValue(facet))
};
});