update config and integrate rest

This commit is contained in:
FrancescoMolinaro
2023-12-28 17:06:27 +01:00
parent 5d8ba54676
commit e39e034329
8 changed files with 161 additions and 91 deletions

View File

@@ -1,47 +1,35 @@
import { Component, Inject, OnInit } from '@angular/core';
import { SearchConfigurationService } from "../../core/shared/search/search-configuration.service";
import { Component, OnInit } from '@angular/core';
import { SearchService } from "../../core/shared/search/search.service";
import { environment } from "../../../environments/environment";
import { PaginatedSearchOptions } from "../../shared/search/models/paginated-search-options.model";
import { SEARCH_CONFIG_SERVICE } from "../../my-dspace-page/my-dspace-page.component";
import { PaginationComponentOptions } from "../../shared/pagination/pagination-component-options.model";
import { SearchFilterConfig } from "../../shared/search/models/search-filter-config.model";
import { concatAll, concatWith, flatMap, forkJoin, from, mergeAll, switchMap } from "rxjs";
import { concat, delay } from "rxjs/operators";
import { getFirstSucceededRemoteData } from "../../core/shared/operators";
@Component({
selector: 'ds-admin-notify-dashboard',
templateUrl: './admin-notify-dashboard.component.html',
styleUrls: ['./admin-notify-dashboard.component.scss'],
providers: [
{
provide: SEARCH_CONFIG_SERVICE,
useClass: SearchConfigurationService
}
]
})
export class AdminNotifyDashboardComponent implements OnInit{
mockFilterConfig : SearchFilterConfig = Object.assign(new SearchFilterConfig(), {
type: {
value: "discovery-filter"
},
pageSize: 10,
name: "author",
filterType: "text",
_links: {
self: {
href: "https://dspace-coar.4science.cloud/server/api/discover/facets/author"
}
}
});
mockPaginatedSearchOptions = new PaginatedSearchOptions({
pagination: Object.assign(new PaginationComponentOptions(), { id: 'page-id', currentPage: 1, pageSize: 20 }),
configuration: '',
metricsConfig = environment.notifyMetrics;
private singleResultOptions = Object.assign(new PaginationComponentOptions(), {
id: 'single-result-options',
pageSize: 1
});
constructor(private searchService: SearchService,
@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService,
) {}
constructor(private searchService: SearchService) {}
ngOnInit() {
this.searchService.getFacetValuesFor(this.mockFilterConfig, 1, this.mockPaginatedSearchOptions).subscribe(c => console.log(c))
const discoveryConfigurations = this.metricsConfig
.map(row => row.boxes)
.map(boxes => boxes.map(box => box.config).filter(config => !!config));
const mergedConfigurations = discoveryConfigurations[0].concat(discoveryConfigurations[1]);
const searchConfigurations = mergedConfigurations
.map(config => Object.assign(new PaginatedSearchOptions({}),
{ configuration: config, pagination: this.singleResultOptions }
));
// TODO: check for search completion before executing next one
}
}