mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
[DURACOM-191] set map for search filters
This commit is contained in:
@@ -1,13 +1,17 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
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 { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component';
|
||||||
import { renderFacetFor } from '../search-filter-type-decorator';
|
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { FilterInputSuggestionsComponent } from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component';
|
import {
|
||||||
import { SearchFacetOptionComponent } from '../search-facet-filter-options/search-facet-option/search-facet-option.component';
|
FilterInputSuggestionsComponent
|
||||||
import { SearchFacetSelectedOptionComponent } from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component';
|
} from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component';
|
||||||
import { NgFor, NgIf, AsyncPipe } from '@angular/common';
|
import {
|
||||||
|
SearchFacetOptionComponent
|
||||||
|
} from '../search-facet-filter-options/search-facet-option/search-facet-option.component';
|
||||||
|
import {
|
||||||
|
SearchFacetSelectedOptionComponent
|
||||||
|
} from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component';
|
||||||
|
import { AsyncPipe, NgFor, NgIf } from '@angular/common';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-search-authority-filter',
|
selector: 'ds-search-authority-filter',
|
||||||
@@ -21,6 +25,5 @@ import { NgFor, NgIf, AsyncPipe } from '@angular/common';
|
|||||||
/**
|
/**
|
||||||
* Component that represents an authority facet for a specific filter configuration
|
* Component that represents an authority facet for a specific filter configuration
|
||||||
*/
|
*/
|
||||||
@renderFacetFor(FilterType.authority)
|
|
||||||
export class SearchAuthorityFilterComponent extends SearchFacetFilterComponent implements OnInit {
|
export class SearchAuthorityFilterComponent extends SearchFacetFilterComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
@@ -1,11 +1,13 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
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 { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { SearchFacetOptionComponent } from '../search-facet-filter-options/search-facet-option/search-facet-option.component';
|
import {
|
||||||
import { SearchFacetSelectedOptionComponent } from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component';
|
SearchFacetOptionComponent
|
||||||
import { NgFor, NgIf, AsyncPipe } from '@angular/common';
|
} from '../search-facet-filter-options/search-facet-option/search-facet-option.component';
|
||||||
|
import {
|
||||||
|
SearchFacetSelectedOptionComponent
|
||||||
|
} from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component';
|
||||||
|
import { AsyncPipe, NgFor, NgIf } from '@angular/common';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-search-boolean-filter',
|
selector: 'ds-search-boolean-filter',
|
||||||
@@ -19,6 +21,5 @@ import { NgFor, NgIf, AsyncPipe } from '@angular/common';
|
|||||||
/**
|
/**
|
||||||
* Component that represents a boolean facet for a specific filter configuration
|
* Component that represents a boolean facet for a specific filter configuration
|
||||||
*/
|
*/
|
||||||
@renderFacetFor(FilterType.boolean)
|
|
||||||
export class SearchBooleanFilterComponent extends SearchFacetFilterComponent implements OnInit {
|
export class SearchBooleanFilterComponent extends SearchFacetFilterComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,21 @@
|
|||||||
import { FilterType } from '../../models/filter-type.model';
|
import { FilterType } from '../../models/filter-type.model';
|
||||||
|
import { SearchTextFilterComponent } from './search-text-filter/search-text-filter.component';
|
||||||
|
import { SearchAuthorityFilterComponent } from './search-authority-filter/search-authority-filter.component';
|
||||||
|
import { SearchBooleanFilterComponent } from './search-boolean-filter/search-boolean-filter.component';
|
||||||
|
import { SearchHierarchyFilterComponent } from './search-hierarchy-filter/search-hierarchy-filter.component';
|
||||||
|
import { SearchRangeFilterComponent } from './search-range-filter/search-range-filter.component';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains the mapping between a facet component and a FilterType
|
* Contains the mapping between a facet component and a FilterType
|
||||||
*/
|
*/
|
||||||
const filterTypeMap = new Map();
|
const filterTypeMap = new Map();
|
||||||
|
|
||||||
|
filterTypeMap.set(FilterType.text, SearchTextFilterComponent);
|
||||||
|
filterTypeMap.set(FilterType.authority, SearchAuthorityFilterComponent);
|
||||||
|
filterTypeMap.set(FilterType.boolean, SearchBooleanFilterComponent);
|
||||||
|
filterTypeMap.set(FilterType.hierarchy, SearchHierarchyFilterComponent);
|
||||||
|
filterTypeMap.set(FilterType.range, SearchRangeFilterComponent);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the mapping for a facet component in relation to a filter type
|
* Sets the mapping for a facet component in relation to a filter type
|
||||||
* @param {FilterType} type The type for which the matching component is mapped
|
* @param {FilterType} type The type for which the matching component is mapped
|
||||||
|
@@ -1,6 +1,4 @@
|
|||||||
import { Component, Inject, OnInit } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { renderFacetFor } from '../search-filter-type-decorator';
|
|
||||||
import { FilterType } from '../../../models/filter-type.model';
|
|
||||||
import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component';
|
import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component';
|
||||||
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
|
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
|
||||||
import {
|
import {
|
||||||
@@ -10,7 +8,8 @@ import { SearchService } from '../../../../../core/shared/search/search.service'
|
|||||||
import {
|
import {
|
||||||
FILTER_CONFIG,
|
FILTER_CONFIG,
|
||||||
IN_PLACE_SEARCH,
|
IN_PLACE_SEARCH,
|
||||||
SearchFilterService, REFRESH_FILTER
|
REFRESH_FILTER,
|
||||||
|
SearchFilterService
|
||||||
} from '../../../../../core/shared/search/search-filter.service';
|
} from '../../../../../core/shared/search/search-filter.service';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service';
|
import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service';
|
||||||
@@ -18,20 +17,27 @@ import { SEARCH_CONFIG_SERVICE } from '../../../../../my-dspace-page/my-dspace-p
|
|||||||
import { SearchConfigurationService } from '../../../../../core/shared/search/search-configuration.service';
|
import { SearchConfigurationService } from '../../../../../core/shared/search/search-configuration.service';
|
||||||
import { SearchFilterConfig } from '../../../models/search-filter-config.model';
|
import { SearchFilterConfig } from '../../../models/search-filter-config.model';
|
||||||
import { FacetValue } from '../../../models/facet-value.model';
|
import { FacetValue } from '../../../models/facet-value.model';
|
||||||
import { getFacetValueForType } from '../../../search.utils';
|
import { addOperatorToFilterValue, getFacetValueForType } from '../../../search.utils';
|
||||||
import { filter, map, take } from 'rxjs/operators';
|
import { filter, map, take } from 'rxjs/operators';
|
||||||
import { VocabularyService } from '../../../../../core/submission/vocabularies/vocabulary.service';
|
import { VocabularyService } from '../../../../../core/submission/vocabularies/vocabulary.service';
|
||||||
import { Observable, BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject, Observable } from 'rxjs';
|
||||||
import { PageInfo } from '../../../../../core/shared/page-info.model';
|
import { PageInfo } from '../../../../../core/shared/page-info.model';
|
||||||
import { environment } from '../../../../../../environments/environment';
|
import { environment } from '../../../../../../environments/environment';
|
||||||
import { addOperatorToFilterValue } from '../../../search.utils';
|
import {
|
||||||
import { VocabularyTreeviewModalComponent } from '../../../../form/vocabulary-treeview-modal/vocabulary-treeview-modal.component';
|
VocabularyTreeviewModalComponent
|
||||||
|
} from '../../../../form/vocabulary-treeview-modal/vocabulary-treeview-modal.component';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { FilterInputSuggestionsComponent } from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component';
|
import {
|
||||||
import { SearchFacetOptionComponent } from '../search-facet-filter-options/search-facet-option/search-facet-option.component';
|
FilterInputSuggestionsComponent
|
||||||
import { SearchFacetSelectedOptionComponent } from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component';
|
} from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component';
|
||||||
import { NgFor, NgIf, AsyncPipe, LowerCasePipe } from '@angular/common';
|
import {
|
||||||
|
SearchFacetOptionComponent
|
||||||
|
} from '../search-facet-filter-options/search-facet-option/search-facet-option.component';
|
||||||
|
import {
|
||||||
|
SearchFacetSelectedOptionComponent
|
||||||
|
} from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component';
|
||||||
|
import { AsyncPipe, LowerCasePipe, NgFor, NgIf } from '@angular/common';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-search-hierarchy-filter',
|
selector: 'ds-search-hierarchy-filter',
|
||||||
@@ -45,7 +51,6 @@ import { NgFor, NgIf, AsyncPipe, LowerCasePipe } from '@angular/common';
|
|||||||
/**
|
/**
|
||||||
* Component that represents a hierarchy facet for a specific filter configuration
|
* Component that represents a hierarchy facet for a specific filter configuration
|
||||||
*/
|
*/
|
||||||
@renderFacetFor(FilterType.hierarchy)
|
|
||||||
export class SearchHierarchyFilterComponent extends SearchFacetFilterComponent implements OnInit {
|
export class SearchHierarchyFilterComponent extends SearchFacetFilterComponent implements OnInit {
|
||||||
|
|
||||||
constructor(protected searchService: SearchService,
|
constructor(protected searchService: SearchService,
|
||||||
|
@@ -1,11 +1,9 @@
|
|||||||
import { BehaviorSubject, combineLatest as observableCombineLatest, Subscription } from 'rxjs';
|
import { BehaviorSubject, combineLatest as observableCombineLatest, Subscription } from 'rxjs';
|
||||||
import { map, startWith } from 'rxjs/operators';
|
import { map, startWith } from 'rxjs/operators';
|
||||||
import { isPlatformBrowser, NgIf, NgFor, AsyncPipe } from '@angular/common';
|
import { AsyncPipe, isPlatformBrowser, NgFor, NgIf } from '@angular/common';
|
||||||
import { Component, Inject, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core';
|
import { Component, Inject, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core';
|
||||||
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service';
|
import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service';
|
||||||
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 { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component';
|
||||||
import { SearchFilterConfig } from '../../../models/search-filter-config.model';
|
import { SearchFilterConfig } from '../../../models/search-filter-config.model';
|
||||||
import {
|
import {
|
||||||
@@ -21,7 +19,9 @@ import { SearchConfigurationService } from '../../../../../core/shared/search/se
|
|||||||
import { RouteService } from '../../../../../core/services/route.service';
|
import { RouteService } from '../../../../../core/services/route.service';
|
||||||
import { hasValue } from '../../../../empty.util';
|
import { hasValue } from '../../../../empty.util';
|
||||||
import { yearFromString } from 'src/app/shared/date.util';
|
import { yearFromString } from 'src/app/shared/date.util';
|
||||||
import { SearchFacetRangeOptionComponent } from '../search-facet-filter-options/search-facet-range-option/search-facet-range-option.component';
|
import {
|
||||||
|
SearchFacetRangeOptionComponent
|
||||||
|
} from '../search-facet-filter-options/search-facet-range-option/search-facet-range-option.component';
|
||||||
import { DebounceDirective } from '../../../../utils/debounce.directive';
|
import { DebounceDirective } from '../../../../utils/debounce.directive';
|
||||||
import { NouisliderComponent } from 'ng2-nouislider';
|
import { NouisliderComponent } from 'ng2-nouislider';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
@@ -53,7 +53,6 @@ export const RANGE_FILTER_MAX_SUFFIX = '.max';
|
|||||||
/**
|
/**
|
||||||
* Component that represents a range facet for a specific filter configuration
|
* Component that represents a range facet for a specific filter configuration
|
||||||
*/
|
*/
|
||||||
@renderFacetFor(FilterType.range)
|
|
||||||
export class SearchRangeFilterComponent extends SearchFacetFilterComponent implements OnInit, OnDestroy {
|
export class SearchRangeFilterComponent extends SearchFacetFilterComponent implements OnInit, OnDestroy {
|
||||||
/**
|
/**
|
||||||
* Fallback minimum for the range
|
* Fallback minimum for the range
|
||||||
|
@@ -1,14 +1,18 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
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 { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component';
|
||||||
import { renderFacetFor } from '../search-filter-type-decorator';
|
|
||||||
import { addOperatorToFilterValue, } from '../../../search.utils';
|
import { addOperatorToFilterValue, } from '../../../search.utils';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { FilterInputSuggestionsComponent } from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component';
|
import {
|
||||||
import { SearchFacetOptionComponent } from '../search-facet-filter-options/search-facet-option/search-facet-option.component';
|
FilterInputSuggestionsComponent
|
||||||
import { SearchFacetSelectedOptionComponent } from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component';
|
} from '../../../../input-suggestions/filter-suggestions/filter-input-suggestions.component';
|
||||||
import { NgFor, NgIf, AsyncPipe } from '@angular/common';
|
import {
|
||||||
|
SearchFacetOptionComponent
|
||||||
|
} from '../search-facet-filter-options/search-facet-option/search-facet-option.component';
|
||||||
|
import {
|
||||||
|
SearchFacetSelectedOptionComponent
|
||||||
|
} from '../search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component';
|
||||||
|
import { AsyncPipe, NgFor, NgIf } from '@angular/common';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component renders a simple item page.
|
* This component renders a simple item page.
|
||||||
@@ -28,7 +32,6 @@ import { NgFor, NgIf, AsyncPipe } from '@angular/common';
|
|||||||
/**
|
/**
|
||||||
* Component that represents a text facet for a specific filter configuration
|
* Component that represents a text facet for a specific filter configuration
|
||||||
*/
|
*/
|
||||||
@renderFacetFor(FilterType.text)
|
|
||||||
export class SearchTextFilterComponent extends SearchFacetFilterComponent implements OnInit {
|
export class SearchTextFilterComponent extends SearchFacetFilterComponent implements OnInit {
|
||||||
/**
|
/**
|
||||||
* Submits a new active custom value to the filter from the input field
|
* Submits a new active custom value to the filter from the input field
|
||||||
|
Reference in New Issue
Block a user