moved search module contents to shared

This commit is contained in:
lotte
2019-07-10 13:17:28 +02:00
parent 7f3dab9fc0
commit 42c690dfd4
149 changed files with 598 additions and 559 deletions

View File

@@ -2,8 +2,8 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { BehaviorSubject, of as observableOf, Observable, Subject } from 'rxjs';
import { filter, flatMap, map, startWith, switchMap, take, tap } from 'rxjs/operators';
import { PaginatedSearchOptions } from '../+search-page/paginated-search-options.model';
import { SearchService } from '../+search-page/search-service/search.service';
import { PaginatedSearchOptions } from '../shared/search/paginated-search-options.model';
import { SearchService } from '../core/shared/search/search.service';
import { SortDirection, SortOptions } from '../core/cache/models/sort-options.model';
import { CollectionDataService } from '../core/data/collection-data.service';
import { PaginatedList } from '../core/data/paginated-list';

View File

@@ -9,7 +9,7 @@ import { CreateCollectionPageComponent } from './create-collection-page/create-c
import { CollectionFormComponent } from './collection-form/collection-form.component';
import { EditCollectionPageComponent } from './edit-collection-page/edit-collection-page.component';
import { DeleteCollectionPageComponent } from './delete-collection-page/delete-collection-page.component';
import { SearchService } from '../+search-page/search-service/search.service';
import { SearchService } from '../core/shared/search/search.service';
@NgModule({
imports: [

View File

@@ -5,7 +5,7 @@ import { GenericItemPageFieldComponent } from '../../field-components/specific-f
import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { ITEM } from '../../../../shared/items/switcher/item-type-switcher.component';
import { ItemDataService } from '../../../../core/data/item-data.service';
import { SearchFixedFilterService } from '../../../../+search-page/search-filters/search-filter/search-fixed-filter.service';
import { SearchFixedFilterService } from '../../../../core/shared/search/search-fixed-filter.service';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { Item } from '../../../../core/shared/item.model';

View File

@@ -10,7 +10,7 @@ import { ChangeDetectionStrategy, DebugElement, NO_ERRORS_SCHEMA } from '@angula
import { ITEM } from '../../../../shared/items/switcher/item-type-switcher.component';
import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { isNotEmpty } from '../../../../shared/empty.util';
import { SearchFixedFilterService } from '../../../../+search-page/search-filters/search-filter/search-fixed-filter.service';
import { SearchFixedFilterService } from '../../../../core/shared/search/search-fixed-filter.service';
import { RelationshipType } from '../../../../core/shared/item-relationships/relationship-type.model';
import { PaginatedList } from '../../../../core/data/paginated-list';
import { RemoteData } from '../../../../core/data/remote-data';

View File

@@ -4,7 +4,7 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { TranslateModule } from '@ngx-translate/core';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { SearchFixedFilterService } from '../../../../+search-page/search-filters/search-filter/search-fixed-filter.service';
import { SearchFixedFilterService } from '../../../../core/shared/search/search-fixed-filter.service';
import { Item } from '../../../../core/shared/item.model';
describe('RelatedEntitiesSearchComponent', () => {

View File

@@ -1,7 +1,7 @@
import { Component, Input, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { Item } from '../../../../core/shared/item.model';
import { SearchFixedFilterService } from '../../../../+search-page/search-filters/search-filter/search-fixed-filter.service';
import { SearchFixedFilterService } from '../../../../core/shared/search/search-fixed-filter.service';
import { isNotEmpty } from '../../../../shared/empty.util';
import { of } from 'rxjs/internal/observable/of';

View File

@@ -1,10 +1,10 @@
import { of as observableOf } from 'rxjs';
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
import { PaginatedSearchOptions } from '../+search-page/paginated-search-options.model';
import { PaginatedSearchOptions } from '../shared/search/paginated-search-options.model';
import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model';
import { SortDirection, SortOptions } from '../core/cache/models/sort-options.model';
import { SearchFilter } from '../+search-page/search-filter.model';
import { SearchFilter } from '../shared/search/search-filter.model';
import { ActivatedRouteStub } from '../shared/testing/active-router-stub';
import { MockRoleService } from '../shared/mocks/mock-role-service';
import { cold, hot } from 'jasmine-marbles';

View File

@@ -6,12 +6,12 @@ import { first, map } from 'rxjs/operators';
import { MyDSpaceConfigurationValueType } from './my-dspace-configuration-value-type';
import { RoleService } from '../core/roles/role.service';
import { SearchConfigurationOption } from '../+search-page/search-switch-configuration/search-configuration-option.model';
import { SearchConfigurationService } from '../+search-page/search-service/search-configuration.service';
import { SearchConfigurationOption } from '../shared/search/search-switch-configuration/search-configuration-option.model';
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
import { RouteService } from '../shared/services/route.service';
import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model';
import { SortDirection, SortOptions } from '../core/cache/models/sort-options.model';
import { SearchFixedFilterService } from '../+search-page/search-filters/search-filter/search-fixed-filter.service';
import { SearchFixedFilterService } from '../core/shared/search/search-fixed-filter.service';
/**
* Service that performs all actions that have to do with the current mydspace configuration

View File

@@ -20,15 +20,15 @@ import { MyDSpacePageComponent, SEARCH_CONFIG_SERVICE } from './my-dspace-page.c
import { RouteService } from '../shared/services/route.service';
import { routeServiceStub } from '../shared/testing/route-service-stub';
import { SearchConfigurationServiceStub } from '../shared/testing/search-configuration-service-stub';
import { SearchService } from '../+search-page/search-service/search.service';
import { SearchConfigurationService } from '../+search-page/search-service/search-configuration.service';
import { PaginatedSearchOptions } from '../+search-page/paginated-search-options.model';
import { SearchSidebarService } from '../+search-page/search-sidebar/search-sidebar.service';
import { SearchFilterService } from '../+search-page/search-filters/search-filter/search-filter.service';
import { SearchService } from '../core/shared/search/search.service';
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
import { PaginatedSearchOptions } from '../shared/search/paginated-search-options.model';
import { SearchSidebarService } from '../core/shared/search/search-sidebar.service';
import { SearchFilterService } from '../core/shared/search/search-filter.service';
import { RoleDirective } from '../shared/roles/role.directive';
import { RoleService } from '../core/roles/role.service';
import { MockRoleService } from '../shared/mocks/mock-role-service';
import { SearchFixedFilterService } from '../+search-page/search-filters/search-filter/search-fixed-filter.service';
import { SearchFixedFilterService } from '../core/shared/search/search-fixed-filter.service';
describe('MyDSpacePageComponent', () => {
let comp: MyDSpacePageComponent;

View File

@@ -15,16 +15,16 @@ import { RemoteData } from '../core/data/remote-data';
import { DSpaceObject } from '../core/shared/dspace-object.model';
import { pushInOut } from '../shared/animations/push';
import { HostWindowService } from '../shared/host-window.service';
import { PaginatedSearchOptions } from '../+search-page/paginated-search-options.model';
import { SearchService } from '../+search-page/search-service/search.service';
import { SearchSidebarService } from '../+search-page/search-sidebar/search-sidebar.service';
import { PaginatedSearchOptions } from '../shared/search/paginated-search-options.model';
import { SearchService } from '../core/shared/search/search.service';
import { SearchSidebarService } from '../core/shared/search/search-sidebar.service';
import { hasValue } from '../shared/empty.util';
import { getSucceededRemoteData } from '../core/shared/operators';
import { MyDSpaceResult } from './my-dspace-result.model';
import { MyDSpaceResponseParsingService } from '../core/data/mydspace-response-parsing.service';
import { SearchConfigurationOption } from '../+search-page/search-switch-configuration/search-configuration-option.model';
import { SearchConfigurationOption } from '../shared/search/search-switch-configuration/search-configuration-option.model';
import { RoleType } from '../core/roles/role-types';
import { SearchConfigurationService } from '../+search-page/search-service/search-configuration.service';
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
import { ViewMode } from '../core/shared/view-mode.model';
import { MyDSpaceRequest } from '../core/data/request.models';

View File

@@ -5,7 +5,6 @@ import { SharedModule } from '../shared/shared.module';
import { MyDspacePageRoutingModule } from './my-dspace-page-routing.module';
import { MyDSpacePageComponent } from './my-dspace-page.component';
import { SearchPageModule } from '../+search-page/search-page.module';
import { MyDSpaceResultsComponent } from './my-dspace-results/my-dspace-results.component';
import { WorkspaceitemMyDSpaceResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/workspaceitem-my-dspace-result/workspaceitem-my-dspace-result-list-element.component';
import { ItemMyDSpaceResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/item-my-dspace-result/item-my-dspace-result-list-element.component';
@@ -26,7 +25,6 @@ import { MyDSpaceConfigurationService } from './my-dspace-configuration.service'
CommonModule,
SharedModule,
MyDspacePageRoutingModule,
SearchPageModule
],
declarations: [
MyDSpacePageComponent,

View File

@@ -4,7 +4,7 @@ import { RemoteData } from '../../core/data/remote-data';
import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { fadeIn, fadeInOut } from '../../shared/animations/fade';
import { MyDSpaceResult } from '../my-dspace-result.model';
import { SearchOptions } from '../../+search-page/search-options.model';
import { SearchOptions } from '../../shared/search/search-options.model';
import { PaginatedList } from '../../core/data/paginated-list';
import { ViewMode } from '../../core/shared/view-mode.model';
import { isEmpty } from '../../shared/empty.util';

View File

@@ -1,7 +1,7 @@
import { FilteredSearchPageComponent } from './filtered-search-page.component';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { configureSearchComponentTestingModule } from './search-page.component.spec';
import { SearchConfigurationService } from './search-service/search-configuration.service';
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
describe('FilteredSearchPageComponent', () => {
let comp: FilteredSearchPageComponent;

View File

@@ -1,13 +1,13 @@
import { HostWindowService } from '../shared/host-window.service';
import { SearchService } from './search-service/search.service';
import { SearchSidebarService } from './search-sidebar/search-sidebar.service';
import { SearchService } from '../core/shared/search/search.service';
import { SearchSidebarService } from '../core/shared/search/search-sidebar.service';
import { SearchPageComponent } from './search-page.component';
import { ChangeDetectionStrategy, Component, Inject, Input, OnInit } from '@angular/core';
import { pushInOut } from '../shared/animations/push';
import { RouteService } from '../shared/services/route.service';
import { SearchConfigurationService } from './search-service/search-configuration.service';
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
import { Observable } from 'rxjs';
import { PaginatedSearchOptions } from './paginated-search-options.model';
import { PaginatedSearchOptions } from '../shared/search/paginated-search-options.model';
import { SEARCH_CONFIG_SERVICE } from '../+my-dspace-page/my-dspace-page.component';
import { map } from 'rxjs/operators';

View File

@@ -1,2 +0,0 @@
@import '../../../styles/variables.scss';
@import '../../../styles/mixins.scss';

View File

@@ -11,20 +11,20 @@ import { CommunityDataService } from '../core/data/community-data.service';
import { HostWindowService } from '../shared/host-window.service';
import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model';
import { SearchPageComponent } from './search-page.component';
import { SearchService } from './search-service/search.service';
import { SearchService } from '../core/shared/search/search.service';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { ActivatedRoute } from '@angular/router';
import { By } from '@angular/platform-browser';
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
import { SearchSidebarService } from './search-sidebar/search-sidebar.service';
import { SearchFilterService } from './search-filters/search-filter/search-filter.service';
import { SearchConfigurationService } from './search-service/search-configuration.service';
import { SearchSidebarService } from '../core/shared/search/search-sidebar.service';
import { SearchFilterService } from '../core/shared/search/search-filter.service';
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
import { RemoteData } from '../core/data/remote-data';
import { SEARCH_CONFIG_SERVICE } from '../+my-dspace-page/my-dspace-page.component';
import { RouteService } from '../shared/services/route.service';
import { SearchConfigurationServiceStub } from '../shared/testing/search-configuration-service-stub';
import { PaginatedSearchOptions } from './paginated-search-options.model';
import { SearchFixedFilterService } from './search-filters/search-filter/search-fixed-filter.service';
import { PaginatedSearchOptions } from '../shared/search/paginated-search-options.model';
import { SearchFixedFilterService } from '../core/shared/search/search-fixed-filter.service';
let comp: SearchPageComponent;
let fixture: ComponentFixture<SearchPageComponent>;

View File

@@ -6,12 +6,12 @@ import { RemoteData } from '../core/data/remote-data';
import { DSpaceObject } from '../core/shared/dspace-object.model';
import { pushInOut } from '../shared/animations/push';
import { HostWindowService } from '../shared/host-window.service';
import { PaginatedSearchOptions } from './paginated-search-options.model';
import { SearchResult } from './search-result.model';
import { SearchService } from './search-service/search.service';
import { SearchSidebarService } from './search-sidebar/search-sidebar.service';
import { PaginatedSearchOptions } from '../shared/search/paginated-search-options.model';
import { SearchResult } from '../shared/search/search-result.model';
import { SearchService } from '../core/shared/search/search.service';
import { SearchSidebarService } from '../core/shared/search/search-sidebar.service';
import { hasValue, isNotEmpty } from '../shared/empty.util';
import { SearchConfigurationService } from './search-service/search-configuration.service';
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
import { getSucceededRemoteData } from '../core/shared/operators';
import { RouteService } from '../shared/services/route.service';
import { SEARCH_CONFIG_SERVICE } from '../+my-dspace-page/my-dspace-page.component';

View File

@@ -4,62 +4,11 @@ import { CoreModule } from '../core/core.module';
import { SharedModule } from '../shared/shared.module';
import { SearchPageRoutingModule } from './search-page-routing.module';
import { SearchPageComponent } from './search-page.component';
import { SearchResultsComponent } from './search-results/search-results.component';
import { ItemSearchResultGridElementComponent } from '../shared/object-grid/search-result-grid-element/item-search-result/item-search-result-grid-element.component';
import { CommunitySearchResultGridElementComponent } from '../shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component'
import { CollectionSearchResultGridElementComponent } from '../shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component';
import { SearchSidebarComponent } from './search-sidebar/search-sidebar.component';
import { SearchSidebarService } from './search-sidebar/search-sidebar.service';
import { SearchSidebarEffects } from './search-sidebar/search-sidebar.effects';
import { SearchSettingsComponent } from './search-settings/search-settings.component';
import { EffectsModule } from '@ngrx/effects';
import { SearchFiltersComponent } from './search-filters/search-filters.component';
import { SearchFilterComponent } from './search-filters/search-filter/search-filter.component';
import { SearchFacetFilterComponent } from './search-filters/search-filter/search-facet-filter/search-facet-filter.component';
import { SearchFilterService } from './search-filters/search-filter/search-filter.service';
import { FilteredSearchPageComponent } from './filtered-search-page.component';
import { SearchFixedFilterService } from './search-filters/search-filter/search-fixed-filter.service';
import { FilteredSearchPageGuard } from './filtered-search-page.guard';
import { SearchLabelsComponent } from './search-labels/search-labels.component';
import { SearchRangeFilterComponent } from './search-filters/search-filter/search-range-filter/search-range-filter.component';
import { SearchTextFilterComponent } from './search-filters/search-filter/search-text-filter/search-text-filter.component';
import { SearchFacetFilterWrapperComponent } from './search-filters/search-filter/search-facet-filter-wrapper/search-facet-filter-wrapper.component';
import { SearchBooleanFilterComponent } from './search-filters/search-filter/search-boolean-filter/search-boolean-filter.component';
import { SearchHierarchyFilterComponent } from './search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component';
import { SearchConfigurationService } from './search-service/search-configuration.service';
import { SearchFacetOptionComponent } from './search-filters/search-filter/search-facet-filter-options/search-facet-option/search-facet-option.component';
import { SearchFacetSelectedOptionComponent } from './search-filters/search-filter/search-facet-filter-options/search-facet-selected-option/search-facet-selected-option.component';
import { SearchFacetRangeOptionComponent } from './search-filters/search-filter/search-facet-filter-options/search-facet-range-option/search-facet-range-option.component';
import { SearchSwitchConfigurationComponent } from './search-switch-configuration/search-switch-configuration.component';
import { SearchAuthorityFilterComponent } from './search-filters/search-filter/search-authority-filter/search-authority-filter.component';
const effects = [
SearchSidebarEffects
];
const components = [
SearchPageComponent,
// SearchResultsComponent,
SearchSidebarComponent,
SearchSettingsComponent,
ItemSearchResultGridElementComponent,
CollectionSearchResultGridElementComponent,
CommunitySearchResultGridElementComponent,
SearchFiltersComponent,
SearchFilterComponent,
SearchFacetFilterComponent,
SearchLabelsComponent,
SearchFacetFilterComponent,
SearchFacetFilterWrapperComponent,
SearchRangeFilterComponent,
SearchTextFilterComponent,
SearchHierarchyFilterComponent,
SearchBooleanFilterComponent,
SearchFacetOptionComponent,
SearchFacetSelectedOptionComponent,
SearchFacetRangeOptionComponent,
SearchSwitchConfigurationComponent,
SearchAuthorityFilterComponent,
FilteredSearchPageComponent
];
@@ -68,32 +17,9 @@ const components = [
SearchPageRoutingModule,
CommonModule,
SharedModule,
EffectsModule.forFeature(effects),
CoreModule.forRoot()
],
declarations: components,
providers: [
SearchSidebarService,
SearchFilterService,
SearchFixedFilterService,
FilteredSearchPageGuard,
SearchFilterService,
SearchConfigurationService
],
entryComponents: [
ItemSearchResultGridElementComponent,
CollectionSearchResultGridElementComponent,
CommunitySearchResultGridElementComponent,
SearchFacetFilterComponent,
SearchRangeFilterComponent,
SearchTextFilterComponent,
SearchHierarchyFilterComponent,
SearchBooleanFilterComponent,
SearchFacetOptionComponent,
SearchFacetSelectedOptionComponent,
SearchFacetRangeOptionComponent,
SearchAuthorityFilterComponent
],
exports: components
})

View File

@@ -20,7 +20,7 @@ import { Store, StoreModule } from '@ngrx/store';
// Load the implementations that should be tested
import { AppComponent } from './app.component';
import { HostWindowState } from './shared/host-window.reducer';
import { HostWindowState } from './shared/search/host-window.reducer';
import { HostWindowResizeAction } from './shared/host-window.actions';
import { MetadataService } from './core/metadata/metadata.service';

View File

@@ -18,7 +18,7 @@ import { GLOBAL_CONFIG, GlobalConfig } from '../config';
import { MetadataService } from './core/metadata/metadata.service';
import { HostWindowResizeAction } from './shared/host-window.actions';
import { HostWindowState } from './shared/host-window.reducer';
import { HostWindowState } from './shared/search/host-window.reducer';
import { NativeWindowRef, NativeWindowService } from './shared/services/window.service';
import { isAuthenticated } from './core/auth/selectors';
import { AuthService } from './core/auth/auth.service';

View File

@@ -1,9 +1,11 @@
import { StoreEffects } from './store.effects';
import { NotificationsEffects } from './shared/notifications/notifications.effects';
import { NavbarEffects } from './navbar/navbar.effects';
import { SearchSidebarEffects } from './shared/search/search-sidebar/search-sidebar.effects';
export const appEffects = [
StoreEffects,
NavbarEffects,
NotificationsEffects,
SearchSidebarEffects
];

View File

@@ -1,15 +1,15 @@
import { ActionReducerMap, createSelector, MemoizedSelector } from '@ngrx/store';
import * as fromRouter from '@ngrx/router-store';
import { hostWindowReducer, HostWindowState } from './shared/host-window.reducer';
import { hostWindowReducer, HostWindowState } from './shared/search/host-window.reducer';
import { formReducer, FormState } from './shared/form/form.reducer';
import {
SearchSidebarState,
sidebarReducer
} from './+search-page/search-sidebar/search-sidebar.reducer';
} from './shared/search/search-sidebar/search-sidebar.reducer';
import {
filterReducer,
SearchFiltersState
} from './+search-page/search-filters/search-filter/search-filter.reducer';
} from './shared/search/search-filters/search-filter/search-filter.reducer';
import {
notificationsReducer,
NotificationsState

View File

@@ -1,9 +1,9 @@
import { SearchQueryResponse } from '../../+search-page/search-service/search-query-response.model';
import { SearchQueryResponse } from '../../shared/search/search-query-response.model';
import { RequestError } from '../data/request.models';
import { PageInfo } from '../shared/page-info.model';
import { ConfigObject } from '../config/models/config.model';
import { FacetValue } from '../../+search-page/search-service/facet-value.model';
import { SearchFilterConfig } from '../../+search-page/search-service/search-filter-config.model';
import { FacetValue } from '../../shared/search/facet-value.model';
import { SearchFilterConfig } from '../../shared/search/search-filter-config.model';
import { IntegrationModel } from '../integration/models/integration.model';
import { RegistryMetadataschemasResponse } from '../registry/registry-metadataschemas-response.model';
import { RegistryMetadatafieldsResponse } from '../registry/registry-metadatafields-response.model';

View File

@@ -80,7 +80,7 @@ import { NormalizedObjectBuildService } from './cache/builders/normalized-object
import { DSOChangeAnalyzer } from './data/dso-change-analyzer.service';
import { ObjectUpdatesService } from './data/object-updates/object-updates.service';
import { DefaultChangeAnalyzer } from './data/default-change-analyzer.service';
import { SearchService } from '../+search-page/search-service/search.service';
import { SearchService } from './shared/search/search.service';
import { RelationshipService } from './data/relationship.service';
import { RoleService } from './roles/role.service';
import { MyDSpaceGuard } from '../+my-dspace-page/my-dspace.guard';
@@ -95,6 +95,11 @@ import {
} from './dspace-rest-v2/mocks/mock-response-map';
import { EndpointMockingRestService } from './dspace-rest-v2/endpoint-mocking-rest.service';
import { ENV_CONFIG, GLOBAL_CONFIG, GlobalConfig } from '../../config';
import { SearchSidebarService } from './shared/search/search-sidebar.service';
import { SearchFilterService } from './shared/search/search-filter.service';
import { SearchFixedFilterService } from './shared/search/search-fixed-filter.service';
import { FilteredSearchPageGuard } from '../+search-page/filtered-search-page.guard';
import { SearchConfigurationService } from './shared/search/search-configuration.service';
export const restServiceFactory = (cfg: GlobalConfig, mocks: MockResponseMap, http: HttpClient) => {
// if (ENV_CONFIG.production) {
@@ -193,6 +198,13 @@ const PROVIDERS = [
TaskResponseParsingService,
ClaimedTaskDataService,
PoolTaskDataService,
SearchService,
SearchSidebarService,
SearchFilterService,
SearchFixedFilterService,
FilteredSearchPageGuard,
SearchFilterService,
SearchConfigurationService,
// register AuthInterceptor as HttpInterceptor
{
provide: HTTP_INTERCEPTORS,

View File

@@ -7,7 +7,7 @@ import { ResponseParsingService } from './parsing.service';
import { RestRequest } from './request.models';
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
import { DSpaceRESTv2Serializer } from '../dspace-rest-v2/dspace-rest-v2.serializer';
import { SearchFilterConfig } from '../../+search-page/search-service/search-filter-config.model';
import { SearchFilterConfig } from '../../shared/search/search-filter-config.model';
import { BaseResponseParsingService } from './base-response-parsing.service';
import { ObjectCacheService } from '../cache/object-cache.service';
import { GlobalConfig } from '../../../config/global-config.interface';

View File

@@ -9,7 +9,7 @@ import { ResponseParsingService } from './parsing.service';
import { RestRequest } from './request.models';
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
import { DSpaceRESTv2Serializer } from '../dspace-rest-v2/dspace-rest-v2.serializer';
import { FacetValue } from '../../+search-page/search-service/facet-value.model';
import { FacetValue } from '../../shared/search/facet-value.model';
import { BaseResponseParsingService } from './base-response-parsing.service';
import { ObjectCacheService } from '../cache/object-cache.service';
import { GlobalConfig } from '../../../config/global-config.interface';

View File

@@ -4,7 +4,7 @@ import { ResponseParsingService } from './parsing.service';
import { RestRequest } from './request.models';
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
import { DSpaceRESTv2Serializer } from '../dspace-rest-v2/dspace-rest-v2.serializer';
import { FacetValue } from '../../+search-page/search-service/facet-value.model';
import { FacetValue } from '../../shared/search/facet-value.model';
import { BaseResponseParsingService } from './base-response-parsing.service';
import { ObjectCacheService } from '../cache/object-cache.service';
import { GLOBAL_CONFIG } from '../../../config';

View File

@@ -6,7 +6,7 @@ import { RestRequest } from './request.models';
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
import { DSpaceRESTv2Serializer } from '../dspace-rest-v2/dspace-rest-v2.serializer';
import { hasValue } from '../../shared/empty.util';
import { SearchQueryResponse } from '../../+search-page/search-service/search-query-response.model';
import { SearchQueryResponse } from '../../shared/search/search-query-response.model';
import { MetadataMap, MetadataValue } from '../shared/metadata.models';
@Injectable()

View File

@@ -64,11 +64,6 @@ export class RelationshipService {
);
}
/**
* Send a post request for a relationship by ID
* @param item1
* @param item2
*/
addRelationship(item1: Item, item2: Item): Observable<RestResponse> {
return this.halService.getEndpoint(this.linkPath).pipe(
isNotEmptyOperator(),

View File

@@ -6,7 +6,7 @@ import { RestRequest } from './request.models';
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
import { DSpaceRESTv2Serializer } from '../dspace-rest-v2/dspace-rest-v2.serializer';
import { hasValue } from '../../shared/empty.util';
import { SearchQueryResponse } from '../../+search-page/search-service/search-query-response.model';
import { SearchQueryResponse } from '../../shared/search/search-query-response.model';
import { MetadataMap, MetadataValue } from '../shared/metadata.models';
@Injectable()

View File

@@ -9,7 +9,7 @@ import { RequestService } from '../data/request.service';
import { BrowseDefinition } from './browse-definition.model';
import { DSpaceObject } from './dspace-object.model';
import { PaginatedList } from '../data/paginated-list';
import { SearchResult } from '../../+search-page/search-result.model';
import { SearchResult } from '../../shared/search/search-result.model';
import { Router } from '@angular/router';
/**

View File

@@ -1,9 +1,9 @@
import { SearchConfigurationService } from './search-configuration.service';
import { ActivatedRouteStub } from '../../shared/testing/active-router-stub';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { PaginatedSearchOptions } from '../paginated-search-options.model';
import { SearchFilter } from '../search-filter.model';
import { ActivatedRouteStub } from '../../../shared/testing/active-router-stub';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
import { SortDirection, SortOptions } from '../../cache/models/sort-options.model';
import { PaginatedSearchOptions } from '../../../shared/search/paginated-search-options.model';
import { SearchFilter } from '../../../shared/search/search-filter.model';
import { of as observableOf } from 'rxjs';
describe('SearchConfigurationService', () => {

View File

@@ -10,17 +10,17 @@ import {
Subscription
} from 'rxjs';
import { filter, flatMap, map, switchMap, tap } from 'rxjs/operators';
import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { SearchOptions } from '../search-options.model';
import { PaginatedSearchOptions } from '../paginated-search-options.model';
import { RouteService } from '../../shared/services/route.service';
import { hasNoValue, hasValue, isNotEmpty, isNotEmptyOperator } from '../../shared/empty.util';
import { RemoteData } from '../../core/data/remote-data';
import { getSucceededRemoteData } from '../../core/shared/operators';
import { SearchFilter } from '../search-filter.model';
import { DSpaceObjectType } from '../../core/shared/dspace-object-type.model';
import { SearchFixedFilterService } from '../search-filters/search-filter/search-fixed-filter.service';
import { SortDirection, SortOptions } from '../../cache/models/sort-options.model';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
import { SearchOptions } from '../../../shared/search/search-options.model';
import { PaginatedSearchOptions } from '../../../shared/search/paginated-search-options.model';
import { RouteService } from '../../../shared/services/route.service';
import { hasNoValue, hasValue, isNotEmpty, isNotEmptyOperator } from '../../../shared/empty.util';
import { RemoteData } from '../../data/remote-data';
import { getSucceededRemoteData } from '../operators';
import { SearchFilter } from '../../../shared/search/search-filter.model';
import { DSpaceObjectType } from '../dspace-object-type.model';
import { SearchFixedFilterService } from './search-fixed-filter.service';
/**
* Service that performs all actions that have to do with the current search configuration

View File

@@ -8,14 +8,14 @@ import {
SearchFilterInitializeAction,
SearchFilterResetPageAction,
SearchFilterToggleAction
} from './search-filter.actions';
import { SearchFiltersState } from './search-filter.reducer';
import { SearchFilterConfig } from '../../search-service/search-filter-config.model';
import { FilterType } from '../../search-service/filter-type.model';
} from '../../../shared/search/search-filters/search-filter/search-filter.actions';
import { SearchFiltersState } from '../../../shared/search/search-filters/search-filter/search-filter.reducer';
import { SearchFilterConfig } from '../../../shared/search/search-filter-config.model';
import { FilterType } from '../../../shared/search/filter-type.model';
import { SearchFixedFilterService } from './search-fixed-filter.service';
import { ActivatedRouteStub } from '../../../shared/testing/active-router-stub';
import { of as observableOf } from 'rxjs';
import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
import { SortDirection, SortOptions } from '../../cache/models/sort-options.model';
describe('SearchFilterService', () => {
let service: SearchFilterService;

View File

@@ -1,7 +1,7 @@
import { combineLatest as observableCombineLatest, Observable } from 'rxjs';
import { mergeMap, map, distinctUntilChanged } from 'rxjs/operators';
import { Injectable, InjectionToken } from '@angular/core';
import { SearchFiltersState, SearchFilterState } from './search-filter.reducer';
import { SearchFiltersState, SearchFilterState } from '../../../shared/search/search-filters/search-filter/search-filter.reducer';
import { createSelector, MemoizedSelector, select, Store } from '@ngrx/store';
import {
SearchFilterCollapseAction,
@@ -11,14 +11,14 @@ import {
SearchFilterInitializeAction,
SearchFilterResetPageAction,
SearchFilterToggleAction
} from './search-filter.actions';
} from '../../../shared/search/search-filters/search-filter/search-filter.actions';
import { hasValue, isNotEmpty, } from '../../../shared/empty.util';
import { SearchFilterConfig } from '../../search-service/search-filter-config.model';
import { SearchFilterConfig } from '../../../shared/search/search-filter-config.model';
import { RouteService } from '../../../shared/services/route.service';
import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
import { SortDirection, SortOptions } from '../../cache/models/sort-options.model';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
import { SearchOptions } from '../../search-options.model';
import { PaginatedSearchOptions } from '../../paginated-search-options.model';
import { SearchOptions } from '../../../shared/search/search-options.model';
import { PaginatedSearchOptions } from '../../../shared/search/paginated-search-options.model';
import { SearchFixedFilterService } from './search-fixed-filter.service';
import { Params } from '@angular/router';
import * as postcss from 'postcss';

View File

@@ -1,10 +1,10 @@
import { SearchFixedFilterService } from './search-fixed-filter.service';
import { RouteService } from '../../../shared/services/route.service';
import { RequestService } from '../../../core/data/request.service';
import { HALEndpointService } from '../../../core/shared/hal-endpoint.service';
import { RequestService } from '../../data/request.service';
import { HALEndpointService } from '../hal-endpoint.service';
import { of as observableOf } from 'rxjs';
import { RequestEntry } from '../../../core/data/request.reducer';
import { FilteredDiscoveryQueryResponse, RestResponse } from '../../../core/cache/response.models';
import { RequestEntry } from '../../data/request.reducer';
import { FilteredDiscoveryQueryResponse, RestResponse } from '../../cache/response.models';
describe('SearchFixedFilterService', () => {
let service: SearchFixedFilterService;

View File

@@ -1,16 +1,16 @@
import { Injectable } from '@angular/core';
import { flatMap, map, switchMap, tap } from 'rxjs/operators';
import { Observable, of as observableOf } from 'rxjs';
import { HALEndpointService } from '../../../core/shared/hal-endpoint.service';
import { GetRequest, RestRequest } from '../../../core/data/request.models';
import { RequestService } from '../../../core/data/request.service';
import { ResponseParsingService } from '../../../core/data/parsing.service';
import { GenericConstructor } from '../../../core/shared/generic-constructor';
import { FilteredDiscoveryPageResponseParsingService } from '../../../core/data/filtered-discovery-page-response-parsing.service';
import { HALEndpointService } from '../hal-endpoint.service';
import { GetRequest, RestRequest } from '../../data/request.models';
import { RequestService } from '../../data/request.service';
import { ResponseParsingService } from '../../data/parsing.service';
import { GenericConstructor } from '../generic-constructor';
import { FilteredDiscoveryPageResponseParsingService } from '../../data/filtered-discovery-page-response-parsing.service';
import { hasValue } from '../../../shared/empty.util';
import { configureRequest, getResponseFromEntry } from '../../../core/shared/operators';
import { configureRequest, getResponseFromEntry } from '../operators';
import { RouteService } from '../../../shared/services/route.service';
import { FilteredDiscoveryQueryResponse } from '../../../core/cache/response.models';
import { FilteredDiscoveryQueryResponse } from '../../cache/response.models';
/**
* Service for performing actions on the filtered-discovery-pages REST endpoint

View File

@@ -3,7 +3,7 @@ import { SearchSidebarService } from './search-sidebar.service';
import { AppState } from '../../app.reducer';
import { async, TestBed } from '@angular/core/testing';
import { of as observableOf } from 'rxjs';
import { SearchSidebarCollapseAction, SearchSidebarExpandAction } from './search-sidebar.actions';
import { SearchSidebarCollapseAction, SearchSidebarExpandAction } from '../../../shared/search/search-sidebar/search-sidebar.actions';
import { HostWindowService } from '../../shared/host-window.service';
describe('SearchSidebarService', () => {

View File

@@ -1,10 +1,10 @@
import { combineLatest as observableCombineLatest, Observable } from 'rxjs';
import { Injectable } from '@angular/core';
import { SearchSidebarState } from './search-sidebar.reducer';
import { SearchSidebarState } from '../../../shared/search/search-sidebar/search-sidebar.reducer';
import { createSelector, select, Store } from '@ngrx/store';
import { SearchSidebarCollapseAction, SearchSidebarExpandAction } from './search-sidebar.actions';
import { AppState } from '../../app.reducer';
import { HostWindowService } from '../../shared/host-window.service';
import { SearchSidebarCollapseAction, SearchSidebarExpandAction } from '../../../shared/search/search-sidebar/search-sidebar.actions';
import { AppState } from '../../../app.reducer';
import { HostWindowService } from '../../../shared/host-window.service';
import { map } from 'rxjs/operators';
const sidebarStateSelector = (state: AppState) => state.searchSidebar;

View File

@@ -5,29 +5,29 @@ import { CommonModule } from '@angular/common';
import { Component } from '@angular/core';
import { SearchService } from './search.service';
import { ItemDataService } from './../../core/data/item-data.service';
import { SetViewMode } from '../../shared/view-mode';
import { GLOBAL_CONFIG } from '../../../config';
import { RemoteDataBuildService } from '../../core/cache/builders/remote-data-build.service';
import { ItemDataService } from '../../data/item-data.service';
import { SetViewMode } from '../../../shared/view-mode';
import { GLOBAL_CONFIG } from '../../../../config';
import { RemoteDataBuildService } from '../../cache/builders/remote-data-build.service';
import { Router, UrlTree } from '@angular/router';
import { RequestService } from '../../core/data/request.service';
import { ActivatedRouteStub } from '../../shared/testing/active-router-stub';
import { RouterStub } from '../../shared/testing/router-stub';
import { HALEndpointService } from '../../core/shared/hal-endpoint.service';
import { RequestService } from '../../data/request.service';
import { ActivatedRouteStub } from '../../../shared/testing/active-router-stub';
import { RouterStub } from '../../../shared/testing/router-stub';
import { HALEndpointService } from '../hal-endpoint.service';
import { combineLatest as observableCombineLatest, Observable, of as observableOf } from 'rxjs';
import { PaginatedSearchOptions } from '../paginated-search-options.model';
import { RemoteData } from '../../core/data/remote-data';
import { RequestEntry } from '../../core/data/request.reducer';
import { getMockRequestService } from '../../shared/mocks/mock-request.service';
import { FacetConfigSuccessResponse, SearchSuccessResponse } from '../../core/cache/response.models';
import { SearchQueryResponse } from './search-query-response.model';
import { SearchFilterConfig } from './search-filter-config.model';
import { CommunityDataService } from '../../core/data/community-data.service';
import { ViewMode } from '../../core/shared/view-mode.model';
import { DSpaceObjectDataService } from '../../core/data/dspace-object-data.service';
import { PaginatedSearchOptions } from '../../../shared/search/paginated-search-options.model';
import { RemoteData } from '../../data/remote-data';
import { RequestEntry } from '../../data/request.reducer';
import { getMockRequestService } from '../../../shared/mocks/mock-request.service';
import { FacetConfigSuccessResponse, SearchSuccessResponse } from '../../cache/response.models';
import { SearchQueryResponse } from '../../../shared/search/search-query-response.model';
import { SearchFilterConfig } from '../../../shared/search/search-filter-config.model';
import { CommunityDataService } from '../../data/community-data.service';
import { ViewMode } from '../view-mode.model';
import { DSpaceObjectDataService } from '../../data/dspace-object-data.service';
import { map } from 'rxjs/operators';
import { RouteService } from '../../shared/services/route.service';
import { routeServiceStub } from '../../shared/testing/route-service-stub';
import { RouteService } from '../../../shared/services/route.service';
import { routeServiceStub } from '../../../shared/testing/route-service-stub';
@Component({ template: '' })
class DummyComponent {

View File

@@ -2,47 +2,47 @@ import { combineLatest as observableCombineLatest, Observable, of as observableO
import { Injectable, OnDestroy } from '@angular/core';
import { NavigationExtras, PRIMARY_OUTLET, Router, UrlSegmentGroup } from '@angular/router';
import { first, map, switchMap } from 'rxjs/operators';
import { RemoteDataBuildService } from '../../core/cache/builders/remote-data-build.service';
import { RemoteDataBuildService } from '../../cache/builders/remote-data-build.service';
import {
FacetConfigSuccessResponse,
FacetValueSuccessResponse,
SearchSuccessResponse
} from '../../core/cache/response.models';
import { PaginatedList } from '../../core/data/paginated-list';
import { ResponseParsingService } from '../../core/data/parsing.service';
import { RemoteData } from '../../core/data/remote-data';
import { GetRequest, RestRequest } from '../../core/data/request.models';
import { RequestService } from '../../core/data/request.service';
import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { GenericConstructor } from '../../core/shared/generic-constructor';
import { HALEndpointService } from '../../core/shared/hal-endpoint.service';
} from '../../cache/response.models';
import { PaginatedList } from '../../data/paginated-list';
import { ResponseParsingService } from '../../data/parsing.service';
import { RemoteData } from '../../data/remote-data';
import { GetRequest, RestRequest } from '../../data/request.models';
import { RequestService } from '../../data/request.service';
import { DSpaceObject } from '../dspace-object.model';
import { GenericConstructor } from '../generic-constructor';
import { HALEndpointService } from '../hal-endpoint.service';
import {
configureRequest,
filterSuccessfulResponses,
getResponseFromEntry,
getSucceededRemoteData
} from '../../core/shared/operators';
import { URLCombiner } from '../../core/url-combiner/url-combiner';
import { hasValue, isEmpty, isNotEmpty, isNotUndefined } from '../../shared/empty.util';
import { NormalizedSearchResult } from '../normalized-search-result.model';
import { SearchOptions } from '../search-options.model';
import { SearchResult } from '../search-result.model';
import { FacetValue } from './facet-value.model';
import { SearchFilterConfig } from './search-filter-config.model';
import { SearchResponseParsingService } from '../../core/data/search-response-parsing.service';
import { SearchQueryResponse } from './search-query-response.model';
import { PageInfo } from '../../core/shared/page-info.model';
import { getSearchResultFor } from './search-result-element-decorator';
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
import { FacetValueResponseParsingService } from '../../core/data/facet-value-response-parsing.service';
import { FacetConfigResponseParsingService } from '../../core/data/facet-config-response-parsing.service';
import { PaginatedSearchOptions } from '../paginated-search-options.model';
import { Community } from '../../core/shared/community.model';
import { CommunityDataService } from '../../core/data/community-data.service';
import { ViewMode } from '../../core/shared/view-mode.model';
import { ResourceType } from '../../core/shared/resource-type';
import { DSpaceObjectDataService } from '../../core/data/dspace-object-data.service';
import { RouteService } from '../../shared/services/route.service';
} from '../operators';
import { URLCombiner } from '../../url-combiner/url-combiner';
import { hasValue, isEmpty, isNotEmpty, isNotUndefined } from '../../../shared/empty.util';
import { NormalizedSearchResult } from '../../../shared/search/normalized-search-result.model';
import { SearchOptions } from '../../../shared/search/search-options.model';
import { SearchResult } from '../../../shared/search/search-result.model';
import { FacetValue } from '../../../shared/search/facet-value.model';
import { SearchFilterConfig } from '../../../shared/search/search-filter-config.model';
import { SearchResponseParsingService } from '../../data/search-response-parsing.service';
import { SearchQueryResponse } from '../../../shared/search/search-query-response.model';
import { PageInfo } from '../page-info.model';
import { getSearchResultFor } from '../../../shared/search/search-result-element-decorator';
import { ListableObject } from '../../../shared/object-collection/shared/listable-object.model';
import { FacetValueResponseParsingService } from '../../data/facet-value-response-parsing.service';
import { FacetConfigResponseParsingService } from '../../data/facet-config-response-parsing.service';
import { PaginatedSearchOptions } from '../../../shared/search/paginated-search-options.model';
import { Community } from '../community.model';
import { CommunityDataService } from '../../data/community-data.service';
import { ViewMode } from '../view-mode.model';
import { ResourceType } from '../resource-type';
import { DSpaceObjectDataService } from '../../data/dspace-object-data.service';
import { RouteService } from '../../../shared/services/route.service';
/**
* Service that performs all general actions that have to do with the search page

View File

@@ -3,7 +3,7 @@ import { Observable , of as observableOf } from 'rxjs';
import { Item } from '../../../../core/shared/item.model';
import { ItemViewMode, rendersItemType } from '../../../../shared/items/item-type-decorator';
import { ITEM } from '../../../../shared/items/switcher/item-type-switcher.component';
import { SearchFixedFilterService } from '../../../../+search-page/search-filters/search-filter/search-fixed-filter.service';
import { SearchFixedFilterService } from '../../../../core/shared/search/search-fixed-filter.service';
import { isNotEmpty } from '../../../../shared/empty.util';
import { ItemComponent } from '../../../../+item-page/simple/item-types/shared/item.component';
import {

View File

@@ -2,9 +2,9 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TranslateModule } from '@ngx-translate/core';
import { DebugElement, NO_ERRORS_SCHEMA } from '@angular/core';
import { DSOSelectorComponent } from './dso-selector.component';
import { SearchService } from '../../../+search-page/search-service/search.service';
import { SearchService } from '../../../core/shared/search/search.service';
import { DSpaceObjectType } from '../../../core/shared/dspace-object-type.model';
import { PaginatedSearchOptions } from '../../../+search-page/paginated-search-options.model';
import { PaginatedSearchOptions } from '../../search/paginated-search-options.model';
import { RemoteData } from '../../../core/data/remote-data';
import { ItemSearchResult } from '../../object-collection/shared/item-search-result.model';
import { Item } from '../../../core/shared/item.model';

View File

@@ -12,12 +12,12 @@ import { FormControl } from '@angular/forms';
import { Observable } from 'rxjs';
import { debounceTime, startWith, switchMap } from 'rxjs/operators';
import { SearchService } from '../../../+search-page/search-service/search.service';
import { PaginatedSearchOptions } from '../../../+search-page/paginated-search-options.model';
import { SearchService } from '../../../core/shared/search/search.service';
import { PaginatedSearchOptions } from '../../search/paginated-search-options.model';
import { DSpaceObjectType } from '../../../core/shared/dspace-object-type.model';
import { RemoteData } from '../../../core/data/remote-data';
import { PaginatedList } from '../../../core/data/paginated-list';
import { SearchResult } from '../../../+search-page/search-result.model';
import { SearchResult } from '../../search/search-result.model';
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
@Component({

View File

@@ -1,89 +1,116 @@
<div class="modal-header">
<h4 class="modal-title" id="modal-title">Choose a {{fieldName}}</h4>
<button type="button" class="close" aria-label="Close button" aria-describedby="modal-title"
(click)="modal.dismiss('Cross click')">
(click)="modal.dismiss()">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body" *ngVar="(resultsRD$ | async) as resultsRD">
<form class="input-group mb-3" #queryForm="ngForm" (ngSubmit)="search(queryForm.value.query)">
<input type="text" class="form-control" name="query" placeholder="Search query"
[ngModel]="searchQuery">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="submit">Go</button>
</div>
</form>
<ds-loading *ngIf="!resultsRD || resultsRD.isLoading"></ds-loading>
<div *ngIf="resultsRD?.hasSucceeded && resultsRD.payload.page.length > 0">
<div *ngIf="repeatable">
<div class="input-group mb-3">
<div class="input-group-prepend">
<div class="input-group-text">
<!-- In theory we don't need separate checkboxes for this,
but I wasn't able to get this to work correctly without them.
Checkboxes that are in the indeterminate state always switch to checked when clicked
This seemed like the cleanest and clearest solution to solve this issue for now.
-->
<input *ngIf="!isAllSelected() && !isSomeSelected()" type="checkbox"
[indeterminate]="false"
(change)="selectAll()">
<input *ngIf="!isAllSelected() && isSomeSelected()" type="checkbox"
[indeterminate]="true"
(change)="deselectAll()">
<input *ngIf="isAllSelected()" type="checkbox"
[checked]="true"
(change)="deselectAll()">
<div class="search-page">
<div class="modal-body" *ngVar="(resultsRD$ | async) as resultsRD">
<div class="row">
<ds-search-sidebar class="col-4" id="search-sidebar"
[resultCount]="(resultsRD$ | async)?.payload?.totalElements"
[inPlaceSearch]="true"></ds-search-sidebar>
<div class="col-8">
<form class="input-group mb-3" #queryForm="ngForm"
(ngSubmit)="search(queryForm.value.query)">
<input type="text" class="form-control" name="query" placeholder="Search query"
[ngModel]="searchQuery">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="submit">Go</button>
</div>
</form>
<ds-loading *ngIf="!resultsRD || resultsRD.isLoading"></ds-loading>
<div *ngIf="resultsRD?.hasSucceeded && resultsRD.payload.page.length > 0">
<div *ngIf="repeatable">
<div class="input-group mb-3">
<div class="input-group-prepend">
<div class="input-group-text">
<!-- In theory we don't need separate checkboxes for this,
but I wasn't able to get this to work correctly without them.
Checkboxes that are in the indeterminate state always switch to checked when clicked
This seemed like the cleanest and clearest solution to solve this issue for now.
-->
<input *ngIf="!isAllSelected() && !isSomeSelected()"
type="checkbox"
[indeterminate]="false"
(change)="selectAll()">
<input *ngIf="!isAllSelected() && isSomeSelected()"
type="checkbox"
[indeterminate]="true"
(change)="deselectAll()">
<input *ngIf="isAllSelected()" type="checkbox"
[checked]="true"
(change)="deselectAll()">
</div>
</div>
<button *ngIf="selectAllLoading" type="button"
class="btn btn-outline-secondary">
<span class="spinner-border spinner-border-sm" role="status"
aria-hidden="true"></span>
<span class="sr-only">Loading...</span>
</button>
<div ngbDropdown class="input-group-append">
<button *ngIf="!selectAllLoading" id="resultdropdown" type="button"
ngbDropdownToggle
class="btn btn-outline-secondary dropdown-toggle-split"
data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div ngbDropdownMenu aria-labelledby="resultdropdown">
<button class="dropdown-item"
(click)="selectPage(resultsRD?.payload?.page)">Select
page
</button>
<button class="dropdown-item"
(click)="deselectPage(resultsRD?.payload?.page)">
Deselect
page
</button>
<button class="dropdown-item" (click)="selectAll()">Select all
</button>
<button class="dropdown-item" (click)="deselectAll()">Deselect
all
</button>
</div>
</div>
</div>
</div>
<ds-pagination
[paginationOptions]="searchConfig.pagination"
[collectionSize]="resultsRD?.payload?.totalElements"
[sortOptions]="searchConfig.sort"
[hideGear]="true"
[hidePagerWhenSinglePage]="true"
(paginationChange)="onPaginationChange($event.pagination)">
<div class="form-check"
*ngFor="let result of resultsRD?.payload?.page; let i = index">
<input *ngIf="repeatable" class="form-check-input" type="checkbox"
[name]="'checkbox' + i"
[id]="'object'+i"
[checked]="isSelected(result.indexableObject)"
[disabled]="isDisabled(result.indexableObject)"
(change)="selectCheckbox($event.currentTarget.checked, result.indexableObject)">
<input *ngIf="!repeatable" class="form-check-input" type="radio"
[name]="'radio' + i"
[id]="'object'+i"
[checked]="isSelected(result.indexableObject)"
(change)="selectRadio($event.currentTarget.checked, result.indexableObject)">
<label class="form-check-label" [for]="'object'+i">
<ds-wrapper-list-element class="result-list-element"
[object]="result"
[index]="i"></ds-wrapper-list-element>
</label>
</div>
</ds-pagination>
</div>
<div ngbDropdown class="input-group-append">
<button id="resultdropdown" type="button" ngbDropdownToggle
class="btn btn-outline-secondary dropdown-toggle-split"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span>
</button>
<div ngbDropdownMenu aria-labelledby="resultdropdown">
<button class="dropdown-item"
(click)="selectPage(resultsRD?.payload?.page)">Select page
</button>
<button class="dropdown-item"
(click)="deselectPage(resultsRD?.payload?.page)">Deselect
page
</button>
<button class="dropdown-item" (click)="selectAll()">Select all</button>
<button class="dropdown-item" (click)="deselectAll()">Deselect all</button>
</div>
<div *ngIf="resultsRD?.hasSucceeded && resultsRD.payload.page.length === 0">
{{ 'form.no-results' | translate}}
</div>
</div>
</div>
<ds-pagination
[paginationOptions]="searchConfig.pagination"
[collectionSize]="resultsRD?.payload?.totalElements"
[sortOptions]="searchConfig.sort"
[hideGear]="true"
[hidePagerWhenSinglePage]="true"
(paginationChange)="onPaginationChange($event.pagination)">
<div class="form-check" *ngFor="let result of resultsRD?.payload?.page; let i = index">
<input *ngIf="repeatable" class="form-check-input" type="checkbox"
[name]="'checkbox' + i"
[id]="'object'+i"
[checked]="isSelected(result.indexableObject)"
[disabled]="isDisabled(result.indexableObject)"
(change)="selectCheckbox($event.currentTarget.checked, result.indexableObject)">
<input *ngIf="!repeatable" class="form-check-input" type="radio"
[name]="'radio' + i"
[id]="'object'+i"
[checked]="isSelected(result.indexableObject)"
(change)="selectRadio($event.currentTarget.checked, result.indexableObject)">
<label class="form-check-label" [for]="'object'+i">
<ds-wrapper-list-element class="result-list-element"
[object]="result"
[index]="i"></ds-wrapper-list-element>
</label>
</div>
</ds-pagination>
</div>
<div *ngIf="resultsRD?.hasSucceeded && resultsRD.payload.page.length === 0">
{{ 'form.no-results' | translate}}
</div>
</div>
<div class="modal-footer">

View File

@@ -1,16 +1,19 @@
import { Component, OnInit } from '@angular/core';
import { PaginatedList } from '../../../../../../core/data/paginated-list';
import { SearchResult } from '../../../../../../+search-page/search-result.model';
import { SearchResult } from '../../../../../search/search-result.model';
import { RemoteData } from '../../../../../../core/data/remote-data';
import { Observable, ReplaySubject } from 'rxjs';
import { SearchService } from '../../../../../../+search-page/search-service/search.service';
import { PaginatedSearchOptions } from '../../../../../../+search-page/paginated-search-options.model';
import { SearchService } from '../../../../../../core/shared/search/search.service';
import { PaginatedSearchOptions } from '../../../../../search/paginated-search-options.model';
import { DSpaceObject } from '../../../../../../core/shared/dspace-object.model';
import { PaginationComponentOptions } from '../../../../../pagination/pagination-component-options.model';
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
import { hasNoValue, hasValue, isNotEmpty } from '../../../../../empty.util';
import { getSucceededRemoteData } from '../../../../../../core/shared/operators';
import { concat, map, multicast, take, takeWhile } from 'rxjs/operators';
import { concat, map, multicast, take, takeWhile, tap } from 'rxjs/operators';
import { Router } from '@angular/router';
import { SEARCH_CONFIG_SERVICE } from '../../../../../../+my-dspace-page/my-dspace-page.component';
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
const RELATION_TYPE_FILTER_PREFIX = 'f.entityType=';
@@ -20,7 +23,13 @@ const RELATION_TYPE_METADATA_PREFIX = 'relation.isPublicationOf';
@Component({
selector: 'ds-dynamic-lookup-relation-modal',
styleUrls: ['./dynamic-lookup-relation-modal.component.scss'],
templateUrl: './dynamic-lookup-relation-modal.component.html'
templateUrl: './dynamic-lookup-relation-modal.component.html',
providers: [
{
provide: SEARCH_CONFIG_SERVICE,
useClass: SearchConfigurationService
}
]
})
export class DsDynamicLookupRelationModalComponent implements OnInit {
relationKey: string;
@@ -34,19 +43,22 @@ export class DsDynamicLookupRelationModalComponent implements OnInit {
searchQuery;
initialPagination = Object.assign(new PaginationComponentOptions(), {
id: 'submission-relation-list',
pageSize: 5
pageSize: 10
});
selectAllLoading = false;
constructor(public modal: NgbActiveModal, private searchService: SearchService) {
constructor(public modal: NgbActiveModal, private searchService: SearchService, private router: Router) {
}
ngOnInit(): void {
this.resetRoute();
this.fieldName = this.relationKey.substring(RELATION_TYPE_METADATA_PREFIX.length);
this.onPaginationChange(this.initialPagination);
}
search(query: string) {
this.searchQuery = query;
this.resetRoute();
this.onPaginationChange(this.initialPagination);
this.deselectAll();
}
@@ -118,6 +130,7 @@ export class DsDynamicLookupRelationModalComponent implements OnInit {
selectAll() {
this.allSelected = true;
this.selectAllLoading = true;
const fullPagination = Object.assign(new PaginationComponentOptions(), {
query: this.searchQuery,
currentPage: 1,
@@ -127,7 +140,8 @@ export class DsDynamicLookupRelationModalComponent implements OnInit {
const results = this.searchService.search(fullSearchConfig);
results.pipe(
getSucceededRemoteData(),
map((resultsRD) => resultsRD.payload.page)
map((resultsRD) => resultsRD.payload.page),
tap(() => this.selectAllLoading = false)
)
.subscribe((results) =>
this.selection = results
@@ -149,4 +163,10 @@ export class DsDynamicLookupRelationModalComponent implements OnInit {
isSomeSelected() {
return isNotEmpty(this.selection);
}
resetRoute() {
this.router.navigate([], {
queryParams: Object.assign({}, { page: 1, query: this.searchQuery }),
});
}
}

View File

@@ -11,6 +11,8 @@ import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
import { DsDynamicLookupRelationModalComponent } from './dynamic-lookup-relation-modal.component';
import { DynamicLookupRelationModel } from './dynamic-lookup-relation.model';
import { DSpaceObject } from '../../../../../../core/shared/dspace-object.model';
import { RelationshipService } from '../../../../../../core/data/relationship.service';
import { Item } from '../../../../../../core/shared/item.model';
@Component({
selector: 'ds-dynamic-lookup-relation',
@@ -28,11 +30,12 @@ export class DsDynamicLookupRelationComponent extends DynamicFormControlComponen
modalRef: NgbModalRef;
modalValuesString = '';
selectedResults: DSpaceObject[];
selectedResults: Item[];
constructor(private modalService: NgbModal,
protected layoutService: DynamicFormLayoutService,
protected validationService: DynamicFormValidationService,
private relationService: RelationshipService
) {
super(layoutService, validationService);
}
@@ -45,7 +48,7 @@ export class DsDynamicLookupRelationComponent extends DynamicFormControlComponen
}
openLookup() {
this.modalRef = this.modalService.open(DsDynamicLookupRelationModalComponent);
this.modalRef = this.modalService.open(DsDynamicLookupRelationModalComponent, { size: 'lg' });
this.modalRef.componentInstance.repeatable = this.model.repeatable;
this.modalRef.componentInstance.selection = this.selectedResults || [];
this.modalRef.componentInstance.previousSelection = this.model.value || [];
@@ -65,6 +68,9 @@ export class DsDynamicLookupRelationComponent extends DynamicFormControlComponen
this.modalValuesString = '';
this.selectedResults = [];
this.selectedResults.forEach((item: Item) => {
this.relationService.addRelationship(this.model.item, item);
})
}
removeSelection(uuid: string) {

View File

@@ -1,11 +1,13 @@
import { DynamicFormControlLayout, serializable } from '@ng-dynamic-forms/core';
import { DsDynamicInputModel, DsDynamicInputModelConfig } from '../ds-dynamic-input.model';
import { Item } from '../../../../../../core/shared/item.model';
export const DYNAMIC_FORM_CONTROL_TYPE_LOOKUP_RELATION = 'LOOKUP_RELATION';
export interface DynamicLookupRelationModelConfig extends DsDynamicInputModelConfig {
value?: any;
repeatable: boolean;
item: Item;
}
export class DynamicLookupRelationModel extends DsDynamicInputModel {
@@ -13,6 +15,7 @@ export class DynamicLookupRelationModel extends DsDynamicInputModel {
@serializable() readonly type: string = DYNAMIC_FORM_CONTROL_TYPE_LOOKUP_RELATION;
@serializable() value: any[];
@serializable() repeatable: boolean;
item: Item;
constructor(config: DynamicLookupRelationModelConfig, layout?: DynamicFormControlLayout) {
@@ -21,6 +24,7 @@ export class DynamicLookupRelationModel extends DsDynamicInputModel {
this.readOnly = true;
this.disabled = true;
this.repeatable = config.repeatable;
this.item = config.item;
this.valueUpdates.next(config.value);
}
}

View File

@@ -1,5 +1,5 @@
import * as deepFreeze from 'deep-freeze';
import { hostWindowReducer } from './host-window.reducer';
import { hostWindowReducer } from './search/host-window.reducer';
import { HostWindowResizeAction } from './host-window.actions';
class NullAction extends HostWindowResizeAction {

View File

@@ -1,7 +1,7 @@
import { combineLatest as observableCombineLatest, Observable } from 'rxjs';
import { filter, distinctUntilChanged, map } from 'rxjs/operators';
import { HostWindowState } from './host-window.reducer';
import { HostWindowState } from './search/host-window.reducer';
import { Injectable } from '@angular/core';
import { createSelector, select, Store } from '@ngrx/store';

View File

@@ -1,5 +1,5 @@
import { Component, InjectionToken, Injector, Input, OnInit } from '@angular/core';
import { SearchResult } from '../../../+search-page/search-result.model';
import { SearchResult } from '../../search/search-result.model';
import { Item } from '../../../core/shared/item.model';
import { hasValue } from '../../empty.util';
import { ItemSearchResult } from '../../object-collection/shared/item-search-result.model';

View File

@@ -1,7 +1,7 @@
import { ClaimedTask } from '../../../core/tasks/models/claimed-task-object.model';
import { SearchResult } from '../../../+search-page/search-result.model';
import { SearchResult } from '../../search/search-result.model';
import { MyDSpaceConfigurationValueType } from '../../../+my-dspace-page/my-dspace-configuration-value-type';
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
import { searchResultFor } from '../../search/search-result-element-decorator';
/**
* Represents a search result object of a ClaimedTask object

View File

@@ -1,6 +1,6 @@
import { SearchResult } from '../../../+search-page/search-result.model';
import { SearchResult } from '../../search/search-result.model';
import { Collection } from '../../../core/shared/collection.model';
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
import { searchResultFor } from '../../search/search-result-element-decorator';
@searchResultFor(Collection)
export class CollectionSearchResult extends SearchResult<Collection> {

View File

@@ -1,6 +1,6 @@
import { Community } from '../../../core/shared/community.model';
import { SearchResult } from '../../../+search-page/search-result.model';
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
import { SearchResult } from '../../search/search-result.model';
import { searchResultFor } from '../../search/search-result-element-decorator';
@searchResultFor(Community)
export class CommunitySearchResult extends SearchResult<Community> {

View File

@@ -1,6 +1,6 @@
import { Item } from '../../../core/shared/item.model';
import { SearchResult } from '../../../+search-page/search-result.model';
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
import { SearchResult } from '../../search/search-result.model';
import { searchResultFor } from '../../search/search-result-element-decorator';
import { MyDSpaceConfigurationValueType } from '../../../+my-dspace-page/my-dspace-configuration-value-type';
/**

View File

@@ -1,6 +1,6 @@
import { SearchResult } from '../../../+search-page/search-result.model';
import { SearchResult } from '../../search/search-result.model';
import { Item } from '../../../core/shared/item.model';
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
import { searchResultFor } from '../../search/search-result-element-decorator';
@searchResultFor(Item)
export class ItemSearchResult extends SearchResult<Item> {

View File

@@ -1,7 +1,7 @@
import { PoolTask } from '../../../core/tasks/models/pool-task-object.model';
import { SearchResult } from '../../../+search-page/search-result.model';
import { SearchResult } from '../../search/search-result.model';
import { MyDSpaceConfigurationValueType } from '../../../+my-dspace-page/my-dspace-configuration-value-type';
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
import { searchResultFor } from '../../search/search-result-element-decorator';
/**
* Represents a search result object of a PoolTask object

View File

@@ -1,7 +1,7 @@
import { Workflowitem } from '../../../core/submission/models/workflowitem.model';
import { SearchResult } from '../../../+search-page/search-result.model';
import { SearchResult } from '../../search/search-result.model';
import { MyDSpaceConfigurationValueType } from '../../../+my-dspace-page/my-dspace-configuration-value-type';
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
import { searchResultFor } from '../../search/search-result-element-decorator';
/**
* Represents a search result object of a Workflowitem object

View File

@@ -1,7 +1,7 @@
import { Workspaceitem } from '../../../core/submission/models/workspaceitem.model';
import { MyDSpaceConfigurationValueType } from '../../../+my-dspace-page/my-dspace-configuration-value-type';
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
import { SearchResult } from '../../../+search-page/search-result.model';
import { searchResultFor } from '../../search/search-result-element-decorator';
import { SearchResult } from '../../search/search-result.model';
/**
* Represents a search result object of a Workspaceitem object

View File

@@ -1,6 +1,6 @@
import { Component, Inject } from '@angular/core';
import { SearchResult } from '../../../+search-page/search-result.model';
import { SearchResult } from '../../search/search-result.model';
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
import { ListableObject } from '../../object-collection/shared/listable-object.model';

View File

@@ -1,7 +1,7 @@
import { Component, Inject } from '@angular/core';
import { Observable } from 'rxjs';
import { SearchResult } from '../../../+search-page/search-result.model';
import { SearchResult } from '../../search/search-result.model';
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
import { hasValue } from '../../empty.util';
import { ListableObject } from '../../object-collection/shared/listable-object.model';

View File

@@ -15,7 +15,7 @@ import { isNumeric } from 'rxjs/internal-compatibility';
import { isEqual, isObject, transform } from 'lodash';
import { HostWindowService } from '../host-window.service';
import { HostWindowState } from '../host-window.reducer';
import { HostWindowState } from '../search/host-window.reducer';
import { PaginationComponentOptions } from './pagination-component-options.model';
import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { hasValue, isNotEmpty } from '../empty.util';
@@ -513,5 +513,4 @@ export class PaginationComponent implements OnDestroy, OnInit {
get shouldShowBottomPager(): boolean {
return this.hasMultiplePages || !this.hidePagerWhenSinglePage
}
}

View File

@@ -8,7 +8,7 @@ import { RouterTestingModule } from '@angular/router/testing';
import { Community } from '../../core/shared/community.model';
import { TranslateModule } from '@ngx-translate/core';
import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { SearchService } from '../../+search-page/search-service/search.service';
import { SearchService } from '../../core/shared/search/search.service';
describe('SearchFormComponent', () => {
let comp: SearchFormComponent;

View File

@@ -4,7 +4,7 @@ import { Router } from '@angular/router';
import { hasValue, isNotEmpty } from '../empty.util';
import { QueryParamsHandling } from '@angular/router/src/config';
import { MYDSPACE_ROUTE } from '../../+my-dspace-page/my-dspace-page.component';
import { SearchService } from '../../+search-page/search-service/search.service';
import { SearchService } from '../../core/shared/search/search.service';
/**
* This component renders a simple item page.

View File

@@ -1,4 +1,4 @@
import { HostWindowAction, HostWindowActionTypes } from './host-window.actions';
import { HostWindowAction, HostWindowActionTypes } from '../host-window.actions';
export interface HostWindowState {
width: number;

View File

@@ -1,6 +1,6 @@
import { autoserialize, autoserializeAs } from 'cerialize';
import { MetadataMap } from '../core/shared/metadata.models';
import { ListableObject } from '../shared/object-collection/shared/listable-object.model';
import { MetadataMap } from '../../core/shared/metadata.models';
import { ListableObject } from '../object-collection/shared/listable-object.model';
/**
* Represents a normalized version of a search result object of a certain DSpaceObject

View File

@@ -1,7 +1,7 @@
import { SortDirection, SortOptions } from '../core/cache/models/sort-options.model';
import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model';
import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { PaginationComponentOptions } from '../pagination/pagination-component-options.model';
import { PaginatedSearchOptions } from './paginated-search-options.model';
import { DSpaceObjectType } from '../core/shared/dspace-object-type.model';
import { DSpaceObjectType } from '../../core/shared/dspace-object-type.model';
import { SearchFilter } from './search-filter.model';
describe('PaginatedSearchOptions', () => {

View File

@@ -1,9 +1,9 @@
import { SortOptions } from '../core/cache/models/sort-options.model';
import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model';
import { isNotEmpty } from '../shared/empty.util';
import { SortOptions } from '../../core/cache/models/sort-options.model';
import { PaginationComponentOptions } from '../pagination/pagination-component-options.model';
import { isNotEmpty } from '../empty.util';
import { SearchOptions } from './search-options.model';
import { SearchFilter } from './search-filter.model';
import { DSpaceObjectType } from '../core/shared/dspace-object-type.model';
import { DSpaceObjectType } from '../../core/shared/dspace-object-type.model';
/**
* This model class represents all parameters needed to request information about a certain page of a search request, in a certain order

View File

@@ -1,7 +1,7 @@
/**
* Represents a search filter
*/
import { hasValue } from '../shared/empty.util';
import { hasValue } from '../empty.util';
export class SearchFilter {
key: string;

View File

@@ -1,5 +1,5 @@
@import '../../../../../styles/variables.scss';
@import '../../../../../styles/mixins.scss';
@import '../../../../../../styles/variables';
@import '../../../../../../styles/mixins';
.filters {
a {

View File

@@ -1,9 +1,9 @@
import { Component, OnInit } from '@angular/core';
import { FilterType } from '../../../search-service/filter-type.model';
import { FilterType } from '../../../filter-type.model';
import { facetLoad, SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component';
import { renderFacetFor } from '../search-filter-type-decorator';
import { FacetValue } from '../../../search-service/facet-value.model';
import { FacetValue } from '../../../facet-value.model';
@Component({
selector: 'ds-search-authority-filter',

View File

@@ -1,5 +1,5 @@
@import '../../../../../styles/variables.scss';
@import '../../../../../styles/mixins.scss';
@import '../../../../../../styles/variables';
@import '../../../../../../styles/mixins';
.filters {
.toggle-more-filters a {

View File

@@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core';
import { FilterType } from '../../../search-service/filter-type.model';
import { FilterType } from '../../../filter-type.model';
import { renderFacetFor } from '../search-filter-type-decorator';
import {
facetLoad,

View File

@@ -3,17 +3,17 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TranslateModule } from '@ngx-translate/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { SearchFacetOptionComponent } from './search-facet-option.component';
import { SearchFilterConfig } from '../../../../search-service/search-filter-config.model';
import { FilterType } from '../../../../search-service/filter-type.model';
import { FacetValue } from '../../../../search-service/facet-value.model';
import { SearchFilterConfig } from '../../../../search-filter-config.model';
import { FilterType } from '../../../../filter-type.model';
import { FacetValue } from '../../../../facet-value.model';
import { FormsModule } from '@angular/forms';
import { of as observableOf } from 'rxjs';
import { SearchService } from '../../../../search-service/search.service';
import { SearchServiceStub } from '../../../../../shared/testing/search-service-stub';
import { SearchService } from '../../../../../../core/shared/search/search.service';
import { SearchServiceStub } from '../../../../../testing/search-service-stub';
import { Router } from '@angular/router';
import { RouterStub } from '../../../../../shared/testing/router-stub';
import { SearchConfigurationService } from '../../../../search-service/search-configuration.service';
import { SearchFilterService } from '../../search-filter.service';
import { RouterStub } from '../../../../../testing/router-stub';
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
import { SearchFilterService } from '../../../../../../core/shared/search/search-filter.service';
import { By } from '@angular/platform-browser';
describe('SearchFacetOptionComponent', () => {

View File

@@ -2,13 +2,13 @@ import { combineLatest as observableCombineLatest, Observable, Subscription } fr
import { map } from 'rxjs/operators';
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { FacetValue } from '../../../../search-service/facet-value.model';
import { SearchFilterConfig } from '../../../../search-service/search-filter-config.model';
import { SearchService } from '../../../../search-service/search.service';
import { SearchFilterService } from '../../search-filter.service';
import { SearchConfigurationService } from '../../../../search-service/search-configuration.service';
import { hasValue } from '../../../../../shared/empty.util';
import { FilterType } from '../../../../search-service/filter-type.model';
import { FacetValue } from '../../../../facet-value.model';
import { SearchFilterConfig } from '../../../../search-filter-config.model';
import { SearchService } from '../../../../../../core/shared/search/search.service';
import { SearchFilterService } from '../../../../../../core/shared/search/search-filter.service';
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
import { hasValue } from '../../../../../empty.util';
import { FilterType } from '../../../../filter-type.model';
@Component({
selector: 'ds-search-facet-option',

View File

@@ -2,17 +2,17 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TranslateModule } from '@ngx-translate/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { SearchFilterConfig } from '../../../../search-service/search-filter-config.model';
import { FilterType } from '../../../../search-service/filter-type.model';
import { FacetValue } from '../../../../search-service/facet-value.model';
import { SearchFilterConfig } from '../../../../search-filter-config.model';
import { FilterType } from '../../../../filter-type.model';
import { FacetValue } from '../../../../facet-value.model';
import { FormsModule } from '@angular/forms';
import { of as observableOf } from 'rxjs';
import { SearchService } from '../../../../search-service/search.service';
import { SearchServiceStub } from '../../../../../shared/testing/search-service-stub';
import { SearchService } from '../../../../../../core/shared/search/search.service';
import { SearchServiceStub } from '../../../../../testing/search-service-stub';
import { Router } from '@angular/router';
import { RouterStub } from '../../../../../shared/testing/router-stub';
import { SearchConfigurationService } from '../../../../search-service/search-configuration.service';
import { SearchFilterService } from '../../search-filter.service';
import { RouterStub } from '../../../../../testing/router-stub';
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
import { SearchFilterService } from '../../../../../../core/shared/search/search-filter.service';
import { By } from '@angular/platform-browser';
import { SearchFacetRangeOptionComponent } from './search-facet-range-option.component';
import {

View File

@@ -2,16 +2,16 @@ import { Observable, Subscription } from 'rxjs';
import { map } from 'rxjs/operators';
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { FacetValue } from '../../../../search-service/facet-value.model';
import { SearchFilterConfig } from '../../../../search-service/search-filter-config.model';
import { SearchService } from '../../../../search-service/search.service';
import { SearchFilterService } from '../../search-filter.service';
import { FacetValue } from '../../../../facet-value.model';
import { SearchFilterConfig } from '../../../../search-filter-config.model';
import { SearchService } from '../../../../../../core/shared/search/search.service';
import { SearchFilterService } from '../../../../../../core/shared/search/search-filter.service';
import {
RANGE_FILTER_MAX_SUFFIX,
RANGE_FILTER_MIN_SUFFIX
} from '../../search-range-filter/search-range-filter.component';
import { SearchConfigurationService } from '../../../../search-service/search-configuration.service';
import { hasValue } from '../../../../../shared/empty.util';
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
import { hasValue } from '../../../../../empty.util';
const rangeDelimiter = '-';

View File

@@ -2,18 +2,18 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TranslateModule } from '@ngx-translate/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { SearchFilterConfig } from '../../../../search-service/search-filter-config.model';
import { FilterType } from '../../../../search-service/filter-type.model';
import { SearchFilterConfig } from '../../../../search-filter-config.model';
import { FilterType } from '../../../../filter-type.model';
import { FormsModule } from '@angular/forms';
import { of as observableOf } from 'rxjs';
import { SearchService } from '../../../../search-service/search.service';
import { SearchServiceStub } from '../../../../../shared/testing/search-service-stub';
import { SearchService } from '../../../../../../core/shared/search/search.service';
import { SearchServiceStub } from '../../../../../testing/search-service-stub';
import { Router } from '@angular/router';
import { RouterStub } from '../../../../../shared/testing/router-stub';
import { SearchConfigurationService } from '../../../../search-service/search-configuration.service';
import { SearchFilterService } from '../../search-filter.service';
import { RouterStub } from '../../../../../testing/router-stub';
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
import { SearchFilterService } from '../../../../../../core/shared/search/search-filter.service';
import { SearchFacetSelectedOptionComponent } from './search-facet-selected-option.component';
import { FacetValue } from '../../../../search-service/facet-value.model';
import { FacetValue } from '../../../../facet-value.model';
describe('SearchFacetSelectedOptionComponent', () => {
let comp: SearchFacetSelectedOptionComponent;

View File

@@ -1,13 +1,13 @@
import { combineLatest as observableCombineLatest, Observable, Subscription } from 'rxjs';
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { SearchFilterConfig } from '../../../../search-service/search-filter-config.model';
import { SearchService } from '../../../../search-service/search.service';
import { SearchFilterService } from '../../search-filter.service';
import { hasValue } from '../../../../../shared/empty.util';
import { SearchConfigurationService } from '../../../../search-service/search-configuration.service';
import { FacetValue } from '../../../../search-service/facet-value.model';
import { FilterType } from '../../../../search-service/filter-type.model';
import { SearchFilterConfig } from '../../../../search-filter-config.model';
import { SearchService } from '../../../../../../core/shared/search/search.service';
import { SearchFilterService } from '../../../../../../core/shared/search/search-filter.service';
import { hasValue } from '../../../../../empty.util';
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
import { FacetValue } from '../../../../facet-value.model';
import { FilterType } from '../../../../filter-type.model';
@Component({
selector: 'ds-search-facet-selected-option',

View File

@@ -1,9 +1,9 @@
import { Component, Injector, Input, OnInit } from '@angular/core';
import { renderFilterType } from '../search-filter-type-decorator';
import { FilterType } from '../../../search-service/filter-type.model';
import { SearchFilterConfig } from '../../../search-service/search-filter-config.model';
import { FILTER_CONFIG, IN_PLACE_SEARCH } from '../search-filter.service';
import { GenericConstructor } from '../../../../core/shared/generic-constructor';
import { FilterType } from '../../../filter-type.model';
import { SearchFilterConfig } from '../../../search-filter-config.model';
import { FILTER_CONFIG, IN_PLACE_SEARCH } from '../../../../../core/shared/search/search-filter.service';
import { GenericConstructor } from '../../../../../core/shared/generic-constructor';
import { SearchFacetFilterComponent } from '../search-facet-filter/search-facet-filter.component';
@Component({

View File

@@ -2,23 +2,23 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TranslateModule } from '@ngx-translate/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { FILTER_CONFIG, IN_PLACE_SEARCH, SearchFilterService } from '../search-filter.service';
import { SearchFilterConfig } from '../../../search-service/search-filter-config.model';
import { FilterType } from '../../../search-service/filter-type.model';
import { FacetValue } from '../../../search-service/facet-value.model';
import { FILTER_CONFIG, IN_PLACE_SEARCH, SearchFilterService } from '../../../../../core/shared/search/search-filter.service';
import { SearchFilterConfig } from '../../../search-filter-config.model';
import { FilterType } from '../../../filter-type.model';
import { FacetValue } from '../../../facet-value.model';
import { FormsModule } from '@angular/forms';
import { of as observableOf } from 'rxjs';
import { SearchService } from '../../../search-service/search.service';
import { SearchServiceStub } from '../../../../shared/testing/search-service-stub';
import { RemoteData } from '../../../../core/data/remote-data';
import { PaginatedList } from '../../../../core/data/paginated-list';
import { RouterStub } from '../../../../shared/testing/router-stub';
import { SearchService } from '../../../../../core/shared/search/search.service';
import { SearchServiceStub } from '../../../../testing/search-service-stub';
import { RemoteData } from '../../../../../core/data/remote-data';
import { PaginatedList } from '../../../../../core/data/paginated-list';
import { RouterStub } from '../../../../testing/router-stub';
import { Router } from '@angular/router';
import { PageInfo } from '../../../../core/shared/page-info.model';
import { PageInfo } from '../../../../../core/shared/page-info.model';
import { SearchFacetFilterComponent } from './search-facet-filter.component';
import { RemoteDataBuildService } from '../../../../core/cache/builders/remote-data-build.service';
import { SearchConfigurationServiceStub } from '../../../../shared/testing/search-configuration-service-stub';
import { SEARCH_CONFIG_SERVICE } from '../../../../+my-dspace-page/my-dspace-page.component';
import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service';
import { SearchConfigurationServiceStub } from '../../../../testing/search-configuration-service-stub';
import { SEARCH_CONFIG_SERVICE } from '../../../../../+my-dspace-page/my-dspace-page.component';
import { tap } from 'rxjs/operators';
describe('SearchFacetFilterComponent', () => {

View File

@@ -10,20 +10,20 @@ import { distinctUntilChanged, map, switchMap, take, tap } from 'rxjs/operators'
import { animate, state, style, transition, trigger } from '@angular/animations';
import { Component, Inject, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { RemoteDataBuildService } from '../../../../core/cache/builders/remote-data-build.service';
import { PaginatedList } from '../../../../core/data/paginated-list';
import { RemoteData } from '../../../../core/data/remote-data';
import { hasNoValue, hasValue, isNotEmpty } from '../../../../shared/empty.util';
import { EmphasizePipe } from '../../../../shared/utils/emphasize.pipe';
import { FacetValue } from '../../../search-service/facet-value.model';
import { SearchFilterConfig } from '../../../search-service/search-filter-config.model';
import { SearchService } from '../../../search-service/search.service';
import { FILTER_CONFIG, IN_PLACE_SEARCH, SearchFilterService } from '../search-filter.service';
import { SearchConfigurationService } from '../../../search-service/search-configuration.service';
import { getSucceededRemoteData } from '../../../../core/shared/operators';
import { InputSuggestion } from '../../../../shared/input-suggestions/input-suggestions.model';
import { RemoteDataBuildService } from '../../../../../core/cache/builders/remote-data-build.service';
import { PaginatedList } from '../../../../../core/data/paginated-list';
import { RemoteData } from '../../../../../core/data/remote-data';
import { hasNoValue, hasValue, isNotEmpty } from '../../../../empty.util';
import { EmphasizePipe } from '../../../../utils/emphasize.pipe';
import { FacetValue } from '../../../facet-value.model';
import { SearchFilterConfig } from '../../../search-filter-config.model';
import { SearchService } from '../../../../../core/shared/search/search.service';
import { FILTER_CONFIG, IN_PLACE_SEARCH, SearchFilterService } from '../../../../../core/shared/search/search-filter.service';
import { SearchConfigurationService } from '../../../../../core/shared/search/search-configuration.service';
import { getSucceededRemoteData } from '../../../../../core/shared/operators';
import { InputSuggestion } from '../../../../input-suggestions/input-suggestions.model';
import { SearchOptions } from '../../../search-options.model';
import { SEARCH_CONFIG_SERVICE } from '../../../../+my-dspace-page/my-dspace-page.component';
import { SEARCH_CONFIG_SERVICE } from '../../../../../+my-dspace-page/my-dspace-page.component';
@Component({
selector: 'ds-search-facet-filter',

View File

@@ -1,5 +1,5 @@
import { FilterType } from '../../search-service/filter-type.model';
import { FilterType } from '../../filter-type.model';
/**
* Contains the mapping between a facet component and a FilterType

View File

@@ -1,7 +1,7 @@
import { Action } from '@ngrx/store';
import { type } from '../../../shared/ngrx/type';
import { SearchFilterConfig } from '../../search-service/search-filter-config.model';
import { type } from '../../../ngrx/type';
import { SearchFilterConfig } from '../../search-filter-config.model';
/**
* For each action type in an action group, make a simple

View File

@@ -1,5 +1,5 @@
@import '../../../../styles/variables.scss';
@import '../../../../styles/mixins.scss';
@import '../../../../../styles/variables';
@import '../../../../../styles/mixins';
:host .facet-filter {
border: 1px solid map-get($theme-colors, light);

View File

@@ -5,14 +5,14 @@ import { RouterTestingModule } from '@angular/router/testing';
import { TranslateModule } from '@ngx-translate/core';
import { Observable, of as observableOf } from 'rxjs';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { SearchFilterService } from './search-filter.service';
import { SearchService } from '../../search-service/search.service';
import { SearchFilterService } from '../../../../core/shared/search/search-filter.service';
import { SearchService } from '../../../../core/shared/search/search.service';
import { SearchFilterComponent } from './search-filter.component';
import { SearchFilterConfig } from '../../search-service/search-filter-config.model';
import { FilterType } from '../../search-service/filter-type.model';
import { SearchConfigurationService } from '../../search-service/search-configuration.service';
import { SearchConfigurationServiceStub } from '../../../shared/testing/search-configuration-service-stub';
import { SEARCH_CONFIG_SERVICE } from '../../../+my-dspace-page/my-dspace-page.component';
import { SearchFilterConfig } from '../../search-filter-config.model';
import { FilterType } from '../../filter-type.model';
import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service';
import { SearchConfigurationServiceStub } from '../../../testing/search-configuration-service-stub';
import { SEARCH_CONFIG_SERVICE } from '../../../../+my-dspace-page/my-dspace-page.component';
describe('SearchFilterComponent', () => {
let comp: SearchFilterComponent;

View File

@@ -3,13 +3,13 @@ import { Component, Inject, Input, OnInit } from '@angular/core';
import { Observable, of as observableOf } from 'rxjs';
import { filter, first, map, startWith, switchMap, take } from 'rxjs/operators';
import { SearchFilterConfig } from '../../search-service/search-filter-config.model';
import { SearchFilterService } from './search-filter.service';
import { slide } from '../../../shared/animations/slide';
import { isNotEmpty } from '../../../shared/empty.util';
import { SearchService } from '../../search-service/search.service';
import { SearchConfigurationService } from '../../search-service/search-configuration.service';
import { SEARCH_CONFIG_SERVICE } from '../../../+my-dspace-page/my-dspace-page.component';
import { SearchFilterConfig } from '../../search-filter-config.model';
import { SearchFilterService } from '../../../../core/shared/search/search-filter.service';
import { slide } from '../../../animations/slide';
import { isNotEmpty } from '../../../empty.util';
import { SearchService } from '../../../../core/shared/search/search.service';
import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service';
import { SEARCH_CONFIG_SERVICE } from '../../../../+my-dspace-page/my-dspace-page.component';
@Component({
selector: 'ds-search-filter',

Some files were not shown because too many files have changed in this diff Show More