285 lines
16 KiB
HTML
285 lines
16 KiB
HTML
<form class=" uk-margin-top">
|
|
<!-- <div class="uk-margin-small-bottom">Start searching Research Outcomes and add them to the Basket to Link
|
|
<!– <helper div="link-entity-form" styleName="" tooltip=true></helper> –>
|
|
</div>-->
|
|
|
|
|
|
<div class="uk-inline">
|
|
<claim-enities-selection *ngIf="showOptions && showOptions.linkToEntities.length > 0"
|
|
[showOptions]="showOptions"></claim-enities-selection>
|
|
<a *ngIf="keyword.length > 0" class="uk-form-icon uk-form-icon-flip"
|
|
(click)="keyword = ''"
|
|
uk-icon="icon: close"></a>
|
|
<input type="text" class="uk-input uk-width-xlarge@l uk-width-large@m uk-width-medium"
|
|
placeholder="Search for research outcomes..." aria-describedby="sizing-addon2"
|
|
[(ngModel)]="keyword" name="keyword">
|
|
</div>
|
|
<span class="input-group-btn space">
|
|
<button (click)="search(true)" type="submit" class=" uk-button uk-button-primary">Search</button>
|
|
</span>
|
|
|
|
<!--helper div="link-entity-form" styleName="uk-width-medium"></helper-->
|
|
|
|
</form>
|
|
<div *ngIf="!showSearchResults">
|
|
<div class="uk-text-center uk-text-large uk-text-muted uk-margin-large-top">
|
|
No sources yet...<br>Use the searchbar and find linking sources.
|
|
</div>
|
|
</div>
|
|
<div *ngIf="showSearchResults" class="uk-margin-top uk-animation">
|
|
<ul class="uk-tab" uk-tab="animation: uk-animation-fade">
|
|
<li (click)="clickTab('openaire')" [class]="(activeTab == 'openaire')?'uk-active':''"><a>Openaire <span
|
|
*ngIf="!(openaireResultsNum==0 && openaireResultsStatus === errorCodes.LOADING)">
|
|
({{openaireResultsNum| number}})</span></a>
|
|
</li>
|
|
<li (click)="clickTab('crossref')" [class]="(activeTab == 'crossref')?'uk-active':''"><a>Crossref
|
|
<span
|
|
*ngIf="crossrefResultsNum != null && crossrefResultsNum >= 0 ">({{crossrefResultsNum | number}})</span>
|
|
</a></li>
|
|
<li (click)="clickTab('datacite')" [class]="(activeTab == 'datacite')?'uk-active':''"><a>Datacite <span
|
|
*ngIf="dataciteResultsNum!=null && dataciteResultsNum >= 0">({{dataciteResultsNum | number}})</span></a>
|
|
</li>
|
|
<li (click)="clickTab('orcid')" [class]="(activeTab == 'orcid')?'uk-active':''"><a>Orcid <span
|
|
*ngIf="orcidResultsNum !=null">({{(orcidResultsNum > 0) ? (orcidResultsNum | number) : 0}})</span></a></li>
|
|
</ul>
|
|
|
|
<div *ngIf="activeTab == 'crossref'" id="crossref">
|
|
<div class="uk-margin-top">
|
|
<div *ngIf="crossrefStatus == errorCodes.NONE" class="uk-alert uk-alert-primary"
|
|
role="alert">No Results found
|
|
</div>
|
|
<div *ngIf="crossrefStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured
|
|
</div>
|
|
<div *ngIf="crossrefStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger"
|
|
role="alert">Service not available
|
|
</div>
|
|
<div *ngIf="crossrefResultsNum != null && crossrefResultsNum > 0" class="uk-clearfix ">
|
|
<div class="uk-grid">
|
|
<!-- <div *ngIf="crossrefResultsNum>0" class="uk-width-1-2">
|
|
<span class="portal-color">{{crossrefResultsNum|number}}</span> research outcomes, page <span
|
|
class="portal-color">{{crossrefPage | number}}</span> of <span
|
|
class="portal-color">{{countTotalPages(crossrefResultsNum)|number}}</span>
|
|
|
|
</div>-->
|
|
<!-- <div class="uk-width-1-1@s uk-width-1-2@m uk-text-uppercase"
|
|
*ngIf="crossrefResultsNum > 0">
|
|
{{crossrefResultsNum|number}}
|
|
<span class="uk-text-muted uk-text-uppercase"> research outcomes, page </span>
|
|
{{crossrefPage | number}}
|
|
<span class="uk-text-muted uk-text-uppercase"> of </span>
|
|
{{(countTotalPages(crossrefResultsNum)|number)}}
|
|
</div>
|
|
<div class="uk-width-1-2 uk-padding-remove-left">
|
|
<paging-no-load class="uk-float-right" [currentPage]="crossrefPage" [totalResults]="crossrefResultsNum"
|
|
[term]="keyword"
|
|
[size]="size" (pageChange)="crossrefPageChange($event)"></paging-no-load>
|
|
</div>-->
|
|
</div>
|
|
</div>
|
|
<div *ngIf="crossrefStatus === errorCodes.LOADING" class="uk-animation-fade uk-margin-top uk-width-1-1"
|
|
role="alert"><span class="loading-gif uk-align-center"></span></div>
|
|
<div>
|
|
|
|
<claim-results [localStoragePrefix]=localStoragePrefix [results]=crossrefResults
|
|
[selectedResults]=selectedResults [basketLimit]="basketLimit"></claim-results>
|
|
</div>
|
|
<paging-no-load *ngIf="crossrefStatus != errorCodes.LOADING && crossrefResultsNum>0 " class="uk-float-right"
|
|
[currentPage]="crossrefPage" [totalResults]="crossrefResultsNum"
|
|
[term]="keyword"
|
|
[size]="size" (pageChange)="crossrefPageChange($event)"></paging-no-load>
|
|
</div>
|
|
</div>
|
|
<div *ngIf="activeTab == 'openaire'" id="openaire" class="uk-animation-fade">
|
|
|
|
<div class="uk-grid">
|
|
|
|
<div class="search-filters uk-width-1-1">
|
|
<div *ngIf="countFilters()>0" class="uk-grid uk-flex uk-flex-bottom">
|
|
<div class="uk-grid">
|
|
<h6 class="uk-text-bold">Filters</h6>
|
|
<a *ngIf="countFilters()>1" (click)="clearFilters()"
|
|
[class]="((openaireResultsStatus ==
|
|
errorCodes.LOADING)?'uk-disabled uk-link-muted':'')+' portal-link '">
|
|
Clear All
|
|
</a>
|
|
</div>
|
|
<div *ngIf="countFilters()>0" class="uk-grid uk-grid-small uk-text-small uk-margin-small-top " uk-grid>
|
|
<ng-container *ngFor="let filter of rangeFilters " >
|
|
<ng-container *ngIf = "filter.selectedFromAndToValues">
|
|
<span [title]="'Remove '+ filter.selectedFromAndToValues" (click) = "removeRangeFilter(filter) " >
|
|
<span class="selectedFilterLabel ">
|
|
<a [class]="((openaireResultsStatus ==
|
|
errorCodes.LOADING)?' uk-disabled':' ')+' uk-link-text '">
|
|
<span class=" clickable" aria-hidden="true">
|
|
<span class="uk-icon">
|
|
<svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.6" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.6" d="M16,4 L4,16"></path></svg>
|
|
</span>
|
|
</span>
|
|
<span class="uk-margin-small-left">{{filter.selectedFromAndToValues}}</span>
|
|
</a>
|
|
</span>
|
|
</span>
|
|
</ng-container>
|
|
</ng-container>
|
|
|
|
<ng-container *ngFor="let filter of openaireResultsfilters " >
|
|
<ng-container *ngIf = "filter.countSelectedValues > 0">
|
|
<span *ngFor="let value of getSelectedValues(filter); let i = index; let end = last; "
|
|
[title]="'Remove '+value.name" (click) = "removeFilter(value, filter) " >
|
|
<!-- if no grid on the div above, remove it and move class 'selectedFilterLabel' on top span -->
|
|
<span class="selectedFilterLabel ">
|
|
<a [class]="((openaireResultsStatus ==
|
|
errorCodes.LOADING)?' uk-disabled':' ')+' uk-link-text '">
|
|
<span class=" clickable" aria-hidden="true">
|
|
<span class="uk-icon">
|
|
<svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.6" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.6" d="M16,4 L4,16"></path></svg>
|
|
</span>
|
|
</span>
|
|
<span class="uk-margin-small-left" [innerHtml]="(value.name.length > 34)?value.name.substring(0,34)+'...':value.name"></span>
|
|
</a>
|
|
</span>
|
|
</span>
|
|
</ng-container>
|
|
</ng-container>
|
|
</div>
|
|
</div>
|
|
<ng-container *ngIf="openaireResultsNum > 0">
|
|
<ng-container *ngFor="let filter of rangeFilters">
|
|
|
|
<div class="uk-inline">
|
|
<button class="uk-button uk-button-default uk-button-small uk-margin-small-right"
|
|
type="button">{{filter.title}}<span uk-icon="chevron-down"></span></button>
|
|
<div uk-dropdown="mode: click" class="uk-width-large" style="max-width:460px !important;" >
|
|
<div class="uk-padding-small uk-overflow-auto uk-height-max-large uk-height-min-medium">
|
|
<range-filter [isDisabled]="openaireResultsStatus ==
|
|
errorCodes.LOADING" [filter]="filter" (onFilterChange)="dateFilterChanged(filter)"
|
|
[showQuickButtons]="false"
|
|
></range-filter>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</ng-container>
|
|
|
|
<ng-container *ngFor="let filter of openaireResultsfilters ">
|
|
<div class="uk-inline">
|
|
<button class="uk-button uk-button-default uk-button-small uk-margin-small-right"
|
|
type="button">{{filter.title}}<span uk-icon="chevron-down"></span></button>
|
|
<div uk-dropdown="mode: click" class=" uk-width-large uk-height-max-large " style="max-width:460px !important;">
|
|
<div class="uk-padding-small uk-overflow-auto uk-height-max-large uk-height-min-medium">
|
|
<search-filter [isDisabled]="openaireResultsStatus ==
|
|
errorCodes.LOADING" [filter]="filter" [filterValuesNum]="0"
|
|
[showResultCount]=true
|
|
(onFilterChange)="filterChanged($event)" [actionRoute]="false"></search-filter>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</ng-container>
|
|
</ng-container>
|
|
</div>
|
|
<div class="uk-width-expand@m uk-width-1-1@s uk-first-column">
|
|
<div class="uk-margin-top">
|
|
<div *ngIf="openaireResultsStatus == errorCodes.NONE" class="uk-alert uk-alert-primary"
|
|
role="alert">No Results found
|
|
</div>
|
|
<div *ngIf="openaireResultsStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning"
|
|
role="alert">An Error Occured
|
|
</div>
|
|
<div *ngIf="openaireResultsStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger"
|
|
role="alert">Service not available
|
|
</div>
|
|
|
|
<div *ngIf="openaireResultsStatus === errorCodes.LOADING"
|
|
class="uk-animation-fade uk-margin-top uk-width-1-1"
|
|
role="alert"><span class="loading-gif uk-align-center">Loading...</span></div>
|
|
<claim-results [localStoragePrefix]=localStoragePrefix
|
|
[results]=openaireResults [selectedResults]=selectedResults [basketLimit]="basketLimit"></claim-results>
|
|
<div class="float-children-right-at-medium margin-small-top-at-small uk-width-expand uk-padding-remove-left" *ngIf=" openaireResultsStatus != errorCodes.LOADING && openaireResultsNum != null && openaireResultsNum > 0" >
|
|
<paging-no-load class="uk-float-right" [currentPage]="openaireResultsPage"
|
|
[totalResults]="openaireResultsNum" [term]="keyword"
|
|
[size]="size" (pageChange)="openaireResultsPageChange($event)"></paging-no-load>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div *ngIf="activeTab == 'orcid'" id="orcid" class="uk-animation-fade">
|
|
<div class="uk-margin-top">
|
|
|
|
<div *ngIf="orcidStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
|
|
<div *ngIf="orcidStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger"
|
|
role="alert">Service not available
|
|
</div>
|
|
<div *ngIf="orcidStatus == errorCodes.NONE && orcidResultsNum == -1"
|
|
class="uk-alert uk-alert-primary "> No results found
|
|
</div>
|
|
|
|
<div *ngIf="orcidResultsNum >= 0" class="panel-body">
|
|
<span><span class="uk-text-bold">Showing results for</span>
|
|
<a target="_blank" href="http://orcid.org/{{authorId}}"> <span
|
|
class="custom-external"></span> {{authorGivenName}} {{authorFamilyName}} - {{authorId}} </a> :
|
|
</span>
|
|
<div *ngIf="authors.length > 1" class=""> In Orcid you can search only by Author. Not the
|
|
author you are looking for?
|
|
|
|
<div class="dropdown">
|
|
|
|
<mat-select [(ngModel)]="selectAuthorId" name="select_author"
|
|
(ngModelChange)="getOrcidResultsById(selectAuthorId)" class="matSelection"
|
|
[disableOptionCentering]="true"
|
|
panelClass="matSelectionPanel">
|
|
<mat-option value="0">Choose another one:</mat-option>
|
|
<mat-option *ngFor=" let item of authors let i = index"
|
|
[value]="authors[i].id">{{authors[i].authorGivenName}} {{authors[i].authorFamilyName}} : {{authors[i].id}} </mat-option>
|
|
</mat-select>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
<claim-results [localStoragePrefix]=localStoragePrefix
|
|
*ngIf="orcidResultsNum >0 && orcidResultsToShow.length > 0 " [results]=orcidResultsToShow
|
|
[selectedResults]=selectedResults [basketLimit]="basketLimit"></claim-results>
|
|
<div *ngIf="orcidResultsNum == 0" class="uk-alert uk-alert-primary uk-margin-top"> No results found</div>
|
|
</div>
|
|
<div *ngIf=" ((orcidResultsNum >0) && (totalPages > 1) && ( 0 < page && page <= totalPages )) "
|
|
class="uk-clearfix">
|
|
|
|
<paging-no-load class="uk-float-right" [currentPage]="orcidPage" [totalResults]="orcidResultsNum"
|
|
[term]="keyword" [size]="size"
|
|
(pageChange)="orcidPageChange($event)"></paging-no-load>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<div *ngIf="orcidStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert">
|
|
<span class="loading-gif uk-align-center"></span></div>
|
|
</div>
|
|
</div>
|
|
<div *ngIf="activeTab == 'datacite'" id="datacite" class="uk-animation-fade">
|
|
<div *ngIf="dataciteStatus == errorCodes.NONE" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
|
|
<div *ngIf="dataciteStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured
|
|
</div>
|
|
<div *ngIf="dataciteStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger"
|
|
role="alert">Service not available
|
|
</div>
|
|
<div class="uk-margin-top">
|
|
|
|
<div *ngIf="dataciteStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top uk-width-1-1"
|
|
role="alert"><span class="loading-gif uk-align-center"></span></div>
|
|
<div>
|
|
<claim-results [localStoragePrefix]=localStoragePrefix *ngIf="dataciteResults.length > 0 "
|
|
[results]=dataciteResults [selectedResults]=selectedResults [basketLimit]="basketLimit"></claim-results>
|
|
</div>
|
|
<div *ngIf="dataciteResultsNum != null && dataciteResultsNum > 0" class="uk-clearfix ">
|
|
<paging-no-load class="uk-float-right" [currentPage]="datacitePage" [totalResults]="dataciteResultsNum"
|
|
[term]="keyword"
|
|
[size]="size" (pageChange)="datacitePageChange($event)"></paging-no-load>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|