Layout changes to linking | change linking menu - not a dropdown | create use menu | other minor layout changes

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@48793 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
argiro.kokogiannaki 2017-08-02 10:04:46 +00:00
parent 35b32926c6
commit 81d7666b34
49 changed files with 440 additions and 288 deletions

View File

@ -13,19 +13,20 @@ import {ErrorCodes} from '../../login/utils/guardHelper.class';
selector: 'claim-contexts-search-form',
template: `
<div class=" uk-animation uk-padding uk-panel uk-background-muted " >
<div>Search for Communities:</div>
<table>
<div class=" uk-animation uk-padding-small uk-panel uk-background-muted " >
<div>Search for Communities</div>
<table class="uk-width-1-1 uk-table uk-table-responsive" ><tr>
<tr>
<td >
<select class="custom-select-mini" name="select_funder" >
<option value="0" (click)="communityChanged('0','Community:')">Select Community:</option>
<option *ngFor="let community of communities" (click)="communityChanged(community.id, community.label)" [value]="community.id" >{{community.label}}</option>
<select [(ngModel)]="selectedCommunityId" (ngModelChange)="communityChanged()" class=" " name="select_funder" >
<option value="0" >Select Community:</option>
<option *ngFor="let community of communities" [value]="community.id" >{{community.label}}</option>
</select>
</td>
<td *ngIf="selectedCommunityId != '0' && categories.length > 0"><select class="custom-select-mini" name="select_funder" >
<option value="0" (click)="categoryChanged('0','Category:')">Select Category:</option>
<option *ngFor="let category of categories" (click)="categoryChanged(category.id, category.label)" [value]="category.id" >{{category.label}}</option>
<td *ngIf="selectedCommunityId != '0' && categories.length > 0">
<select [(ngModel)]="selectedCategoryId" (ngModelChange)="categoryChanged()" class=" " name="select_funder" >
<option value="0" >Select Category:</option>
<option *ngFor="let category of categories" [value]="category.id" >{{category.label}}</option>
</select>
</td><td >
<static-autocomplete [(list)] = concepts [allowDuplicates]=true [showSelected]=false [placeHolderMessage] = "'Type keywords...'" title = "Concepts:" [multipleSelections]=true (addItem) = "select($event)" > </static-autocomplete>
@ -115,10 +116,10 @@ public selectedCategoryId:string ="0";
public query = '';
public filteredList = [];
public communities:string[];
public communities:any;
public selectedCommunityLabel:string = "Community:";
public categories:string[];
public categories:any;
public selectedCategoryLabel:string ="Category:";
public concepts = [];
public conceptsClass = [];
@ -158,7 +159,7 @@ isSelected(id):boolean{
this.selectedList.push(context);
UIkit.notification({
message : 'A context is selected.',
message : 'A new concept is selected.',
status : 'info',
timeout : 1000,
pos : 'top-center'
@ -166,7 +167,7 @@ isSelected(id):boolean{
}else{
UIkit.notification({
message : 'The context is already on your list.',
message : 'The concept is already on your list.',
status : 'warning',
timeout : 1000,
pos : 'top-center'
@ -301,22 +302,26 @@ getCommunities () {
console.log(this.selectedCommunityId +" ");
this.warningMessage = "";
this.infoMessage = "";
if(this.selectedCommunityId != communityId){
this.selectedCommunityId = communityId;
this.selectedCommunityLabel = communityLabel;
this.getCategories();
for(var i = 0; i< this.communities.length; i++){
if(this.communities[i].id==this.selectedCommunityId){
this.selectedCommunityLabel = this.communities[i].label;
break;
}
}
this.selectedCategoryId = "0";
this.selectedCategoryLabel="Select Category:";
this.getCategories();
}
categoryChanged(categoryId:string, categoryLabel:string){
categoryChanged(){
this.warningMessage = "";
this.infoMessage = "";
if(this.selectedCategoryId != categoryId){
this.selectedCategoryId = categoryId;
this.selectedCategoryLabel = categoryLabel;
this.getConcepts();
for(var i = 0; i< this.categories.length; i++){
if(this.categories[i].id==this.selectedCategoryId){
this.selectedCategoryLabel = this.categories[i].label;
break;
}
}
this.getConcepts();
}
addCommunityInConcepts(){
this.concepts.push({"id":this.selectedCommunityId, "label":this.selectedCommunityLabel});

View File

@ -2,7 +2,7 @@ import {Component, Input,Output, ElementRef, EventEmitter, ViewChild} from '@ang
import {Observable} from 'rxjs/Observable';
import {SearchProjectsService} from '../../services/searchProjects.service';
import {ProjectService} from '../../landingPages/project/project.service';
import {ModalLoading} from '../../utils/modal/loading.component';
// import {ModalLoading} from '../../utils/modal/loading.component';
import { Subject } from 'rxjs/Subject';
import {ClaimProject} from './claimEntities.class';
declare var UIkit:any;
@ -12,20 +12,20 @@ declare var UIkit:any;
template: `
<div>
<form class=" uk-animation uk-padding uk-panel uk-background-muted " >
<table ><tr>
<form class=" uk-animation uk-padding-small uk-panel uk-background-muted " >
<table class="uk-width-1-1 uk-table uk-table-responsive" ><tr>
<td >
Search for projects:
Search for projects
</td></tr>
<tr><td >
<select class="custom-select-mini" [(ngModel)]="selectedFunderId" name="select_funder" >
<select class="" [(ngModel)]="selectedFunderId" name="select_funder" >
<option value="0" (click)="funderChanged('0','Select funder:')">Select funder:</option>
<option *ngFor="let funder of funders" [value]="funder.id" (click)="funderChanged(funder.id,funder.name)">{{funder.name}}</option>
</select></td><td >
<entities-autocomplete entityType="project" [funderId]="selectedFunderId" [allowDuplicates]=true [showSelected]=false [placeHolderMessage] = "'Type Keywords..'" title = "Projects:" [multipleSelections]=true (addItem) = "select($event)" ></entities-autocomplete>
</td></tr></table>
</form>
<modal-loading [message]= "'Loading...'"></modal-loading>
<!--modal-loading [message]= "'Loading...'"></modal-loading-->
<!--div *ngIf="warningMessage.length > 0" class="alert alert-warning" role="alert">{{warningMessage}}</div>
<div *ngIf="infoMessage.length > 0" class="alert alert-info" role="alert">{{infoMessage}}</div-->
@ -37,7 +37,7 @@ export class ClaimProjectsSearchFormComponent {
ngOnInit() {
this.getFunders();
}
@ViewChild (ModalLoading) loading : ModalLoading ;
// @ViewChild (ModalLoading) loading : ModalLoading ;
// @Input() public inline: boolean = false ; // for claimed started from landing pages
public query = '';
@ -132,7 +132,7 @@ select(item){
value: true
});
UIkit.notification({
message : 'A project "'+item.projectName+'" is selected.',
message : 'A new project is selected.',
status : 'info',
timeout : 1000,
pos : 'top-center'
@ -173,7 +173,7 @@ getFunders () {
this._projectService.getFunders().subscribe(
data => {
this.funders = data[1];
console.log("this.funders");
},
err => console.log(err)
);

View File

@ -4,7 +4,7 @@ import { SharedModule } from '../../shared/shared.module';
import { CommonModule } from '@angular/common';
import {ClaimProjectsSearchFormComponent} from './claimProjectSearchForm.component';
import {LoadingModalModule} from '../../utils/modal/loadingModal.module';
// import {LoadingModalModule} from '../../utils/modal/loadingModal.module';
import {ProjectServiceModule} from '../../landingPages/project/projectService.module';
import {ProjectsServiceModule} from '../../services/projectsService.module';
@ -12,7 +12,9 @@ import {EntitiesAutocompleteModule} from '../../utils/entitiesAutoComplete/entit
@NgModule({
imports: [
SharedModule, CommonModule, LoadingModalModule, ProjectServiceModule, ProjectsServiceModule, EntitiesAutocompleteModule
SharedModule, CommonModule,
// LoadingModalModule,
ProjectServiceModule, ProjectsServiceModule, EntitiesAutocompleteModule
],
providers:[
],

View File

@ -1,5 +1,5 @@
<form class=" uk-panel uk-margin-top uk-padding uk-background-muted uk-animation">
<div>Search for research results:</div>
<form class=" uk-panel uk-padding uk-padding-remove-top uk-background-muted uk-animation">
<div>Search for research results</div>
<select [(ngModel)]="searchSource" name="select_source" (ngModelChange)="searchSourceChanged(searchSource)" class="uk-select uk-width-1-4">
<option value="openaire">in OpenAIRE </option>
<option value="crossref">in Crossref </option>
@ -84,20 +84,22 @@
<div *ngIf="orcidStatus == errorCodes.NONE && (!authorIds ||authorIds.length == 0)" class = "uk-alert uk-alert-primary " > No results found </div>
<div *ngIf="orcidResultsNum != null" class="panel-body">
<div class = "uk-alert uk-alert-warning " > Not the right author? Choose one of these:
<span>Results for
<a target="_blank" href="http://orcid.org/{{authorId}}"> <span class="custom-external"></span> {{authorGivenName}} {{authorFamilyName}} - {{authorId}} </a> :
</span>
<div class = "uk-alert uk-alert-warning " > Not the author you are looking for?
<span class="dropdown">
<select [(ngModel)]="authorId" name="select_author" (ngModelChange)="getOrcidResultsById(authorId)" >authorIds
<option *ngFor=" let item of authorIds let i = index" [value]="authorIds[i]">{{authorGivenNames[i]}} {{authorFamilyNames[i]}} : {{item}} </option> <!-- (click)="getOrcidResultsById(i)" -->
<select [(ngModel)]="selectAuthorId" name="select_author" (ngModelChange)="getOrcidResultsById(selectAuthorId)" >
<option [value]="0">Choose another one: </option>
<option *ngFor=" let item of authorIds let i = index" [value]="authorIds[i]">{{authorGivenNames[i]}} {{authorFamilyNames[i]}} : {{item}} </option>
</select>
</span>
</div>
<span>Results for
<a target="_blank" href="http://orcid.org/{{authorId}}"> <span class="custom-external"></span> {{authorGivenName}} {{authorFamilyName}} - {{authorId}} </a> :
</span>
<div *ngIf=" ((orcidResultsNum >0) && (totalPages > 1) && ( 0 < page && page <= totalPages )) " class="uk-clearfix">
<div class="uk-float-right">

View File

@ -9,6 +9,7 @@ import {SearchDatasetsService} from '../../services/searchDatasets.service';
import { ErrorCodes} from '../../utils/properties/openaireProperties';
import {ClaimResult} from '../claim-utils/claimEntities.class';
import{DOI} from '../../utils/string-utils.class';
declare var UIkit:any;
@Component({
selector: 'claim-result-search-form',
@ -87,6 +88,7 @@ export class ClaimResultSearchFormComponent {
orcidPage : number = 1;
orcidStatus:number = this.errorCodes.NONE;
authorId: string;
selectAuthorId: string = "0";
authorGivenName: string;
authorFamilyName: string;
@ -318,7 +320,8 @@ private getCrossrefResults (term: string, size : number, page : number) {
private getOrcidAuthors (term: string) {
this.orcidResultsNum = null;
this.selectAuthorId = "0";
this.orcidStatus = this.errorCodes.LOADING;
//passing structures in order to fill them in service
this._searchOrcidService.searchOrcidAuthors(term, this.authorIds,
this.authorGivenNames, this.authorFamilyNames).subscribe(
@ -348,12 +351,15 @@ private getCrossrefResults (term: string, size : number, page : number) {
}
}
private getOrcidResultsById (id:string) {
if(id=="0"){
return;
}
var index = this.authorIds.indexOf(id);
this.authorGivenName = this.authorGivenNames[index];
this.authorFamilyName = this.authorFamilyNames[index];
this.authorId = id;
console.info("getOrcidResultsById: "+id);
this.orcidStatus = this.errorCodes.LOADING;
this._searchOrcidService.searchOrcidPublications(id).subscribe(
data => {
if(data != null) {
@ -547,11 +553,23 @@ openaireDataPageChange($event) {
this.warningMessage = "";
if (!found) {
this.selectedResults.push(result);
// this.resultsChange.emit({
// value: this.selectedResults
// });
UIkit.notification({
message : 'A new research result is selected.',
status : 'info',
timeout : 1000,
pos : 'top-center'
});
}else{
this.warningMessage = "Research Data already in selected list";
UIkit.notification({
message : 'The research result is already on your list.',
status : 'warning',
timeout : 1000,
pos : 'top-center'
});
}
}

View File

@ -4,12 +4,20 @@
<div class="-row">
<span class="uk-text-bold">Filter By:</span>
<input type="text" class=" uk-input form-control" placeholder="Type keywords..." aria-describedby="sizing-addon2" [(ngModel)]="inputkeyword" (keyup)="changekeyword()" name="claims-keyword" ></div>
<input type="text" class=" uk-input form-control" placeholder="Search for keywords in titles ..." aria-describedby="sizing-addon2" [(ngModel)]="inputkeyword" (keyup)="changekeyword()" name="claims-keyword" ></div>
<div class="-row">
<label> <input [(ngModel)]="projectCB" type="checkbox" (ngModelChange)="changeType()" name="project" /> Project </label>
<label> <input [(ngModel)]="publicationCB" type="checkbox" (ngModelChange)="changeType()" name="publication" /> Publication </label>
<label> <input [(ngModel)]="datasetCB" type="checkbox" (ngModelChange)="changeType()" name="dataset" /> Research Data </label>
<label> <input [(ngModel)]="contextCB" type="checkbox" (ngModelChange)="changeType()" name="context" /> Context </label>
<label> <input [(ngModel)]="projectCB" type="checkbox" (ngModelChange)="changeType()" name="project" />
<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="5" y="2" width="10" height="1"></rect><rect x="3" y="4" width="14" height="1"></rect><rect fill="none" stroke="#000" x="1.5" y="6.5" width="17" height="11"></rect></svg></span>
Project </label>
<label> <input [(ngModel)]="publicationCB" type="checkbox" (ngModelChange)="changeType()" name="publication" />
<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 fill="none" stroke="#000" x="3.5" y="2.5" width="12" height="16"></rect><polyline fill="none" stroke="#000" points="5 0.5 17.5 0.5 17.5 17"></polyline></svg></span>
Publication </label>
<label> <input [(ngModel)]="datasetCB" type="checkbox" (ngModelChange)="changeType()" name="dataset" />
<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"><ellipse fill="none" stroke="#000" cx="10" cy="4.64" rx="7.5" ry="3.14"></ellipse><path fill="none" stroke="#000" d="M17.5,8.11 C17.5,9.85 14.14,11.25 10,11.25 C5.86,11.25 2.5,9.84 2.5,8.11"></path><path fill="none" stroke="#000" d="M17.5,11.25 C17.5,12.99 14.14,14.39 10,14.39 C5.86,14.39 2.5,12.98 2.5,11.25"></path><path fill="none" stroke="#000" d="M17.49,4.64 L17.5,14.36 C17.5,16.1 14.14,17.5 10,17.5 C5.86,17.5 2.5,16.09 2.5,14.36 L2.5,4.64"></path></svg></span>
Research Data </label>
<label> <input [(ngModel)]="contextCB" type="checkbox" (ngModelChange)="changeType()" name="context" />
<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"><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>
Context </label>
</div>
</form>

View File

@ -7,19 +7,19 @@ import {Component, Input} from '@angular/core';
selector: 'claim-entity',
template: `
<div *ngIf="type == 'publication'" title="Publication">
<img class= "entityIcon" src="assets/publication.png" alt="(Publication)">
<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 fill="none" stroke="#000" x="3.5" y="2.5" width="12" height="16"></rect><polyline fill="none" stroke="#000" points="5 0.5 17.5 0.5 17.5 17"></polyline></svg></span>
<publication-title [title]="entity.title" [url]="entity.externalUrl" ></publication-title>
</div>
<div *ngIf="type == 'dataset'" title="Dataset">
<img class= "entityIcon" src="assets/dataset.png" alt="(Dataset)">
<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"><ellipse fill="none" stroke="#000" cx="10" cy="4.64" rx="7.5" ry="3.14"></ellipse><path fill="none" stroke="#000" d="M17.5,8.11 C17.5,9.85 14.14,11.25 10,11.25 C5.86,11.25 2.5,9.84 2.5,8.11"></path><path fill="none" stroke="#000" d="M17.5,11.25 C17.5,12.99 14.14,14.39 10,14.39 C5.86,14.39 2.5,12.98 2.5,11.25"></path><path fill="none" stroke="#000" d="M17.49,4.64 L17.5,14.36 C17.5,16.1 14.14,17.5 10,17.5 C5.86,17.5 2.5,16.09 2.5,14.36 L2.5,4.64"></path></svg></span>
<publication-title [title]="entity.title" [url]="entity.externalUrl" ></publication-title>
</div>
<div *ngIf="type == 'project' " title="Project">
<img class= "entityIcon" src="assets/project.png" alt="(Project)">
<project-title [project]="entity"></project-title>
<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="5" y="2" width="10" height="1"></rect><rect x="3" y="4" width="14" height="1"></rect><rect fill="none" stroke="#000" x="1.5" y="6.5" width="17" height="11"></rect></svg></span>
<project-title [project]="entity"></project-title>
</div>
<div *ngIf="type == 'context' " title="Concept">
<i>(Community)</i>
<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"><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>
<span>{{entity.title}}</span>
</div>
`

View File

@ -14,8 +14,8 @@ import { Meta} from '../../../angular2-meta';
<div uk-grid uk-grid>
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
<div class="uk-container">
<div class="page-header">
<h2> Claims Administrator </h2>
<div class="uk-article-title">
Claims Administrator
</div>
<div>
<div class="uk-text-right"><a routerLink="/participate/claim">Add more Links?</a></div>

View File

@ -43,13 +43,15 @@ import {ClaimsDatatablePipe} from '../../utils/pipes/claimsDatatable.pipe';
</div>
<div *ngIf="accessStatus=='valid'">
<h1 class="page-header">
<div class="uk-article-title">
Claims Administrator
<a [queryParams]="routerHelper.createQueryParam('projectId',project['openaireId'])"
routerLinkActive="router-link-active"
routerLink="/search/project" >
{{project['name']}} ({{project['funderName']}})
</a>
</h1>
</div>
<h2> Pending Claims</h2>
<div *ngIf=" pending_claims && pending_claims.length == 0" >

View File

@ -15,9 +15,9 @@ import { Meta} from '../../../angular2-meta';
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
<div class="uk-container uk-margin-top">
<div class="page-header">
<h2>Link</h2>
</div>
<div class="uk-article-title">
Link
</div>
<div *ngIf="validInput != null && !validInput" class="uk-alert uk-alert-warning" role="alert">No valid arguments provided in order to start linking openAIRE entities. </div>
<div *ngIf="validInput != null && validInput">
<div class="uk-clearfix">

View File

@ -12,7 +12,7 @@ import {ClaimResult} from '../../claim-utils/claimEntities.class';
@Component({
selector: 'bulk-claim',
template: `
<div class="uk-animation uk-margin-top" style="min-height:350px;">
<div class="uk-animation " style=" ">
<form class=" uk-padding uk-panel uk-background-muted ">
<div class="uk-clearfix">

View File

@ -16,43 +16,40 @@ declare var UIkit:any;
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
<div class="uk-container uk-margin-top">
<div class="page-header">
<h1>Link</h1>
</div>
<div class="uk-clearfix">
<a class="uk-float-right" uk-toggle="target: #linkingInfo; animation: uk-animation-fade"><span class="uk-icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" icon="info" ratio="1"><path d="M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z"></path><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>
</span> More Information </a>
</div>
<div id="linkingInfo" class="uk-card uk-card-default uk-card-body uk-margin-small" hidden>
<a uk-toggle="target: #linkingInfo; animation: uk-animation-fade" class="uk-float-right"><span class="uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
</span></a>
<div class="uk-text-bold"><span class="uk-icon">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" icon="info" ratio="1"><path d="M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z"></path><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>
</span> Linking Functionality:</div>
<p>Through linking functioanilty you are able to create links from research results to projects and/ or communities. You have to select at least one research result and one project or community in order to be able to proceed.</p>
<p>You can search for reasearch results (publication and/ or research data) to link, in openaire, crossref, Orcid, and/ or Datacite. </p>
<p *ngIf="show=='project'"><span class="uk-text-bold">Projects:</span> Search & add projects using keyword search. Limit the search space by specifying project Funder. </p>
<p *ngIf="show=='context'"><span class="uk-text-bold">Communities:</span> Search & add communities/ concepts by selecting community, category and using keyword search for . Or browse through the categories and add communities. </p>
<p *ngIf="show=='result'"><span class="uk-text-bold">Research Results:</span> Use search mode, to search & add results through keyword search. Use upload mode, to upload a list of DOIs of results. </p>
<p *ngIf="show=='claim'"><span class="uk-text-bold">Review Metadata of research results:</span> The selected research results that came from 3rd party repositories (Datacite, Crossreff, Orcid), need review and change of metadata (such as access mode, and type) before they are included in openaire information space.
Please have in mind that ignoring this step, the research results will get the default values, that may be wrong.
</p>
</div>
<div class="uk-article-title">
Link
</div>
<ul class="uk-breadcrumb">
<li [class]="(show=='project')?'uk-active':''" ><a (click)="show='project';"> Select Projects <span >({{projects.length}})</span></a></li>
<li [class]="(show=='context')?'uk-active':''" ><a (click)="show='context';"> Select Communities <span >({{contexts.length}})</span></a></li>
<li [class]="(show=='result')?'uk-active':''" ><a (click)="show='result';"> Select Research Results <span >({{results.length}})</span></a></li>
<li [class]="(show=='claim')?'uk-active':''" (click)="canProceedToMetadata();"><a [class]="(results.length == 0)?'uk-disabled':''" (click)="show='claim';" > Review metadata</a></li>
<li [class]="(step==1)?'uk-active':''" ><a (click)="step=1;"><span class="step uk-text-large">1</span> Select Projects <span >or Communities <span ></span></span></a></li>
<li [class]="(step==2)?'uk-active':''" ><a (click)="step=2;"><span class="step uk-text-large">2</span> Select Research Results <span ></span></a></li>
<li [class]="(step==3)?'uk-active':''" (click)="step=3;"><a [class]="(results.length == 0)?'uk-disabled':''" (click)="show='claim';" ><span class="step uk-text-large">3</span> Review metadata</a></li>
</ul>
<!--start-over [results]="results" [contexts]="contexts" [projects]="projects" ></start-over-->
<div class="uk-clearfix">
<a class="uk-float-right" uk-toggle="target: #selected; animation: uk-animation-fade">
<span class="uk-icon"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="my-box" x="0px" y="0px" width="28px" height="28px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"><g> <path d="M480,320v128H32V320h78.859l64.016,96h162.25l64-96H480 M384,32H128L0,288v192h512V288L384,32L384,32z M35.781,288l112-224 h216.438l112,224H384l-64,96H192l-64.016-96H35.781L35.781,288z" fill="#b5b5b5"/></g>
</svg>
</span>
</a>
</div>
<div id="selected" class="uk-card uk-card-default uk-card-body uk-margin-small" hidden>
<!--Close Button -->
<!--div class="uk-clearfix">
<a uk-toggle="target: #selected; animation: uk-animation-fade" class="uk-float-right">
<span class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
</span></a>
</div-->
<claim-selected-projects title="link Projects" [projects]="projects" [show]="show" [linkType]=linkType
(showChange)="showChange($event)" > </claim-selected-projects>
<claim-selected-contexts title="link Communities" [contexts]="contexts" [projects]="projects" [results]="results" [inlineEntity] = "inlineResult" [show]="show" [linkType]=linkType
(showChange)="showChange($event)" > </claim-selected-contexts>
<claim-selected-results *ngIf="step!=3" title= "Selected Research Results" [results]="results" [bulkMode]="bulkMode" showSearch=false showAccessRights=false>
</claim-selected-results>
</div>
@ -69,7 +66,8 @@ declare var UIkit:any;
<!-- link with Projects & Contexts -->
<!--div class="uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-grid">
<div class="uk-width-1-1@s uk-width-1-2@m uk-width-1-2@l uk-width-1-2@xl "-->
<!--ul class=" uk-tab " uk-tab="connect: #tabs; animation: uk-animation-fade">
<div *ngIf="step==1">
<ul class=" uk-tab " uk-tab="connect: #tabs; animation: uk-animation-fade">
<li>
<a>Projects ({{projects.length}})</a>
</li>
@ -78,34 +76,60 @@ declare var UIkit:any;
</li>
</ul>
<ul id="tabs" class="uk-switcher uk-margin-left uk-width-1-1">
<li-->
<claim-selected-projects *ngIf="show=='project'" title="link Projects" [projects]="projects" [show]="show" [linkType]=linkType
(showChange)="showChange($event)" > </claim-selected-projects>
<!--/li>
<li-->
<claim-selected-contexts *ngIf="show=='context'" title="link Communities" [contexts]="contexts" [projects]="projects" [results]="results" [inlineEntity] = "inlineResult" [show]="show" [linkType]=linkType
(showChange)="showChange($event)" > </claim-selected-contexts>
<!--/li-->
<li>
<!--claim-selected-projects title="link Projects" [projects]="projects" [show]="show" [linkType]=linkType
(showChange)="showChange($event)" > </claim-selected-projects-->
<claim-projects-search-form [(selectedProjects)]="projects" > </claim-projects-search-form>
</li>
<li>
<!--claim-selected-contexts title="link Communities" [contexts]="contexts" [projects]="projects" [results]="results" [inlineEntity] = "inlineResult" [show]="show" [linkType]=linkType
(showChange)="showChange($event)" > </claim-selected-contexts-->
<claim-contexts-search-form [(selectedList)]="contexts" [projects]="projects" [results]="results" [inlineEntity]="inlineResult" > </claim-contexts-search-form>
</li>
<!--/div>
<div class="uk-width-1-1@s uk-width-1-2@m uk-width-1-2@l uk-width-1-2@xl "-->
<!--/ul>
</ul>
</div>
<!--/div-->
<!--/div-->
<!--hr-->
<!-- Research Results -->
<div *ngIf="show=='result' || show=='claim'" class="uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l">
<claim-selected-results title= "Selected Research Results" [results]="results" [bulkMode]="bulkMode" [showSearch]="show=='claim'|| bulkMode? false: true" [showAccessRights]="show=='claim' || bulkMode? true: false">
</claim-selected-results>
<div *ngIf="step==2 ">
<div class="uk-width-1-1 ">
<div class=" uk-padding-small uk-padding-remove-bottom uk-panel uk-background-muted ">
<span *ngIf="bulkMode" class=" uk-animation uk-float-right">
<span title= "Bulk mode"><i class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="upload" ratio="1"><polyline fill="none" stroke="#000" points="5 8 9.5 3.5 14 8 "></polyline><rect x="3" y="17" width="13" height="1"></rect><line fill="none" stroke="#000" x1="9.5" y1="15" x2="9.5" y2="4"></line></svg></i></span>
<a title= "Switch to Search mode" (click)="bulkMode = !bulkMode;"> <span class="uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="search" ratio="1"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9" cy="9" r="7"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M14,14 L18,18 L14,14 Z"></path></svg>
</span></a>
</span>
<span *ngIf="!bulkMode" class=" uk-animation uk-float-right">
<a title= "Switch to Bulk mode" (click)="bulkMode = !bulkMode;"><i class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="upload" ratio="1"><polyline fill="none" stroke="#000" points="5 8 9.5 3.5 14 8 "></polyline><rect x="3" y="17" width="13" height="1"></rect><line fill="none" stroke="#000" x1="9.5" y1="15" x2="9.5" y2="4"></line></svg></i></a>
<span title= "Search mode"> <span class="uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="search" ratio="1"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9" cy="9" r="7"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M14,14 L18,18 L14,14 Z"></path></svg>
</span></span>
</span>
</div>
<claim-result-search-form *ngIf="!bulkMode" [selectedResults]="results" > </claim-result-search-form>
<bulk-claim *ngIf="bulkMode" [results]="results" > </bulk-claim>
</div>
</div>
<div *ngIf="step==3" class="uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l">
<claim-selected-results title= "Selected Research Results" [results]="results" [bulkMode]="bulkMode" showSearch = false showAccessRights = true>
</claim-selected-results>
</div>
<ul class="uk-pagination">
<!--li *ngIf="show != 'result' " (click)="prev()"><a><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li-->
<li *ngIf="show != 'claim' && this.results.length > 0 " (click)="canProceedToMetadata()" class="uk-margin-auto-left"><a> Review Metadata <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
<li *ngIf="show == 'claim' " (click)="next()" class="uk-margin-auto-left uk-width-1-1">
<li *ngIf="step !=1 " (click)="step=step-1;"><a><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
<!--li *ngIf="show != 'claim' && this.results.length > 0 " (click)="canProceedToMetadata()" class="uk-margin-auto-left"><a> Review Metadata <span class="uk-margin-small-left" uk-pagination-next></span></a></li-->
<li *ngIf="step !=3 " (click)="step=step + 1;" class="uk-margin-auto-left">
<a>Next <span class="uk-margin-small-left" uk-pagination-next></span></a>
</li>
<li *ngIf=" step == 3 " (click)="next()" class="uk-margin-auto-left uk-width-1-1">
<claim-insert [contexts]="contexts" [results]="results" [projects]="projects" [show] = "show"
(showChange)="showChange($event)" ></claim-insert>
@ -217,6 +241,7 @@ export class LinkingGenericComponent {
});
}else{
this.show = 'claim';
this.step = 3;
}
}
}

View File

@ -13,6 +13,11 @@ import { LinkingRoutingModule } from './linking-routing.module';
import {StartOverModule} from '../claim-utils/startOver.module';
import {LoginGuard} from'../../login/loginGuard.guard';
import {PreviousRouteRecorder} from '../../utils/piwik/previousRouteRecorder.guard';
import {ClaimContextSearchFormModule} from '../claim-utils/claimContextSearchForm.module';
import {ClaimProjectsSearchFormModule} from '../claim-utils/claimProjectSearchForm.module';
import {BulkClaimModule} from './bulkClaim/bulkClaim.module';
import {ClaimResultSearchFormModule} from '../claim-utils/claimResultSearchForm.module';
// import {AlertModalModule} from '../../utils/modal/alertModal.module';
@NgModule({
imports: [
@ -20,6 +25,8 @@ import {PreviousRouteRecorder} from '../../utils/piwik/previousRouteRecorder.gua
SelectedPublicationsModule,
InsertClaimsModule,
EntitySearchServiceModule, PublicationsServiceModule, DatasetsServiceModule, LinkingRoutingModule, StartOverModule,
ClaimContextSearchFormModule, ClaimProjectsSearchFormModule, BulkClaimModule, ClaimResultSearchFormModule
// AlertModalModule
],
providers:[LoginGuard, PreviousRouteRecorder],
declarations: [

View File

@ -7,34 +7,28 @@ import {ClaimContext} from '../../claim-utils/claimEntities.class';
<!-- Contexts -->
<!--ul class="uk-accordion" uk-accordion="{showfirst:true}">
<li class="uk-open">
<h3 class="uk-accordion-title"> {{title}} ({{(contexts.length)}})</h3>
<div class="uk-accordion-content" --><!--(contextSelected)="contextSelected($event)"-->
<div class="uk-accordion-content uk-grid uk-width-1-1" >
<div class="uk-placeholder" >
<div class="uk-width-1-2 ">
<!--div class="uk-width-1-2 ">
<div class="uk-clearfix"><button *ngIf=" !showsearch " (click)="showsearch = true;" class="uk-button uk-button-default uk-animation uk-float-right">Add more <span><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></span></button></div>
<claim-contexts-search-form *ngIf=" showsearch " [selectedList]="contexts" [projects]="projects" [results]="results" [inlineEntity]="inlineEntity" > </claim-contexts-search-form>
</div>
<div class="uk-width-1-2 ">
</div-->
<div *ngIf="contexts.length > 0 " class=" ">
<h3 > Selected Communities ({{contexts.length}}) </h3>
<ul class="uk-list uk-list-divider">
<li class="list-group-item" *ngFor="let context of contexts" >
<span *ngIf="context.community != context.concept.label">{{context.community }} > {{context.category}} ></span><span> {{context.concept.label}} </span>
<span (click)="removeContext(context)" aria-hidden="true" class="uk-icon-button"><span class="uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
</span></span>
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
</span></span>
</li>
</ul>
<div *ngIf="contexts.length == 0 " class="uk-alert uk-alert-primary">There are no communities</div>
</div>
<div *ngIf="contexts.length == 0 " class="uk-text-center">There are no selected communities</div>
</div>
<!--/div>
</li>
</ul-->
`

View File

@ -2,11 +2,12 @@ import { NgModule } from '@angular/core';
import { SharedModule } from '../../../shared/shared.module';
import {ClaimSelectedContextsComponent} from './selectedContexts.component';
import {ClaimContextSearchFormModule} from '../../claim-utils/claimContextSearchForm.module';
// import {ClaimContextSearchFormModule} from '../../claim-utils/claimContextSearchForm.module';
@NgModule({
imports: [
SharedModule, ClaimContextSearchFormModule
SharedModule,
// ClaimContextSearchFormModule
],
declarations: [
ClaimSelectedContextsComponent

View File

@ -6,34 +6,28 @@ import {RouterHelper} from '../../../utils/routerHelper.class';
selector: 'claim-selected-projects',
template: `
<!--ul class="uk-accordion" uk-accordion="{showfirst:true}"><li class="uk-open">
<h3 class="uk-accordion-title"> {{title}} ({{(projects.length)}})
</h3>
<div class="uk-placeholder" >
<div class="uk-accordion-content"-->
<div class="uk-accordion-content uk-grid uk-width-1-1" >
<div class="uk-width-1-2 ">
<div class="uk-clearfix"><button *ngIf=" !showsearch " (click)="showsearch = true;" class="uk-button-default uk-float-right uk-animation ">Add more <span><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></span></button></div>
<!--div class="uk-width-1-2 ">
<!--div class="uk-clearfix"><button *ngIf=" !showsearch " (click)="showsearch = true;" class="uk-button-default uk-float-right uk-animation ">Add more <span><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></span></button></div>
<claim-projects-search-form *ngIf=" showsearch " [selectedProjects]="projects" (projectSelected)="projectSelected($event)" > </claim-projects-search-form>
</div>
<div class="uk-width-1-2 ">
<h3 > Selected Projects ({{projects.length}}) </h3>
<ul class="uk-list uk-list-divider">
<li class="list-group-item" *ngFor="let project of projects">
<a [queryParams]="routerHelper.createQueryParam('projectId',project.projectId)" routerLinkActive="router-link-active" routerLink="/search/project" >{{project.funderName}} | {{project.projectName}} {{(project.projectAcronym)?'('+project.projectAcronym+')':''}} <!--[{{project.startDate}} - {{project.endDate}}]--></a>
<span (click)="removeProject(project)" aria-hidden="true" class="uk-icon-button"><span class="uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
</span></span>
</li>
</ul>
<div *ngIf="projects.length == 0 " class="uk-alert uk-alert-primary">There are no projects</div>
<div class="uk-width-1-2 "-->
<div>
<h3 *ngIf="projects.length > 0 "> Selected Projects ({{projects.length}}) </h3>
<ul class="uk-list uk-list-divider">
<li class="list-group-item" *ngFor="let project of projects">
<a [queryParams]="routerHelper.createQueryParam('projectId',project.projectId)" routerLinkActive="router-link-active" routerLink="/search/project" >{{project.funderName}} | {{project.projectName}} {{(project.projectAcronym)?'('+project.projectAcronym+')':''}} <!--[{{project.startDate}} - {{project.endDate}}]--></a>
<span (click)="removeProject(project)" aria-hidden="true" class="uk-icon-button"><span class="uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
</span></span>
</li>
</ul>
</div>
<div *ngIf="projects.length == 0 " class="uk-text-center">There are no selected projects</div>
</div>
</div>
<!--/div>
</li></ul-->
`

View File

@ -4,11 +4,12 @@ import { RouterModule } from '@angular/router';
import { SharedModule } from '../../../shared/shared.module';
import {ClaimSelectedProjectsComponent} from './selectedProjects.component';
import {ClaimProjectsSearchFormModule} from '../../claim-utils/claimProjectSearchForm.module';
// import {ClaimProjectsSearchFormModule} from '../../claim-utils/claimProjectSearchForm.module';
@NgModule({
imports: [
SharedModule, RouterModule, ClaimProjectsSearchFormModule
SharedModule, RouterModule,
// ClaimProjectsSearchFormModule
],
declarations: [
ClaimSelectedProjectsComponent

View File

@ -9,29 +9,32 @@ import {Dates} from '../../../utils/string-utils.class';
template: `
<!--ul class="uk-accordion " uk-accordion="{showfirst:true}" ><li class="uk-open">
<h3 class="uk-accordion-title" > {{title}} ({{results.length}}) </h3-->
<div class="uk-accordion-content uk-grid uk-width-1-1" >
<div *ngIf="showSearch " class="uk-width-1-2 ">
<!--div *ngIf="showSearch " class="uk-width-1-2 ">
<div class="uk-clearfix"><a (click)="bulkMode = !bulkMode;" class=" uk-animation uk-float-right">
<span *ngIf="!bulkMode">Switch to Upload mode <i class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="upload" ratio="1"><polyline fill="none" stroke="#000" points="5 8 9.5 3.5 14 8 "></polyline><rect x="3" y="17" width="13" height="1"></rect><line fill="none" stroke="#000" x1="9.5" y1="15" x2="9.5" y2="4"></line></svg></i></span>
<span *ngIf="bulkMode">Switch to Search mode <span class="uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="search" ratio="1"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9" cy="9" r="7"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M14,14 L18,18 L14,14 Z"></path></svg>
</span></span>
</a></div><!-- (resultsChange)="resultsChanged($event)" -->
</a></div>
<claim-result-search-form *ngIf="!bulkMode" [selectedResults]="results" > </claim-result-search-form>
<bulk-claim *ngIf="bulkMode" [results]="results" > </bulk-claim>
</div>
<div [ngClass]="showAccessRights && !showSearch?'uk-width-1-1':'uk-width-1-2'">
<h3 > {{title}} ({{results.length}}) </h3>
<!--div class="uk-clearfix"><button *ngIf=" !showSearch " (click)="showSearch = true;" class="uk-button-default uk-float-right uk-animation ">Add more <span><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></span></button></div-->
<div *ngIf="results.length == 0 " class="uk-alert uk-alert-primary">There are no research results</div>
<ul *ngIf="results.length > 0 " class="uk-list uk-list-divider">
<li *ngFor="let pub of results" >
<div uk-grid>
<div [ngClass]="showAccessRights?'uk-width-2-3':'uk-width-1-1'" >
</div-->
<div class="uk-placeholder" >
<div *ngIf="results.length == 0 " class="uk-text-center">There are no selected research results</div>
<div *ngIf="results.length > 0 ">
<h3 > {{title}} ({{results.length}}) </h3>
<table class="uk-table uk-table-responsive">
<thead *ngIf="showAccessRights">
<tr>
<th> Research Result</th>
<th> Change type and access mode</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let pub of results" >
<td >
<div>
<span *ngIf="showAccessRights" (click)="removePublication(pub)" aria-hidden="true" class="uk-icon-button"><span class="uk-icon">
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
@ -43,18 +46,19 @@ import {Dates} from '../../../utils/string-utils.class';
</span></span>
</div>
<span *ngIf="pub.publisher" class="uk-article-meta">Publisher: {{pub.publisher}}</span>
<!--Orcid --><span *ngIf="pub.result['journal-title'] && pub.result['journal-title'].value " class="uk-article-meta">Journal: {{pub.result['journal-title'].value}}</span>
<span *ngIf="pub.date" class="uk-article-meta" >({{pub.date.substring(0,4)}})</span>
<div *ngIf="pub.authors && pub.authors.length > 0" class="uk-article-meta">Authors: <span *ngFor="let author of pub.authors.slice(0,10) let i = index">{{author}}{{(i < (pub.authors.slice(0,10).length-1))?"; ":""}}{{(i == pub.authors.slice(0,10).length-1 && pub.authors.length > 10)?"...":""}}</span></div>
<span *ngIf="pub.publisher" >Publisher: {{pub.publisher}}</span>
<!--Orcid --><span *ngIf="pub.result['journal-title'] && pub.result['journal-title'].value " >Journal: {{pub.result['journal-title'].value}}</span>
<span *ngIf="pub.date" >({{pub.date.substring(0,4)}})</span>
<div *ngIf="pub.authors && pub.authors.length > 0" >Authors: <span *ngFor="let author of pub.authors.slice(0,10) let i = index">{{author}}{{(i < (pub.authors.slice(0,10).length-1))?"; ":""}}{{(i == pub.authors.slice(0,10).length-1 && pub.authors.length > 10)?"...":""}}</span></div>
<!-- Crossref -->
<!--span *ngIf="pub.result.publisher" class="uk-article-meta">Publisher: {{pub.result.publisher}}</span><span *ngIf="pub.date" class="uk-article-meta" >({{pub.date.substring(0,4)}})</span>
<div *ngIf="pub.result.author && pub.result.author.length > 0" class="uk-article-meta">Authors: <span *ngFor="let author of pub.result.author.slice(0,10) let i = index">{{author.family}} {{author.given}}{{(i < (pub.result.author.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.author.slice(0,10).length-1 && pub.result.author.length > 10)?"...":""}}</span></div-->
<div *ngIf="pub.result.editor && pub.result.editor.length > 0" class="uk-article-meta">Editors: <span *ngFor="let author of pub.result.editor.slice(0,10) let i = index">{{author.family}} {{author.given}}{{(i < (pub.result.editor.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.editor.slice(0,10).length-1 && pub.result.editor.length > 10)?"...":""}}</span></div>
<div *ngIf="pub.result.editor && pub.result.editor.length > 0" >Editors: <span *ngFor="let author of pub.result.editor.slice(0,10) let i = index">{{author.family}} {{author.given}}{{(i < (pub.result.editor.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.editor.slice(0,10).length-1 && pub.result.editor.length > 10)?"...":""}}</span></div>
<!-- Openaire -->
<div *ngIf="pub.result.authors && pub.result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of pub.result.authors.slice(0,10) let i = index">{{author.name}}{{(i < (pub.result.authors.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.authors.slice(0,10).length-1 && pub.result.authors.length > 10)?"...":""}}</span></div>
<div *ngIf="pub.result.authors && pub.result.authors.length >0 " >Authors: <span *ngFor="let author of pub.result.authors.slice(0,10) let i = index">{{author.name}}{{(i < (pub.result.authors.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.authors.slice(0,10).length-1 && pub.result.authors.length > 10)?"...":""}}</span></div>
<!-- Orcid -->
@ -63,46 +67,43 @@ import {Dates} from '../../../utils/string-utils.class';
<!-- Datacite -->
<!--span *ngIf="pub.result.attributes['container-title']" class="uk-article-meta">Publisher: {{pub.result.attributes['container-title']}}</span><span *ngIf="pub.date" class="uk-article-meta" >({{pub.date.substring(0,4)}})</span>
<div *ngIf="pub.result.attributes.author && pub.result.attributes.author.length > 0" class="uk-article-meta">Authors: <span *ngFor="let author of pub.result.attributes.author.slice(0,10) let i = index">{{(author.family)?author.family+', '+author.given:author.literal}}{{(i < (pub.result.attributes.author.slice(0,10).length-1))?"; ":""}}{{(i == pub.result.attributes.author.slice(0,10).length-1 && pub.result.attributes.author.length > 10)?"...":""}}</span></div-->
<div class="uk-badge">{{pub.source}}</div>
</div>
<div *ngIf="showAccessRights && pub.source != 'openaire' " class = "uk-width-1-3 uk-grid">
<div class="uk-width-1-3 uk-padding-remove-left">
<div><span class="uk-label">{{pub.source}}</span>
<span *ngIf="pub.accessRights" class=" uk-label label-grey" > {{pub.accessRights}}</span>
<span *ngIf="pub.type" class="uk-label label-grey" > {{pub.type}}</span>
</div>
</td>
<td *ngIf="showAccessRights && pub.source != 'openaire' " >
<select [(ngModel)]="pub.type" name="{{'select_type_'+pub.id}}" >
<option [value]="'publication'" (click)="onTypeChanged('publication',pub)" >Publication</option>
<option [value]="'research data'" (click)="onTypeChanged('dataset',pub)" >Research Data</option>
<option [value]="'dataset'" (click)="onTypeChanged('dataset',pub)" >Research Data</option>
</select>
</div>
<div class="uk-width-1-3 uk-padding-remove-left">
<select [(ngModel)]="pub.accessRights" name="{{'select_rights_'+pub.id}}" >
<option *ngFor="let type of accessTypes" [value]="type" (click)="accessRightsTypeChanged(type,pub)">{{type}}</option>
</select>
</div>
<!--input *ngIf="pub.accessRights== 'EMBARGO'" class="-width-small" id="{{'date'+pub.id}}" type="text" data-uk-datepicker="{format:'YYYY-MM-DD'}"-->
<div class="uk-width-1-3 uk-padding-remove-left">
<my-date-picker *ngIf="pub.accessRights== 'EMBARGO'" name="{{'date'+pub.id}}" [options]="myDatePickerOptions"
[(ngModel)]="nextDate" (dateChanged)="onDateChanged($event,pub)" ></my-date-picker>
</div>
[(ngModel)]="nextDate" (dateChanged)="onDateChanged($event,pub)" ></my-date-picker>
</td>
</div>
<div *ngIf="showAccessRights && pub.source == 'openaire' " class = "uk-width-1-3">
<button class="uk-button uk-button-default " disabled type="button" >
{{pub.type}}
</button>
<button class="uk-button uk-button-default" disabled type="button" >
{{pub.accessRights}}
</button>
</div>
</div>
</li>
<td *ngIf="showAccessRights && pub.source == 'openaire' " >
Currently you cannot change metadata from openaire
</ul>
<modal-alert (alertOutput)="confirmClose($event)">
</modal-alert>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<modal-alert (alertOutput)="confirmClose($event)">
</modal-alert>
</div>
</div>
<!--/li></ul-->
</div>
`

View File

@ -3,13 +3,16 @@ import { NgModule } from '@angular/core';
import { SharedModule } from '../../../shared/shared.module';
import {ClaimSelectedResultsComponent} from './selectedResults.component';
import {AlertModalModule} from '../../../utils/modal/alertModal.module';
import {ClaimResultSearchFormModule} from '../../claim-utils/claimResultSearchForm.module';
import { MyDatePickerModule } from '../../../utils/my-date-picker/my-date-picker.module';
import {BulkClaimModule} from '../bulkClaim/bulkClaim.module';
// import {BulkClaimModule} from '../bulkClaim/bulkClaim.module';
// import {ClaimResultSearchFormModule} from '../../claim-utils/claimResultSearchForm.module';
@NgModule({
imports: [
SharedModule, AlertModalModule, ClaimResultSearchFormModule, MyDatePickerModule, BulkClaimModule
SharedModule,
AlertModalModule,
MyDatePickerModule,
// BulkClaimModule, ClaimResultSearchFormModule,
],
declarations: [
ClaimSelectedResultsComponent

View File

@ -11,8 +11,8 @@ import { Meta} from '../../../angular2-meta';
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
<div class="uk-container uk-margin-top">
<div class="page-header">
<h2> My Linked research resutls</h2>
<div class="uk-article-title">
My Claims
</div>
<div>
<div class="uk-text-right"><a routerLink="/participate/claim">Add more Links?</a></div>

View File

@ -10,10 +10,10 @@ import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openairePro
template: `
<div class="uk-margin-top">
<h3>Or search for content providers via Classifications</h3>
<h3>Or search for domain specific repositories</h3>
<form class= "uk-grid">
<input type="text" [(ngModel)]="subjectKeyword" class="uk-margin-medium-left uk-input uk-width-1-2" name="subject" placeholder="Search for classifications..." />
<input type="text" [(ngModel)]="subjectKeyword" class="uk-margin-medium-left uk-padding-remove-left uk-input" name="subject" placeholder="Type keywords (e.g Biology, Natural sciences, Social Sciences, Engineering Sciences... )" style="width: 580px;" />
<button class=" uk-button uk-button-default" type="submit" (click)="search()" >
Search

View File

@ -19,9 +19,9 @@ import {PiwikService} from '../../utils/piwik/piwik.service';
<div uk-grid uk-grid>
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
<div class="uk-container uk-margin-top">
<div class="page-header" >
<h2>Deposit {{requestFor}}</h2>
<div class="uk-container uk-margin-top">
<div class="uk-article-title">
Deposit {{requestFor}}
</div>
<div class="uk-width-1-1 uk-margin uk-padding uk-panel uk-background-muted">

View File

@ -10,10 +10,9 @@ import {PiwikService} from '../utils/piwik/piwik.service';
selector: 'deposit',
template: `
<div class="uk-margin-top">
<div class="page-header" >
<h2>Deposit {{requestFor}}</h2>
<div class="uk-article-title">
Deposit {{requestFor}}
</div>
<div>
<p>
<i>
@ -32,7 +31,7 @@ import {PiwikService} from '../utils/piwik/piwik.service';
<a href="{{helpdesk}}" target="_blank">ask a question (<i class="custom-external"></i>)</a> to OpenAIREs national representative.
</p>
<h3>Locate content provider via your institution</h3>
<h3>Locate repository via your institution</h3>
<form class= "uk-grid">
<div class="uk-width-1-2 ">
@ -79,7 +78,9 @@ export class DepositComponent {
this.updateTitle("Deposit "+this.requestFor);
this.updateDescription("Openaire, repositories, open access, content provider, compatibility, organization, deposit "+ this.requestFor);
this.updateUrl(OpenaireProperties.getBaseLink()+this._router.url);
this.piwiksub = this._piwikService.trackView("Deposit "+this.requestFor).subscribe();
if(OpenaireProperties.isPiwikTrackEnabled() && (typeof document !== 'undefined')){
this.piwiksub = this._piwikService.trackView("Deposit "+this.requestFor).subscribe();
}
}
ngOnDestroy() {
if(this.piwiksub){

View File

@ -20,8 +20,8 @@ import {PiwikService} from '../utils/piwik/piwik.service';
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
<div class="uk-container uk-margin-top">
<div class="page-header" >
<h2>Deposit {{requestFor}}</h2>
<div class="uk-article-title">
Deposit {{requestFor}}
</div>
@ -31,7 +31,7 @@ import {PiwikService} from '../utils/piwik/piwik.service';
<div *ngIf="status != errorCodes.LOADING" class="uk-margin-bottom">
<h3>Locate content provider via your institution</h3>
<h3>Locate repository via your institution</h3>
<form class= "uk-grid">
<div class="uk-width-1-2 ">
@ -72,7 +72,7 @@ import {PiwikService} from '../utils/piwik/piwik.service';
<a [queryParams]="routerHelper.createQueryParams(['organizationId', 'or'], [organizationId, 'and'])"
routerLinkActive="router-link-active" [routerLink]="linkToSearchDataproviders" class="uk-button uk-button-text">
View all {{fetchDataproviders.searchUtils.totalResults}} results
View all {{fetchDataproviders.searchUtils.totalResults}} results
</a>
</div>
<search-result [(results)]="fetchDataproviders.results"
@ -152,7 +152,9 @@ export class DepositResultComponent {
this.updateTitle("Deposit "+this.requestFor);
this.updateDescription("Openaire, repositories, open access, content provider, compatibility, organization, deposit "+ this.requestFor);
this.updateUrl(OpenaireProperties.getBaseLink()+this._router.url);
this.piwiksub = this._piwikService.trackView("Deposit "+this.requestFor).subscribe();
if(OpenaireProperties.isPiwikTrackEnabled() && (typeof document !== 'undefined')){
this.piwiksub = this._piwikService.trackView("Deposit "+this.requestFor).subscribe();
}
}
updateDescription(description:string){
this._meta.updateMeta("description", description);

View File

@ -9,7 +9,7 @@ import {Component} from '@angular/core';
<div class="uk-container">
<deposit [compatibility]="'openaire____::47ce9e9f4fad46e732cff06419ecaabb||OpenDOAR'" [requestFor]="'Publications'"></deposit>
<h3>Or locate content provider in map</h3>
<h3>Or locate repository in map</h3>
<div class="uk-margin-top">
<i-frame [url]="mapUrl"width="100%" height="900"></i-frame>
</div>

View File

@ -283,7 +283,7 @@ export class OrganizationComponent {
let projects = [];
let counter: number = count;
let title: boolean = false;
this._searchProjectsService.getProjectsForOrganizations(this.organizationId,' and (funderid exact '+ funderId + ' ) ',1,count,[]).subscribe(
this._searchProjectsService.getProjectsForOrganizations(this.organizationId,' and (funder exact '+ funderId + ' ) ',1,count,[]).subscribe(
data =>
{
projects = data[1];

View File

@ -1,4 +1,4 @@
import {Component, ElementRef} from '@angular/core';
import {Component, ElementRef, Input} from '@angular/core';
import {Observable} from 'rxjs/Observable';
import {ActivatedRoute, Router} from '@angular/router';
import {Location} from '@angular/common';
@ -10,18 +10,49 @@ import {OpenaireProperties} from '../utils/properties/openaireProperties';
@Component({
selector: 'user-mini',
template: `
<ul *ngIf="!mobileView" class="uk-navbar-nav">
<li class="uk-parent">
<div *ngIf="!server" class=" custom-user-mini-panel uk-margin-top uk-margin-right uk-float-right">
<span *ngIf="loggedIn" >
<!--a (click)="gotoUserPage();" >{{user.fullname}}</a-->
<span>{{user.fullname}}</span> | <a class="loginLink" (click)="logOut();" >Log out</a>
</span>
<!--a *ngIf="!loggedIn" class="loginLink" (click)="gotoUserPage();" >Sign in</a-->
<span *ngIf="!loggedIn">
<a class="loginLink" [href]="loginUrl" >Sign in</a>
| <a class="loginLink" [href]="loginUrl" >Register</a>
</span>
<a class="" aria-expanded="false">
<span *ngIf="loggedIn" >
<span>{{user.fullname}}</span>
</span>
<span *ngIf="!loggedIn">
<a class="loginLink" [href]="loginUrl" >Sign in | Register</a>
</span>
<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"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9.9" cy="6.4" r="4.4"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M1.5,19 C2.3,14.5 5.8,11.2 10,11.2 C14.2,11.2 17.7,14.6 18.5,19.2"></path></svg></span>
</a>
<div *ngIf="loggedIn" class="uk-navbar-dropdown uk-navbar-dropdown-bottom-left" id="userMenu" (click)="onClick('userMenu')" >
<div class="uk-navbar-dropdown-grid uk-child-width-1-1 uk-grid uk-grid-stack" uk-grid="">
<div class="uk-first-column">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li><a href="" >My profile</a></li>
<li><a routerLinkActive="uk-link" routerLink="/myclaims">My Claims</a></li>
<li *ngIf="isAuthorized"><a routerLinkActive="uk-link" routerLink="/claims">Manage all Claims</a></li>
<li><a (click)="logOut()">Log out</a></li>
</ul>
</div>
</div>
</div> </li>
</ul>
<li *ngIf="mobileView" class="uk-nav-header uk-parent " >
<span *ngIf="loggedIn" >
<span>{{user.fullname}}</span>
</span>
<span *ngIf="!loggedIn">
<a class="loginLink" [href]="loginUrl" >Sign in | Register</a>
</span>
<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"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9.9" cy="6.4" r="4.4"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M1.5,19 C2.3,14.5 5.8,11.2 10,11.2 C14.2,11.2 17.7,14.6 18.5,19.2"></path></svg></span>
<ul *ngIf="loggedIn" class="uk-nav-sub">
<li><a href="" >My profile</a></li>
<li><a routerLinkActive="uk-link" routerLink="/myclaims">My Claims</a></li>
<li *ngIf="isAuthorized"><a routerLinkActive="uk-link" routerLink="/claims">Manage all Claims</a></li>
<li><a (click)="logOut()" >Log out</a></li>
</ul>
</li>
`
})
@ -29,6 +60,8 @@ import {OpenaireProperties} from '../utils/properties/openaireProperties';
export class UserMiniComponent {
public user: User;
public loggedIn: boolean = false;
public isAuthorized: boolean = false;
@Input() public mobileView:boolean = false ;
public server: boolean = true;
public routerHelper:RouterHelper = new RouterHelper();
public loginUrl= OpenaireProperties.getLoginURL();
@ -56,13 +89,20 @@ export class UserMiniComponent {
if(Session.isUserValid()){
this.loggedIn = Session.isLoggedIn();
this.user = Session.getUser();
if(Session.isAdminUser()){
this.isAuthorized = true;
}else {
this.isAuthorized = false;
}
}else{
Session.removeUser();
this.loggedIn = false;
this.isAuthorized = false;
this.user = null;
}
}else {
this.loggedIn = false;
this.isAuthorized = false;
this.user = null;
}
@ -80,7 +120,13 @@ export class UserMiniComponent {
Session.removeUser();
}
this.loggedIn = false;
this.isAuthorized = false;
this.user = new User();
}
onClick(id: string) {
var el: HTMLElement = document.getElementById(id);
el.classList.remove('uk-open');
}
}

View File

@ -17,7 +17,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, SearchResultsModule, CompatibleDataProvidersRoutingModule, SearchPageModule//, SearchFilterModalModule
SearchFormModule, SearchResultsModule, CompatibleDataProvidersRoutingModule, SearchPageModule
],
declarations: [

View File

@ -17,7 +17,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, /*DatasourceTableViewModule,*/ CompatibleDataProvidersTableRoutingModule, SearchPageTableViewModule//, SearchFilterModalModule
SearchFormModule, CompatibleDataProvidersTableRoutingModule, SearchPageTableViewModule
],
declarations: [

View File

@ -17,7 +17,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, SearchResultsModule, EntityRegistriesRoutingModule, SearchPageModule//, SearchFilterModalModule
SearchFormModule, SearchResultsModule, EntityRegistriesRoutingModule, SearchPageModule
],
declarations: [

View File

@ -17,7 +17,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, /*DatasourceTableViewModule,*/ EntityRegistriesTableRoutingModule, SearchPageTableViewModule
SearchFormModule, EntityRegistriesTableRoutingModule, SearchPageTableViewModule
],
declarations: [

View File

@ -17,7 +17,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, SearchResultsModule, JournalsRoutingModule, SearchPageModule//, SearchFilterModalModule
SearchFormModule, SearchResultsModule, JournalsRoutingModule, SearchPageModule
],
declarations: [

View File

@ -17,7 +17,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
imports: [
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, /*DatasourceTableViewModule,*/ JournalsTableRoutingModule, SearchPageTableViewModule//, SearchFilterModalModule
SearchFormModule, JournalsTableRoutingModule, SearchPageTableViewModule
],
declarations: [

View File

@ -25,7 +25,7 @@ import {PreviousRouteRecorder} from '../../utils/piwik/previousRouteRecorder.gua
CommonModule, FormsModule, RouterModule,
DataProvidersServiceModule, DatasetsServiceModule, ProjectsServiceModule,
PublicationsServiceModule, OrganizationsServiceModule,
BrowseEntitiesModule, SearchFormModule, SearchResultsModule, MainSearchRoutingModule, PiwikServiceModule//, SearchFilterModalModule
BrowseEntitiesModule, SearchFormModule, SearchResultsModule, MainSearchRoutingModule, PiwikServiceModule
],
declarations: [

View File

@ -8,15 +8,13 @@ import {ModalLoading} from '../../utils/modal/loading.component';
@Component({
selector: 'search-download',
template: `
<div class= "searchDownload" *ngIf="totalResults > 0">
<p class="uk-margin-large-right" *ngIf="totalResults <= 10000">
<span class="uk-margin-large-right" *ngIf="totalResults <= 10000">
<!--a (click)="download()" href="{{downloadURLAPI}}{{type}}?format=csv&page=0&size={{totalResults}}{{csvParams}}" -->
<span class="clickable" (click)="downloadfile(downloadURLAPI+type+'?format=csv&page=0&size='+totalResults+csvParams,type+'-report-'+totalResults)">
<span aria-hidden="true" class="glyphicon glyphicon-download"></span>
<span class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="download" ratio="1"><polyline fill="none" stroke="#000" points="14,10 9.5,14.5 5,10"></polyline><rect x="3" y="17" width="13" height="1"></rect><line fill="none" stroke="#000" x1="9.5" y1="13.91" x2="9.5" y2="3"></line></svg></span> (CSV)
</span>
</p>
</div>
</span>
<!--modal-alert></modal-alert-->
<modal-loading></modal-loading>
`

View File

@ -48,8 +48,9 @@ import {Open} from '../../utils/modal/open.component';
<h5 class="uk-margin-remove uk-padding uk-padding-remove-bottom">
{{filter.title}}
</h5>
<span *ngIf="filter.values.length >= 99" class="uk-article-meta uk-text-center">Showing top {{filter.values.length}} values. </span>
<div class="uk-modal-body uk-overflow-auto uk-height-medium uk-padding-remove
uk-margin-medium-left uk-margin-medium-right uk-margin-medium-top uk-margin-bottom">
uk-margin-medium-left uk-margin-medium-right uk-margin-small-top uk-margin-bottom">
<div *ngFor = "let value of getSelectedValues(filter)" class = "uk-animation-fade filterItem">
<span class="filterName"><div title = "{{value.name}}">
<input [disabled]="isDisabled" [(ngModel)]="value.selected" type="checkbox" (ngModelChange)="close(); filterChange(value.selected)" />
@ -108,7 +109,7 @@ export class SearchFilterComponent {
}
public _formatTitle(title,length){
return (((title+" ("+length+")").length >this._maxCharacters)?(title.substring(0,(this._maxCharacters - (" ("+length+")").length - ('...').length))+"..."):title+" ("+length+")")
return (((title+" ("+length+")").length >this._maxCharacters)?(title.substring(0,(this._maxCharacters - (" ("+length+")").length - ('...').length))+"..."):title+" ("+((length >= 99)?length+"+":length)+")")
}
private _formatName(value){
return value.name;//(((value.name+" ("+value.number+")").length >this._maxCharacters)?(value.name.substring(0,(this._maxCharacters - (" ("+value.number+")").length - ('...').length))+"..."):value.name)

View File

@ -24,10 +24,7 @@ import {PiwikService} from '../../utils/piwik/piwik.service';
<div uk-grid uk-grid>
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
<div class="">
<!--div class="page-header">
<h2>{{pageTitle}}</h2>
</div-->
<!--div class="uk-width-1-1 uk-margin uk-padding uk-panel uk-background-muted"-->
<div [class]="'uk-background-norepeat uk-background-cover uk-section uk-flex uk-flex-middle uk- light '+searchFormClass" >
<div class="uk-width-1-1">
<div class="uk-width-1-1">
@ -102,13 +99,13 @@ import {PiwikService} from '../../utils/piwik/piwik.service';
</div>
<div *ngIf="tableViewLink || searchUtils.totalResults <=10000" class=" search-filters uk-width-1-5@l uk-width-1-5@m uk-width-1-1@s uk-visible@m">
<p *ngIf="tableViewLink" >
<span *ngIf="tableViewLink" class="uk-margin-medium-right">
<a routerLinkActive="router-link-active" [class]="(disableForms)?'uk-disabled uk-link-muted':''" [routerLink]=tableViewLink >
<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>
</a>
<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>
</p>
</span>
<search-download [type]="csvPath" [csvParams]="csvParams" [totalResults]="searchUtils.totalResults" (downloadClick)="downloadClicked($event)"></search-download>

View File

@ -22,9 +22,6 @@ import {PiwikService} from '../../utils/piwik/piwik.service';
<div uk-grid uk-grid>
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
<!--div class="page-header">
<h2>{{pageTitle}}</h2>
</div-->
<div [class]="'uk-background-norepeat uk-background-cover uk-section uk-flex uk-flex-middle '+searchFormClass" >
<div class="uk-width-1-1">
<div class="uk-width-1-1">
@ -107,11 +104,36 @@ import {PiwikService} from '../../utils/piwik/piwik.service';
<tr>
<!-- Name Type Country Institution Compatibility -->
<th class="uk-text-left"><mfDefaultSorter by="title.name">Name</mfDefaultSorter></th>
<th class="uk-text-center"><mfDefaultSorter by="type">Type</mfDefaultSorter></th>
<th class="uk-text-center"><mfDefaultSorter by="countries">Country</mfDefaultSorter></th>
<th class="uk-text-center"><mfDefaultSorter [by]="sortByOrganization">Institution</mfDefaultSorter></th>
<th class="uk-text-center"><mfDefaultSorter by="compatibility">Compatibility</mfDefaultSorter></th>
<th class="uk-text-left"><mfDefaultSorter by="title.name">Name</mfDefaultSorter>
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#767779" points="4 1 1 6 7 6"></polygon>
<polygon fill="#767779" points="4 13 1 8 7 8"></polygon>
</svg>
</th>
<th class="uk-text-center"><mfDefaultSorter by="type">Type</mfDefaultSorter>
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#767779" points="4 1 1 6 7 6"></polygon>
<polygon fill="#767779" points="4 13 1 8 7 8"></polygon>
</svg>
</th>
<th class="uk-text-center"><mfDefaultSorter by="countries">Country</mfDefaultSorter>
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#767779" points="4 1 1 6 7 6"></polygon>
<polygon fill="#767779" points="4 13 1 8 7 8"></polygon>
</svg>
</th>
<th class="uk-text-center"><mfDefaultSorter [by]="sortByOrganization">Institution</mfDefaultSorter>
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#767779" points="4 1 1 6 7 6"></polygon>
<polygon fill="#767779" points="4 13 1 8 7 8"></polygon>
</svg>
</th>
<th class="uk-text-center"><mfDefaultSorter by="compatibility">Compatibility</mfDefaultSorter>
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#767779" points="4 1 1 6 7 6"></polygon>
<polygon fill="#767779" points="4 13 1 8 7 8"></polygon>
</svg>
</th>
</tr>
</thead>

View File

@ -24,7 +24,7 @@ import {PreviousRouteRecorder} from '../../utils/piwik/previousRouteRecorder.gua
@NgModule({
imports: [
CommonModule, FormsModule,RouterModule, SearchFormModule, SearchResultsModule, /*DatasourceTableViewModule,*/ LoadingModalModule,
CommonModule, FormsModule,RouterModule, SearchFormModule, SearchResultsModule, LoadingModalModule,
ReportsServiceModule, SearchPagingModule, SearchDownloadModule, ModalModule, PagingModule, DataTableModule, SearchFilterModule, PiwikServiceModule
],
declarations: [

View File

@ -18,7 +18,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
CommonModule, FormsModule,
DataProvidersServiceModule,
SearchFormModule, SearchResultsModule, SearchDataProvidersRoutingModule, SearchPageModule//, SearchFilterModalModule
SearchFormModule, SearchResultsModule, SearchDataProvidersRoutingModule, SearchPageModule
],
declarations: [

View File

@ -18,7 +18,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
CommonModule, FormsModule,
DatasetsServiceModule,
SearchFormModule, SearchResultsModule, SearchDatasetsRoutingModule, SearchPageModule//, SearchFilterModalModule
SearchFormModule, SearchResultsModule, SearchDatasetsRoutingModule, SearchPageModule
],
declarations: [

View File

@ -9,7 +9,6 @@ import {SearchResultsModule } from '../searchUtils/searchResults.module';
import {OrganizationsServiceModule} from '../../services/organizationsService.module';
import {SearchFormModule} from '../searchUtils/searchForm.module';
//import {SearchFilterModalModule} from '../searchUtils/searchFilterModal.module';
import {SearchPageModule} from '../searchUtils/searchPage.module';
import {FreeGuard} from'../../login/freeGuard.guard';
@ -18,7 +17,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
CommonModule, FormsModule,
OrganizationsServiceModule,
SearchFormModule, SearchResultsModule, SearchOrganizationsRoutingModule, SearchPageModule//, SearchFilterModalModule
SearchFormModule, SearchResultsModule, SearchOrganizationsRoutingModule, SearchPageModule
],
declarations: [

View File

@ -18,7 +18,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
CommonModule, FormsModule,
ProjectsServiceModule,
SearchFormModule, SearchResultsModule, SearchProjectsRoutingModule, SearchPageModule//, SearchFilterModalModule
SearchFormModule, SearchResultsModule, SearchProjectsRoutingModule, SearchPageModule
],
declarations: [

View File

@ -18,7 +18,7 @@ import {FreeGuard} from'../../login/freeGuard.guard';
CommonModule, FormsModule,
PublicationsServiceModule,
SearchFormModule, SearchResultsModule, SearchPublicationsRoutingModule, SearchPageModule//, SearchFilterModalModule
SearchFormModule, SearchResultsModule, SearchPublicationsRoutingModule, SearchPageModule
],
declarations: [

View File

@ -119,24 +119,24 @@ export class SearchProjectsService {
.map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields, "project")]);
}
getFunders():any {
let url = OpenaireProperties.getSearchAPIURLLast()+"projects?refine=true&fields=funderid&size=0"+ "&format=json";;
let url = OpenaireProperties.getSearchAPIURLLast()+"projects?refine=true&fields=funder&size=0"+ "&format=json";;
let key = url;
if (this._cache.has(key)) {
return Observable.of(this._cache.get(key)).map(res => [res['meta'].total, res['refineResults']['funderid']]);
return Observable.of(this._cache.get(key)).map(res => [res['meta'].total, res['refineResults']['funder']]);
}
return this.http.get(url)
.map(res => <any> res.json())
.do(res => {
this._cache.set(key, res);
})
.map(res => [res['meta'].total, res['refineResults']['funderid']]);
.map(res => [res['meta'].total, res['refineResults']['funder']]);
}
searchForProjectsObs(keyword:string, funderId:string):any {
let url = 'search?action=search&sTransformer=projects_openaire&query='+
'%28oaftype+exact+project%29+and+%28%28projecttitle+%3D+%22'+keyword+'%22%29+or+%28projectacronym+%3D+%22'+keyword+'%22%29+or+%28projectcode+%3D+%22'+keyword+'%22%29%29+and+%28funderid+exact+'+funderId+'%29&size=10&locale=en_GB&format=json';
'%28oaftype+exact+project%29+and+%28%28projecttitle+%3D+%22'+keyword+'%22%29+or+%28projectacronym+%3D+%22'+keyword+'%22%29+or+%28projectcode+%3D+%22'+keyword+'%22%29%29+and+%28funder+exact+'+funderId+'%29&size=10&locale=en_GB&format=json';
let key = url;
if (this._cache.has(key)) {
return Observable.of(this._cache.get(key));

View File

@ -21,9 +21,9 @@ import {Session} from '../login/utils/helper.class';
<a class="uk-navbar-item uk-logo" routerLinkActive="uk-link" routerLink="/" >
<img src="assets/OA DISCOVER_A.png" alt="OpenAIRE" class="uk-responsive-height"> </a>
</div>
<div class="uk-navbar-right uk-margin-xlarge-top">
<!--div class="uk-navbar-right uk-margin-xlarge-top">
<user-mini></user-mini>
</div>
</div-->
</nav>
<div id="tm-mobile" uk-offcanvas="" mode="slide" overlay="" class="uk-offcanvas">
<div class="uk-offcanvas-bar">
@ -51,12 +51,12 @@ import {Session} from '../login/utils/helper.class';
</ul>
</li>
<li class="uk-nav-header uk-parent">
Link
<ul class="uk-nav-sub">
<a routerLinkActive="uk-link" routerLink="/participate/claim" class="" aria-expanded="false">Link</a>
<!--ul class="uk-nav-sub">
<li><a routerLinkActive="uk-link" routerLink="/participate/claim" class="uk-offcanvas-close custom-offcanvas-close" >Link</a></li>
<li><a routerLinkActive="uk-link" routerLink="/myclaims" class="uk-offcanvas-close custom-offcanvas-close">My Claims</a></li>
<li *ngIf="isAuthorized"><a routerLinkActive="uk-link" routerLink="/claims" class="uk-offcanvas-close custom-offcanvas-close">Manage all Claims</a></li>
</ul>
</ul-->
</li>
<li class="uk-nav-header uk-parent">
Resources
@ -67,6 +67,7 @@ import {Session} from '../login/utils/helper.class';
<li><a routerLinkActive="uk-link" routerLink="/search/journals" class="uk-offcanvas-close custom-offcanvas-close" >Journals</a></li>
</ul>
</li>
<user-mini mobileView=true></user-mini>
</ul>
</div>
</div>
@ -144,7 +145,7 @@ import {Session} from '../login/utils/helper.class';
</li>
<li class="uk-parent">
<a routerLinkActive="uk-link" routerLink="/participate/claim" class="" aria-expanded="false">Link</a>
<div class="uk-navbar-dropdown uk-navbar-dropdown-bottom-left" style="top: 80px; left: 358px;" id="linkingMenu" (click)="onClick('linkingMenu')" >
<!--div class="uk-navbar-dropdown uk-navbar-dropdown-bottom-left" style="top: 80px; left: 358px;" id="linkingMenu" (click)="onClick('linkingMenu')" >
<div class="uk-navbar-dropdown-grid uk-child-width-1-1 uk-grid uk-grid-stack" uk-grid="">
<div class="uk-first-column">
<ul class="uk-nav uk-navbar-dropdown-nav">
@ -154,7 +155,7 @@ import {Session} from '../login/utils/helper.class';
</ul>
</div>
</div>
</div>
</div-->
</li>
<li class="uk-parent">
<a routerLinkActive="uk-link" routerLink="/search/content-providers" class="" aria-expanded="false">Resources</a>
@ -173,8 +174,25 @@ import {Session} from '../login/utils/helper.class';
</li>
</ul>
</div>
<div class="uk-navbar-right">
<user-mini></user-mini>
<div *ngIf= "isClient" class="uk-navbar-right">
<!--ul class="uk-navbar-nav">
<li class="uk-parent"-->
<user-mini ></user-mini>
<!--a routerLinkActive="uk-link" routerLink="/search/content-providers" class="" aria-expanded="false">Resources</a-->
<!--div class="uk-navbar-dropdown uk-navbar-dropdown-bottom-left" id="userMenu" (click)="onClick('userMenu')">
<div class="uk-navbar-dropdown-grid uk-child-width-1-1 uk-grid uk-grid-stack" uk-grid="">
<div class="uk-first-column">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li><a href="" class="uk-offcanvas-close custom-offcanvas-close" >My profile</a></li>
<li><a routerLinkActive="uk-link" routerLink="/myclaims">My Claims</a></li>
<li *ngIf="isAuthorized"><a routerLinkActive="uk-link" routerLink="/claims">Manage all Claims</a></li>
<li><a routerLinkActive="uk-link" routerLink="/login">Log out</a></li>
</ul>
</div>
</div>
</div-->
<!--/li>
</ul-->
</div>
</nav>
</div>

View File

@ -15,7 +15,7 @@ export class EntitiesSearchService {
searchProjectsByFunder(keyword:string, funderId:string):any {
this.ready = false;
let url = OpenaireProperties. getSearchAPIURLLast()+"projects?"+((keyword && keyword.length > 0)?("q=" +keyword):"")+((funderId && funderId.length > 0 )?"&fq=funderid exact " + '"'+funderId+ '"':"")+"&size=10&page=0&format=json";
let url = OpenaireProperties. getSearchAPIURLLast()+"projects?"+((keyword && keyword.length > 0)?("q=" +keyword):"")+((funderId && funderId.length > 0 )?"&fq=funder exact " + '"'+funderId+ '"':"")+"&size=10&page=0&format=json";
return this.http.get(url).toPromise()
.then(request =>
{

View File

@ -23,7 +23,7 @@ export class PiwikService {
var url = OpenaireProperties.getPiwikBaseURL()+"&rec=1&url="+StringUtils.URIEncode(location.href)+"&action_name="+StringUtils.URIEncode(title)+
((ua != null && ua.length > 0)?('&ua='+StringUtils.URIEncode(ua)):'')+
((referrer != null && referrer.length > 0)?('&urlref='+StringUtils.URIEncode(referrer)):'');
console.log("Piwik - trackDownload: " + url);
console.log("Piwik - View: " + url);
return this.http.get( url);
// .do(request => console.info("Piwik request completed" ));

View File

@ -450,6 +450,11 @@ h2, h4{
background-color: #D6352B;
color: #fff
}
.uk-pagination>.uk-active>* {
color: #fff !important;
background-color: #296EE9 !important;
}
.uk-pagination>*>* {
color:#666 !important;
}