2020-04-02 11:52:57 +02:00
< ng-template # filters_column >
< div * ngIf = "filters.length > 0" class = " search-filters " >
2020-04-03 18:00:19 +02:00
< div * ngIf = "countFilters()>0" class = " uk-margin-medium-bottom" >
2020-04-02 11:52:57 +02:00
< div class = "uk-grid uk-flex uk-flex-bottom" >
< h5 class = "uk-text-bold" > Filters< / h5 >
2020-04-03 18:00:19 +02:00
< a * ngIf = "countFilters()>1" ( click ) = " clearFilters ( ) "
[class]="((disableForms)?'uk-disabled uk-link-muted':'')+' portal-link ' + 'uk-width-1-2'">
2020-04-02 11:52:57 +02:00
Clear All
< / a >
< / div >
< div class = "uk-grid uk-grid-small uk-text-small" uk-grid >
< ng-container * ngFor = "let filter of filters " >
< 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 ] = " ( ( disableForms ) ? ' 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 >
< search-filter * ngFor = "let filter of filters " [ isDisabled ] = " disableForms " [ filter ] = " filter " [ showResultCount ] = showResultCount ( change ) = " filterChanged ( $ event ) " ( toggleModal ) = " toggleModal ( $ event ) " > < / search-filter >
< / div >
< / ng-template >
2020-04-03 18:00:19 +02:00
< ng-template # paging >
< div * ngIf = "searchUtils.totalResults > 0" >
< div class = "paging-hr searchPaging uk-margin-small-bottom"
*ngIf="(results & & searchUtils.totalResults > 0) || (searchUtils.status == errorCodes.LOADING)">
< div class = "uk-panel uk-margin-small-top uk-grid uk-flex uk-flex-middle" >
< div class = "uk-width-1-1@s uk-width-1-2@m uk-text-uppercase"
*ngIf="results & & searchUtils.totalResults > 0">
{{searchUtils.totalResults|number}}
< span class = "uk-text-muted uk-text-uppercase" > {{type}}, page < / span >
{{searchUtils.page | number}}
< span class = "uk-text-muted uk-text-uppercase" > of < / span >
{{(totalPages()|number)}}
< / div >
< div class = "float-children-right-at-medium margin-small-top-at-small uk-width-expand" * ngIf = " searchUtils.status != errorCodes.LOADING" >
< paging-no-load [ currentPage ] = " searchUtils . page " [ totalResults ] = " searchUtils . totalResults " [ size ] = " searchUtils . size " ( pageChange ) = " goTo ( $ event . value ) " > < / paging-no-load >
< / div >
< / div >
< / div >
< / div >
< / ng-template >
2020-05-07 12:26:38 +02:00
< div * ngIf = "!includeOnlyResultsAndFilter"
[class]=" (!customFilter || customFilter.queryFieldName != 'communityId') ?
' image-front-topbar uk-section-default uk-position-relative ' :
(' uk-padding-remove-bottom uk-padding-remove-top ')"
class="image-front-topbar uk-section-default uk-position-relative"
2020-04-27 10:14:05 +02:00
uk-scrollspy="{" target" :" [uk-scrollspy-class]" ," cls" :" uk-animation-fade" ," delay" :false}" tm-header-transparent="light">
2020-05-07 12:26:38 +02:00
< div style = " min-height: 220px; "
[class]="' uk-background-norepeat uk-background-cover uk-background-bottom-center uk-padding-remove-bottom uk-flex uk-flex-middle uk-background-fixed '+searchFormClass">
< div [ class ] = " ( ! customFilter | | customFilter . queryFieldName ! = ' communityId ' ) ? ' uk-position-cover ' : ' ' " > < / div >
< div class = "uk-width-1-1" >
< breadcrumbs * ngIf = "showBreadcrumb && !includeOnlyResultsAndFilter"
addClass=" uk-margin-large-left uk-margin-remove-bottom uk-margin-small-top" [breadcrumbs]="breadcrumbs">< / breadcrumbs >
2018-10-03 16:12:42 +02:00
< div class = "uk-position-relative" >
< div class = "uk-container " >
< div class = "uk-width-1-1" >
2020-05-07 12:26:38 +02:00
2020-04-03 18:00:19 +02:00
<!-- <search - form [isDisabled]="disableForms" [(keyword)]="searchUtils.keyword" (keywordChange)="keywordChanged($event)" [placeholderText]="formPlaceholderText"></search - form> -->
< form class = " uk-margin uk-margin-top " >
< div class = "uk-grid uk-margin-small-left" >
< div * ngIf = "enableEntitySelection" class = "uk-margin-small-top uk-padding-remove-left" >
< entities-selection [ simpleView ] = " true " [ currentEntity ] = " entityType "
[properties]="properties" [onChangeNavigate]="true" [customFilter]="customFilter"
>< / entities-selection >
< / div >
< div class = " uk-padding-remove-left uk-margin-small-top" >
< div class = "uk-inline" >
< a * ngIf = "searchUtils.keyword.length > 0" class = "uk-form-icon uk-form-icon-flip"
(click)="searchUtils.keyword = ''; goTo(1);"
uk-icon="icon: close">< / a >
< input type = "text" class = "uk-input uk-width-xlarge@l uk-width-large@m uk-width-medium"
2020-05-07 12:26:38 +02:00
[placeholder]="formPlaceholderText"
2020-04-03 18:00:19 +02:00
[(ngModel)]="searchUtils.keyword"
name="keyword">
< / div >
< / div >
< div class = "uk-padding-remove-left uk-margin-small-top" >
< button ( click ) = " goTo ( 1 ) " type = "submit"
class="uk-button portal-button uk-text-bold uk-padding uk-padding-remove-vertical uk-margin-small-left">
Search
< / button >
< / div >
< / div >
< / form >
2018-10-03 16:12:42 +02:00
< / div >
< / div >
< / div >
2020-05-07 12:26:38 +02:00
2018-10-03 16:12:42 +02:00
< / div >
< / div >
2018-11-14 11:38:53 +01:00
< schema2jsonld * ngIf = "url" [ URL ] = " url " type = "search" [ name ] = pageTitle [ searchAction ] = false > < / schema2jsonld >
2018-10-03 16:12:42 +02:00
2020-05-07 19:20:33 +02:00
< div id = "tm-main" class = " uk-section uk-padding-remove-top tm-middle " >
2020-04-02 11:52:57 +02:00
< div uk-grid >
2017-12-19 13:53:46 +01:00
< div class = "tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first " >
2020-05-07 12:26:38 +02:00
< breadcrumbs * ngIf = "showBreadcrumb && includeOnlyResultsAndFilter"
addClass="uk-margin-large-left uk-margin-remove-bottom uk-margin-small-top" [breadcrumbs]="breadcrumbs">< / breadcrumbs >
2020-03-12 18:03:35 +01:00
< div class = "uk-container uk-container-large" >
2020-04-02 11:52:57 +02:00
< helper * ngIf = "pageContents && pageContents['top'] && pageContents['top'].length > 0" [ texts ] = " pageContents [ ' top ' ] " > < / helper >
2017-12-19 13:53:46 +01:00
< div class = "uk-width-2-3@m uk-width-2-3@l uk-width-1-1@s" >
2018-03-02 13:57:52 +01:00
< div * ngIf = "filters.length > 0" class = "uk-offcanvas-content uk-hidden@m" >
2020-04-02 11:52:57 +02:00
< a href = "#offcanvas-usage" uk-toggle >
< span class = "uk-icon uk-margin-small-right uk-margin-small-left" >
< svg width = "20" height = "20" viewBox = "0 0 20 20" xmlns = "http://www.w3.org/2000/svg" data-svg = "settings" >
< ellipse fill = "none" stroke = "#000" cx = "6.11" cy = "3.55" rx = "2.11" ry = "2.15" > < / ellipse >
< ellipse fill = "none" stroke = "#000" cx = "6.11" cy = "15.55" rx = "2.11" ry = "2.15" > < / ellipse >
< circle fill = "none" stroke = "#000" cx = "13.15" cy = "9.55" r = "2.15" > < / circle >
< rect x = "1" y = "3" width = "3" height = "1" > < / rect >
< rect x = "10" y = "3" width = "8" height = "1" > < / rect >
< rect x = "1" y = "9" width = "8" height = "1" > < / rect >
< rect x = "15" y = "9" width = "3" height = "1" > < / rect >
< rect x = "1" y = "15" width = "3" height = "1" > < / rect >
< rect x = "10" y = "15" width = "8" height = "1" > < / rect >
< / svg >
< / span >
< span > Filters < span * ngIf = "countFilters()>1" > ({{(countFilters())}})< / span > < / span >
2017-12-19 13:53:46 +01:00
2020-04-02 11:52:57 +02:00
< / a >
< div id = "offcanvas-usage" uk-offcanvas overlay style = "z-index:10000;" >
< div class = "uk-offcanvas-bar offcanvas-white" >
2017-12-19 13:53:46 +01:00
< button class = "uk-offcanvas-close" type = "button" uk-close > < / button >
2020-04-02 11:52:57 +02:00
< ng-container * ngTemplateOutlet = "filters_column; context: {}" > < / ng-container >
2017-12-19 13:53:46 +01:00
< / div >
< / div >
< / div >
< / div >
2018-10-03 16:12:42 +02:00
< div class = "uk-grid uk-width-1-1 uk-margin-top" >
2020-04-27 10:14:05 +02:00
< div * ngIf = "filters.length > 0" class = "uk-width-1-5@m search-filters uk-visible@m " >
2020-04-02 11:52:57 +02:00
< ng-container * ngTemplateOutlet = "filters_column; context: {}" class = "" > < / ng-container >
2017-12-19 13:53:46 +01:00
< / div >
2018-01-11 11:55:54 +01:00
< div class = "uk-width-expand@m uk-width-1-1@s uk-first-column custom-dataTable-content" >
2020-04-27 10:14:05 +02:00
< div * ngIf = "openaireLink && (searchUtils.totalResults > 0 || !disableForms )" >
< a class = "uk-button uk-button-text" [ href ] = openaireLink target = "_blank" > Results in OpenAIRE< / a >
< / div >
2020-03-12 18:03:35 +01:00
< div * ngIf = "searchUtils.totalResults > 0" class = "uk-align-center uk-margin-remove-bottom " >
< div class = "uk-grid" >
< div class = "uk-width-expand@m uk-grid uk-grid-medium uk-margin-small-bottom" >
< search-results-per-page class = "uk-width-1-1" [ ( size ) ] = " searchUtils . size " ( sizeChange ) = " sizeChanged ( $ event ) " > < / search-results-per-page >
< / div >
< div class = "uk-flex uk-flex-middle uk-width-auto@m uk-margin-small-bottom" >
< span * ngIf = "searchViewLink" class = "uk-width-expand" >
< a uk-tooltip = "title: List view" routerLinkActive = "router-link-active" [ class ] = " ( ( disableForms
& & !enableSearchView)?'uk-disabled uk-link-muted':'') +'uk-link-text'"
[routerLink]=searchViewLink >
< span class = "uk-icon" > < svg width = "20" height = "20" viewBox = "0 0 20 20" xmlns = "http://www.w3.org/2000/svg" icon = "table" ratio = "1" > < rect x = "1" y = "3" width = "18" height = "1" > < / rect > < rect x = "1" y = "7" width = "18" height = "1" > < / rect > < rect x = "1" y = "11" width = "18" height = "1" > < / rect > < rect x = "1" y = "15" width = "18" height = "1" > < / rect > < / svg > < / span >
List view
< / a >
< / span >
< / div >
2018-11-28 11:34:30 +01:00
< / div >
2020-04-03 18:00:19 +02:00
< ng-container * ngTemplateOutlet = "paging; context: {}" > < / ng-container >
2017-12-19 13:53:46 +01:00
< / div >
2018-10-03 16:12:42 +02:00
<!-- <div *ngIf="searchViewLink" class="uk - width - 1 - 1@s uk - hidden@m">
2017-12-19 13:53:46 +01:00
< p >
< span class = "uk-margin-small-right uk-icon" > < svg width = "20" height = "20" viewBox = "0 0 20 20" xmlns = "http://www.w3.org/2000/svg" ratio = "1" > < rect x = "2" y = "2" width = "3" height = "3" > < / rect > < rect x = "8" y = "2" width = "3" height = "3" > < / rect > < rect x = "14" y = "2" width = "3" height = "3" > < / rect > < rect x = "2" y = "8" width = "3" height = "3" > < / rect > < rect x = "8" y = "8" width = "3" height = "3" > < / rect > < rect x = "14" y = "8" width = "3" height = "3" > < / rect > < rect x = "2" y = "14" width = "3" height = "3" > < / rect > < rect x = "8" y = "14" width = "3" height = "3" > < / rect > < rect x = "14" y = "14" width = "3" height = "3" > < / rect > < / svg > < / span >
2018-05-23 15:24:13 +02:00
< a routerLinkActive = "router-link-active" [ class ] = " ( disableForms & & ! enableSearchView ) ? ' uk-disabled uk-link-muted ' : ' ' " [ routerLink ] = searchViewLink >
2017-12-19 13:53:46 +01:00
< span class = "uk-icon" > < svg width = "20" height = "20" viewBox = "0 0 20 20" xmlns = "http://www.w3.org/2000/svg" icon = "table" ratio = "1" > < rect x = "1" y = "3" width = "18" height = "1" > < / rect > < rect x = "1" y = "7" width = "18" height = "1" > < / rect > < rect x = "1" y = "11" width = "18" height = "1" > < / rect > < rect x = "1" y = "15" width = "18" height = "1" > < / rect > < / svg > < / span >
< / a >
< / p >
2018-10-03 16:12:42 +02:00
< / div > -->
2017-12-19 13:53:46 +01:00
< div * ngIf = "searchUtils.totalResults <= 0" class = "errors-in-searchTableView" >
< errorMessages [ status ] = " [ searchUtils . status ] " [ type ] = " ' results ' " > < / errorMessages >
< / div >
2018-05-23 15:24:13 +02:00
< div * ngIf = "searchUtils.status == errorCodes.LOADING || searchUtils.status == errorCodes.DONE" class = "uk-overflow-auto" >
2018-01-03 14:12:31 +01:00
<!-- #mf="mfDataTable" [mfRowsOnPage]="rowsOnPage"
2018-01-11 11:55:54 +01:00
[mfData]="results | contentProvidersDatatable : [searchUtils, filters, triggerPipe, cd]"
-->
2018-04-11 15:52:51 +02:00
< table datatable class = "uk-table uk-table-striped divider-table" [ dtOptions ] = " dtOptions " id = "dpTable" [ dtTrigger ] = " dtTrigger " dtInstance = "dtInstanceCallback" >
2018-01-03 14:12:31 +01:00
< thead >
2017-12-19 13:53:46 +01:00
< tr >
2018-03-01 13:03:40 +01:00
< th * ngFor = "let column of columnNames" class = "uk-text-center" > {{column}}< / th >
2017-12-19 13:53:46 +01:00
< / tr >
< / thead >
< tbody >
2018-04-11 15:52:51 +02:00
< tr class = "uk-table-middle" * ngFor = "let result of results" >
2018-03-01 13:03:40 +01:00
< td * ngIf = "result.hasOwnProperty('title')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
< a [ queryParams ] = " { datasourceId: result . id } " routerLinkActive = "router-link-active" routerLink = "/search/dataprovider" >
< span * ngIf = "result.title.name"
[innerHTML]="result.title.name">
2017-12-19 13:53:46 +01:00
< / span >
2018-03-01 13:03:40 +01:00
< span * ngIf = "!result.title.name" >
2017-12-19 13:53:46 +01:00
[no title available]
< / span >
< / a >
< / td >
2018-03-01 13:03:40 +01:00
< td * ngIf = "result.hasOwnProperty('type')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
< span * ngIf = "result.type" > {{result.type}}< / span >
< span * ngIf = "!result.type" > -< / span >
2017-12-19 13:53:46 +01:00
< / td >
2018-03-01 13:03:40 +01:00
< td * ngIf = "result.hasOwnProperty('countries')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
< span * ngFor = "let country of result['countries'].slice(0,5) let i = index" > {{country}}{{(i < ( result['countries'].slice(0,5).length-1))?", ":""}}{{(i == result['countries'].slice(0,5).length-1 & & result['countries'].length > 5)?"...":""}}< / span >
< span * ngIf = "result.countries.length == 0" > -< / span >
2017-12-19 13:53:46 +01:00
< / td >
2018-03-01 13:03:40 +01:00
< td * ngIf = "result.hasOwnProperty('organizations')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
< span * ngFor = "let org of result['organizations'].slice(0,5) let i = index" >
< a * ngIf = "org.id" [ queryParams ] = " { organizationId: org . id } " routerLinkActive = "router-link-active" routerLink = "/search/organization" > {{org.name}}< / a > < span * ngIf = "!org.id" > {{org.name}}< / span > {{(i < ( result['organizations'].slice(0,5).length-1))?", ":""}}{{(i == result['organizations'].slice(0,5).length-1 & & result['organizations'].length > 5)?"...":""}}
2017-12-19 13:53:46 +01:00
< / span >
2018-03-01 13:03:40 +01:00
< span * ngIf = "result.organizations.length == 0" > -< / span >
2017-12-19 13:53:46 +01:00
< / td >
2018-03-01 13:03:40 +01:00
< td * ngIf = "result.hasOwnProperty('compatibility')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
2018-03-01 14:14:35 +01:00
< span * ngIf = "result.compatibility" > {{result.compatibility}}< / span >
< span * ngIf = "!result.compatibility" > -< / span >
2017-12-19 13:53:46 +01:00
< / td >
2018-03-01 13:03:40 +01:00
2018-03-27 16:35:05 +02:00
<!-- Community Projects -->
< td * ngIf = "result.hasOwnProperty('acronym') && result.hasOwnProperty('name')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
< a [ queryParams ] = " ( result . openaireId ) ? { projectId: result . openaireId } : { grantId: encode ( result . grantId ) , funder: encode ( result . funder ) } "
routerLinkActive="router-link-active" routerLink="/search/project">
< span * ngIf = "result.name" > {{result.name}}< / span >
2019-02-22 13:31:25 +01:00
< span * ngIf = "result.name && result.acronym" > (< /span
>< span * ngIf = "result.acronym" > {{result.acronym}}< /span
>< span * ngIf = "result.name && result.acronym" > )< / span >
2018-03-27 16:35:05 +02:00
< span * ngIf = "!result.name && !result.acronym" > [no title available]< / span >
< / a >
2018-03-01 13:03:40 +01:00
< / td >
< td * ngIf = "result.hasOwnProperty('grantId')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
< span * ngIf = "result.grantId" > {{result.grantId}}< / span >
< span * ngIf = "!result.grantId" > -< / span >
< / td >
< td * ngIf = "result.hasOwnProperty('funder')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
< span * ngIf = "result.funder" > {{result.funder}}< / span >
< span * ngIf = "!result.funder" > -< / span >
< / td >
2018-03-02 13:57:52 +01:00
<!-- Community Content Providers -->
2018-03-27 16:35:05 +02:00
< td * ngIf = "!result.hasOwnProperty('acronym') && result.hasOwnProperty('name')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
< a [ queryParams ] = " { datasourceId: result . openaireId } " routerLinkActive = "router-link-active" routerLink = "/search/dataprovider" >
< span * ngIf = "result.name" > {{result.name}}< / span >
< span * ngIf = "!result.name" > [no name available]< / span >
< / a >
< / td >
2018-03-02 13:57:52 +01:00
< td * ngIf = "result.hasOwnProperty('officialname')" [ class ] = " ' uk-text-center uk-width-1- ' + columnNames . length " >
< span * ngIf = "result.officialname" > {{result.officialname}}< / span >
< span * ngIf = "!result.officialname" > -< / span >
< / td >
2017-12-19 13:53:46 +01:00
< / tr >
< / tbody >
<!-- <thead *ngIf="searchUtils.totalResults > 0">
< tr > < td colspan = "5" class = "uk-padding-remove-horizontal" >
< span class = "uk-h6" >
{{searchUtils.totalResults}} content providers, page {{searchUtils.page}} of {{(totalPages())}}
< / span >
< paging-no-load class = "uk-float-right" [ currentPage ] = " searchUtils . page " [ totalResults ] = " searchUtils . totalResults " [ size ] = " rowsOnPage " ( pageChange ) = " goTo ( $ event . value , false ) " > < / paging-no-load >
< / td > < / tr >
< / thead > -->
< / table >
< / div >
< div * ngIf = "searchUtils.totalResults > 0" class = "uk-align-center uk-margin-remove-bottom" >
2020-04-03 18:00:19 +02:00
< ng-container * ngTemplateOutlet = "paging; context: {}" > < / ng-container >
2017-12-19 13:53:46 +01:00
< / div >
2020-05-11 13:05:02 +02:00
< a * ngIf = "properties.showLastIndexInformationLink" class = "last_index_info uk-button-text uk-button"
2018-10-16 13:21:56 +02:00
[href]="properties.lastIndexInformationLink" target="_blank">
Last index information
< / a >
2017-12-19 13:53:46 +01:00
< / div >
< / div >
< / div >
< modal-search-filter [ filter ] = " currentFilter " [ showResultCount ] = showResultCount ( modalChange ) = " filterChanged ( $ event ) " > < / modal-search-filter >
< / div >
< / div >
< / div >