125 lines
7.6 KiB
HTML
125 lines
7.6 KiB
HTML
<ul [class]="'uk-list uk-margin ' + custom_class" uk-height-match="target: .portalSearchCard; row: false">
|
|
<errorMessages [status]="[status]" [type]="'results'"></errorMessages>
|
|
<li *ngFor="let result of results" class="uk-animation-fade uk-margin-auto">
|
|
<div class="uk-card portalSearchCard uk-position-relative uk-flex uk-flex-column uk-flex-center" [class.disabled]="!hasPermission(result)">
|
|
<div class="badges">
|
|
<div *ngIf="type === 'community' && result.isSubscribed"
|
|
class="portal-card-badge uk-text-center">
|
|
<span>Subscribed</span>
|
|
</div>
|
|
<!-- <div *ngIf="type === 'community' && result.status == 'manager'"
|
|
class="private-card-badge uk-text-center ">
|
|
<span>Private</span>
|
|
</div> -->
|
|
</div>
|
|
<div *ngIf="type === 'community' && result.status === 'manager'"
|
|
class="uk-position-top-right uk-margin-small-top uk-margin-right uk-flex uk-flex-middle">
|
|
<icon [name]="visibilityIcon.get('RESTRICTED')"></icon>
|
|
<span class="space uk-text-small uk-text-capitalize">restricted</span>
|
|
</div>
|
|
<div *ngIf="type === 'community' && result.status === 'hidden'"
|
|
class="uk-position-top-right uk-margin-small-top uk-margin-right uk-flex uk-flex-middle">
|
|
<icon [name]="visibilityIcon.get('PRIVATE')"></icon>
|
|
<span class="space uk-text-small uk-text-capitalize">private</span>
|
|
</div>
|
|
<div *ngIf="result.visibility && result.visibility !== 'PUBLIC'"
|
|
class="uk-position-top-right uk-margin-small-top uk-margin-right uk-flex uk-flex-middle">
|
|
<icon [name]="visibilityIcon.get(result.visibility)"></icon>
|
|
<span class="space uk-text-small uk-text-capitalize">{{result.visibility.toLowerCase()}}</span>
|
|
</div>
|
|
<div class="uk-grid uk-flex uk-flex-middle" uk-grid>
|
|
<a *ngIf="directLink && hasPermission(result)" [href]="(type === 'community')?getCommunityPageUrl(result):getStakeholderPageUrl(result)"
|
|
target="_blank"
|
|
class="uk-width-1-5@s">
|
|
<ng-container *ngTemplateOutlet="resultPreview; context: {result: result}"></ng-container>
|
|
</a>
|
|
<a *ngIf="!directLink && hasPermission(result)"
|
|
class="uk-width-1-5@s"
|
|
(click)="confirmModalOpen(result)">
|
|
<ng-container *ngTemplateOutlet="resultPreview; context: {result: result}"></ng-container>
|
|
</a>
|
|
<div *ngIf="!hasPermission(result)" class="uk-width-1-5@s">
|
|
<ng-container *ngTemplateOutlet="resultPreview; context: {result: result}"></ng-container>
|
|
</div>
|
|
<div class="uk-width-expand">
|
|
<div *ngIf="type === 'community'" [title]="result.shortTitle" class="uk-text-large uk-grid" uk-grid>
|
|
<a *ngIf="directLink && hasPermission(result)" [href]="getCommunityPageUrl(result)" target="_blank"
|
|
[class]="(result.isManager)?'uk-width-3-4@s portal-link':'portal-link'">
|
|
{{(result.title) ? result.title : result.shortTitle}}
|
|
</a>
|
|
<a *ngIf="!directLink && hasPermission(result)" (click)="confirmModalOpen(result)" [class]="(result.isManager)?'uk-width-3-4@s':''"
|
|
class="portal-link">
|
|
{{(result.title) ? result.title : result.shortTitle}}
|
|
</a>
|
|
<div *ngIf="!hasPermission(result)" [class.uk-width-3-4@s]="result.isManager">
|
|
{{(result.title) ? result.title : result.shortTitle}}
|
|
</div>
|
|
</div>
|
|
<div *ngIf="type === 'stakeholder'" [title]="result.index_shortName" class="uk-text-large uk-grid">
|
|
<a *ngIf="directLink && hasPermission(result)" [href]="getStakeholderPageUrl(result)" target="_blank"
|
|
[class.uk-width-3-4@s]="result.isManager" class="portal-link">
|
|
{{(result.name) ? result.name : result.index_shortName}}
|
|
</a>
|
|
<a *ngIf="!directLink && hasPermission(result)" (click)="confirmModalOpen(result)" [class.uk-width-3-4@s]="result.isManager"
|
|
class="portal-link">
|
|
{{(result.name) ? result.name : result.index_shortName}}
|
|
</a>
|
|
<div *ngIf="!hasPermission(result)" [class.uk-width-3-4@s]="result.isManager">
|
|
{{(result.name) ? result.name : result.index_shortName}}
|
|
</div>
|
|
</div>
|
|
<div class="uk-margin-small-top uk-text-small">
|
|
<span class="uk-text-muted" *ngIf="result.date || result.creationDate">Creation Date:</span>
|
|
<span class="space" *ngIf="result.date">{{result.date | date:'dd-MM-yyyy'}}</span>
|
|
<span class="space" *ngIf="result.creationDate">{{result.creationDate | date:'dd-MM-yyyy'}}</span>
|
|
<span *ngIf="type === 'community' && showType && result.type && result.type != ''" class="uk-margin-left">
|
|
<span class="uk-text-muted">Type:</span>
|
|
<span
|
|
class="space uk-text-capitalize">{{(result.type == 'ri') ? 'Research Initiative' : 'Research Community'}}</span>
|
|
</span>
|
|
<span *ngIf="type === 'stakeholder' && result.type && result.type != ''" class="uk-margin-left">
|
|
<span class="uk-text-muted">Type:</span>
|
|
<span
|
|
class="space uk-text-capitalize">{{(result.type == 'ri') ? 'research initiative' : result.type}}</span>
|
|
</span>
|
|
</div>
|
|
<div *ngIf="result.description">
|
|
<div class="text-justify descriptionText uk-text-small uk-text-muted uk-margin-auto-right">
|
|
<!-- [title]="result.description">-->
|
|
{{_formatDescription(result.description)}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<manage *ngIf="type === 'community' && result.isManager" [communityId]="result.communityId"
|
|
class="uk-margin-large-right"></manage>
|
|
<manage *ngIf="type === 'stakeholder' && result.isManager" [alias]="result.alias"
|
|
class="uk-margin-large-right"></manage>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
<modal-alert #AlertModal (alertOutput)="goToPage($event)">
|
|
<div class="uk-text-left">
|
|
You will be navigated to a new tab. Are you sure that you want to proceed?
|
|
</div>
|
|
</modal-alert>
|
|
<ng-template #resultPreview let-result="result">
|
|
<div class="uk-flex uk-flex-center">
|
|
<img *ngIf="result.logoUrl"
|
|
[src]="result | logoUrl"
|
|
alt="{{(result.title)?result.title:result.shortTitle}} logo" loading="lazy">
|
|
<span *ngIf="!result.logoUrl" class="uk-icon">
|
|
<svg viewBox="0 0 20 20" class="uk-width-1-1" xmlns="http://www.w3.org/2000/svg" ratio="2.5"> <circle fill="none"
|
|
stroke="#000"
|
|
stroke-width="1.1"
|
|
cx="7.7" cy="8.6"
|
|
r="3.5"></circle> <path
|
|
fill="none" stroke="#000" stroke-width="1.1"
|
|
d="M1,18.1 C1.7,14.6 4.4,12.1 7.6,12.1 C10.9,12.1 13.7,14.8 14.3,18.3"></path> <path fill="none"
|
|
stroke="#000"
|
|
stroke-width="1.1"
|
|
d="M11.4,4 C12.8,2.4 15.4,2.8 16.3,4.7 C17.2,6.6 15.7,8.9 13.6,8.9 C16.5,8.9 18.8,11.3 19.2,14.1"></path></svg>
|
|
</span>
|
|
</div>
|
|
</ng-template>
|