[Harvester | master]: eoscservice.ts & harvester.component.html & harvester.component.ts: Model changed - one eosc service can have multiple compatibilities (e.g. b2find).

This commit is contained in:
Konstantina Galouni 2023-10-17 13:47:51 +03:00
parent 9f7aca0f10
commit 17faecee76
3 changed files with 15 additions and 11 deletions

View File

@ -6,5 +6,5 @@ export class EOSCService {
// configuration template instance info
baseurl: string;
compatibility: string;
compatibilities: string[];
}

View File

@ -64,9 +64,9 @@
<span class="uk-text-meta">Base URL: </span>
<a target="_blank" [href]="service.baseurl" class="custom-external uk-link">{{service.baseurl}}</a>
</div>
<div *ngIf="service.compatibility">
<span class="uk-text-meta">Compatibility: </span>
{{service.compatibility}}
<div *ngIf="service.compatibilities">
<span class="uk-text-meta">Compatibilities: </span>
{{service.compatibilities.join(', ')}}
</div>
<div *ngIf="service.description" class="uk-margin-top uk-height-max-medium uk-overflow-auto">
<p [innerHTML]="service.description"></p>

View File

@ -56,13 +56,17 @@ export class HarvesterComponent {
let service = new EOSCService();
// service.id = serviceId;
service.baseurl = subProfile.payload.baseURL;
service.compatibility = subProfile.payload.compatibility;
servicesMap.set(serviceId, service);
if (!compatibilitiesSet.has(service.compatibility)) {
compatibilitiesSet.add(service.compatibility);
this.compatibilityFilterValues.push({"compatibility": service.compatibility, "selected": false});
service.compatibilities = [];
if(subProfile.payload.compatibility) {
service.compatibilities.push(subProfile.payload.compatibility);
}
servicesMap.set(serviceId, service);
} else if(subProfile.payload.compatibility) {
servicesMap.get(serviceId).compatibilities.push(subProfile.payload.compatibility);
}
if (subProfile.payload.compatibility && !compatibilitiesSet.has(subProfile.payload.compatibility)) {
compatibilitiesSet.add(subProfile.payload.compatibility);
this.compatibilityFilterValues.push({"compatibility": subProfile.payload.compatibility, "selected": false});
}
serviceIds.add(serviceId);
@ -123,7 +127,7 @@ export class HarvesterComponent {
} else {
this.services = this.allServices.filter(service => {
for (let filter of this.compatibilityFilterValues) {
if (filter.selected && service.compatibility == filter.compatibility) {
if (filter.selected && service.compatibilities.includes(filter.compatibility)) {
return true;
}
}