Merge branch 'develop' into new-claims-api
This commit is contained in:
commit
6cd2e583c5
|
@ -95,7 +95,7 @@
|
|||
<div [id]="item.id" *ngFor="let item of fos; index as i">
|
||||
<div class="uk-text-capitalize">
|
||||
<h2 class="uk-h4 uk-margin-remove">
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="{'fos': urlEncodeAndQuote(item.id)}"
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="buildFosQueryParam(item)"
|
||||
class="uk-link-text">
|
||||
{{item.id}}
|
||||
</a>
|
||||
|
@ -105,13 +105,13 @@
|
|||
<div *ngFor="let child of item.children">
|
||||
<div class="uk-text-capitalize">
|
||||
<h3 class="uk-h6 uk-margin-small-bottom">
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="{'fos': urlEncodeAndQuote(child.id)}"
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="buildFosQueryParam(child)"
|
||||
class="uk-link-text">
|
||||
{{child.id}}
|
||||
</a>
|
||||
</h3>
|
||||
<div *ngFor="let subChild of child.children" style="margin-bottom: 5px;">
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="{'fos': urlEncodeAndQuote(subChild.id)}"
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="buildFosQueryParam(subChild)"
|
||||
class="uk-link-text">
|
||||
{{subChild.label}}
|
||||
</a>
|
||||
|
@ -126,19 +126,19 @@
|
|||
<div
|
||||
class="uk-margin-large-bottom uk-padding uk-padding-remove-top uk-padding-remove-horizontal uk-text-capitalize" [class.custom-bottom-border]="i < viewResults.length - 1">
|
||||
<h2 class="uk-h4 uk-margin-remove">
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="{'fos': urlEncodeAndQuote(item.id)}"
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="buildFosQueryParam(item)"
|
||||
class="uk-link-text" [innerHTML]="highlightKeyword(item.id)">
|
||||
</a>
|
||||
</h2>
|
||||
<div class="uk-grid uk-child-width-1-3 uk-margin-large-top uk-margin-medium-bottom" uk-grid="masonry: false">
|
||||
<div *ngFor="let subItem of item.children">
|
||||
<h3 class="uk-h6 uk-margin-small-bottom">
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="{'fos': urlEncodeAndQuote(subItem.id)}"
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="buildFosQueryParam(subItem)"
|
||||
class="uk-link-text" [innerHTML]="highlightKeyword(subItem.id)">
|
||||
</a>
|
||||
</h3>
|
||||
<div *ngFor="let subSubItem of subItem.children" style="margin-bottom: 5px;">
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="{'fos': urlEncodeAndQuote(subSubItem.id)}"
|
||||
<a [routerLink]="properties.searchLinkToResults" [queryParams]="buildFosQueryParam(subSubItem)"
|
||||
class="uk-link-text" [innerHTML]="highlightKeyword(subSubItem.label)">
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -214,4 +214,8 @@ export class FosComponent implements OnInit, OnDestroy {
|
|||
this._meta.updateTag({content: description}, "name='description'");
|
||||
this._meta.updateTag({content: description}, "property='og:description'");
|
||||
}
|
||||
|
||||
public buildFosQueryParam(fos) {
|
||||
return {'foslabel': this.urlEncodeAndQuote(fos.id+"||"+fos.label)};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -438,23 +438,23 @@
|
|||
</ng-container>
|
||||
</div>
|
||||
|
||||
<div class="landing-action-bar-mobile uk-background-default">
|
||||
<div class="landing-action-bar-mobile uk-tile-default uk-blur-background">
|
||||
<div class="uk-container uk-flex-middle uk-grid uk-text-xsmall uk-text-meta" [ngClass]="hasMetrics ? 'uk-child-width-1-3' : 'uk-child-width-1-2'">
|
||||
<div>
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'info'; scroll()">
|
||||
<icon name="note_add" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'info' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="note_add" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'info' ? 'uk-text-primary': ''"></icon>
|
||||
<span>{{openaireEntities.DATASOURCE}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="dataProviderInfo && hasMetrics">
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'metrics'; scroll()">
|
||||
<icon name="bar_chart" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'metrics' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="bar_chart" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'metrics' ? 'uk-text-primary': ''"></icon>
|
||||
<span>Metrics</span>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'actions'; scroll()">
|
||||
<icon name="pending" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'actions' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="pending" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'actions' ? 'uk-text-primary': ''"></icon>
|
||||
<span>Actions</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -31,10 +31,14 @@ import {StringUtils} from "../../utils/string-utils.class";
|
|||
</div>
|
||||
<div class="uk-margin-small-top">
|
||||
<div *ngFor="let subject of subjects.slice(0, viewAll?subjects.length:threshold); let i=index" class="uk-text-truncate">
|
||||
<a [routerLink]="properties.searchLinkToResults"
|
||||
[queryParams]="{'fos': urlEncodeAndQuote(subject.id)}">
|
||||
<a *ngIf="properties.adminToolsPortalType != 'eosc'"
|
||||
[routerLink]="properties.searchLinkToResults" [queryParams]="buildFosQueryParam(subject)">
|
||||
{{subject.label}}
|
||||
</a>
|
||||
<a *ngIf="properties.adminToolsPortalType == 'eosc'" class="custom-external" target="_blank"
|
||||
[href]="'https://explore.openaire.eu'+properties.searchLinkToResults+'?fos='+urlEncodeAndQuote(subject.label)">
|
||||
{{subject.label}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -47,11 +51,11 @@ import {StringUtils} from "../../utils/string-utils.class";
|
|||
<div class="uk-width-expand">
|
||||
<div *ngFor="let subject of subjects.slice(0, viewAll?subjects.length:threshold); let i=index" class="uk-text-truncate">
|
||||
<a *ngIf="properties.adminToolsPortalType != 'eosc'"
|
||||
[routerLink]="properties.searchLinkToResults" [queryParams]="{'fos': urlEncodeAndQuote(subject.id)}">
|
||||
[routerLink]="properties.searchLinkToResults" [queryParams]="buildFosQueryParam(subject)">
|
||||
{{subject.label}}
|
||||
</a>
|
||||
<a *ngIf="properties.adminToolsPortalType == 'eosc'" class="custom-external" target="_blank"
|
||||
[href]="'https://explore.openaire.eu'+properties.searchLinkToResults+'?fos='+urlEncodeAndQuote(subject.id)">
|
||||
[href]="'https://explore.openaire.eu'+properties.searchLinkToResults+'?'+buildFosHrefParam(subject)">
|
||||
{{subject.label}}
|
||||
</a>
|
||||
</div>
|
||||
|
@ -60,11 +64,11 @@ import {StringUtils} from "../../utils/string-utils.class";
|
|||
<div *ngIf="viewAll">
|
||||
<div *ngFor="let subject of subjects; let i=index" class="uk-text-truncate">
|
||||
<a *ngIf="properties.adminToolsPortalType != 'eosc'"
|
||||
[routerLink]="properties.searchLinkToResults" [queryParams]="{'fos': urlEncodeAndQuote(subject.id)}">
|
||||
[routerLink]="properties.searchLinkToResults" [queryParams]="buildFosQueryParam(subject)">
|
||||
{{subject.label}}
|
||||
</a>
|
||||
<a *ngIf="properties.adminToolsPortalType == 'eosc'" class="custom-external" target="_blank"
|
||||
[href]="'https://explore.openaire.eu'+properties.searchLinkToResults+'?fos='+urlEncodeAndQuote(subject.id)">
|
||||
[href]="'https://explore.openaire.eu'+properties.searchLinkToResults+'?'+buildFosHrefParam(subject)">
|
||||
{{subject.label}}
|
||||
</a>
|
||||
</div>
|
||||
|
@ -115,4 +119,12 @@ export class FosComponent {
|
|||
public urlEncodeAndQuote(str: string): string {
|
||||
return StringUtils.quote(StringUtils.URIEncode(str));
|
||||
}
|
||||
|
||||
public buildFosQueryParam(fos) {
|
||||
return {'foslabel': this.urlEncodeAndQuote(fos.id+"||"+fos.label)};
|
||||
}
|
||||
|
||||
public buildFosHrefParam(fos): string {
|
||||
return ('foslabel='+this.urlEncodeAndQuote(fos.id+"||"+fos.label));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ import {properties} from "../../../../environments/environment";
|
|||
</div>
|
||||
</modal-alert>
|
||||
|
||||
<fs-modal *ngIf="isMobile" #identifiersModal>
|
||||
<fs-modal *ngIf="isMobile" #identifiersModal classTitle="uk-tile-default uk-border-bottom">
|
||||
<div class="uk-text-small">
|
||||
<ng-container *ngTemplateOutlet="identifiers_template; context: { modal: true}"></ng-container>
|
||||
</div>
|
||||
|
|
|
@ -373,17 +373,17 @@
|
|||
</ng-container>
|
||||
</div>
|
||||
|
||||
<div class="landing-action-bar-mobile uk-background-default">
|
||||
<div class="landing-action-bar-mobile uk-tile-default uk-blur-background">
|
||||
<div class="uk-container uk-grid uk-flex-middle uk-child-width-1-2 uk-text-xsmall uk-text-meta">
|
||||
<div>
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'info'; scroll()">
|
||||
<icon name="corporate_fare" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'info' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="corporate_fare" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'info' ? 'uk-text-primary': ''"></icon>
|
||||
<span>{{openaireEntities.ORGANIZATION}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'actions'; scroll()">
|
||||
<icon name="pending" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'actions' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="pending" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'actions' ? 'uk-text-primary': ''"></icon>
|
||||
<span>Actions</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -579,23 +579,23 @@
|
|||
</ng-container>
|
||||
</div>
|
||||
|
||||
<div class="landing-action-bar-mobile uk-background-default">
|
||||
<div class="landing-action-bar-mobile uk-tile-default uk-blur-background">
|
||||
<div class="uk-container uk-flex-middle uk-grid uk-text-xsmall uk-text-meta" [ngClass]="hasMetrics ? 'uk-child-width-1-3' : 'uk-child-width-1-2'">
|
||||
<div>
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'info'; scroll()">
|
||||
<icon name="assignment_turned_in" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'info' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="assignment_turned_in" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'info' ? 'uk-text-primary': ''"></icon>
|
||||
<span>{{openaireEntities.PROJECT}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="projectInfo && hasMetrics">
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'metrics'; scroll()">
|
||||
<icon name="bar_chart" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'metrics' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="bar_chart" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'metrics' ? 'uk-text-primary': ''"></icon>
|
||||
<span>Metrics</span>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'actions'; scroll()">
|
||||
<icon name="pending" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'actions' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="pending" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'actions' ? 'uk-text-primary': ''"></icon>
|
||||
<span>Actions</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -213,7 +213,10 @@
|
|||
</div>
|
||||
<helper *ngIf="pageContents && pageContents['top'] && pageContents['top'].length > 0"
|
||||
[texts]="pageContents['top']"></helper>
|
||||
|
||||
|
||||
<i class="uk-text-meta uk-text-xsmall" *ngIf="properties.adminToolsPortalType == 'eosc' && !belongsInEOSC && properties.environment !== 'production'">
|
||||
This {{getTypeName() | lowercase}} is not part of the European Open Science Cloud
|
||||
</i>
|
||||
<landing-header [properties]="properties" [title]="resultLandingInfo.title"
|
||||
[subTitle]="resultLandingInfo.subtitle"
|
||||
[authors]="resultLandingInfo.authors"
|
||||
|
@ -506,6 +509,9 @@
|
|||
<icon [name]="resultLandingInfo.hostedBy_collectedFrom[0].accessRightIcon" [flex]="true" [ratio]="1"></icon>
|
||||
<span class="uk-margin-xsmall-left uk-text-small uk-text-uppercase uk-text-bolder">{{getAccessLabel(resultLandingInfo.hostedBy_collectedFrom[0].accessRight)}}</span>
|
||||
</div>
|
||||
<i class="uk-text-meta uk-text-xsmall" *ngIf="properties.adminToolsPortalType == 'eosc' && !belongsInEOSC && properties.environment !== 'production'">
|
||||
This {{getTypeName() | lowercase}} is not part of the European Open Science Cloud
|
||||
</i>
|
||||
<landing-header [properties]="properties" [title]="resultLandingInfo.title"
|
||||
[subTitle]="resultLandingInfo.subtitle"
|
||||
[authors]="resultLandingInfo.authors"
|
||||
|
@ -692,31 +698,31 @@
|
|||
</ng-container>
|
||||
</div>
|
||||
|
||||
<div class="landing-action-bar-mobile uk-background-default">
|
||||
<div class="landing-action-bar-mobile uk-tile-default uk-blur-background">
|
||||
<div class="uk-container uk-flex-middle uk-grid uk-text-xsmall uk-text-meta" [ngClass]="(resultLandingInfo.measure || hasAltMetrics) ? 'uk-child-width-1-3' : 'uk-child-width-1-2'">
|
||||
<div>
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'info'; egiTransferModalOpen = false; scroll();">
|
||||
<span [ngClass]="mobileContent == 'info' ? 'uk-text-primary': ''">
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'publication'" name="description" type="outlined" [flex]="true" [ratio]="2"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'research data'" name="database" type="outlined" [flex]="true" [ratio]="2"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'research software'" name="integration_instructions" type="outlined" [flex]="true" [ratio]="2"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'other research product'" name="apps" type="outlined" [flex]="true" [ratio]="2"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'project'" name="assignment_turned_in" type="outlined" [flex]="true" [ratio]="2"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'data source'" name="note_add" type="outlined" [flex]="true" [ratio]="2"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'organization'" name="corporate_fare" type="outlined" [flex]="true" [ratio]="2"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'publication'" name="description" type="outlined" [flex]="true" [ratio]="1.4"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'research data'" name="database" type="outlined" [flex]="true" [ratio]="1.4"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'research software'" name="integration_instructions" type="outlined" [flex]="true" [ratio]="1.4"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'other research product'" name="apps" type="outlined" [flex]="true" [ratio]="1.4"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'project'" name="assignment_turned_in" type="outlined" [flex]="true" [ratio]="1.4"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'data source'" name="note_add" type="outlined" [flex]="true" [ratio]="1.4"></icon>
|
||||
<icon *ngIf="getTypeName().toLowerCase() == 'organization'" name="corporate_fare" type="outlined" [flex]="true" [ratio]="1.4"></icon>
|
||||
</span>
|
||||
<span>{{getTypeName()}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div *ngIf="resultLandingInfo && (resultLandingInfo.measure || hasAltMetrics)">
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'metrics'; scroll()">
|
||||
<icon name="bar_chart" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'metrics' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="bar_chart" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'metrics' ? 'uk-text-primary': ''"></icon>
|
||||
<span>Metrics</span>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-flex uk-flex-column uk-flex-middle uk-flex-center uk-link-reset" (click)="mobileContent = 'actions'; scroll()">
|
||||
<icon name="pending" type="outlined" [flex]="true" [ratio]="2" [ngClass]="mobileContent == 'actions' ? 'uk-text-primary': ''"></icon>
|
||||
<icon name="pending" type="outlined" [flex]="true" [ratio]="1.4" [ngClass]="mobileContent == 'actions' ? 'uk-text-primary': ''"></icon>
|
||||
<span>Actions</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -28,6 +28,7 @@ import {NumberUtils} from '../../utils/number-utils.class';
|
|||
import {FullScreenModalComponent} from "../../utils/modal/full-screen-modal/full-screen-modal.component";
|
||||
import {SdgFosSuggestComponent} from '../landing-utils/sdg-fos-suggest/sdg-fos-suggest.component';
|
||||
import {LayoutService} from "../../dashboard/sharedComponents/sidebar/layout.service";
|
||||
import {ContextsService} from "../../claims/claim-utils/service/contexts.service";
|
||||
|
||||
declare var ResizeObserver;
|
||||
|
||||
|
@ -54,6 +55,7 @@ export class ResultLandingComponent {
|
|||
public deleteByInferenceOpened: boolean = false;
|
||||
@Input() public resultFromInput: boolean = false;
|
||||
@Input() public resultLandingInfo: ResultLandingInfo;
|
||||
public belongsInEOSC: boolean = false;
|
||||
public supplementaryResults: RelationResult[];
|
||||
public relation: string = 'trust';
|
||||
public id: string;
|
||||
|
@ -174,6 +176,8 @@ export class ResultLandingComponent {
|
|||
@ViewChild('fosFsModal') fosFsModal: FullScreenModalComponent;
|
||||
|
||||
public noCommunities: boolean = false;
|
||||
private promise: Promise<void> = null;
|
||||
private publicCommunities: string[] = [];
|
||||
|
||||
public rightSidebarOffcanvasClicked: boolean = false;
|
||||
public egiTransferModalOpen = false;
|
||||
|
@ -192,7 +196,8 @@ export class ResultLandingComponent {
|
|||
private _location: Location,
|
||||
private indexInfoService: IndexInfoService,
|
||||
private userManagementService: UserManagementService,
|
||||
private layoutService: LayoutService) {
|
||||
private layoutService: LayoutService,
|
||||
private _contextService: ContextsService) {
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
|
@ -256,6 +261,7 @@ export class ResultLandingComponent {
|
|||
this.type="publication";
|
||||
}
|
||||
if ((this.id && StringUtils.isOpenAIREID(this.id)) || (this.identifier)) {
|
||||
this.getPublicCommunities();
|
||||
this.getVocabulariesAndResultLandingInfo();
|
||||
} else {
|
||||
this.showLoading = false;
|
||||
|
@ -496,29 +502,32 @@ export class ResultLandingComponent {
|
|||
this.resultLandingInfo = null;
|
||||
this.hasAltMetrics = false;
|
||||
this.subscriptions.push(this._resultLandingService.getResultLandingInfo(this.id, this.identifier, this.type, subjectsVocabulary, this.properties).subscribe(
|
||||
data => {
|
||||
async data => {
|
||||
let contexts = data.contexts;
|
||||
data.contexts = [];
|
||||
|
||||
this.resultLandingInfo = data;
|
||||
this.id = this.resultLandingInfo.objIdentifier;
|
||||
//old
|
||||
// this.viewsFrameUrl = this.properties.framesAPIURL + 'merge.php?com=query&data=[{"query":"resRepoViews", "resTitle":"' + this.id + '", "table":"","fields":[{"fld":"sum","agg":"sum","type":"column","yaxis":1,"c":false}],"xaxis":{"name":"month","agg":"sum"},"group":" ","color":"","type":"chart","size":200,"sort":"xaxis","xStyle":{"r":-30,"s":"6","l":"-","ft":"-","wt":"-"},"title":"","subtitle":"","xaxistitle":"Repository","yaxisheaders":["Monthly views"],"generalxaxis":"","theme":0,"in":[],"filters":[{"name":"","values":[""],"to":"-1"}]}]&info_types=["column"]&stacking=normal&steps=false&fontFamily=Courier&spacing=[5,0,0,0]&style=[{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"000000","size":""},{"color":"000000","size":""}]&backgroundColor=rgba(255,255,255,1)&colors[]=rgba(67, 67, 72, 1)&colors[]=rgba(144, 237, 125, 1)&colors[]=rgba(247, 163, 92, 1)&colors[]=rgba(128, 133, 233, 1)&colors[]=rgba(241, 92, 128, 1)&colors[]=rgba(228, 211, 84, 1)&colors[]=rgba(43, 144, 143, 1)&colors[]=rgba(244, 91, 91, 1)&colors[]=rgba(145, 232, 225, 1)&xlinew=0&ylinew=1&legends=true&tooltips=true&persistent=false';
|
||||
// this.downloadsFrameUrl = this.properties.framesAPIURL + 'merge.php?com=query&data=[{"query":"resRepoDownloads", "resTitle":"' + this.id + '", "table":"","fields":[{"fld":"sum","agg":"sum","type":"column","yaxis":1,"c":false}],"xaxis":{"name":"month","agg":"sum"},"group":" ","color":"","type":"chart","size":200,"sort":"xaxis","xStyle":{"r":-30,"s":"6","l":"-","ft":"-","wt":"-"},"title":"","subtitle":"","xaxistitle":"Repository","yaxisheaders":["Monthly downloads"],"generalxaxis":"","theme":0,"in":[],"filters":[{"name":"","values":[""],"to":"-1"}]}]&info_types=["column"]&stacking=normal&steps=false&fontFamily=Courier&spacing=[5,0,0,0]&style=[{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"rgba(0, 0, 0, 1)","size":"18"},{"color":"000000","size":""},{"color":"000000","size":""}]&backgroundColor=rgba(255,255,255,1)&colors[]=rgba(67, 67, 72, 1)&colors[]=rgba(144, 237, 125, 1)&colors[]=rgba(247, 163, 92, 1)&colors[]=rgba(128, 133, 233, 1)&colors[]=rgba(241, 92, 128, 1)&colors[]=rgba(228, 211, 84, 1)&colors[]=rgba(43, 144, 143, 1)&colors[]=rgba(244, 91, 91, 1)&colors[]=rgba(145, 232, 225, 1)&xlinew=0&ylinew=1&legends=true&tooltips=true&persistent=false';
|
||||
//new
|
||||
this.viewsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' + encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Monthly views","type":"column","query":{"name":"usagestats.results.views.monthly", "parameters":["' + this.id + '"], "profile":"OpenAIRE All-inclusive" }}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Monthly views"},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true,"text":""}}}');
|
||||
this.downloadsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' +
|
||||
this.viewsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' + encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Monthly views","type":"column","query":{"name":"usagestats.results.views.monthly", "parameters":["' + this.id + '"], "profile":"OpenAIRE All-inclusive" }}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Monthly views"},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true,"text":""}}}');
|
||||
this.downloadsFrameUrl = this.properties.statisticsFrameNewAPIURL + 'chart?json=' +
|
||||
encodeURIComponent('{"library":"HighCharts","chartDescription":{"queries":[{"name":"Monthly downloads","type":"column","query":{"name":"usagestats.results.downloads.monthly", "parameters":["' + this.id + '"], "profile":"OpenAIRE All-inclusive" }}],"chart":{"backgroundColor":"#FFFFFFFF","borderColor":"#335cadff","borderRadius":0,"borderWidth":0,"plotBorderColor":"#ccccccff","plotBorderWidth":0},"title":{"text":"Monthly downloads"},"subtitle":{},"yAxis":{"title":{"text":""}},"xAxis":{"title":{}},"lang":{"noData":"No Data available for the Query"},"exporting":{"enabled":false},"plotOptions":{"series":{"dataLabels":{"enabled":false}}},"legend":{"enabled":false},"credits":{"href":null,"enabled":true,"text":""}}}');
|
||||
this.bipFrameUrl = this.properties.bipFrameAPIURL + this.id + (properties.environment == "beta" ? "&src=beta" : "");
|
||||
let pid:Identifier = Identifier.getPIDFromIdentifiers(this.resultLandingInfo.identifiers);
|
||||
this.bipFrameUrl = this.properties.bipFrameAPIURL + this.id + (properties.environment == "beta" ? "&src=beta" : "");
|
||||
let pid: Identifier = Identifier.getPIDFromIdentifiers(this.resultLandingInfo.identifiers);
|
||||
if (this.type == "result") { // no type was specified - update URL based this.resultLandingInfo.resultType
|
||||
this.updateUrlWithType(pid);
|
||||
}
|
||||
this.canonicalUrl = this.properties.domain+ properties.baseLink + ( pid ? (this.linkToLandingPage.split("?")[0] + "?pid=" + encodeURIComponent(pid.id)):
|
||||
this.canonicalUrl = this.properties.domain + properties.baseLink + (pid ? (this.linkToLandingPage.split("?")[0] + "?pid=" + encodeURIComponent(pid.id)) :
|
||||
(this.linkToLandingPage + this.resultLandingInfo.relcanId));
|
||||
this.seoService.createLinkForCanonicalURL(this.canonicalUrl);
|
||||
this.updateUrl(this.canonicalUrl);
|
||||
this.addNoIndexFilter();
|
||||
if (this.resultLandingInfo.title) {
|
||||
this.updateTitle(this.resultLandingInfo.title);
|
||||
this.updateDescription((this.resultLandingInfo.description ? (this.resultLandingInfo.description.substr(0,157) + (this.resultLandingInfo.description.substr(0,157).length == 157?"...":"")) : (this.resultLandingInfo.title)));
|
||||
this.updateDescription((this.resultLandingInfo.description ? (this.resultLandingInfo.description.substr(0, 157) + (this.resultLandingInfo.description.substr(0, 157).length == 157 ? "..." : "")) : (this.resultLandingInfo.title)));
|
||||
}
|
||||
this.subscriptions.push(this._piwikService.trackViewForCustomUrl(this.properties, this.resultLandingInfo.title, this.linkToLandingPage.split("?")[1] + this.id).subscribe());
|
||||
let bioentitiesNum = 0;
|
||||
|
@ -529,9 +538,9 @@ export class ResultLandingComponent {
|
|||
}
|
||||
this.bioentitiesNum = bioentitiesNum;
|
||||
if (typeof document !== 'undefined') {
|
||||
if(this.resultLandingInfo.identifiers) {
|
||||
if (this.resultLandingInfo.identifiers) {
|
||||
let pidsArray: string[] = [];
|
||||
for(let key of Array.from(this.resultLandingInfo.identifiers.keys())) {
|
||||
for (let key of Array.from(this.resultLandingInfo.identifiers.keys())) {
|
||||
pidsArray = pidsArray.concat(this.resultLandingInfo.identifiers.get(key));
|
||||
this.pidsArrayString = pidsArray.join();
|
||||
}
|
||||
|
@ -545,14 +554,17 @@ export class ResultLandingComponent {
|
|||
}
|
||||
}
|
||||
}
|
||||
if(this.communityId && this.communityId == "enermaps" && properties.enermapsURL){
|
||||
if (this.communityId && this.communityId == "enermaps" && properties.enermapsURL) {
|
||||
this.enermapsId = ParsingFunctions.getEnermapsConceptId(this.resultLandingInfo.contexts);
|
||||
}
|
||||
|
||||
this.relatedClassFilters = [{"label": "All relations", "value": ""}];
|
||||
if(this.resultLandingInfo.relatedClassFilters.size > 1) {
|
||||
if (this.resultLandingInfo.relatedClassFilters.size > 1) {
|
||||
for (let relClass of this.resultLandingInfo.relatedClassFilters) {
|
||||
this.relatedClassFilters.push({"label": HelperFunctions.getVocabularyLabel(relClass, this.relationsVocabulary), "value": relClass});
|
||||
this.relatedClassFilters.push({
|
||||
"label": HelperFunctions.getVocabularyLabel(relClass, this.relationsVocabulary),
|
||||
"value": relClass
|
||||
});
|
||||
}
|
||||
} else {
|
||||
this.relatedClassFilters.pop();
|
||||
|
@ -562,12 +574,12 @@ export class ResultLandingComponent {
|
|||
|
||||
this.hasViews = false;
|
||||
this.hasDownloads = false;
|
||||
if(this.resultLandingInfo.measure && this.resultLandingInfo.measure.counts) {
|
||||
if (this.resultLandingInfo.measure && this.resultLandingInfo.measure.counts) {
|
||||
this.resultLandingInfo.measure.counts.forEach(measure => {
|
||||
if(measure.name == "views" && measure.value > 0) {
|
||||
if (measure.name == "views" && measure.value > 0) {
|
||||
this.hasViews = true;
|
||||
}
|
||||
if(measure.name == "downloads" && measure.value > 0) {
|
||||
if (measure.name == "downloads" && measure.value > 0) {
|
||||
this.hasDownloads = true;
|
||||
}
|
||||
})
|
||||
|
@ -577,6 +589,19 @@ export class ResultLandingComponent {
|
|||
this.setActiveTab();
|
||||
|
||||
this.cdr.detectChanges();
|
||||
|
||||
if (contexts) {
|
||||
await this.promise;
|
||||
if(this.publicCommunities && this.publicCommunities.length > 0) {
|
||||
this.resultLandingInfo.contexts = contexts.filter(context => {
|
||||
if(context.idContext == "eosc") {
|
||||
this.belongsInEOSC = true;
|
||||
}
|
||||
return this.publicCommunities.includes(context.idContext)
|
||||
});
|
||||
this.cdr.detectChanges();
|
||||
}
|
||||
}
|
||||
},
|
||||
err => {
|
||||
this.handleError("Error getting " + this.type + " for " + (this.id ? ("id: " + this.id) : ("pid: " + this.identifier.id + " ("+this.identifier.class+")")), err);
|
||||
|
@ -593,6 +618,21 @@ export class ResultLandingComponent {
|
|||
));
|
||||
}
|
||||
|
||||
public getPublicCommunities() {
|
||||
this.promise = new Promise<void>(resolve => {
|
||||
this._contextService.getPublicCommunitiesByState().subscribe(
|
||||
data => {
|
||||
this.publicCommunities = data.map(value => value.id);
|
||||
// this.publicCommunities = data;
|
||||
resolve();
|
||||
},
|
||||
error => {
|
||||
this.handleError("Error getting communities status", error);
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public metricsResults($event) {
|
||||
this.totalViews = $event.totalViews;
|
||||
this.totalDownloads = $event.totalDownloads;
|
||||
|
|
|
@ -104,8 +104,8 @@ export class MyOrcidLinksComponent {
|
|||
private errorCodes: ErrorCodes;
|
||||
private errorMessages: ErrorMessagesComponent;
|
||||
|
||||
public results =[];
|
||||
public currentResults = [];
|
||||
public results:Map<number,{"work":{},results:ResultPreview[]}[]> = new Map();
|
||||
public currentResults:{"work":{},results:ResultPreview[]}[] = [];
|
||||
public totalResults:number = 0 ;
|
||||
public baseUrl:string;
|
||||
public searchUtils:SearchUtilsClass = new SearchUtilsClass();
|
||||
|
@ -163,7 +163,7 @@ export class MyOrcidLinksComponent {
|
|||
|
||||
if(typeof document !== 'undefined') {
|
||||
this.tokenUrl = properties.orcidTokenURL
|
||||
+ "client_id="+properties.orcidClientId
|
||||
+ "clientid="+properties.orcidClientId
|
||||
// + "&response_type=code&scope=/activities/update"
|
||||
// + "&response_type=code&scope=/authenticate /activities/update /person/update /read-limited"
|
||||
+ "&response_type=code&scope=/activities/update /read-limited"
|
||||
|
@ -253,6 +253,18 @@ export class MyOrcidLinksComponent {
|
|||
(response: any[]) => {
|
||||
|
||||
this.works = response;//['results'];
|
||||
/* this.works=[
|
||||
{ "id" : "60391ad16c2043536ca44ea4", "pids" : [ "10.5281/zeno(do.4304132", "10.5281/zenodo.3974605" ], "putCode" : "89558576", "orcid" : "0000-0002-3880-0244", "creationDate" : "2021-02-26T15:59:13.098Z", "updateDate" : "2021-02-26T15:59:13.098Z", "dashboard" : "production_explore" },
|
||||
{ "id" : "60391ceb7a767127ea9a4d06", "pids" : [ "10.5281/zenodo.4095044", "10.5281/zenodo.4095043" ], "putCode" : "89559422", "orcid" : "0000-0002-3880-0244", "creationDate" : "2021-02-26T16:08:11.930Z", "updateDate" : "2021-02-26T16:27:12.835Z", "dashboard" : "production_explore" },
|
||||
{ "id" : "604244fb7a767127ea9a4d0b", "pids" : [ "10.5281/zenodo.3467103", "10.5281/zenodo.3467104", "10.1007/978-3-030-30760-8_5", "1822/62856" ], "putCode" : "90020579", "orcid" : "0000-0002-3880-0244", "creationDate" : "2021-03-05T14:49:31.972Z", "updateDate" : "2022-06-20T08:28:08.539Z", "dashboard" : "production_explore" },
|
||||
{ "id" : "60744bb46c20432760765b9f", "pids" : [ "10.5281/zenodo.3701379", "10.5281/zenodo.3701380" ], "putCode" : "92074390", "orcid" : "0000-0002-3880-0244", "creationDate" : "2021-04-12T13:31:32.476Z", "updateDate" : "2021-04-12T13:31:32.476Z", "dashboard" : "production_explore" },
|
||||
{ "id" : "6077f0047a767112e847f9f8", "pids" : [ "10.5281/zenodo.4559726" ], "putCode" : "92235922", "orcid" : "0000-0002-3880-0244", "creationDate" : "2021-04-15T07:49:24.078Z", "updateDate" : "2021-04-21T09:43:40.147Z", "dashboard" : "production_explore" },
|
||||
{ "id" : "6079752b7a767112e847fa5b", "pids" : [ "10.5281/zenodo.4304047", "10.5281/zenodo.3980491" ], "putCode" : "92304809", "orcid" : "0000-0002-3880-0244", "creationDate" : "2021-04-16T11:29:47.905Z", "updateDate" : "2021-04-16T11:29:47.905Z", "dashboard" : "production_explore" },
|
||||
{ "id" : "63186abb7a767129935f495b", "pids" : [ "10.5281/zenodo.1314672", "10.5281/zenodo.1412509", "10.5281/zenodo.1314671" ], "putCode" : "118582128", "orcid" : "0000-0002-3880-0244", "creationDate" : "2022-09-07T09:56:11.556Z", "updateDate" : "2022-09-07T09:56:11.556Z", "dashboard" : "production_explore" },
|
||||
{ "id" : "63186ade6c204337f56d97ca", "pids" : [ "10.5281/zenodo.6634431", "10.5281/zenodo.6385204", "10.5281/zenodo.4559725" ], "putCode" : "118582151", "orcid" : "0000-0002-3880-0244", "creationDate" : "2022-09-07T09:56:46.231Z", "updateDate" : "2022-09-07T09:56:46.231Z", "dashboard" : "production_explore" },
|
||||
{ "id" : "63186ae27a767129935f495c", "pids" : [ "10.5281/zenodo.5801283", "10.5281/zenodo.3516917", "10.5281/zenodo.6616871" ], "putCode" : "118582162", "orcid" : "0000-0002-3880-0244", "creationDate" : "2022-09-07T09:56:50.660Z", "updateDate" : "2022-09-07T09:56:50.660Z", "dashboard" : "production_explore" }
|
||||
];*/
|
||||
|
||||
this.totalOrcidResults = this.works.length;//response['total'];
|
||||
|
||||
this.prepareOrcidQuery();
|
||||
|
@ -266,7 +278,7 @@ export class MyOrcidLinksComponent {
|
|||
|
||||
public prepareOrcidQuery() {
|
||||
|
||||
if(this.results.length >= this.currentPage) {
|
||||
if(Array.from(this.results.keys()).length >= this.currentPage) {
|
||||
this.currentResults = this.results[this.currentPage-1];
|
||||
return;
|
||||
}
|
||||
|
@ -302,11 +314,7 @@ export class MyOrcidLinksComponent {
|
|||
this.disableForms = true;
|
||||
this.currentResults = [];
|
||||
this.searchUtils.totalResults = 0;
|
||||
|
||||
// let params: string = this.orcidQuery + this.typeQuery;
|
||||
//this.subs.push(this._searchResearchResultsService.advancedSearchResults(this.resultType, parameters, page, size, sortBy, this.properties, (refine) ? this.searchPage.getRefineFieldsQuery() : null, this.searchPage.getFields(), refineFieldsFilterQuery)
|
||||
this.subscriptions.push(this._searchResearchResultsService.searchForMyOrcidLinks(this.resultType, this.orcidQuery, this.typeQuery, 1, 50)
|
||||
//this.subs.push(this._searchResearchResultsService.advancedSearchResults(this.resultType, parameters, page, size, sortBy, this.properties, null, this.searchPage.getFields(), refineFieldsFilterQuery)
|
||||
.subscribe(
|
||||
data => {
|
||||
let totalResults = data[0];
|
||||
|
@ -330,28 +338,29 @@ export class MyOrcidLinksComponent {
|
|||
let resultsFound: Map<string[], number> = new Map<string[], number>();
|
||||
|
||||
for(let work of works) {
|
||||
let relatedResults = [];
|
||||
this.currentResults.push({"work": work, "results" : relatedResults})
|
||||
results.forEach(result => {
|
||||
let identifierValues: string[] = [].concat(...Array.from(result.identifiers.values()));
|
||||
if(work['pids'].some(pid => identifierValues.includes(pid))) {
|
||||
|
||||
let index: number = resultsFound.get(identifierValues);
|
||||
if(!index) {
|
||||
this.currentResults.push(this.getResultPreview(result));
|
||||
index = this.currentResults.length - 1;
|
||||
|
||||
this.currentResults[index].orcidPutCodes = [];
|
||||
this.currentResults[index].orcidCreationDates = [];
|
||||
this.currentResults[index].orcidUpdateDates = [];
|
||||
relatedResults.push(this.getResultPreview(result));
|
||||
index = relatedResults.length - 1;
|
||||
relatedResults[index].orcidPutCodes = [];
|
||||
relatedResults[index].orcidCreationDates = [];
|
||||
relatedResults[index].orcidUpdateDates = [];
|
||||
}
|
||||
|
||||
if (work['putCode']) {
|
||||
this.currentResults[index].orcidPutCodes.push(work['putCode']);
|
||||
relatedResults[index].orcidPutCodes.push(work['putCode']);
|
||||
}
|
||||
if (work['creationDate']) {
|
||||
this.currentResults[index].orcidCreationDates.push(work['creationDate']);
|
||||
relatedResults[index].orcidCreationDates.push(work['creationDate']);
|
||||
}
|
||||
if (work['updateDate']) {
|
||||
this.currentResults[index].orcidUpdateDates.push(work['updateDate']);
|
||||
relatedResults[index].orcidUpdateDates.push(work['updateDate']);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -367,44 +376,6 @@ export class MyOrcidLinksComponent {
|
|||
this.disableForms = false;
|
||||
}
|
||||
|
||||
public resultsReturned2(results: any, totalResults, works: any[]) {
|
||||
this.searchUtils.totalResults = totalResults;
|
||||
|
||||
for(let result of results) {
|
||||
let identifierValues: string[] = [].concat(...Array.from(result.identifiers.values()));
|
||||
|
||||
this.currentResults.push(this.getResultPreview(result));
|
||||
|
||||
let filteredWorks = works.filter(work => {
|
||||
return work['pids'].some(pid => identifierValues.includes(pid));
|
||||
})
|
||||
|
||||
this.currentResults[this.currentResults.length - 1].orcidPutCodes = [];
|
||||
this.currentResults[this.currentResults.length - 1].orcidCreationDates = [];
|
||||
this.currentResults[this.currentResults.length - 1].orcidUpdateDates = [];
|
||||
|
||||
filteredWorks.forEach(work => {
|
||||
if(work['putCode']) {
|
||||
this.currentResults[this.currentResults.length - 1].orcidPutCodes.push(work['putCode']);
|
||||
}
|
||||
if(work['creationDate']) {
|
||||
this.currentResults[this.currentResults.length - 1].orcidCreationDates.push(work['creationDate']);
|
||||
}
|
||||
if(work['updateDate']) {
|
||||
this.currentResults[this.currentResults.length - 1].orcidUpdateDates.push(work['updateDate']);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this.results[this.currentPage-1] = this.currentResults;
|
||||
this.searchUtils.status = this.errorCodes.DONE;
|
||||
if (this.searchUtils.totalResults == 0) {
|
||||
this.searchUtils.status = this.errorCodes.NONE;
|
||||
}
|
||||
|
||||
this.disableForms = false;
|
||||
}
|
||||
|
||||
public getResultPreview(result: SearchResult): ResultPreview {
|
||||
return ResultPreview.searchResultConvert(result, (result.entityType)?result.entityType:this.resultType);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="uk-margin-medium-top uk-margin">
|
||||
<no-load-paging *ngIf="totalResults > 0 && previewResults && previewResults.length > 0" [type]="openaireEntities.RESULTS"
|
||||
<no-load-paging *ngIf="totalResults > 0 && previewResults && previewResults.length > 0" type="Orcid links"
|
||||
(pageChange)="pageChanged($event)"
|
||||
[page]="currentPage" [pageSize]="resultsPerPage"
|
||||
[totalResults]="totalResults">
|
||||
|
@ -7,23 +7,57 @@
|
|||
<ul class="uk-list search-results uk-margin-medium-top">
|
||||
<errorMessages [status]="[status]" [type]="'results'"></errorMessages>
|
||||
|
||||
<li *ngFor="let result of previewResults">
|
||||
<li *ngFor="let resultGroup of previewResults">
|
||||
<div class="uk-card uk-card-default uk-padding">
|
||||
<div class="uk-grid uk-grid-divider">
|
||||
<div class="uk-width-expand@m uk-width-1-1 uk-first-column">
|
||||
<result-preview [properties]="properties" [showOrcid]="false" [showOrganizations]="true"
|
||||
[showSubjects]="true" [result]="result" [promoteWebsiteURL]="true"
|
||||
[isCard]="false">
|
||||
</result-preview>
|
||||
<div *ngIf="resultGroup['results'].length > 1" class="uk-alert uk-alert-warning uk-text-small">{{resultGroup['results'].length}} results found in OpenAIRE
|
||||
for PIDs "{{resultGroup['work']['pids'].join("\", \"")}}"
|
||||
<div>You can update your ORCID work with the most preferred result.</div>
|
||||
</div>
|
||||
<div *ngIf="resultGroup['results'].length == 0" class="uk-alert uk-alert-warning uk-text-small"> No results found in OpenAIRE
|
||||
for PIDs "{{resultGroup['work']['pids'].join("\", \"")}}"
|
||||
<div>You can remove the entry from your ORCID profile as well.</div>
|
||||
</div>
|
||||
<div *ngFor="let result of resultGroup['results']">
|
||||
<div class = "uk-position-relative">
|
||||
<div class = "uk-width-1-1">
|
||||
<result-preview [properties]="properties" [showOrcid]="false" [showOrganizations]="true"
|
||||
[showSubjects]="true" [result]="result" [promoteWebsiteURL]="true"
|
||||
[isCard]="false">
|
||||
</result-preview>
|
||||
</div>
|
||||
<div class = "uk-position-right uk-margin-large-top">
|
||||
<orcid-work *ngIf="resultGroup['results'].length > 1" [resultId]="result.relcanId"
|
||||
[resultTitle]="result.title"
|
||||
[type]="result.resultType" [pageType]="'my_search'"
|
||||
[putCodes]="result.orcidPutCodes" [givenPutCode]="true"
|
||||
[identifiers]="result.identifiers"
|
||||
[creationDates]="result.orcidCreationDates" [updateDates]="result.orcidUpdateDates"
|
||||
[showOnlyUpdateButton]="true"
|
||||
>
|
||||
</orcid-work>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="uk-width-auto@m uk-width-1-1">
|
||||
<div class="uk-height-1-1 uk-padding-small uk-flex uk-flex-center uk-flex-column uk-flex-middle">
|
||||
<orcid-work [resultId]="result.relcanId" [resultTitle]="result.title"
|
||||
[type]="result.resultType" [pageType]="'my_search'"
|
||||
[putCodes]="result.orcidPutCodes" [givenPutCode]="true"
|
||||
[identifiers]="result.identifiers"
|
||||
[creationDates]="result.orcidCreationDates" [updateDates]="result.orcidUpdateDates">
|
||||
<orcid-work *ngIf="resultGroup['results'][0]" [resultId]="resultGroup['results'][0].relcanId" [resultTitle]="resultGroup['results'][0].title"
|
||||
[type]="resultGroup['results'][0].resultType" [pageType]="'my_search'"
|
||||
[putCodes]="resultGroup['results'][0].orcidPutCodes" [givenPutCode]="true"
|
||||
[identifiers]="resultGroup['results'][0].identifiers"
|
||||
[creationDates]="resultGroup['results'][0].orcidCreationDates" [updateDates]="resultGroup['results'][0].orcidUpdateDates"
|
||||
[showUpdateButton]="resultGroup['results'].length == 1"
|
||||
>
|
||||
</orcid-work>
|
||||
<orcid-work *ngIf="resultGroup['results'].length ==0" [pageType]="'my_search'"
|
||||
[putCodes]="[resultGroup.work['putCode']]" [givenPutCode]="true"
|
||||
[identifiers]="resultGroup.work['pids']"
|
||||
[creationDates]="[resultGroup.work['creationDate']]" [updateDates]="resultGroup.work['updateDates']"
|
||||
[showUpdateButton]="false"
|
||||
>
|
||||
</orcid-work>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -24,7 +24,7 @@ export class searcMyOrcidResultsComponent {
|
|||
@Input() properties:EnvProperties;
|
||||
public openaireEntities = OpenaireEntities;
|
||||
|
||||
@Input() previewResults:ResultPreview[];
|
||||
@Input() previewResults:{"work":{},results:ResultPreview[]}[];
|
||||
|
||||
public urlParam: string;
|
||||
public linkToAdvancedSearchPage: string;
|
||||
|
@ -62,11 +62,6 @@ export class searcMyOrcidResultsComponent {
|
|||
|
||||
}
|
||||
|
||||
// ngOnChanges(changes: SimpleChanges): void {
|
||||
// if (changes.results) {
|
||||
// this.initialize();
|
||||
// }
|
||||
// }
|
||||
|
||||
public quote(params: string):string {
|
||||
return '"'+params+'"';
|
||||
|
@ -75,45 +70,6 @@ export class searcMyOrcidResultsComponent {
|
|||
return ResultPreview.searchResultConvert(result, (result.entityType)?result.entityType:this.type);
|
||||
}
|
||||
|
||||
initialize() {
|
||||
this.previewResults = [];
|
||||
for (let result of this.results) {
|
||||
this.previewResults.push(this.getResultPreview(result));
|
||||
}
|
||||
|
||||
if (Session.isLoggedIn() && this.results && this.results.length > 0) {
|
||||
this.orcidService.getLocalWorksByPids(this.previewResults.map(
|
||||
previewResult => {
|
||||
if (previewResult.identifiers) {
|
||||
let pidsArray: string[] = [];
|
||||
for (let key of Array.from(previewResult.identifiers.keys())) {
|
||||
pidsArray = pidsArray.concat(previewResult.identifiers.get(key));
|
||||
}
|
||||
return pidsArray;//.join();
|
||||
}
|
||||
})).subscribe(
|
||||
works => {
|
||||
for (let i = 0; i < this.previewResults.length; i++) {
|
||||
if (this.previewResults[i].identifiers) {
|
||||
this.previewResults[i].orcidPutCodes = [];
|
||||
this.previewResults[i].orcidUpdateDates = [];
|
||||
|
||||
works[i].forEach(work => {
|
||||
this.previewResults[i].orcidPutCodes.push(work['putCode']);
|
||||
this.previewResults[i].orcidUpdateDates.push(work['creationDate']);
|
||||
});
|
||||
// this.previewResults[i].orcidPutCodes = works[i].map(work => work['putCode']);
|
||||
// this.previewResults[i].orcidUpdateDates = works[i]
|
||||
// console.debug(i, this.previewResults[i].orcidPutCodes);
|
||||
}
|
||||
}
|
||||
}, error => {
|
||||
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public pageChanged($event) {
|
||||
this.pageChange.emit($event);
|
||||
HelperFunctions.scroll();
|
||||
|
|
|
@ -114,50 +114,53 @@ declare var UIkit: any;
|
|||
|
||||
|
||||
<ng-container *ngIf="pageType == 'my_search'">
|
||||
<span class="uk-margin-bottom uk-flex uk-flex-middle uk-flex-center">
|
||||
<span>ORCID </span>
|
||||
<img src="assets/common-assets/common/ORCIDiD_icon16x16.png" alt="" loading="lazy">
|
||||
<span> ACTIONS</span>
|
||||
</span>
|
||||
<ng-container *ngIf="!showOnlyUpdateButton">
|
||||
<span class="uk-margin-bottom uk-flex uk-flex-middle uk-flex-center">
|
||||
<span>ORCID </span>
|
||||
<img src="assets/common-assets/common/ORCIDiD_icon16x16.png" alt="" loading="lazy">
|
||||
<span> ACTIONS</span>
|
||||
</span>
|
||||
|
||||
<span [attr.uk-tooltip]="(!putCodes || putCodes.length == 0)
|
||||
? 'This work is currently deleted.'
|
||||
: 'View this work from your ORCID record'">
|
||||
<a (click)="currentAction='get'; getOrcidWorks()"
|
||||
[class]="'uk-button uk-button-default action uk-flex uk-flex-middle '+ ((showLoading || !putCodes || putCodes.length == 0) ? 'uk-disabled' : '')">
|
||||
<icon *ngIf="!showLoading || currentAction!='get'" name="visibility" ratio="1" flex="true"></icon>
|
||||
|
||||
<span *ngIf="showLoading && currentAction=='get'" class="uk-icon icon-button"><loading [top_margin]="false"
|
||||
[size]="'small'"></loading></span>
|
||||
<span class="uk-margin-small-left">View ORCID work</span>
|
||||
</a>
|
||||
</span>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="showUpdateButton">
|
||||
<span [attr.uk-tooltip]="(!putCodes || putCodes.length == 0)
|
||||
? 'This work is currently deleted.'
|
||||
: ('Update this work to your ORCID record' + ((properties.environment == 'beta') ? '. The action will affect your real ORCID iD.' : '')
|
||||
+ showUpdateDatesInTooltip())">
|
||||
<a (click)="currentAction='update'; updateWorkPreparation()"
|
||||
[class]="'uk-button uk-button-default action uk-margin-top uk-flex uk-flex-middle '+ ((showLoading || !putCodes || putCodes.length == 0) ? 'uk-disabled' : '')">
|
||||
<icon *ngIf="!showLoading || currentAction!='update'" name="refresh" ratio="1" flex="true"></icon>
|
||||
<span *ngIf="showLoading && currentAction=='update'" class="uk-icon icon-button"><loading [top_margin]="false"
|
||||
[size]="'small'"></loading></span>
|
||||
<span class="uk-margin-small-left">Update ORCID work</span>
|
||||
</a>
|
||||
</span>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="!showOnlyUpdateButton">
|
||||
<span *ngIf="!putCodes || putCodes.length == 0"
|
||||
[attr.uk-tooltip]="tooltipAdd">
|
||||
<a (click)="currentAction='add'; saveWorkPreparation();"
|
||||
[class]="'uk-button uk-button-default action uk-margin-top uk-flex uk-flex-middle '+ (showLoading ? 'uk-disabled' : '')">
|
||||
<icon *ngIf="!showLoading || currentAction!='add'" name="add" ratio="1" flex="true"></icon>
|
||||
<span *ngIf="showLoading && currentAction=='add'" class="uk-icon icon-button"><loading [top_margin]="false"
|
||||
[size]="'small'"></loading></span>
|
||||
<span class="uk-margin-small-left">Claim</span>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<span [attr.uk-tooltip]="(!putCodes || putCodes.length == 0)
|
||||
? 'This work is currently deleted.'
|
||||
: 'View this work from your ORCID record'">
|
||||
<a (click)="currentAction='get'; getOrcidWorks()"
|
||||
[class]="'uk-button uk-button-default action uk-flex uk-flex-middle '+ ((showLoading || !putCodes || putCodes.length == 0) ? 'uk-disabled' : '')">
|
||||
<icon *ngIf="!showLoading || currentAction!='get'" name="visibility" ratio="1" flex="true"></icon>
|
||||
|
||||
<span *ngIf="showLoading && currentAction=='get'" class="uk-icon icon-button"><loading [top_margin]="false"
|
||||
[size]="'small'"></loading></span>
|
||||
<span class="uk-margin-small-left">View ORCID work</span>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<span [attr.uk-tooltip]="(!putCodes || putCodes.length == 0)
|
||||
? 'This work is currently deleted.'
|
||||
: ('Update this work to your ORCID record' + ((properties.environment == 'beta') ? '. The action will affect your real ORCID iD.' : '')
|
||||
+ showUpdateDatesInTooltip())">
|
||||
<a (click)="currentAction='update'; updateWorkPreparation()"
|
||||
[class]="'uk-button uk-button-default action uk-margin-top uk-flex uk-flex-middle '+ ((showLoading || !putCodes || putCodes.length == 0) ? 'uk-disabled' : '')">
|
||||
<icon *ngIf="!showLoading || currentAction!='update'" name="refresh" ratio="1" flex="true"></icon>
|
||||
<span *ngIf="showLoading && currentAction=='update'" class="uk-icon icon-button"><loading [top_margin]="false"
|
||||
[size]="'small'"></loading></span>
|
||||
<span class="uk-margin-small-left">Update ORCID work</span>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<span *ngIf="!putCodes || putCodes.length == 0"
|
||||
[attr.uk-tooltip]="tooltipAdd">
|
||||
<a (click)="currentAction='add'; saveWorkPreparation();"
|
||||
[class]="'uk-button uk-button-default action uk-margin-top uk-flex uk-flex-middle '+ (showLoading ? 'uk-disabled' : '')">
|
||||
<icon *ngIf="!showLoading || currentAction!='add'" name="add" ratio="1" flex="true"></icon>
|
||||
<span *ngIf="showLoading && currentAction=='add'" class="uk-icon icon-button"><loading [top_margin]="false"
|
||||
[size]="'small'"></loading></span>
|
||||
<span class="uk-margin-small-left">Claim</span>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<span *ngIf="putCodes && putCodes.length > 0"
|
||||
<span *ngIf="putCodes && putCodes.length > 0"
|
||||
[attr.uk-tooltip]="tooltipDelete">
|
||||
<a (click)="currentAction='delete'; deleteWorks();"
|
||||
[class]="'uk-button uk-button-default action uk-margin-top uk-flex uk-flex-middle '+ (showLoading ? 'uk-disabled' : '')">
|
||||
|
@ -167,6 +170,7 @@ declare var UIkit: any;
|
|||
<span class="uk-margin-small-left">Remove</span>
|
||||
</a>
|
||||
</span>
|
||||
</ng-container>
|
||||
</ng-container>
|
||||
|
||||
<modal-alert #workModal large="true">
|
||||
|
@ -336,7 +340,10 @@ export class OrcidWorkComponent {
|
|||
@Input() updateDates: string[] = [];
|
||||
@Input() givenPutCode: boolean = false;
|
||||
@Input() pageType: string = "search";
|
||||
|
||||
|
||||
//for myorcid links page
|
||||
@Input() showOnlyUpdateButton: boolean = false;
|
||||
@Input() showUpdateButton: boolean = true;
|
||||
public subscriptions: Subscription[] = [];
|
||||
@ViewChild('workModal') workModal;
|
||||
// @ViewChild('saveWorkModal') saveWorkModal;
|
||||
|
|
|
@ -135,7 +135,7 @@ export class SearchDataprovidersService {
|
|||
// result.description = result.description.substring(0, this.sizeOfDescription) + "...";
|
||||
// }
|
||||
|
||||
let typeid: string = resData['datasourcetype'].classid;
|
||||
let typeid: string = resData['datasourcetype'] && resData['datasourcetype'].classid;
|
||||
if(typeid != "entityregistry" && typeid != "entityregistry::projects" && typeid != "entityregistry::repositories") {
|
||||
|
||||
if(resData.hasOwnProperty('accessinfopackage')) {
|
||||
|
|
|
@ -15,10 +15,11 @@
|
|||
<ng-container *ngTemplateOutlet="modalContents;"></ng-container>
|
||||
</modal-alert>
|
||||
|
||||
<!-- [okButtonDisabled]="!privacyAccepted || destinationPath.length == 0 || status == 'succeeded' || (requests > 0)-->
|
||||
<!-- || !validatePath() || !validateDestinationUrl() || (!this.downloadElements || this.downloadElements.length == 0)"-->
|
||||
<!-- (okEmitter)="transfer()" (cancelEmitter)="init()"-->
|
||||
<fs-modal #egiTransferFsModal classTitle="uk-tile-default uk-border-bottom" classBody="uk-container-xlarge"
|
||||
[okButtonDisabled]="!privacyAccepted || destinationPath.length == 0 || status == 'succeeded' || (requests > 0)
|
||||
|| !validatePath() || !validateDestinationUrl() || (!this.downloadElements || this.downloadElements.length == 0)"
|
||||
(okEmitter)="transfer()" (cancelEmitter)="init()">
|
||||
(cancelEmitter)="init()">
|
||||
<ng-container *ngTemplateOutlet="modalContents;"></ng-container>
|
||||
</fs-modal>
|
||||
|
||||
|
@ -85,7 +86,7 @@
|
|||
</ng-container>
|
||||
|
||||
<p class="uk-text-meta uk-text-xsmall uk-margin-remove-bottom uk-margin-top">Destination path (e.g. /folder1/folder2):</p>
|
||||
<div input [(value)]="destinationPath" [inputClass]="'flat'"
|
||||
<div #destinationPathInput input [(value)]="destinationPath" [inputClass]="'flat'"
|
||||
[validators]="pathValidators" class=""></div>
|
||||
<!-- <div *ngIf="selectedDestination.hasBrowse">-->
|
||||
<p *ngIf="selectedDestination.canBrowse" class="uk-text-meta uk-text-xsmall uk-margin-remove-bottom"> or <a
|
||||
|
@ -111,9 +112,9 @@
|
|||
<div *ngIf="isMobile" class="uk-align-right uk-margin-medium-top uk-margin-bottom">
|
||||
<button class="uk-button uk-button-primary"
|
||||
[disabled]="!privacyAccepted || destinationPath.length == 0 || status == 'succeeded'
|
||||
|| (requests > 0) || !validatePath() || !validateDestinationUrl() || (!this.downloadElements || this.downloadElements.length == 0)"
|
||||
|| (requests > 0) || !destinationPathInput.formControl.valid || !validateDestinationUrl() || (!this.downloadElements || this.downloadElements.length == 0)"
|
||||
[class.uk-disabled]="!privacyAccepted || destinationPath.length == 0 || status == 'succeeded'
|
||||
|| (requests > 0) || !validatePath() || !validateDestinationUrl() || (!this.downloadElements || this.downloadElements.length == 0)"
|
||||
|| (requests > 0) || !destinationPathInput.formControl.valid || !validateDestinationUrl() || (!this.downloadElements || this.downloadElements.length == 0)"
|
||||
(click)="transfer()">
|
||||
>> Transfer
|
||||
</button>
|
||||
|
|
|
@ -164,7 +164,7 @@ export class EGIDataTransferComponent {
|
|||
this.egiTransferFsModal.back = false;
|
||||
this.egiTransferFsModal.cancelButton = true;
|
||||
this.egiTransferFsModal.okButton = false;
|
||||
this.egiTransferFsModal.okButtonText = ">> Transfer";
|
||||
// this.egiTransferFsModal.okButtonText = ">> Transfer";
|
||||
this.egiTransferFsModal.title = "EOSC Data Transfer";
|
||||
if(typeof document !== 'undefined') {
|
||||
this.egiTransferFsModal.open();
|
||||
|
@ -254,7 +254,7 @@ export class EGIDataTransferComponent {
|
|||
"files": [],
|
||||
"params": {
|
||||
"priority": 0,
|
||||
"overwrite": true,
|
||||
"overwrite": false,
|
||||
"retry": 3
|
||||
}
|
||||
};
|
||||
|
@ -560,8 +560,9 @@ export class EGIDataTransferComponent {
|
|||
}
|
||||
}
|
||||
validatePath():boolean {
|
||||
let exp1 = /^\/([A-z0-9-_+]+\/?)*$/g;
|
||||
return (this.destinationPath.length > 0 && this.destinationPath.match(exp1) != null)
|
||||
// let exp1 = /^\/([A-z0-9-_+]+\/?)*$/g;
|
||||
// let exp1 = /^\/([A-z0-9-_]+[+\/]?)*$/;
|
||||
return (this.destinationPath.length > 0 && this.destinationPath.startsWith("/"))
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ declare var UIkit;
|
|||
<ng-container *ngTemplateOutlet="content"></ng-container>
|
||||
</div>
|
||||
</div>
|
||||
<mobile-dropdown #mobileDropdown [toggle]="toggle">
|
||||
<mobile-dropdown *ngIf="isMobile" #mobileDropdown [toggle]="toggle">
|
||||
<div [ngClass]="dropdownClass">
|
||||
<ng-container *ngTemplateOutlet="content"></ng-container>
|
||||
</div>
|
||||
|
|
|
@ -19,10 +19,10 @@ declare var UIkit: any;
|
|||
<div class="uk-modal-dialog">
|
||||
<div class="uk-modal-header uk-flex uk-flex-middle uk-flex-between" [ngClass]="classTitle">
|
||||
<div [class.uk-invisible]="!alertHeader">
|
||||
<h5 class="uk-margin-remove">{{alertTitle}}</h5>
|
||||
<h6 class="uk-margin-remove">{{alertTitle}}</h6>
|
||||
</div>
|
||||
<button class="uk-close uk-icon uk-margin-left" (click)="cancel()">
|
||||
<icon name="close" ratio="1.5"></icon>
|
||||
<icon name="close" ratio="1.4"></icon>
|
||||
</button>
|
||||
</div>
|
||||
<div #bodyElement class="uk-modal-body uk-animation-fast uk-text-left"
|
||||
|
|
|
@ -25,12 +25,12 @@ declare var ResizeObserver;
|
|||
<div #header class="uk-modal-header uk-flex uk-flex-middle" [ngClass]="classTitle">
|
||||
<div [class.uk-invisible]="!back" class="uk-width-medium@l uk-width-auto uk-flex uk-flex-center">
|
||||
<button class="uk-button uk-button-link" [class.uk-disabled]="!back" [disabled]="!back" (click)="backClicked()">
|
||||
<icon name="west" [flex]="true" [ratio]="isMobile?2:3"></icon>
|
||||
<icon name="west" [flex]="true" [ratio]="isMobile?1.4:2"></icon>
|
||||
</button>
|
||||
</div>
|
||||
<div [class.uk-invisible]="!title"
|
||||
class="uk-width-expand uk-padding-small uk-padding-remove-vertical uk-flex uk-flex-center">
|
||||
<h4 *ngIf="isMobile" class="uk-margin-remove">{{title}}</h4>
|
||||
<h6 *ngIf="isMobile" class="uk-margin-remove">{{title}}</h6>
|
||||
<h2 *ngIf="!isMobile" class="uk-margin-remove">{{title}}</h2>
|
||||
</div>
|
||||
<div class="uk-width-medium@l uk-width-auto uk-flex"
|
||||
|
@ -40,7 +40,7 @@ declare var ResizeObserver;
|
|||
{{okButtonText}}
|
||||
</button>
|
||||
<button *ngIf="!okButton && cancelButton" class="uk-close uk-icon" (click)="cancel()">
|
||||
<icon name="close" ratio="2"></icon>
|
||||
<icon name="close" [ratio]="1.4"></icon>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -14,7 +14,7 @@ export class SearchFields {
|
|||
|
||||
// Remove Collected From Filter "collectedfrom","collectedfrom"
|
||||
public RESULT_REFINE_FIELDS = [
|
||||
"resultbestaccessright", "instancetypename", (properties.environment !== 'production' ? "foslabel" : "fos"), "relfunder",
|
||||
"resultbestaccessright", "instancetypename", "foslabel", "relfunder",
|
||||
"relfundinglevel0_id", "relfundinglevel1_id", "relfundinglevel2_id",
|
||||
"relproject", "sdg", "country", "resultlanguagename", "resulthostingdatasource", "community"];
|
||||
|
||||
|
|
Loading…
Reference in New Issue