mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
[ACS-9010] Loading spinner is not shown on search results page when filtering for files or folders (#10434)
This commit is contained in:
parent
48e9d56453
commit
5461bedb3e
@ -15,17 +15,17 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Subject, Observable, from, ReplaySubject, BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject, from, Observable, ReplaySubject, Subject } from 'rxjs';
|
||||||
import { AppConfigService } from '@alfresco/adf-core';
|
import { AppConfigService } from '@alfresco/adf-core';
|
||||||
import {
|
import {
|
||||||
SearchRequest,
|
|
||||||
RequestFacetFields,
|
RequestFacetFields,
|
||||||
RequestSortDefinitionInner,
|
|
||||||
ResultSetPaging,
|
|
||||||
RequestHighlight,
|
RequestHighlight,
|
||||||
RequestScope,
|
RequestScope,
|
||||||
|
RequestSortDefinitionInner,
|
||||||
|
ResultSetPaging,
|
||||||
|
SEARCH_LANGUAGE,
|
||||||
SearchApi,
|
SearchApi,
|
||||||
SEARCH_LANGUAGE
|
SearchRequest
|
||||||
} from '@alfresco/js-api';
|
} from '@alfresco/js-api';
|
||||||
import { SearchCategory } from '../models/search-category.interface';
|
import { SearchCategory } from '../models/search-category.interface';
|
||||||
import { FilterQuery } from '../models/filter-query.interface';
|
import { FilterQuery } from '../models/filter-query.interface';
|
||||||
@ -68,6 +68,9 @@ export abstract class BaseQueryBuilderService {
|
|||||||
/* Stream that emits search forms */
|
/* Stream that emits search forms */
|
||||||
searchForms = new ReplaySubject<SearchForm[]>(1);
|
searchForms = new ReplaySubject<SearchForm[]>(1);
|
||||||
|
|
||||||
|
/* Stream that emits void when change in filterQueries */
|
||||||
|
filterQueryUpdate = new Subject<void>();
|
||||||
|
|
||||||
/* Stream that emits the initial value for some or all search filters */
|
/* Stream that emits the initial value for some or all search filters */
|
||||||
populateFilters = new BehaviorSubject<{ [key: string]: any }>({});
|
populateFilters = new BehaviorSubject<{ [key: string]: any }>({});
|
||||||
|
|
||||||
@ -247,6 +250,7 @@ export abstract class BaseQueryBuilderService {
|
|||||||
const existing = this.filterQueries.find((filterQuery) => filterQuery.query === query);
|
const existing = this.filterQueries.find((filterQuery) => filterQuery.query === query);
|
||||||
if (!existing) {
|
if (!existing) {
|
||||||
this.filterQueries.push({ query });
|
this.filterQueries.push({ query });
|
||||||
|
this.filterQueryUpdate.next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -259,6 +263,7 @@ export abstract class BaseQueryBuilderService {
|
|||||||
removeFilterQuery(query: string): void {
|
removeFilterQuery(query: string): void {
|
||||||
if (query) {
|
if (query) {
|
||||||
this.filterQueries = this.filterQueries.filter((filterQuery) => filterQuery.query !== query);
|
this.filterQueries = this.filterQueries.filter((filterQuery) => filterQuery.query !== query);
|
||||||
|
this.filterQueryUpdate.next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,6 +201,14 @@ describe('SearchQueryBuilder', () => {
|
|||||||
expect(builder.filterQueries.length).toBe(2);
|
expect(builder.filterQueries.length).toBe(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should call filterQueryUpdate after adding or removing filterQuery', () => {
|
||||||
|
const builder = createQueryBuilder();
|
||||||
|
spyOn(builder.filterQueryUpdate, 'next');
|
||||||
|
builder.addFilterQuery('q1');
|
||||||
|
builder.removeFilterQuery('q1');
|
||||||
|
expect(builder.filterQueryUpdate.next).toHaveBeenCalledTimes(2);
|
||||||
|
});
|
||||||
|
|
||||||
it('should fetch facet query from config', () => {
|
it('should fetch facet query from config', () => {
|
||||||
const config: SearchConfiguration = {
|
const config: SearchConfiguration = {
|
||||||
categories: [],
|
categories: [],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user