diff --git a/landingPages/landing-utils/addThis.component.ts b/landingPages/landing-utils/addThis.component.ts index fdd89ac0..90ccac1d 100644 --- a/landingPages/landing-utils/addThis.component.ts +++ b/landingPages/landing-utils/addThis.component.ts @@ -2,7 +2,7 @@ import { ChangeDetectorRef, Component, EventEmitter, - Inject, + Inject, Input, OnInit, Output, RendererFactory2, @@ -28,18 +28,22 @@ declare var addthis: addthis; @Component({ selector: 'addThis', template: ` -
-Bibliographic record accepted by the system, but not yet processed by
OpenAIRE tools for information quality improvement and de-duplication
Bibliographic record accepted by the system, but not yet processed by
OpenAIRE tools for information quality improvement and de-duplication
' + abstracts.join('
') + '
') : abstracts.join(' '); } } - - parseMeasures(measures: any[]): Measure { - if (measures && measures.length) { - let parsed: Measure = { - "downloads": null, - "views": null, - "popularity": null, - "influence": null, - "citations": null, - "impulse": null - }; - measures.forEach(measure => { - if (measure.id == 'downloads') { - // parsed.downloads = measure.count == 0 ? ' - ' : measure.count; - parsed.downloads = measure.count; + + parseMeasures(elements: any[]): Measure { + if (elements && elements.length) { + let bip: Metric[] = []; + let counts: Metric[] = []; + let measure: Measure = {}; + elements.forEach(element => { + if (element.id == 'views') { + counts.push({name: 'views', icon: 'visibility', value: element.count, order: 0}); + measure.views = element.count; } - if (measure.id == 'views') { - // parsed.views = measure.count == 0 ? ' - ' : measure.count; - parsed.views = measure.count; + if (element.id == 'downloads') { + counts.push({name: 'downloads', icon: 'download', value: element.count, order: 1}); + measure.downloads = element.count; } - if (measure.id == 'influence') { - if (measure.class == 'C1') { - parsed.influence = 'Top 0.01%'; - } else if (measure.class == 'C2') { - parsed.influence = 'Top 0.1%'; - } else if (measure.class == 'C3') { - parsed.influence = 'Top 1%'; - } else if (measure.class == 'C4') { - parsed.influence = 'Top 10%'; - } else if (measure.class == 'A') { - parsed.influence = 'Exceptional'; - } else if (measure.class == 'B') { - parsed.influence = 'Substantial'; + if (element.id == 'influence_alt') { + bip.push({name: 'citations', icon: 'cite', value: element.score, order: 2}); + measure.citations = element.score; + } + if (element.id == 'popularity') { + let metric: Metric = {name: 'popularity', icon: 'fire', value: null, order: 3}; + if (element.class == 'C1') { + metric.value = 'Top 0.01%'; + } else if (element.class == 'C2') { + metric.value = 'Top 0.1%'; + } else if (element.class == 'C3') { + metric.value = 'Top 1%'; + } else if (element.class == 'C4') { + metric.value = 'Top 10%'; + } else if (element.class == 'A') { + metric.value = 'Exceptional'; + } else if (element.class == 'B') { + metric.value = 'Substantial'; } else { - parsed.influence = 'Average'; + metric.value = 'Average'; } + measure.popularity = metric.value; + bip.push(metric); } - if (measure.id == 'popularity') { - if (measure.class == 'C1') { - parsed.popularity = 'Top 0.01%'; - } else if (measure.class == 'C2') { - parsed.popularity = 'Top 0.1%'; - } else if (measure.class == 'C3') { - parsed.popularity = 'Top 1%'; - } else if (measure.class == 'C4') { - parsed.popularity = 'Top 10%'; - } else if (measure.class == 'A') { - parsed.popularity = 'Exceptional'; - } else if (measure.class == 'B') { - parsed.popularity = 'Substantial'; + if (element.id == 'influence') { + let metric: Metric = {name: 'influence', icon: 'landmark', value: null, order: 4}; + if (element.class == 'C1') { + metric.value = 'Top 0.01%'; + } else if (element.class == 'C2') { + metric.value = 'Top 0.1%'; + } else if (element.class == 'C3') { + metric.value = 'Top 1%'; + } else if (element.class == 'C4') { + metric.value = 'Top 10%'; + } else if (element.class == 'A') { + metric.value = 'Exceptional'; + } else if (element.class == 'B') { + metric.value = 'Substantial'; } else { - parsed.popularity = 'Average'; + metric.value = 'Average'; } + measure.influence = metric.value; + bip.push(metric); } - if (measure.id == 'influence_alt') { - // parsed['citations'] = measure.score == 0 ? ' - ' : measure.score; - parsed.citations = measure.score; - } - if (measure.id == 'impulse') { - if (measure.class == 'C1') { - parsed.impulse = 'Top 0.01%'; - } else if (measure.class == 'C2') { - parsed.impulse = 'Top 0.1%'; - } else if (measure.class == 'C3') { - parsed.impulse = 'Top 1%'; - } else if (measure.class == 'C4') { - parsed.impulse = 'Top 10%'; - } else if (measure.class == 'A') { - parsed.impulse = 'Exceptional'; - } else if (measure.class == 'B') { - parsed.impulse = 'Substantial'; + if (element.id == 'impulse') { + let metric: Metric = {name: 'impulse', icon: 'rocket', value: null, order: 5}; + if (element.class == 'C1') { + metric.value = 'Top 0.01%'; + } else if (element.class == 'C2') { + metric.value = 'Top 0.1%'; + } else if (element.class == 'C3') { + metric.value = 'Top 1%'; + } else if (element.class == 'C4') { + metric.value = 'Top 10%'; + } else if (element.class == 'A') { + metric.value = 'Exceptional'; + } else if (element.class == 'B') { + metric.value = 'Substantial'; } else { - parsed.impulse = 'Average'; + metric.value = 'Average'; } + measure.impulse = metric.value; + bip.push(metric); } }); - return parsed; + measure.bip = bip.sort((a, b) => a.order - b.order); + measure.counts = counts.sort((a, b) => a.order - b.order); + return measure; } return null; } diff --git a/landingPages/landing-utils/resultLandingUtils.module.ts b/landingPages/landing-utils/resultLandingUtils.module.ts index d3646388..a1fe5846 100644 --- a/landingPages/landing-utils/resultLandingUtils.module.ts +++ b/landingPages/landing-utils/resultLandingUtils.module.ts @@ -17,6 +17,9 @@ import {SdgComponent} from "./sdg.component"; import {IconsModule} from "../../utils/icons/icons.module"; import {AlertModalModule} from "../../utils/modal/alertModal.module"; import { SearchInputModule } from '../../sharedComponents/search-input/search-input.module'; +import {EntityMetadataComponent} from "./entity-metadata.component"; +import {IconsService} from "../../utils/icons/icons.service"; +import {closed_access, open_access} from "../../utils/icons/icons"; @NgModule({ @@ -27,7 +30,8 @@ import { SearchInputModule } from '../../sharedComponents/search-input/search-in declarations: [ ShowIdentifiersComponent,ShowSubjectsComponent, FundedByComponent,AvailableOnComponent,TabTableComponent, - RelatedToComponent, FosComponent, SdgComponent + RelatedToComponent, FosComponent, SdgComponent, + EntityMetadataComponent ], providers:[ ], @@ -37,4 +41,8 @@ import { SearchInputModule } from '../../sharedComponents/search-input/search-in RelatedToComponent, FosComponent, SdgComponent ] }) -export class ResultLandingUtilsModule { } +export class ResultLandingUtilsModule { + constructor(private iconsService: IconsService) { + this.iconsService.registerIcons([open_access, closed_access]); + } +} diff --git a/landingPages/result/resultLanding.module.ts b/landingPages/result/resultLanding.module.ts index a388bc07..acb42d72 100644 --- a/landingPages/result/resultLanding.module.ts +++ b/landingPages/result/resultLanding.module.ts @@ -1,26 +1,26 @@ -import {NgModule} from '@angular/core'; -import {CommonModule} from '@angular/common'; -import {FormsModule} from '@angular/forms'; -import {RouterModule} from '@angular/router'; +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; +import {RouterModule} from '@angular/router'; -import {SharedModule} from '../../../openaireLibrary/shared/shared.module'; -import {MetricsModule} from '../landing-utils/metrics/metrics.module'; -import {LandingModule} from '../landing-utils/landing.module'; -import {CiteThisModule} from '../landing-utils/citeThis/citeThis.module'; -import {IFrameModule} from '../../utils/iframe.module'; -import {AltMetricsModule} from '../../utils/altmetrics.module'; -import {PagingModule} from '../../utils/paging.module'; +import {SharedModule} from '../../../openaireLibrary/shared/shared.module'; +import {MetricsModule} from '../landing-utils/metrics/metrics.module'; +import {LandingModule} from '../landing-utils/landing.module'; +import {CiteThisModule} from '../landing-utils/citeThis/citeThis.module'; +import {IFrameModule} from '../../utils/iframe.module'; +import {AltMetricsModule} from '../../utils/altmetrics.module'; +import {PagingModule} from '../../utils/paging.module'; -import {ResultLandingService} from './resultLanding.service'; -import {ResultLandingComponent} from './resultLanding.component'; -import {Schema2jsonldModule} from '../../sharedComponents/schema2jsonld/schema2jsonld.module'; -import { SEOServiceModule } from '../../sharedComponents/SEO/SEOService.module'; +import {ResultLandingService} from './resultLanding.service'; +import {ResultLandingComponent} from './resultLanding.component'; +import {Schema2jsonldModule} from '../../sharedComponents/schema2jsonld/schema2jsonld.module'; +import {SEOServiceModule} from '../../sharedComponents/SEO/SEOService.module'; -import {DeletedByInferenceModule} from './deletedByInference/deletedByInference.module'; -import {ShowAuthorsModule} from "../../utils/authors/showAuthors.module"; -import {HelperModule} from "../../utils/helper/helper.module"; -import {ResultLandingUtilsModule} from "../landing-utils/resultLandingUtils.module"; -import {AlertModalModule} from "../../utils/modal/alertModal.module"; +import {DeletedByInferenceModule} from './deletedByInference/deletedByInference.module'; +import {ShowAuthorsModule} from "../../utils/authors/showAuthors.module"; +import {HelperModule} from "../../utils/helper/helper.module"; +import {ResultLandingUtilsModule} from "../landing-utils/resultLandingUtils.module"; +import {AlertModalModule} from "../../utils/modal/alertModal.module"; import {AnnotationModule} from "../annotation/annotation.module"; import {LandingHeaderModule} from "../landing-utils/landing-header/landing-header.module"; import {NoLoadPaging} from "../../searchPages/searchUtils/no-load-paging.module"; @@ -33,7 +33,7 @@ import {MatFormFieldModule} from "@angular/material/form-field"; import {MatSelectModule} from "@angular/material/select"; import {IconsModule} from "../../utils/icons/icons.module"; import {IconsService} from "../../utils/icons/icons.service"; -import {graph, link, quotes, cite, link_to, versions, rocket, fire, landmark, open_access, closed_access} from "../../utils/icons/icons"; +import {cite, fire, graph, landmark, link, link_to, quotes, rocket, versions} from "../../utils/icons/icons"; import {InputModule} from "../../sharedComponents/input/input.module"; import {EGIDataTransferModule} from "../../utils/dataTransfer/transferData.module"; import {RecaptchaModule} from 'ng-recaptcha'; @@ -61,6 +61,6 @@ import {SdgFosSuggestModule} from '../landing-utils/sdg-fos-suggest/sdg-fos-sugg }) export class ResultLandingModule { constructor(private iconsService: IconsService) { - this.iconsService.registerIcons([link, graph, quotes, cite, link_to, versions, rocket, fire, landmark, open_access, closed_access]) + this.iconsService.registerIcons([link, graph, quotes, cite, link_to, versions, rocket, fire, landmark]) } } diff --git a/landingPages/result/resultLanding.service.ts b/landingPages/result/resultLanding.service.ts index e0b90f92..6c45f45e 100644 --- a/landingPages/result/resultLanding.service.ts +++ b/landingPages/result/resultLanding.service.ts @@ -330,7 +330,7 @@ export class ResultLandingService { this.resultLandingInfo.hostedBy_collectedFrom = this.parsingFunctions.addPublisherToHostedBy_collectedFrom( this.resultLandingInfo.hostedBy_collectedFrom, this.resultLandingInfo.publisher, - this.resultLandingInfo.journal.journal, this.resultLandingInfo.identifiers); + this.resultLandingInfo.journal?.journal, this.resultLandingInfo.identifiers); // res['result']['metadata']['oaf:entity']['oaf:result']['programmingLanguage'] if (data[12] != null) { diff --git a/orcid/orcid-work.component.ts b/orcid/orcid-work.component.ts index 5f95479d..43a86311 100644 --- a/orcid/orcid-work.component.ts +++ b/orcid/orcid-work.component.ts @@ -17,71 +17,42 @@ declare var UIkit: any; @Component({ selector: 'orcid-work', template: ` -