Show results in Deposit Result Page (organization is currently hardcoded: name+url or id) | array checks in services corrected (length > 1 was not the right way)

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@44084 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
konstantina.galouni 2016-10-14 13:35:48 +00:00
parent f888c6937d
commit a6db6539f8
10 changed files with 93 additions and 27 deletions

View File

@ -65,6 +65,7 @@ export class DepositComponent {
keywordChanged() { keywordChanged() {
console.info("keywordChanged: "+this.keyword); console.info("keywordChanged: "+this.keyword);
this._router.navigate( ['deposit-results'] );//, {"name": this.keyword}] ); this._router.navigate( ['deposit-results'] );//, {"name": this.keyword}] );
} }
} }

View File

@ -7,12 +7,17 @@ import { UtilsModule} from '../utils/utils.module'
import { DepositComponent } from './deposit.component'; import { DepositComponent } from './deposit.component';
import {DepositResultComponent} from './depositResult.component'; import {DepositResultComponent} from './depositResult.component';
import {ServicesModule} from '../services/services.module';
import {SearchModule} from '../searchPages/search.module';
//helpers //helpers
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, FormsModule, CommonModule, FormsModule,
UtilsModule, UtilsModule,
ServicesModule,
SearchModule
], ],
declarations: [ declarations: [
DepositComponent, DepositComponent,

View File

@ -2,6 +2,11 @@ import {Component, Input} from '@angular/core';
import {Observable} from 'rxjs/Observable'; import {Observable} from 'rxjs/Observable';
import {OpenaireProperties} from '../utils/properties/openaireProperties'; import {OpenaireProperties} from '../utils/properties/openaireProperties';
import { ActivatedRoute } from '@angular/router';
import { SearchDataprovidersComponent } from '../searchPages/searchDataproviders.component';
import { SearchDataprovidersService } from '../services/searchDataproviders.service';
import { SearchResultComponent } from '../searchPages/searchUtils/searchResult.component';
@Component({ @Component({
selector: 'depositResult', selector: 'depositResult',
template: ` template: `
@ -10,23 +15,43 @@ import {OpenaireProperties} from '../utils/properties/openaireProperties';
<h2>Deposit Publications</h2> <h2>Deposit Publications</h2>
</div> </div>
<div *ngIf="organization!=undefined"> <div *ngIf="searchDataprovidersComponent.totalResults > 0">
<h2> <h2 *ngIf="organization != undefined">
<span>Data providers for institution: </span> <span>Data providers for institution: </span>
<a *ngIf="organization['url']!=''"> <a *ngIf="organization['url']!=''" href="{{organization.url}}">
<span>{{organization['name']}}</span> <span>{{organization['name']}}</span>
</a> </a>
<span *ngIf="organization['url']==''">{{organization['name']}}</span> <span *ngIf="organization['url']==''">{{organization['name']}}</span>
</h2> </h2>
<h2 *ngIf="organization == undefined && organizationId != undefined">
<span>Data providers for institution with ID: </span>
<a href="{{url}}">{{organizationId}}</a>
</h2>
</div> </div>
<div *ngIf="dataProviders != undefined"> <div *ngIf="searchDataprovidersComponent.totalResults > 0">
<p>Please use the information/contacts shown below to deposit your publications.</p> <p>Please use the information/contacts shown below to deposit your publications.</p>
<showDataProviders [dataProviders]=dataProviders></showDataProviders> <!--showDataProviders [dataProviders]=dataProviders></showDataProviders-->
<div class = "text-right" *ngIf = "searchDataprovidersComponent.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{searchDataprovidersComponent.totalResults}} results</a></div>
<search-result [(results)]="searchDataprovidersComponent.results" [(status)]= "searchDataprovidersComponent.status"></search-result>
</div> </div>
<div *ngIf="dataProviders == undefined" class = "alert alert-warning"> <div *ngIf="searchDataprovidersComponent.totalResults == 0" class = "alert alert-warning">
No data providers found. No data providers found
<span *ngIf="organization != undefined">
for institution:
<a *ngIf="organization['url']!=''" href="{{organization.url}}">
<span>{{organization['name']}}</span>
</a>
<span *ngIf="organization['url']==''">{{organization['name']}}</span>
</span>
<span *ngIf="organization == undefined && organizationId != undefined">
for institution with ID:
<a href="{{url}}">
<span>{{organizationId}}</span>
</a>
</span>
.
<br> <br>
You can still deposit your publications and/or research data in You can still deposit your publications and/or research data in
<a href="{{zenodo}}">OpenAIRE's Zenodo catch-all repository </a> <a href="{{zenodo}}">OpenAIRE's Zenodo catch-all repository </a>
@ -37,12 +62,47 @@ import {OpenaireProperties} from '../utils/properties/openaireProperties';
}) })
export class DepositResultComponent { export class DepositResultComponent {
@Input() organization: {"name": string, "url": string}; @Input() organization: {"name": string, "url": string};// = {"name": "NTUA", "url": OpenaireProperties.getsearchLinkToOrganization()+"dedup_wf_001%3A%3A44cb3a714d104139c37beb7580070b96"};
private dataProviders: { "name": string, "url": string, "type": string, "websiteUrl": string, @Input() organizationId: string;// = "dedup_wf_001%3A%3A44cb3a714d104139c37beb7580070b96";
"organizations": {"name": string, "url": string}[]}[]; url: string;
subDataproviders: any;
private searchDataprovidersComponent : SearchDataprovidersComponent;
private linkToSearchDataproviders = "";
private zenodo: string; private zenodo: string;
constructor () { constructor (private route: ActivatedRoute,
this.zenodo = OpenaireProperties.getZenodoURL(); private _searchDataprovidersService: SearchDataprovidersService) {
console.info("depositResult constructor");
this.zenodo = OpenaireProperties.getZenodoURL();
this.searchDataprovidersComponent = new SearchDataprovidersComponent(this.route, this._searchDataprovidersService);
}
ngOnInit() {
console.info('depositResult init');
if(this.organizationId != undefined) {
this.url = OpenaireProperties.getsearchLinkToOrganization()+this.organizationId;
}
this.subDataproviders = this.route.queryParams.subscribe(params => {
this.searchDataproviders();
});
}
ngOnDestroy() {
this.subDataproviders.unsubscribe();
}
private searchDataproviders() {
if(this.organization != undefined) {
this.searchDataprovidersComponent.getResults(this.organization.name, 1, 10, "searchPage");
} else if(this.organizationId != undefined) {
this.searchDataprovidersComponent.getResults(this.organizationId, 1, 10, "organizationPage");
}
this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders();
} }
} }

View File

@ -109,7 +109,7 @@ export class DatasetService {
for(let j=0; j<length1; j++) { for(let j=0; j<length1; j++) {
let funding; let funding;
let mydata1 = length1 > 1 ? mydata['funding'][j] : mydata['funding']; let mydata1 = Array.isArray(mydata['funding']) ? mydata['funding'][j] : mydata['funding'];
if(mydata1.hasOwnProperty("funder")) { if(mydata1.hasOwnProperty("funder")) {
this.datasetInfo.fundedByProjects[counter]['funderShortname'] = mydata1['funder'].shortname; this.datasetInfo.fundedByProjects[counter]['funderShortname'] = mydata1['funder'].shortname;

View File

@ -110,7 +110,7 @@ export class PublicationService {
for(let j=0; j<length1; j++) { for(let j=0; j<length1; j++) {
let funding; let funding;
let mydata1 = length1 > 1 ? mydata['funding'][j] : mydata['funding']; let mydata1 = Array.isArray(mydata['funding']) ? mydata['funding'][j] : mydata['funding'];
if(mydata1.hasOwnProperty("funder")) { if(mydata1.hasOwnProperty("funder")) {
this.publicationInfo.fundedByProjects[counter]['funderShortname'] = mydata1['funder'].shortname; this.publicationInfo.fundedByProjects[counter]['funderShortname'] = mydata1['funder'].shortname;

View File

@ -42,7 +42,7 @@ export class SearchDataprovidersService {
let length = Array.isArray(data) ? data.length : 1; let length = Array.isArray(data) ? data.length : 1;
for(let i=0; i<length; i++) { for(let i=0; i<length; i++) {
let resData = length > 1 ? data[i]['result']['metadata']['oaf:entity']['oaf:datasource'] : data['result']['metadata']['oaf:entity']['oaf:datasource']; let resData = Array.isArray(data) ? data[i]['result']['metadata']['oaf:entity']['oaf:datasource'] : data['result']['metadata']['oaf:entity']['oaf:datasource'];
var result: SearchResult = new SearchResult(); var result: SearchResult = new SearchResult();
@ -51,7 +51,7 @@ export class SearchDataprovidersService {
result['title'].name = resData.officialname; result['title'].name = resData.officialname;
result['title'].url = OpenaireProperties.getsearchLinkToDataProvider(); result['title'].url = OpenaireProperties.getsearchLinkToDataProvider();
result['title'].url += length > 1 ? data[i]['result']['header']['dri:objIdentifier'] : data['result']['header']['dri:objIdentifier']; result['title'].url += Array.isArray(data) ? data[i]['result']['header']['dri:objIdentifier'] : data['result']['header']['dri:objIdentifier'];
if(resData['datasourcetype'].hasOwnProperty("classname")) { if(resData['datasourcetype'].hasOwnProperty("classname")) {
result['type'] = resData['datasourcetype'].classname; result['type'] = resData['datasourcetype'].classname;
@ -72,7 +72,7 @@ export class SearchDataprovidersService {
let relLength = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'].length : 1; let relLength = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'].length : 1;
for(let i=0; i<relLength; i++) { for(let i=0; i<relLength; i++) {
let relation = relLength > 1 ? resData['rels']['rel'][i] : resData['rels']['rel']; let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][i] : resData['rels']['rel'];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "provides" && relation['to'].type == "organization") { if(relation['to'].class == "provides" && relation['to'].type == "organization") {

View File

@ -58,7 +58,7 @@ export class SearchOrganizationsService {
let relLength = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'].length : 1; let relLength = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'].length : 1;
for(let j=0; j<relLength; j++) { for(let j=0; j<relLength; j++) {
let relation = relLength > 1 ? resData['rels']['rel'][j] : resData['rels']['rel']; let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][j] : resData['rels']['rel'];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "isParticipant") { if(relation['to'].class == "isParticipant") {
@ -88,7 +88,7 @@ export class SearchOrganizationsService {
let fundingLength = Array.isArray(relation['funding']) ? relation['funding'].length : 1; let fundingLength = Array.isArray(relation['funding']) ? relation['funding'].length : 1;
for(let z=0; z<fundingLength; z++) { for(let z=0; z<fundingLength; z++) {
let fundingData = fundingLength > 1 ? relation['funding'][z] : relation['funding']; let fundingData = Array.isArray(relation['funding']) ? relation['funding'][z] : relation['funding'];
if(fundingData.hasOwnProperty("funder")) { if(fundingData.hasOwnProperty("funder")) {
result['projects'][countProjects]['funderShortname'] = fundingData['funder'].shortname; result['projects'][countProjects]['funderShortname'] = fundingData['funder'].shortname;

View File

@ -37,7 +37,7 @@ export class SearchPeopleService {
let length = Array.isArray(data) ? data.length : 1; let length = Array.isArray(data) ? data.length : 1;
for(let i=0; i<length; i++) { for(let i=0; i<length; i++) {
let resData = length > 1 ? data[i]['result']['metadata']['oaf:entity']['oaf:person'] : data['result']['metadata']['oaf:entity']['oaf:person']; let resData = Array.isArray(data) ? data[i]['result']['metadata']['oaf:entity']['oaf:person'] : data['result']['metadata']['oaf:entity']['oaf:person'];
var result: SearchResult = new SearchResult(); var result: SearchResult = new SearchResult();

View File

@ -38,7 +38,7 @@ export class SearchProjectsService {
let length = Array.isArray(data) ? data.length : 1; let length = Array.isArray(data) ? data.length : 1;
for(let i=0; i<length; i++) { for(let i=0; i<length; i++) {
let resData = length > 1 ? data[i]['result']['metadata']['oaf:entity']['oaf:project'] : data['result']['metadata']['oaf:entity']['oaf:project']; let resData = Array.isArray(data) ? data[i]['result']['metadata']['oaf:entity']['oaf:project'] : data['result']['metadata']['oaf:entity']['oaf:project'];
var result: SearchResult = new SearchResult(); var result: SearchResult = new SearchResult();
@ -63,7 +63,7 @@ export class SearchProjectsService {
let relLength = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'].length : 1; let relLength = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'].length : 1;
for(let j=0; j<relLength; j++) { for(let j=0; j<relLength; j++) {
let relation = relLength > 1 ? resData['rels']['rel'][j] : resData['rels']['rel']; let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][j] : resData['rels']['rel'];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "hasParticipant") { if(relation['to'].class == "hasParticipant") {
@ -96,7 +96,7 @@ export class SearchProjectsService {
let fundingLength = Array.isArray(resData['fundingtree']) ? resData['fundingtree'].length : 1; let fundingLength = Array.isArray(resData['fundingtree']) ? resData['fundingtree'].length : 1;
for(let z=0; z<fundingLength; z++) { for(let z=0; z<fundingLength; z++) {
let fundingData = fundingLength > 1 ? resData['fundingtree'][z] : resData['fundingtree']; let fundingData = Array.isArray(resData['fundingtree']) ? resData['fundingtree'][z] : resData['fundingtree'];
let countFunders = result['funders'].length; let countFunders = result['funders'].length;
if(fundingData.hasOwnProperty("funder")) { if(fundingData.hasOwnProperty("funder")) {
result['funders'][countFunders] = {"funderShortname": "", "funderName": ""}; result['funders'][countFunders] = {"funderShortname": "", "funderName": ""};

View File

@ -47,7 +47,7 @@ export class SearchPublicationsService {
let length = Array.isArray(data) ? data.length : 1; let length = Array.isArray(data) ? data.length : 1;
for(let i=0; i<length; i++) { for(let i=0; i<length; i++) {
let resData = length > 1 ? data[i]['result']['metadata']['oaf:entity']['oaf:result'] : data['result']['metadata']['oaf:entity']['oaf:result']; let resData = Array.isArray(data) ? data[i]['result']['metadata']['oaf:entity']['oaf:result'] : data['result']['metadata']['oaf:entity']['oaf:result'];
var result: SearchResult = new SearchResult(); var result: SearchResult = new SearchResult();
@ -64,7 +64,7 @@ export class SearchPublicationsService {
} }
result['title'].url = OpenaireProperties.getsearchLinkToPublication(); result['title'].url = OpenaireProperties.getsearchLinkToPublication();
result['title'].url += length > 1 ? data[i]['result']['header']['dri:objIdentifier'] : data['result']['header']['dri:objIdentifier']; result['title'].url += Array.isArray(data) ? data[i]['result']['header']['dri:objIdentifier'] : data['result']['header']['dri:objIdentifier'];
if(resData['bestlicense'].hasOwnProperty("classid")) { if(resData['bestlicense'].hasOwnProperty("classid")) {
result['title'].accessMode = resData['bestlicense'].classid; result['title'].accessMode = resData['bestlicense'].classid;
} }
@ -73,7 +73,7 @@ export class SearchPublicationsService {
let relLength = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'].length : 1; let relLength = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'].length : 1;
for(let j=0; j<relLength; j++) { for(let j=0; j<relLength; j++) {
let relation = relLength > 1 ? resData['rels']['rel'][j] : resData['rels']['rel']; let relation = Array.isArray(resData['rels']['rel']) ? resData['rels']['rel'][j] : resData['rels']['rel'];
if(relation.hasOwnProperty("to")) { if(relation.hasOwnProperty("to")) {
if(relation['to'].class == "hasAuthor") { if(relation['to'].class == "hasAuthor") {
@ -109,7 +109,7 @@ export class SearchPublicationsService {
let fundingLength = Array.isArray(relation['funding']) ? relation['funding'].length : 1; let fundingLength = Array.isArray(relation['funding']) ? relation['funding'].length : 1;
for(let z=0; z<fundingLength; z++) { for(let z=0; z<fundingLength; z++) {
let fundingData = fundingLength > 1 ? relation['funding'][z] : relation['funding']; let fundingData = Array.isArray(relation['funding']) ? relation['funding'][z] : relation['funding'];
if(fundingData.hasOwnProperty("funder")) { if(fundingData.hasOwnProperty("funder")) {
result['projects'][countProjects]['funderShortname'] = fundingData['funder'].shortname; result['projects'][countProjects]['funderShortname'] = fundingData['funder'].shortname;