From 02b124f7dd0f0dcf222e86c8c335d357f556b3d8 Mon Sep 17 00:00:00 2001 From: nikunj59 Date: Mon, 13 Jun 2022 17:38:07 +0530 Subject: [PATCH 1/6] CST-6056 changes for filter result not working while lookup from text input --- .../search-facet-option.component.html | 4 +-- .../search-facet-filter.component.ts | 29 +++++++++---------- .../search-hierarchy-filter.component.html | 2 +- .../search-hierarchy-filter.component.ts | 5 +++- .../search-text-filter.component.html | 2 +- .../search-text-filter.component.ts | 5 +++- 6 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-option/search-facet-option.component.html b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-option/search-facet-option.component.html index e2e57e7370..3c15eff127 100644 --- a/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-option/search-facet-option.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-facet-filter-options/search-facet-option/search-facet-option.component.html @@ -9,6 +9,6 @@ - {{filterValue.count}} - + {{filterValue.count}} + diff --git a/src/app/shared/search/search-filters/search-filter/search-facet-filter/search-facet-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-facet-filter/search-facet-filter.component.ts index 4f226add54..edcd88cd21 100644 --- a/src/app/shared/search/search-filters/search-filter/search-facet-filter/search-facet-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-facet-filter/search-facet-filter.component.ts @@ -236,22 +236,21 @@ export class SearchFacetFilterComponent implements OnInit, OnDestroy { onSubmit(data: any) { if (data.match(new RegExp(`^.+,(equals|query|authority)$`))) { this.selectedValues$.pipe(take(1)).subscribe((selectedValues) => { - if (isNotEmpty(data)) { - this.router.navigate(this.getSearchLinkParts(), { - queryParams: - { - [this.filterConfig.paramName]: [ - ...selectedValues.map((facet) => this.getFacetValue(facet)), - data - ] - }, - queryParamsHandling: 'merge' - }); - this.filter = ''; - } - this.filterSearchResults = observableOf([]); + if (isNotEmpty(data)) { + this.router.navigate(this.getSearchLinkParts(), { + queryParams: + { + [this.filterConfig.paramName]: [ + ...selectedValues.map((facet) => this.getFacetValue(facet)), + data + ] + }, + queryParamsHandling: 'merge' + }); + this.filter = ''; } - ); + this.filterSearchResults = observableOf([]); + }); } } diff --git a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.html b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.html index 49ca6fe3fd..02f2bc6336 100644 --- a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.html @@ -24,7 +24,7 @@ [name]="filterConfig.paramName" [(ngModel)]="filter" (submitSuggestion)="onSubmit($event)" - (clickSuggestion)="onClick($event)" + (clickSuggestion)="onSubmit($event)" (findSuggestions)="findSuggestions($event)" ngDefaultControl > diff --git a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts index b3349a5dd9..a6e9fb4a00 100644 --- a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts @@ -3,6 +3,7 @@ import { FilterType } from '../../../models/filter-type.model'; import { renderFacetFor } from '../search-filter-type-decorator'; import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component'; import { addOperatorToFilterValue } from '../../../search.utils'; +import { InputSuggestion } from '../../../../input-suggestions/input-suggestions.model'; @Component({ selector: 'ds-search-hierarchy-filter', @@ -22,6 +23,8 @@ export class SearchHierarchyFilterComponent extends SearchFacetFilterComponent i * @param data The string from the input field */ onSubmit(data: any) { - super.onSubmit(addOperatorToFilterValue(data, 'query')); + this.filterSearchResults.subscribe((filterSearchResults: InputSuggestion[]) => { + super.onSubmit(addOperatorToFilterValue(data, filterSearchResults.length ? 'equals' : 'query')); + }); } } diff --git a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.html b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.html index fdf154bc04..44aed494e3 100644 --- a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.html @@ -24,7 +24,7 @@ [name]="filterConfig.paramName" [(ngModel)]="filter" (submitSuggestion)="onSubmit($event)" - (clickSuggestion)="onClick($event)" + (clickSuggestion)="onSubmit($event)" (findSuggestions)="findSuggestions($event)" ngDefaultControl> diff --git a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts index cfd81c3750..62c10e4c61 100644 --- a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts @@ -3,6 +3,7 @@ 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'; +import { InputSuggestion } from '../../../../input-suggestions/input-suggestions.model'; /** * This component renders a simple item page. @@ -28,6 +29,8 @@ export class SearchTextFilterComponent extends SearchFacetFilterComponent implem * @param data The string from the input field */ onSubmit(data: any) { - super.onSubmit(addOperatorToFilterValue(data, 'query')); + this.filterSearchResults.subscribe((filterSearchResults: InputSuggestion[]) => { + super.onSubmit(addOperatorToFilterValue(data, filterSearchResults.length ? 'equals' : 'query')); + }); } } From f39283cae587c5b5de78053b56f4d58c1237dd9d Mon Sep 17 00:00:00 2001 From: nikunj59 Date: Tue, 14 Jun 2022 14:56:41 +0530 Subject: [PATCH 2/6] CST-6051 changes description tool tip and truncate text --- .../item-bitstreams/item-bitstreams.component.scss | 4 ++++ .../item-edit-bitstream/item-edit-bitstream.component.html | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/app/item-page/edit-item-page/item-bitstreams/item-bitstreams.component.scss b/src/app/item-page/edit-item-page/item-bitstreams/item-bitstreams.component.scss index 46d172dadc..7de575b785 100644 --- a/src/app/item-page/edit-item-page/item-bitstreams/item-bitstreams.component.scss +++ b/src/app/item-page/edit-item-page/item-bitstreams/item-bitstreams.component.scss @@ -50,3 +50,7 @@ cursor: grabbing; } } + +:host ::ng-deep .larger-tooltip .tooltip-inner { + max-width: 500px; +} diff --git a/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.html b/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.html index 5d1edb847f..0f0fad2199 100644 --- a/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.html +++ b/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream/item-edit-bitstream.component.html @@ -9,9 +9,10 @@
- - {{ bitstream?.firstMetadataValue('dc.description') }} - +
+ {{ bitstream?.firstMetadataValue('dc.description') }} +
From 9bcd92efae532ac1724a7ace99873e720dd227f4 Mon Sep 17 00:00:00 2001 From: Giuseppe Digilio Date: Wed, 15 Jun 2022 15:08:16 +0200 Subject: [PATCH 3/6] [CST-6056] optimize fix to issue with filter suggestion --- .../search-facet-filter.component.ts | 53 +++++++++++-------- .../search-hierarchy-filter.component.html | 2 +- .../search-hierarchy-filter.component.ts | 5 +- .../search-text-filter.component.html | 2 +- .../search-text-filter.component.ts | 5 +- src/app/shared/search/search.utils.spec.ts | 4 +- src/app/shared/search/search.utils.ts | 2 +- 7 files changed, 38 insertions(+), 35 deletions(-) diff --git a/src/app/shared/search/search-filters/search-filter/search-facet-filter/search-facet-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-facet-filter/search-facet-filter.component.ts index edcd88cd21..c754d80a79 100644 --- a/src/app/shared/search/search-filters/search-filter/search-facet-filter/search-facet-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-facet-filter/search-facet-filter.component.ts @@ -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 { getFacetValueForType, stripOperatorFromFilterValue } from '../../../search.utils'; +import { addOperatorToFilterValue, getFacetValueForType, stripOperatorFromFilterValue } from '../../../search.utils'; import { createPendingRemoteDataObject } from '../../../../remote-data.utils'; @Component({ @@ -234,32 +234,16 @@ export class SearchFacetFilterComponent implements OnInit, OnDestroy { * @param data The string from the input field */ onSubmit(data: any) { - if (data.match(new RegExp(`^.+,(equals|query|authority)$`))) { - this.selectedValues$.pipe(take(1)).subscribe((selectedValues) => { - if (isNotEmpty(data)) { - this.router.navigate(this.getSearchLinkParts(), { - queryParams: - { - [this.filterConfig.paramName]: [ - ...selectedValues.map((facet) => this.getFacetValue(facet)), - data - ] - }, - queryParamsHandling: 'merge' - }); - this.filter = ''; - } - this.filterSearchResults = observableOf([]); - }); - } + this.applyFilterValue(data); } /** - * On click, set the input's value to the clicked data - * @param data The value of the option that was clicked + * 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 */ onClick(data: any) { - this.filter = data; + this.applyFilterValue(addOperatorToFilterValue(data, 'equals')); } /** @@ -307,6 +291,31 @@ export class SearchFacetFilterComponent implements OnInit, OnDestroy { } } + /** + * Build the filter query using the value given and apply to the search. + * @param data The string from the input field + */ + protected applyFilterValue(data) { + if (data.match(new RegExp(`^.+,(equals|query|authority)$`))) { + this.selectedValues$.pipe(take(1)).subscribe((selectedValues) => { + if (isNotEmpty(data)) { + this.router.navigate(this.getSearchLinkParts(), { + queryParams: + { + [this.filterConfig.paramName]: [ + ...selectedValues.map((facet) => this.getFacetValue(facet)), + data + ] + }, + queryParamsHandling: 'merge' + }); + this.filter = ''; + } + this.filterSearchResults = observableOf([]); + }); + } + } + /** * Retrieve facet value */ diff --git a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.html b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.html index 02f2bc6336..49ca6fe3fd 100644 --- a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.html @@ -24,7 +24,7 @@ [name]="filterConfig.paramName" [(ngModel)]="filter" (submitSuggestion)="onSubmit($event)" - (clickSuggestion)="onSubmit($event)" + (clickSuggestion)="onClick($event)" (findSuggestions)="findSuggestions($event)" ngDefaultControl > diff --git a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts index a6e9fb4a00..b3349a5dd9 100644 --- a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts @@ -3,7 +3,6 @@ import { FilterType } from '../../../models/filter-type.model'; import { renderFacetFor } from '../search-filter-type-decorator'; import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component'; import { addOperatorToFilterValue } from '../../../search.utils'; -import { InputSuggestion } from '../../../../input-suggestions/input-suggestions.model'; @Component({ selector: 'ds-search-hierarchy-filter', @@ -23,8 +22,6 @@ export class SearchHierarchyFilterComponent extends SearchFacetFilterComponent i * @param data The string from the input field */ onSubmit(data: any) { - this.filterSearchResults.subscribe((filterSearchResults: InputSuggestion[]) => { - super.onSubmit(addOperatorToFilterValue(data, filterSearchResults.length ? 'equals' : 'query')); - }); + super.onSubmit(addOperatorToFilterValue(data, 'query')); } } diff --git a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.html b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.html index 44aed494e3..fdf154bc04 100644 --- a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.html @@ -24,7 +24,7 @@ [name]="filterConfig.paramName" [(ngModel)]="filter" (submitSuggestion)="onSubmit($event)" - (clickSuggestion)="onSubmit($event)" + (clickSuggestion)="onClick($event)" (findSuggestions)="findSuggestions($event)" ngDefaultControl>
diff --git a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts index 62c10e4c61..cfd81c3750 100644 --- a/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-text-filter/search-text-filter.component.ts @@ -3,7 +3,6 @@ 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'; -import { InputSuggestion } from '../../../../input-suggestions/input-suggestions.model'; /** * This component renders a simple item page. @@ -29,8 +28,6 @@ export class SearchTextFilterComponent extends SearchFacetFilterComponent implem * @param data The string from the input field */ onSubmit(data: any) { - this.filterSearchResults.subscribe((filterSearchResults: InputSuggestion[]) => { - super.onSubmit(addOperatorToFilterValue(data, filterSearchResults.length ? 'equals' : 'query')); - }); + super.onSubmit(addOperatorToFilterValue(data, 'query')); } } diff --git a/src/app/shared/search/search.utils.spec.ts b/src/app/shared/search/search.utils.spec.ts index 75735093e8..70bf9a43a0 100644 --- a/src/app/shared/search/search.utils.spec.ts +++ b/src/app/shared/search/search.utils.spec.ts @@ -66,11 +66,11 @@ describe('Search Utils', () => { describe('addOperatorToFilterValue', () => { it('should add the operator to the value', () => { - expect(addOperatorToFilterValue('value', 'operator')).toEqual('value,operator'); + expect(addOperatorToFilterValue('value', 'equals')).toEqual('value,equals'); }); it('shouldn\'t add the operator to the value if it already contains the operator', () => { - expect(addOperatorToFilterValue('value,operator', 'operator')).toEqual('value,operator'); + expect(addOperatorToFilterValue('value,equals', 'equals')).toEqual('value,equals'); }); }); diff --git a/src/app/shared/search/search.utils.ts b/src/app/shared/search/search.utils.ts index 4d688d48eb..cfb96a5285 100644 --- a/src/app/shared/search/search.utils.ts +++ b/src/app/shared/search/search.utils.ts @@ -49,7 +49,7 @@ export function stripOperatorFromFilterValue(value: string) { * @param operator */ export function addOperatorToFilterValue(value: string, operator: string) { - if (!value.endsWith(`,${operator}`)) { + if (!value.match(new RegExp(`^.+,(equals|query|authority)$`))) { return `${value},${operator}`; } return value; From 6abef910948da318fdf0d026cbec7f59466c4d5f Mon Sep 17 00:00:00 2001 From: Giuseppe Digilio Date: Mon, 20 Jun 2022 18:21:55 +0200 Subject: [PATCH 4/6] [CST-6056] use authority operator for authority facet --- .../search-authority-filter.component.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.ts index 6dcb47ce9f..fc76f62d95 100644 --- a/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.ts @@ -2,6 +2,7 @@ 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', @@ -15,4 +16,13 @@ import { renderFacetFor } from '../search-filter-type-decorator'; */ @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')); + } } From ac41e7b3d60cc14486dea6af02559b5999e125db Mon Sep 17 00:00:00 2001 From: Giuseppe Digilio Date: Mon, 20 Jun 2022 18:32:28 +0200 Subject: [PATCH 5/6] [CST-6056] use onClick method on clickSuggestion for authority filter --- .../search-authority-filter.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.html b/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.html index 44aed494e3..fdf154bc04 100644 --- a/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.html +++ b/src/app/shared/search/search-filters/search-filter/search-authority-filter/search-authority-filter.component.html @@ -24,7 +24,7 @@ [name]="filterConfig.paramName" [(ngModel)]="filter" (submitSuggestion)="onSubmit($event)" - (clickSuggestion)="onSubmit($event)" + (clickSuggestion)="onClick($event)" (findSuggestions)="findSuggestions($event)" ngDefaultControl> From 20314d462009dba9a852be10ab59e3fdab5a7708 Mon Sep 17 00:00:00 2001 From: Giuseppe Digilio Date: Tue, 21 Jun 2022 13:37:42 +0200 Subject: [PATCH 6/6] [CST-6056] Fix issue with authority suggestion by adding the filter query in the input suggestion object --- .../filter-input-suggestions.component.html | 2 +- .../filter-input-suggestions.component.spec.ts | 2 +- .../filter-input-suggestions.component.ts | 4 ++-- .../input-suggestions/input-suggestions.model.ts | 8 ++++++++ .../search-authority-filter.component.ts | 10 ---------- .../search-facet-filter.component.ts | 11 ++++++----- 6 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/app/shared/input-suggestions/filter-suggestions/filter-input-suggestions.component.html b/src/app/shared/input-suggestions/filter-suggestions/filter-input-suggestions.component.html index 3b150a46c9..726dc9ca0e 100644 --- a/src/app/shared/input-suggestions/filter-suggestions/filter-input-suggestions.component.html +++ b/src/app/shared/input-suggestions/filter-suggestions/filter-input-suggestions.component.html @@ -27,7 +27,7 @@