Skip to content

Commit 2ca575c

Browse files
Andrea Barbassovins01-4science
authored andcommitted
Merged in task/dspace-cris-2023_02_x/DSC-2262 (pull request DSpace#2985)
[DSC-2262] fix search filters taking only the first filter for each key Approved-by: Francesco Molinaro
2 parents b1f483a + c0dc687 commit 2ca575c

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

src/app/core/itemexportformat/item-export-format.service.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ describe('ItemExportFormatService', () => {
115115
const searchOptions = new PaginatedSearchOptions({
116116
query: 'queryX',
117117
filters: [
118-
new SearchFilter('f.name', ['nameX']),
118+
new SearchFilter('f.name', ['nameX', 'nameY']),
119119
new SearchFilter('f.type', ['typeX']),
120120
new SearchFilter('other.name', ['nameY'])
121121
],
@@ -128,7 +128,7 @@ describe('ItemExportFormatService', () => {
128128
Object.assign(new ProcessParameter(), { name: '-f', value: 'publication-xml' }),
129129
Object.assign(new ProcessParameter(), { name: '-t', value: 'Publication' }),
130130
Object.assign(new ProcessParameter(), { name: '-q', value: 'queryX' }),
131-
Object.assign(new ProcessParameter(), { name: '-sf', value: 'name=nameX&type=typeX' }),
131+
Object.assign(new ProcessParameter(), { name: '-sf', value: 'name=nameX&name=nameY&type=typeX' }),
132132
Object.assign(new ProcessParameter(), { name: '-s', value: 'scopeX' }),
133133
Object.assign(new ProcessParameter(), { name: '-c', value: 'configurationX' }),
134134
Object.assign(new ProcessParameter(), { name: '-so', value: 'fieldX,ASC' }),

src/app/core/itemexportformat/item-export-format.service.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,10 @@ export class ItemExportFormatService extends IdentifiableDataService<ItemExportF
192192
if (searchOptions.filters && searchOptions.filters.length > 0) {
193193
const value = searchOptions.filters
194194
.filter((searchFilter) => searchFilter.key.includes('f.'))
195-
.map((searchFilter) => searchFilter.key.replace('f.', '') + '=' + searchFilter.values[0])
195+
.map((searchFilter) => {
196+
const key = searchFilter.key.replace('f.', '');
197+
return searchFilter.values.map((filterValue) => `${key}=${filterValue}`).join('&');
198+
})
196199
.join('&');
197200
return [...parameterValues, Object.assign(new ProcessParameter(), { name: '-sf', value })];
198201
}

0 commit comments

Comments
 (0)