[Lirabry | Trunk]: Annotation add tooltip if no pid is existed
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@58804 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
4fd8439224
commit
4bb8760d78
|
@ -8,7 +8,7 @@ import {EnvProperties} from "../../utils/properties/env-properties";
|
|||
template: `
|
||||
<div class="sideInfoTitle uk-margin-small-bottom">Annotations</div>
|
||||
<div class="b2note">
|
||||
<form ngNoForm
|
||||
<form ngNoForm *ngIf="pid"
|
||||
action="https://b2note-dev.bsc.es/widget/"
|
||||
method="post"
|
||||
target="b2note_iframe"
|
||||
|
@ -37,13 +37,19 @@ import {EnvProperties} from "../../utils/properties/env-properties";
|
|||
<span>add annotation</span>
|
||||
</button>
|
||||
</form>
|
||||
<ul class="uk-list uk-list-divider">
|
||||
<div *ngIf="!pid">
|
||||
<button class="uk-flex uk-flex-middle disabled" title="Annotations are only available for resources with a PID (persistent identifier) like DOI, handle, PMID">
|
||||
<img src="assets/common-assets/b2note.png" width="48" height="24">
|
||||
<span>add annotation</span>
|
||||
</button>
|
||||
</div>
|
||||
<ul *ngIf="annotations" class="uk-list uk-list-divider">
|
||||
<li *ngFor="let annotation of annotations.slice(0, visibleAnnotations)" uk-grid class="uk-flex uk-flex-top uk-margin-remove-left">
|
||||
<div [ngClass]="annotation.type" class="uk-width-auto">{{annotation.type}}</div>
|
||||
<div [class.uk-width-1-3]="annotation.urls" [class.uk-width-1-6@s]="annotation.urls">{{annotation.text}}</div>
|
||||
<ul class="uk-width-expand uk-list uk-margin-remove-top" *ngIf="annotation.urls">
|
||||
<li *ngFor="let url of annotation.urls.slice(0, urlSize)"><a [href]="url" target="_blank">{{url}}</a></li>
|
||||
<li *ngIf="urlSize < annotation.urls.length"><a (click)="urlSize = annotation.urls.length">+ {{annotation.urls.length - urlSize}} more</a></li>
|
||||
<li *ngFor="let url of annotation.urls.slice(0, annotation.urlSize)"><a [href]="url" target="_blank">{{url}}</a></li>
|
||||
<li *ngIf="annotation.urlSize < annotation.urls.length"><a (click)="annotation.urlSize = annotation.urls.length">+ {{annotation.urls.length - annotation.urlSize}} more</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -77,9 +83,8 @@ export class AnnotationComponent implements OnInit, OnDestroy {
|
|||
public keywords: string[] = [];
|
||||
public visible: boolean = false;
|
||||
public annotations: Annotation[] = [];
|
||||
public annotationSize: number = 10;
|
||||
public annotationSize: number = 3;
|
||||
public visibleAnnotations: number;
|
||||
public urlSize: number = 3;
|
||||
|
||||
constructor(private annotationService: AnnotationService) {
|
||||
}
|
||||
|
@ -102,12 +107,25 @@ export class AnnotationComponent implements OnInit, OnDestroy {
|
|||
this.pid = this.landingInfo.identifiers.get(key)[0];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.pid = id;
|
||||
}
|
||||
if(this.pid) {
|
||||
this.annotationService.getAllAnnotations(this.properties, this.pid).subscribe(annotations => {
|
||||
this.annotations = annotations;
|
||||
this.annotations.forEach(annotation => {
|
||||
annotation.urlSize = 3;
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public getTypeName(): string {
|
||||
if (this.landingInfo.resultType === "dataset") {
|
||||
return "research data";
|
||||
} else if (this.landingInfo.resultType === "other") {
|
||||
return "research product";
|
||||
} else {
|
||||
return this.landingInfo.resultType;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ export interface Annotation {
|
|||
text: string;
|
||||
type: 'semantic' | 'keyword' | 'comment';
|
||||
urls?: string[];
|
||||
urlSize?: number;
|
||||
}
|
||||
|
||||
@Injectable({
|
||||
|
|
Loading…
Reference in New Issue