2020-05-31 13:26:45 +02:00
|
|
|
import {Component, Input} from '@angular/core';
|
|
|
|
import {EnvProperties} from "../../properties/env-properties";
|
|
|
|
import {ErrorCodes} from "../../properties/errorCodes";
|
2022-04-28 11:13:06 +02:00
|
|
|
import {OpenaireEntities} from "../../properties/searchFields";
|
2020-05-31 13:26:45 +02:00
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'search-tab',
|
|
|
|
template: `
|
2021-12-01 15:39:39 +01:00
|
|
|
<a *ngIf="fetch.searchUtils.status == errorCodes.LOADING" class="uk-invisible"
|
|
|
|
[queryParams]="params" [routerLink]="searchLinkToAdvancedPage"></a>
|
|
|
|
|
2022-04-28 11:13:06 +02:00
|
|
|
<ng-container *ngIf="fetch.searchUtils.status != errorCodes.LOADING">
|
|
|
|
<div class="uk-flex uk-flex-between uk-flex-middle uk-margin-bottom">
|
|
|
|
<div class="uk-text-meta uk-text-large uk-text-uppercase">
|
|
|
|
<span *ngIf="!customTitle && resultType"><span *ngIf="resultType != 'organization' && resultType != 'dataprovider' && resultType != 'project'">Recent</span>
|
|
|
|
{{getEntityName(resultType)}}
|
2021-03-10 11:41:38 +01:00
|
|
|
</span>
|
2022-04-28 11:13:06 +02:00
|
|
|
<span *ngIf="customTitle">{{customTitle}}</span>
|
|
|
|
</div>
|
|
|
|
<div *ngIf="searchLinkToAdvancedPage">
|
|
|
|
<a class="el-content uk-button uk-button-text" [queryParams]="params" [routerLink]="searchLinkToAdvancedPage">
|
|
|
|
View all
|
|
|
|
<span *ngIf="fetch.searchUtils.totalResults <= searchNumber">in search page</span>
|
|
|
|
</a>
|
|
|
|
</div>
|
2020-05-31 13:26:45 +02:00
|
|
|
</div>
|
|
|
|
|
2021-05-19 11:36:09 +02:00
|
|
|
<ng-content></ng-content>
|
2022-05-06 15:31:40 +02:00
|
|
|
|
|
|
|
<errorMessages *ngIf="resultType" [status]="[fetch.searchUtils.status]" [type]="getEntityName(resultType)"
|
|
|
|
tab_error_class=true></errorMessages>
|
|
|
|
|
2022-04-28 11:13:06 +02:00
|
|
|
</ng-container>
|
|
|
|
|
|
|
|
<ng-container *ngIf="fetch.searchUtils.status == errorCodes.DONE">
|
2020-05-31 13:26:45 +02:00
|
|
|
<search-result [properties]="properties"
|
|
|
|
[results]="fetch.results"
|
|
|
|
[status]="fetch.searchUtils.status"
|
2021-04-02 11:17:00 +02:00
|
|
|
[type]="resultType" [showImpactFactors]="showImpactFactors" [showEnermaps]="showEnermaps">
|
2020-05-31 13:26:45 +02:00
|
|
|
</search-result>
|
|
|
|
|
2022-04-28 11:13:06 +02:00
|
|
|
<!-- <div *ngIf="searchLinkToAdvancedPage && fetch.results?.length > 0" class="uk-text-right">-->
|
|
|
|
<!-- <a class="el-content uk-button uk-button-text" [queryParams]="params" [routerLink]="searchLinkToAdvancedPage">-->
|
|
|
|
<!-- View all-->
|
|
|
|
<!-- <span *ngIf="fetch.searchUtils.totalResults <= searchNumber">in search page</span>-->
|
|
|
|
<!-- </a>-->
|
|
|
|
<!-- </div>-->
|
|
|
|
</ng-container>
|
2020-05-31 13:26:45 +02:00
|
|
|
`
|
|
|
|
})
|
|
|
|
|
|
|
|
export class SearchTabComponent {
|
|
|
|
@Input() public fetch;
|
|
|
|
@Input() public resultType: string;
|
|
|
|
@Input() public params: any;
|
|
|
|
@Input() public searchNumber: number = 5;
|
|
|
|
@Input() public searchLinkToAdvancedPage: string;
|
|
|
|
@Input() properties: EnvProperties;
|
2020-06-02 10:40:56 +02:00
|
|
|
@Input() showImpactFactors;
|
2021-03-10 11:41:38 +01:00
|
|
|
@Input() customTitle;
|
2021-04-02 11:17:00 +02:00
|
|
|
@Input() showEnermaps: boolean;
|
2021-03-10 11:41:38 +01:00
|
|
|
|
2020-05-31 13:26:45 +02:00
|
|
|
public errorCodes: ErrorCodes = new ErrorCodes();
|
|
|
|
|
2022-04-28 11:13:06 +02:00
|
|
|
public getEntityName(entityType: string): string {
|
2020-05-31 13:26:45 +02:00
|
|
|
if (entityType == "publication") {
|
2022-04-28 11:13:06 +02:00
|
|
|
return OpenaireEntities.PUBLICATIONS;
|
2020-05-31 13:26:45 +02:00
|
|
|
} else if (entityType == "dataset") {
|
2022-04-28 11:13:06 +02:00
|
|
|
return OpenaireEntities.DATASETS;
|
2020-05-31 13:26:45 +02:00
|
|
|
} else if (entityType == "software") {
|
2022-04-28 11:13:06 +02:00
|
|
|
return OpenaireEntities.SOFTWARE;
|
2020-05-31 13:26:45 +02:00
|
|
|
} else if (entityType == "other") {
|
2022-04-28 11:13:06 +02:00
|
|
|
return OpenaireEntities.OTHER;
|
2020-05-31 13:26:45 +02:00
|
|
|
} else if (entityType == "result") {
|
2022-04-28 11:13:06 +02:00
|
|
|
return OpenaireEntities.RESULTS;
|
2020-06-10 13:05:59 +02:00
|
|
|
} else if (entityType == "project") {
|
2022-04-28 11:13:06 +02:00
|
|
|
return OpenaireEntities.PROJECTS;
|
2020-06-10 13:05:59 +02:00
|
|
|
} else if (entityType == "dataprovider") {
|
2022-04-28 11:13:06 +02:00
|
|
|
return OpenaireEntities.DATASOURCES;
|
2022-05-06 15:31:40 +02:00
|
|
|
} else if (this.resultType) {
|
|
|
|
return this.resultType;
|
2020-05-31 13:26:45 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|