Merge develop into angular-16-irish-monitor branch
This commit is contained in:
commit
75ecd0da5e
|
@ -8,29 +8,39 @@ import { properties } from "../../environments/environment";
|
||||||
export class CacheInterceptorService implements HttpInterceptor {
|
export class CacheInterceptorService implements HttpInterceptor {
|
||||||
cachingRequests = [
|
cachingRequests = [
|
||||||
// Remove 2 following lines when bug with hidden refine filters is solved.
|
// Remove 2 following lines when bug with hidden refine filters is solved.
|
||||||
"/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=instancetypename&fields=fos&fields=relfunder&fields=relfundinglevel0_id&fields=relproject&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&fields=country&&fq=resultbestaccessright exact \"Open Access\"&type=results&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=instancetypename&fields=foslabel&fields=relfunder&fields=relfundinglevel0_id&fields=relproject&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&fq=resultbestaccessright exact \"Open Access\"&type=results&page=0&size=0",
|
||||||
"/resources2/?format=json&refine=true&fields=funder&fields=fundinglevel0_id&fields=projectstartyear&fields=projectendyear&fields=projectoamandatepublications&&type=projects&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=funder&fields=fundinglevel0_id&fields=projectstartyear&fields=projectendyear&fields=projectoamandatepublications&&type=projects&page=0&size=0",
|
||||||
|
|
||||||
"/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=instancetypename&fields=fos&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=results&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=instancetypename&fields=foslabel&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=results&page=0&size=0",
|
||||||
"/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=instancetypename&fields=fos&fields=relfunder&fields=relfundinglevel0_id&fields=relproject&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&fields=country&&fq=resultbestaccessright%20exact%20%22Open%20Access%22&fq=relfunder%20exact%20%22ec__________%3A%3AEC%7C%7CEuropean%20Commission%7C%7CEC%22&type=results&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=instancetypename&fields=foslabel&fields=relfunder&fields=relfundinglevel0_id&fields=relproject&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&fq=resultbestaccessright%20exact%20%22Open%20Access%22&fq=relfunder%20exact%20%22ec__________%3A%3AEC%7C%7CEuropean%20Commission%7C%7CEC%22&type=results&page=0&size=0",
|
||||||
|
|
||||||
"/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=instancetypename&fields=fos&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=publications&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=instancetypename&fields=foslabel&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=publications&page=0&size=0",
|
||||||
"/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=instancetypename&fields=fos&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=datasets&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=instancetypename&fields=foslabel&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=datasets&page=0&size=0",
|
||||||
"/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=instancetypename&fields=fos&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=software&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=instancetypename&fields=foslabel&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=software&page=0&size=0",
|
||||||
"/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=instancetypename&fields=fos&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=other&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=instancetypename&fields=foslabel&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&type=other&page=0&size=0",
|
||||||
|
|
||||||
"/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=instancetypename&fields=fos&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&fq=resultbestaccessright%20exact%20%22Open%20Access%22&type=results&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=instancetypename&fields=foslabel&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&fq=resultbestaccessright%20exact%20%22Open%20Access%22&type=results&page=0&size=0",
|
||||||
"/resources2/?format=json&refine=true&fields=resultbestaccessright&fields=instancetypename&fields=fos&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&fq=resultbestaccessright exact \"Open Access\"&type=results&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=instancetypename&fields=foslabel&fields=relfunder&fields=sdg&fields=country&fields=resultlanguagename&fields=resulthostingdatasource&fields=community&&fq=resultbestaccessright exact \"Open Access\"&type=results&page=0&size=0",
|
||||||
"/resources2/?format=json&refine=true&fields=funder&fields=projectstartyear&fields=projectendyear&fields=projectoamandatepublications&&type=projects&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=funder&fields=projectoamandatepublications&fields=projectstartyear&fields=projectendyear&&type=projects&page=0&size=0",
|
||||||
"/resources2/?format=json&refine=true&fields=eoscdatasourcetype&fields=datasourceodlanguages&fields=datasourceodcontenttypes&fields=datasourcecompatibilityname&fields=country&fields=collectedfromname&fields=datasourcethematic&fields=datasourcejurisdiction&&type=datasources&page=0&size=0",
|
"/resources2/?format=json&refine=true&fields=eoscdatasourcetype&fields=datasourceodlanguages&fields=datasourceodcontenttypes&fields=datasourcecompatibilityname&fields=country&fields=collectedfromname&fields=datasourcethematic&fields=datasourcejurisdiction&&type=datasources&page=0&size=0",
|
||||||
"/resources2/?format=json&query= ( (reldatasourcecompatibilityid exact driver or reldatasourcecompatibilityid exact driver-openaire2.0 or reldatasourcecompatibilityid exact openaire2.0 or reldatasourcecompatibilityid exact openaire3.0 or reldatasourcecompatibilityid exact openaire4.0 or reldatasourcecompatibilityid exact openaire-cris_1.1 or reldatasourcecompatibilityid exact openaire2.0_data or reldatasourcecompatibilityid exact hostedBy or relproject=*) ) &refine=true&fields=country&&type=organizations&page=0&size=0",
|
// "/resources2/?format=json&query= ( (reldatasourcecompatibilityid exact driver or reldatasourcecompatibilityid exact driver-openaire2.0 or reldatasourcecompatibilityid exact openaire2.0 or reldatasourcecompatibilityid exact openaire3.0 or reldatasourcecompatibilityid exact openaire4.0 or reldatasourcecompatibilityid exact openaire-cris_1.1 or reldatasourcecompatibilityid exact openaire2.0_data or reldatasourcecompatibilityid exact hostedBy or relproject=*) ) &refine=true&fields=country&&type=organizations&page=0&size=0",
|
||||||
|
"/resources2/?format=json&refine=true&fields=country&&type=organizations&fq=(reldatasourcecompatibilityid exact driver or reldatasourcecompatibilityid exact driver-openaire2.0 or reldatasourcecompatibilityid exact openaire2.0 or reldatasourcecompatibilityid exact openaire3.0 or reldatasourcecompatibilityid exact openaire4.0 or reldatasourcecompatibilityid exact openaire-cris_1.1 or reldatasourcecompatibilityid exact openaire2.0_data or reldatasourcecompatibilityid exact hostedBy or relproject=*)&page=0&size=0&minRef=true",
|
||||||
|
|
||||||
"/projects/?format=json&refine=true&page=1&size=0&fields=funder",
|
"/resources2/?format=json&size=0&type=organizations&fq=(reldatasourcecompatibilityid exact driver or reldatasourcecompatibilityid exact driver-openaire2.0 or reldatasourcecompatibilityid exact openaire2.0 or reldatasourcecompatibilityid exact openaire3.0 or reldatasourcecompatibilityid exact openaire4.0 or reldatasourcecompatibilityid exact openaire-cris_1.1 or reldatasourcecompatibilityid exact openaire2.0_data or reldatasourcecompatibilityid exact hostedBy or relproject=*)",
|
||||||
|
|
||||||
|
// "/projects/?format=json&refine=true&page=1&size=0&fields=funder",
|
||||||
|
"/projects/?fields=funder&sf=funder&format=json&size=0",
|
||||||
|
"/results/?fields=relfunder&sf=relfunder&format=json&size=0",
|
||||||
|
|
||||||
"/resources/?format=json&query=( oaftype exact datasource and (eoscdatasourcetype exact \"Journal Archive\" or eoscdatasourcetype exact \"Repository\"))&refine=true&fields=datasourcetypename&fields=country&fields=datasourceodsubjects&fields=datasourceodcontenttypes&fields=datasourcecompatibilityname&fields=datasourcethematic&fields=datasourcejurisdiction&&type=datasources&page=0&size=0",
|
"/resources/?format=json&query=( oaftype exact datasource and (eoscdatasourcetype exact \"Journal Archive\" or eoscdatasourcetype exact \"Repository\"))&refine=true&fields=datasourcetypename&fields=country&fields=datasourceodsubjects&fields=datasourceodcontenttypes&fields=datasourcecompatibilityname&fields=datasourcethematic&fields=datasourcejurisdiction&&type=datasources&page=0&size=0",
|
||||||
|
|
||||||
"/search/v2/api/datasources/count?format=json", "/search/v2/api/publications/count?format=json", "/search/v2/api/datasets/count?format=json", "/search/v2/api/software/count?format=json", "/search/v2/api/other/count?format=json",
|
"/search/v2/api/datasources/count?format=json", "/search/v2/api/publications/count?format=json", "/search/v2/api/datasets/count?format=json", "/search/v2/api/software/count?format=json", "/search/v2/api/other/count?format=json",
|
||||||
"relresulttype%3Dpublication"
|
"relresulttype%3Dpublication",
|
||||||
|
|
||||||
|
"/resources2/?format=json&size=0&type=projects",
|
||||||
|
"/resources2/?format=json&size=0&type=datasources",
|
||||||
|
"/resources2/?format=json&size=0&type=results",
|
||||||
|
"/resources2/?format=json&size=0&type=results&fq=resultbestaccessright%20exact%20%22Open%20Access%22"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,7 +63,8 @@ export class CacheInterceptorService implements HttpInterceptor {
|
||||||
if (!properties.useLongCache) {
|
if (!properties.useLongCache) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(url.indexOf("refine=true") !== -1 || url.indexOf("/count?format=json") !== -1 || url.indexOf("relresulttype%3Dpublication") !== -1) {
|
if(url.indexOf("sf=") !== -1 || url.indexOf("refine=true") !== -1 || url.indexOf("/count?format=json") !== -1 || url.indexOf("relresulttype%3Dpublication") !== -1 ||
|
||||||
|
(url.indexOf("?format=json&size=0&type=") !== -1 && url.indexOf("query=") == -1)) {
|
||||||
return this.cachingRequests.some(partUrl => (url.indexOf(partUrl) !== -1));
|
return this.cachingRequests.some(partUrl => (url.indexOf(partUrl) !== -1));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
|
|
||||||
<div *ngIf="!hidden" class="">
|
|
||||||
<div *ngIf="showSaveResetButtons" class="uk-article-title custom-article-title">
|
|
||||||
User Email Preferences for Claims Notifications
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="userValidMessage.length > 0" class = "uk-alert uk-alert-danger uk-animation-fade" role="alert">
|
|
||||||
{{userValidMessage}}
|
|
||||||
</div>
|
|
||||||
<div *ngIf="savedMessage.length > 0" class="uk-alert uk-alert-success uk-animation-fade" role="alert">
|
|
||||||
{{savedMessage}}
|
|
||||||
</div>
|
|
||||||
<errorMessages [status]="[status]" [type]="'notification preferences'"></errorMessages>
|
|
||||||
|
|
||||||
|
|
||||||
<div *ngFor="let notification of notifications; let i=index" >
|
|
||||||
<!-- <div class="uk-accordion-title">Email preferences for {{preferencesFor}}: <strong>{{notification.openaireName}}</strong></div>-->
|
|
||||||
<!-- <div class="uk-accordion-content">-->
|
|
||||||
<form class="uk-form-horizontal"><!-- [formGroup]="myForm"-->
|
|
||||||
<!--[ngClass]="{'has-error':!myForm.controls.notify.valid && myForm.controls.notify.dirty}"-->
|
|
||||||
<div class="uk-margin uk-grid">
|
|
||||||
<div class=" inherit-color uk-width-medium"
|
|
||||||
title="Get e-mail notification when there are new user links related your community">Notify
|
|
||||||
for new user links:</div>
|
|
||||||
|
|
||||||
<mat-slide-toggle [checked]="notification.notify"
|
|
||||||
(change)="($event.source.checked = notification.notify);changeNotify(notification, !notification.notify, i)"></mat-slide-toggle>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="notification.notify" [class]="notification.notify ? 'uk-margin' :
|
|
||||||
'uk-margin cursor-not-allowed'">
|
|
||||||
<div class="uk-form-label inherit-color">Frequency:</div>
|
|
||||||
<div class="uk-form-controls">
|
|
||||||
<select [class]="notification.notify ? 'uk-select' : 'uk-select uk-disabled'" id="form-horizontal-select"
|
|
||||||
[(ngModel)]="notification.frequency" (ngModelChange)="changeFrequency(i)" name="select_frequency">
|
|
||||||
<option [ngValue]="24" >Daily</option>
|
|
||||||
<option [ngValue]="48" >Every two days</option>
|
|
||||||
<option [ngValue]="168">Weekly</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div *ngIf="showSaveResetButtons" class="uk-float-right">
|
|
||||||
<button type="submit" class="uk-button uk-button-primary" (click)="saveNotification(i)">Save Changes</button>
|
|
||||||
<button type="submit" class="uk-button" (click)="restoreNotification(i)">Reset</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </ul>-->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
|
@ -1,259 +0,0 @@
|
||||||
import {Component, Input} from '@angular/core';
|
|
||||||
import {Location} from '@angular/common';
|
|
||||||
import {ActivatedRoute, Router} from '@angular/router';
|
|
||||||
import {Session} from '../../login/utils/helper.class';
|
|
||||||
import {EnvProperties} from '../../utils/properties/env-properties';
|
|
||||||
import {MailPrefsService} from './mailPrefs.service';
|
|
||||||
import {ConnectHelper} from '../connectHelper';
|
|
||||||
import {ErrorCodes} from '../../utils/properties/errorCodes';
|
|
||||||
import {ErrorMessagesComponent} from '../../utils/errorMessages.component';
|
|
||||||
import {LoginErrorCodes} from '../../login/utils/guardHelper.class';
|
|
||||||
import {properties} from "../../../../environments/environment";
|
|
||||||
import {Subscriber} from "rxjs";
|
|
||||||
|
|
||||||
declare var UIkit: any;
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'mailPrefs',
|
|
||||||
templateUrl: 'mailPrefs.component.html',
|
|
||||||
providers:[MailPrefsService]
|
|
||||||
|
|
||||||
})
|
|
||||||
export class MailPrefsComponent {
|
|
||||||
properties:EnvProperties;
|
|
||||||
subscriptions = [];
|
|
||||||
@Input() communityId: string;
|
|
||||||
public preferencesFor: string = "community";
|
|
||||||
public status: number;
|
|
||||||
|
|
||||||
public notifications = [];
|
|
||||||
public initialNotifications = [];
|
|
||||||
public prefsChanged = {};
|
|
||||||
public hidden: boolean = true;
|
|
||||||
|
|
||||||
//public showForbiddenMessage:boolean = false;
|
|
||||||
public userValidMessage:string = "";
|
|
||||||
public savedMessage: string = "";
|
|
||||||
|
|
||||||
private errorCodes: ErrorCodes;
|
|
||||||
private errorMessages: ErrorMessagesComponent;
|
|
||||||
|
|
||||||
@Input() showSaveResetButtons: boolean = true;
|
|
||||||
|
|
||||||
constructor (private _mailPrefsService: MailPrefsService, private route: ActivatedRoute, private _router:Router, private location: Location) {
|
|
||||||
this.errorCodes = new ErrorCodes();
|
|
||||||
this.errorMessages = new ErrorMessagesComponent();
|
|
||||||
this.status = this.errorCodes.LOADING;
|
|
||||||
}
|
|
||||||
|
|
||||||
ngOnInit() {
|
|
||||||
this.properties = properties;
|
|
||||||
this.subscriptions.push(this.route.params.subscribe(params => {
|
|
||||||
this.hidden = true;
|
|
||||||
console.debug(this.communityId);
|
|
||||||
if(!this.communityId){
|
|
||||||
this.communityId = ConnectHelper.getCommunityFromDomain(this.properties.domain);
|
|
||||||
}
|
|
||||||
if(!this.communityId) {
|
|
||||||
this.communityId = params['community'];
|
|
||||||
}
|
|
||||||
console.debug(this.communityId, params)
|
|
||||||
this.getEmailPreferences();
|
|
||||||
}));
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
getEmailPreferences() {
|
|
||||||
if(!Session.isLoggedIn()){
|
|
||||||
//this.userValidMessage = "User session has expired. Please login again.";
|
|
||||||
if(this.showSaveResetButtons) {
|
|
||||||
this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.status = this.errorCodes.LOADING;
|
|
||||||
this.savedMessage = "";
|
|
||||||
|
|
||||||
if(this.communityId && this.communityId != "openaire") {
|
|
||||||
this.preferencesFor = "community";
|
|
||||||
this.subscriptions.push(this._mailPrefsService.getUserEmailPreferencesForCommunity(this.communityId, this.properties.claimsAPIURL).subscribe(
|
|
||||||
data => {
|
|
||||||
if(data.code == "204") {
|
|
||||||
this.status = this.errorCodes.NONE;
|
|
||||||
this.initialNotifications = [{notify: true, frequency:24, openaireId: this.communityId}];
|
|
||||||
} else {
|
|
||||||
this.initialNotifications = data.data;
|
|
||||||
}
|
|
||||||
this.notifications = JSON.parse(JSON.stringify( this.initialNotifications ));
|
|
||||||
|
|
||||||
this.status = this.errorCodes.DONE;
|
|
||||||
this.hidden = false;
|
|
||||||
|
|
||||||
},
|
|
||||||
err => {
|
|
||||||
this.hidden = false;
|
|
||||||
this.handleErrors(err);
|
|
||||||
this.handleError("Error getting user email preferences for community with id: "+this.communityId, err);
|
|
||||||
}
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
this.preferencesFor = "project";
|
|
||||||
this.subscriptions.push(this._mailPrefsService.getUserEmailPreferencesForOpenaire(this.properties.claimsAPIURL).subscribe(
|
|
||||||
data => {
|
|
||||||
|
|
||||||
if(data.code == "204") {
|
|
||||||
this.status = this.errorCodes.NONE;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
this.initialNotifications = data.data;
|
|
||||||
this.notifications = JSON.parse(JSON.stringify( this.initialNotifications ));
|
|
||||||
//this.notifications = this.initialNotifications.map(x => Object.assign({}, x));
|
|
||||||
//this.notifications = this.initialNotifications;
|
|
||||||
|
|
||||||
this.status = this.errorCodes.DONE;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
err => {
|
|
||||||
//console.info(err);
|
|
||||||
this.handleErrors(err);
|
|
||||||
this.handleError("Error getting user email preferences for openaire", err);
|
|
||||||
}
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
changeNotify(notification: any, checked: boolean, index: number) {
|
|
||||||
if(!Session.isLoggedIn()){
|
|
||||||
//this.userValidMessage = "User session has expired. Please login again.";
|
|
||||||
if(this.showSaveResetButtons) {
|
|
||||||
this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.savedMessage = "";
|
|
||||||
this.status = this.errorCodes.DONE;
|
|
||||||
notification.notify = checked;
|
|
||||||
this.prefsChanged[index] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
changeFrequency(index: number) {
|
|
||||||
if(!Session.isLoggedIn()){
|
|
||||||
//this.userValidMessage = "User session has expired. Please login again.";
|
|
||||||
if(this.showSaveResetButtons) {
|
|
||||||
this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.savedMessage = "";
|
|
||||||
this.status = this.errorCodes.DONE;
|
|
||||||
if(this.initialNotifications[index].frequency != this.notifications[index].frequency) {
|
|
||||||
this.prefsChanged[index] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
saveNotification(index: number) {
|
|
||||||
if(this.notifications.length > 0 && this.initialNotifications.length > 0) {
|
|
||||||
if(!Session.isLoggedIn()){
|
|
||||||
//this.userValidMessage = "User session has expired. Please login again.";
|
|
||||||
if(this.showSaveResetButtons) {
|
|
||||||
this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(JSON.stringify(this.notifications[index]) != JSON.stringify(this.initialNotifications[index])) {
|
|
||||||
|
|
||||||
this.status = this.errorCodes.LOADING;
|
|
||||||
this.savedMessage = "";
|
|
||||||
|
|
||||||
this.subscriptions.push(this._mailPrefsService.saveUserEmailPreferences(this.notifications[index], this.properties.claimsAPIURL).subscribe(
|
|
||||||
data => {
|
|
||||||
this.initialNotifications[index] = JSON.parse(JSON.stringify( this.notifications[index] ));
|
|
||||||
|
|
||||||
this.status = this.errorCodes.DONE;
|
|
||||||
|
|
||||||
/*UIkit.notification({
|
|
||||||
message : '<strong>Your email preferences for '+this.notifications[index].openaireName+' have been successfully changed<strong>',
|
|
||||||
status : 'success',
|
|
||||||
timeout : 3000,
|
|
||||||
pos : 'top-center'
|
|
||||||
});*/
|
|
||||||
this.savedMessage = "Notification settings for claims saved!";
|
|
||||||
},
|
|
||||||
err => {
|
|
||||||
//console.log(err);
|
|
||||||
this.handleError("Error saving user email preferences: "+JSON.stringify(this.notifications[index]), err);
|
|
||||||
this.status = this.errorCodes.NOT_SAVED;
|
|
||||||
}
|
|
||||||
));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
/*UIkit.notification({
|
|
||||||
message : '<strong>No changes selected for '+this.notifications[index].openaireName+' email preferences<strong>',
|
|
||||||
status : 'primary',
|
|
||||||
timeout : 3000,
|
|
||||||
pos : 'top-center'
|
|
||||||
});*/
|
|
||||||
this.savedMessage = "Notification settings for claims saved!";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
restoreNotification(index: number) {
|
|
||||||
if(!Session.isLoggedIn()){
|
|
||||||
//this.userValidMessage = "User session has expired. Please login again.";
|
|
||||||
if(this.showSaveResetButtons) {
|
|
||||||
this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(this.notifications.length > 0 && this.initialNotifications.length > 0) {
|
|
||||||
this.status = this.errorCodes.LOADING;
|
|
||||||
this.savedMessage = "";
|
|
||||||
this.notifications[index] = JSON.parse(JSON.stringify( this.initialNotifications[index] ));
|
|
||||||
this.status = this.errorCodes.DONE;
|
|
||||||
this.prefsChanged[index] = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
prefsChanged(index: number) : boolean {
|
|
||||||
if(this.notifications.length > 0 && this.initialNotifications.length > 0) {
|
|
||||||
if(JSON.stringify(this.notifications[index]) != JSON.stringify(this.initialNotifications[index])) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
ngOnDestroy() {
|
|
||||||
this.subscriptions.forEach(subscription => {
|
|
||||||
if (subscription instanceof Subscriber) {
|
|
||||||
subscription.unsubscribe();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
handleErrors(err){
|
|
||||||
//this.showErrorMessage = true;
|
|
||||||
//try{
|
|
||||||
var code = "";
|
|
||||||
if(!err.status) {
|
|
||||||
var error = err.json();
|
|
||||||
code = error.code;
|
|
||||||
} else {
|
|
||||||
code = err.status;
|
|
||||||
}
|
|
||||||
this.status = this.errorMessages.getErrorCode(code);
|
|
||||||
}
|
|
||||||
|
|
||||||
private handleError(message: string, error) {
|
|
||||||
console.error("User mail notification preferences Page (for claims): "+message, error);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//}catch (e) {
|
|
||||||
//console.log("Couldn't parse answer as json")
|
|
||||||
//this.showErrorMessage = true;
|
|
||||||
//}
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
import { NgModule} from '@angular/core';
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { RouterModule } from '@angular/router';
|
|
||||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
||||||
|
|
||||||
import { MailPrefsComponent } from './mailPrefs.component';
|
|
||||||
import { MailPrefsService } from './mailPrefs.service';
|
|
||||||
import {ErrorMessagesModule} from '../../utils/errorMessages.module';
|
|
||||||
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [
|
|
||||||
CommonModule, RouterModule, FormsModule, ReactiveFormsModule, ErrorMessagesModule, MatSlideToggleModule
|
|
||||||
],
|
|
||||||
declarations: [
|
|
||||||
MailPrefsComponent
|
|
||||||
],
|
|
||||||
providers:[MailPrefsService],
|
|
||||||
exports: [
|
|
||||||
MailPrefsComponent
|
|
||||||
]
|
|
||||||
})
|
|
||||||
export class MailPrefsModule { }
|
|
|
@ -1,302 +0,0 @@
|
||||||
import {Component, Input} from '@angular/core';
|
|
||||||
import {ActivatedRoute, Router} from '@angular/router';
|
|
||||||
import {Meta, Title} from '@angular/platform-browser';
|
|
||||||
|
|
||||||
import {EnvProperties} from '../../utils/properties/env-properties';
|
|
||||||
|
|
||||||
import {HtmlProjectReportService} from './htmlProjectReport.service';
|
|
||||||
import {ProjectService} from '../project/project.service';
|
|
||||||
import {PiwikService} from '../../utils/piwik/piwik.service';
|
|
||||||
import {SEOService} from '../../sharedComponents/SEO/SEO.service';
|
|
||||||
import {HelperService} from "../../utils/helper/helper.service";
|
|
||||||
import {Subscriber} from "rxjs";
|
|
||||||
import {properties} from "../../../../environments/environment";
|
|
||||||
|
|
||||||
declare var UIkit: any;
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'htmlProjectReport',
|
|
||||||
template: `
|
|
||||||
<div id="tm-main" class=" uk-section uk-padding-remove-top tm-middle">
|
|
||||||
<div uk-grid>
|
|
||||||
<div class="tm-main uk-width-1-1@s uk-width-1-1@m uk-width-1-1@l uk-row-first ">
|
|
||||||
<helper *ngIf="pageContents && pageContents['top'] && pageContents['top'].length > 0"
|
|
||||||
[texts]="pageContents['top']" styleName="uk-width-1-1"></helper>
|
|
||||||
<div class="uk-container uk-margin-top uk-width-1-1">
|
|
||||||
<div *ngIf="warningMessage" class="uk-alert uk-alert-warning" role="alert">{{warningMessage}}</div>
|
|
||||||
<div [style.display]="showLoading ? 'inline' : 'none'"
|
|
||||||
class="uk-animation-fade uk-margin-large-top uk-width-1-1" role="alert"><span
|
|
||||||
class="loading-gif uk-align-center"></span></div>
|
|
||||||
|
|
||||||
<div *ngIf="!showLoading && !warningMessage">
|
|
||||||
<div *ngIf="header1" class="uk-h4 uk-text-bold ">{{header1}}</div>
|
|
||||||
<div *ngIf="header1 || htmlResult" class=" ">{{header2}}</div>
|
|
||||||
|
|
||||||
<div class="uk-clearfix uk-margin-bottom">
|
|
||||||
<button *ngIf="htmlResult" class="uk-icon-clipboard uk-button uk-button-primary clipBtn uk-float-right"
|
|
||||||
(click)="copied()">
|
|
||||||
Copy to clipboard
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<!--div class="uk-panel-scrollable custom-html-table-height" *ngIf="htmlResult" id="clipboard" [innerHTML]="htmlResult"></div-->
|
|
||||||
<div class="uk-overflow-auto custom-html-table-height" *ngIf="htmlResult" id="clipboard"
|
|
||||||
[innerHTML]="htmlResult"></div>
|
|
||||||
|
|
||||||
<div *ngIf="errorMessage" class="uk-alert uk-alert-danger" role="alert">{{errorMessage}}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<helper *ngIf="pageContents && pageContents['bottom'] && pageContents['bottom'].length > 0"
|
|
||||||
[texts]="pageContents['bottom']" styleName="uk-width-1-1"></helper>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
`
|
|
||||||
})
|
|
||||||
export class HtmlProjectReportComponent {
|
|
||||||
@Input() communityId = null;
|
|
||||||
private projectId: string;
|
|
||||||
private totalResults: number = 10;
|
|
||||||
private resultsType: string = "publication";
|
|
||||||
|
|
||||||
public header1: string = "";
|
|
||||||
public header2: string = "";
|
|
||||||
public htmlResult: string = "";
|
|
||||||
|
|
||||||
subscriptions = [];
|
|
||||||
|
|
||||||
public warningMessage: string = "";
|
|
||||||
public errorMessage: string = "";
|
|
||||||
public showLoading: boolean = true;
|
|
||||||
properties: EnvProperties;
|
|
||||||
public pageContents = null;
|
|
||||||
public divContents = null;
|
|
||||||
|
|
||||||
constructor(private route: ActivatedRoute,
|
|
||||||
private htmlService: HtmlProjectReportService,
|
|
||||||
private _piwikService: PiwikService,
|
|
||||||
private _projectService: ProjectService,
|
|
||||||
private _meta: Meta,
|
|
||||||
private _title: Title,
|
|
||||||
private _router: Router,
|
|
||||||
private helper: HelperService,
|
|
||||||
private seoService: SEOService) {
|
|
||||||
}
|
|
||||||
|
|
||||||
ngOnInit() {
|
|
||||||
|
|
||||||
this.properties = properties;
|
|
||||||
//this.getDivContents();
|
|
||||||
this.getPageContents();
|
|
||||||
this.updateUrl(this.properties.domain + this.properties.baseLink + this._router.url);
|
|
||||||
this.seoService.createLinkForCanonicalURL(this.properties.domain + this.properties.baseLink + this._router.url);
|
|
||||||
|
|
||||||
|
|
||||||
this.subscriptions.push(this.route.queryParams.subscribe(params => {
|
|
||||||
this.projectId = params['projectId'];
|
|
||||||
|
|
||||||
if (params['size'] == parseInt(params['size'], 10)) {
|
|
||||||
this.totalResults = params['size'];
|
|
||||||
} else {
|
|
||||||
this.showLoading = false;
|
|
||||||
this.warningMessage = "Requested size is not an integer";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (params['type'] && (params['type'] == "publication" || params['type'] == "dataset" || params['type'] == "software" || params['type'] == "other")) {
|
|
||||||
if (params['type'] == "publication") {
|
|
||||||
this.resultsType = 'publication';
|
|
||||||
} else if (params['type'] == "dataset") {
|
|
||||||
this.resultsType = 'research data';
|
|
||||||
} else if (params['type'] == "software") {
|
|
||||||
this.resultsType = 'software';
|
|
||||||
} else if (params['type'] == "other") {
|
|
||||||
this.resultsType = "other research product";
|
|
||||||
}
|
|
||||||
|
|
||||||
var title = "Project's " + this.resultsType + " report";
|
|
||||||
var description = "project, project " + this.resultsType + " report, funding, open access, publications, research data, software, other research products";
|
|
||||||
this.updateTitle(title);
|
|
||||||
this.updateDescription(description);
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
|
||||||
this.showLoading = false;
|
|
||||||
this.warningMessage = "Requested type should be publication or research data or software or other research product";
|
|
||||||
}
|
|
||||||
|
|
||||||
//showLoading is true if no warnings
|
|
||||||
if (this.showLoading) {
|
|
||||||
if (this.projectId) {
|
|
||||||
this.createHeaders();
|
|
||||||
} else {
|
|
||||||
this.showLoading = false;
|
|
||||||
this.warningMessage = "No valid project id";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
private getPageContents() {
|
|
||||||
if(this.communityId) {
|
|
||||||
this.subscriptions.push(this.helper.getPageHelpContents(this.properties, this.communityId, this._router.url).subscribe(contents => {
|
|
||||||
this.pageContents = contents;
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private getDivContents() {
|
|
||||||
if(this.communityId) {
|
|
||||||
this.subscriptions.push(this.helper.getDivHelpContents(this.properties, this.communityId, this._router.url).subscribe(contents => {
|
|
||||||
this.divContents = contents;
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ngOnDestroy() {
|
|
||||||
this.subscriptions.forEach(subscription => {
|
|
||||||
if (subscription instanceof Subscriber) {
|
|
||||||
subscription.unsubscribe();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private createHeaders() {
|
|
||||||
this.subscriptions.push(this._projectService.getHTMLInfo(this.projectId, this.properties).subscribe(
|
|
||||||
data => {
|
|
||||||
this.createHeader1(data);
|
|
||||||
if (data.acronym) {
|
|
||||||
this.updateTitle(data.acronym + " " + this.resultsType + " report");
|
|
||||||
} else if (data.title) {
|
|
||||||
this.updateTitle(data.title + " " + this.resultsType + " report");
|
|
||||||
}
|
|
||||||
this.subscriptions.push(this._piwikService.trackView(this.properties, ((data.acronym) ? data.acronym : data.title) + " " + this.resultsType + " report").subscribe());
|
|
||||||
},
|
|
||||||
err => {
|
|
||||||
this.handleError("Error getting html information for project id: " + this.projectId, err);
|
|
||||||
//console.log(err);
|
|
||||||
this.createClipboard();
|
|
||||||
}
|
|
||||||
));
|
|
||||||
|
|
||||||
if (this.resultsType == "publication") {
|
|
||||||
this.header2 += this.totalResults.toLocaleString('en-US') + " publications";
|
|
||||||
} else if (this.resultsType == "research data") {
|
|
||||||
this.header2 += this.totalResults.toLocaleString('en-US') + " research data";
|
|
||||||
} else if (this.resultsType == "software") {
|
|
||||||
this.header2 += this.totalResults.toLocaleString('en-US') + " software";
|
|
||||||
} else if (this.resultsType == "other research product") {
|
|
||||||
this.header2 += this.totalResults.toLocaleString('en-US') + " other";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private createClipboard() {
|
|
||||||
let intro: string = '<!doctype html>';
|
|
||||||
intro += '<html lang="en-gb" dir="ltr" vocab="http://schema.org/">';
|
|
||||||
intro += '<head>';
|
|
||||||
intro += '<title>' + this.header1 + '</title>'
|
|
||||||
intro += '</head>';
|
|
||||||
|
|
||||||
if (typeof window !== 'undefined') {
|
|
||||||
this.subscriptions.push(this.htmlService.getHTML(this.projectId, this.resultsType, this.properties.csvAPIURL).subscribe(
|
|
||||||
data => {
|
|
||||||
//let body: string = intro+'<body><h1>'+this.header1+'</h1><h2>'+this.header2+'</h2>'+data+'</body></html>';
|
|
||||||
let body: string = intro + '<body><h1>' + this.header1 + '</h1><h2>' + this.header2 + '</h2>';
|
|
||||||
body += "<table><thead><tr> <th>Title</th><th>Authors</th><th>Publication Year</th><th>DOI</th><th>Permanent Identifier</th><th>Publication type</th><th>Journal</th><th>Project Name (GA Number)</th><th>Access Mode</th></tr></thead><tbody>" + data + "</tbody></table>";
|
|
||||||
body += '</body></html>';
|
|
||||||
|
|
||||||
//this.htmlResult = data;
|
|
||||||
this.htmlResult = "<table><thead><tr> <th>Title</th><th>Authors</th><th>Publication Year</th><th>DOI</th><th>Permanent Identifier</th><th>Publication type</th><th>Journal</th><th>Project Name (GA Number)</th><th>Access Mode</th></tr></thead><tbody>" + data + "</tbody></table>";
|
|
||||||
|
|
||||||
let clipboard;
|
|
||||||
let Clipboard;
|
|
||||||
Clipboard = require('clipboard');
|
|
||||||
clipboard = new Clipboard('.clipBtn', {
|
|
||||||
/*target: function(trigger) {
|
|
||||||
return document.getElementById("clipboard");
|
|
||||||
}*/
|
|
||||||
text: function (trigger) {
|
|
||||||
return body;//document.getElementById("clipboard").getAttribute('innerHTML');//"aaaa"+tmp+"oo";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.showLoading = false;
|
|
||||||
},
|
|
||||||
err => {
|
|
||||||
//console.log(err);
|
|
||||||
this.handleError("Error getting html for id: " + this.projectId, err);
|
|
||||||
|
|
||||||
this.errorMessage = 'Service not available';
|
|
||||||
this.showLoading = false;
|
|
||||||
}
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
createHeader1(data: { "title": string, "acronym": string, "callIdentifier": string }) {
|
|
||||||
if (this.resultsType == "publication") {
|
|
||||||
this.header1 += "Publications";
|
|
||||||
} else if (this.resultsType == "research data") {
|
|
||||||
this.header1 += "Research Data";
|
|
||||||
} else if (this.resultsType == "software") {
|
|
||||||
this.header1 += "Software";
|
|
||||||
} else if (this.resultsType == "other research product") {
|
|
||||||
this.header1 += "Other Research Products";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data != undefined) {
|
|
||||||
if (data.title != undefined && data.title != "") {
|
|
||||||
this.header1 += data.title;
|
|
||||||
}
|
|
||||||
if ((data.title != undefined && data.title != "") &&
|
|
||||||
((data.acronym != undefined && data.acronym != "") ||
|
|
||||||
(data.callIdentifier != undefined && data.callIdentifier != ""))) {
|
|
||||||
this.header1 += "(";
|
|
||||||
}
|
|
||||||
if (data.acronym != undefined && data.acronym != "") {
|
|
||||||
this.header1 += data.acronym + " - ";
|
|
||||||
}
|
|
||||||
if (data.callIdentifier != undefined && data.callIdentifier != "") {
|
|
||||||
this.header1 += data.callIdentifier;
|
|
||||||
}
|
|
||||||
if ((data.title != undefined && data.title != "") &&
|
|
||||||
((data.acronym != undefined && data.acronym != "") ||
|
|
||||||
(data.callIdentifier != undefined && data.callIdentifier != ""))) {
|
|
||||||
this.header1 += ")";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.createClipboard();
|
|
||||||
}
|
|
||||||
|
|
||||||
public copied() {
|
|
||||||
UIkit.notification({
|
|
||||||
message: '<strong>Raw html is copied. Please paste it on an html file.<strong>',
|
|
||||||
status: 'success',
|
|
||||||
timeout: 3000,
|
|
||||||
pos: 'top-center'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private updateDescription(description: string) {
|
|
||||||
this._meta.updateTag({content: description}, "name='description'");
|
|
||||||
this._meta.updateTag({content: description}, "property='og:description'");
|
|
||||||
}
|
|
||||||
|
|
||||||
private updateTitle(title: string) {
|
|
||||||
var _prefix = "";
|
|
||||||
if(!this.communityId) {
|
|
||||||
_prefix = "OpenAIRE | ";
|
|
||||||
}
|
|
||||||
var _title = _prefix + ((title.length > 50) ? title.substring(0, 50) : title);
|
|
||||||
this._title.setTitle(_title);
|
|
||||||
this._meta.updateTag({content: _title}, "property='og:title'");
|
|
||||||
}
|
|
||||||
|
|
||||||
private updateUrl(url: string) {
|
|
||||||
this._meta.updateTag({content: url}, "property='og:url'");
|
|
||||||
}
|
|
||||||
|
|
||||||
private handleError(message: string, error) {
|
|
||||||
console.error("Html Project Report Page: " + message, error);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
//import {MaterialModule} from '@angular/material';
|
|
||||||
import { NgModule} from '@angular/core';
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { FormsModule } from '@angular/forms';
|
|
||||||
import { ProjectServiceModule} from '../project/projectService.module';
|
|
||||||
|
|
||||||
|
|
||||||
import {HtmlProjectReportService} from './htmlProjectReport.service';
|
|
||||||
import {HtmlProjectReportComponent} from './htmlProjectReport.component';
|
|
||||||
import {PiwikServiceModule} from '../../utils/piwik/piwikService.module';
|
|
||||||
import { SEOServiceModule } from '../../sharedComponents/SEO/SEOService.module';
|
|
||||||
import {HelperModule} from "../../utils/helper/helper.module";
|
|
||||||
import {RouterModule} from '@angular/router';
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [
|
|
||||||
CommonModule, FormsModule, ProjectServiceModule, PiwikServiceModule, SEOServiceModule, HelperModule,
|
|
||||||
RouterModule
|
|
||||||
],
|
|
||||||
declarations: [
|
|
||||||
HtmlProjectReportComponent
|
|
||||||
],
|
|
||||||
providers:[
|
|
||||||
HtmlProjectReportService
|
|
||||||
],
|
|
||||||
exports: [
|
|
||||||
HtmlProjectReportComponent
|
|
||||||
]
|
|
||||||
})
|
|
||||||
export class HtmlProjectReportModule { }
|
|
|
@ -24,7 +24,7 @@ import {RouterHelper} from "../../utils/routerHelper.class";
|
||||||
<span class="uk-margin-xsmall-left">Full-Text</span>
|
<span class="uk-margin-xsmall-left">Full-Text</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="isMobile && (usedBy == 'landing') && availableOn[0].fulltext" class="uk-width-1-1"><hr></div>
|
<div *ngIf="properties.environment != 'production' && isMobile && (usedBy == 'landing') && availableOn[0].fulltext" class="uk-width-1-1"><hr></div>
|
||||||
<div *ngIf="availableOn[0].downloadUrl" [ngClass]="isMobile ? 'uk-width-1-1' : ''">
|
<div *ngIf="availableOn[0].downloadUrl" [ngClass]="isMobile ? 'uk-width-1-1' : ''">
|
||||||
<div class="uk-flex uk-flex-middle" [ngClass]="isMobile ? ((usedBy == 'landing') ? 'uk-padding-small uk-padding-remove-horizontal' : '') : ''">
|
<div class="uk-flex uk-flex-middle" [ngClass]="isMobile ? ((usedBy == 'landing') ? 'uk-padding-small uk-padding-remove-horizontal' : '') : ''">
|
||||||
<span [class]="'uk-margin-xsmall-right ' + (availableOn[0].accessRightIcon == 'open_access' ? 'open-access' : 'closed-access')"
|
<span [class]="'uk-margin-xsmall-right ' + (availableOn[0].accessRightIcon == 'open_access' ? 'open-access' : 'closed-access')"
|
||||||
|
|
|
@ -13,7 +13,7 @@ import {properties} from "../../../../environments/environment";
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'showSubjects',
|
selector: 'showSubjects',
|
||||||
template: `
|
template: `
|
||||||
<ng-container *ngIf="!viewAllSubjects && ((classifiedSubjects && classifiedSubjects.size > 0) || (eoscSubjects && eoscSubjects.length > 0))">
|
<ng-container *ngIf="properties.environment == 'production' && !viewAllSubjects && ((classifiedSubjects && classifiedSubjects.size > 0) || (eoscSubjects && eoscSubjects.length > 0))">
|
||||||
<div *ngIf="!viewAllClassifiedSubjects" class="uk-text-meta">
|
<div *ngIf="!viewAllClassifiedSubjects" class="uk-text-meta">
|
||||||
Subjects by Vocabulary
|
Subjects by Vocabulary
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,10 +22,11 @@ import {properties} from "../../../../environments/environment";
|
||||||
<div *ngIf="isClassifiedLarge && !viewAllClassifiedSubjects" class="uk-text-right">
|
<div *ngIf="isClassifiedLarge && !viewAllClassifiedSubjects" class="uk-text-right">
|
||||||
<a (click)="viewAllSubjectsByVocabularyClicked()" class="view-more-less-link">View all</a>
|
<a (click)="viewAllSubjectsByVocabularyClicked()" class="view-more-less-link">View all</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container *ngIf="!viewAllClassifiedSubjects && ((subjects && subjects.length > 0) || (otherSubjects && otherSubjects.size > 0))">
|
<ng-container *ngIf="!viewAllClassifiedSubjects && ((subjects && subjects.length > 0) || (otherSubjects && otherSubjects.size > 0))">
|
||||||
<div *ngIf="!viewAllSubjects" class="uk-text-meta uk-margin-small-bottom" [class.uk-margin-medium-top]="classifiedSubjects && classifiedSubjects.size > 0">
|
<div *ngIf="!viewAllSubjects" class="uk-text-meta uk-margin-small-bottom"
|
||||||
|
[class.uk-margin-medium-top]="properties.environment == 'production' && ((classifiedSubjects && classifiedSubjects.size > 0) || (eoscSubjects && eoscSubjects.length > 0))">
|
||||||
Keywords
|
Keywords
|
||||||
</div>
|
</div>
|
||||||
<ng-container *ngTemplateOutlet="subjects_template; context: {customClasses: (isMobile && viewAllSubjects) ? '' : 'multi-line-ellipsis lines-2', id: 'content'}"></ng-container>
|
<ng-container *ngTemplateOutlet="subjects_template; context: {customClasses: (isMobile && viewAllSubjects) ? '' : 'multi-line-ellipsis lines-2', id: 'content'}"></ng-container>
|
||||||
|
@ -33,6 +34,16 @@ import {properties} from "../../../../environments/environment";
|
||||||
<a (click)="viewAllSubjectsClicked()" class="view-more-less-link">View all</a>
|
<a (click)="viewAllSubjectsClicked()" class="view-more-less-link">View all</a>
|
||||||
</div>
|
</div>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container *ngIf="properties.environment != 'production' && !viewAllSubjects && ((eoscSubjects && eoscSubjects.length > 0))">
|
||||||
|
<div class="uk-text-meta uk-margin-small-bottom"
|
||||||
|
[class.uk-margin-medium-top]="(subjects && subjects.length > 0) || (otherSubjects && otherSubjects.size > 0)">
|
||||||
|
EOSC Subjects
|
||||||
|
</div>
|
||||||
|
<div *ngIf="eoscSubjects && eoscSubjects.length > 0">
|
||||||
|
<ng-container *ngTemplateOutlet="eosc_subjects_template; context: {id: 'content'}"></ng-container>
|
||||||
|
</div>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
<ng-template #subjects_template let-customClasses="customClasses" let-id="id">
|
<ng-template #subjects_template let-customClasses="customClasses" let-id="id">
|
||||||
<div class="uk-text-break" [ngClass]="customClasses">
|
<div class="uk-text-break" [ngClass]="customClasses">
|
||||||
|
@ -78,7 +89,7 @@ import {properties} from "../../../../environments/environment";
|
||||||
<ng-template #eosc_subjects_template let-customClasses="customClasses" let-id="id">
|
<ng-template #eosc_subjects_template let-customClasses="customClasses" let-id="id">
|
||||||
<div class="uk-flex-wrap uk-margin-medium-right"
|
<div class="uk-flex-wrap uk-margin-medium-right"
|
||||||
[ngClass]="customClasses">
|
[ngClass]="customClasses">
|
||||||
<p class="uk-flex uk-flex-middle uk-margin-bottom">
|
<p *ngIf="properties.environment == 'production'" class="uk-flex uk-flex-middle uk-margin-bottom">
|
||||||
<span #classifiedContent [id]="id+'_eosc'">
|
<span #classifiedContent [id]="id+'_eosc'">
|
||||||
<span class="uk-margin-small-top uk-display-inline-block">
|
<span class="uk-margin-small-top uk-display-inline-block">
|
||||||
<span uk-icon="tag"></span>
|
<span uk-icon="tag"></span>
|
||||||
|
@ -91,13 +102,17 @@ import {properties} from "../../../../environments/environment";
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p *ngIf="properties.environment != 'production' && eoscSubjects && eoscSubjects.length > 0">
|
||||||
|
<span #classifiedContent [id]="id+'_eosc'">{{getValue(eoscSubjects).join(', ')}}</span>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
<modal-alert #subjectsByVocabularyModal *ngIf="!isMobile && ((classifiedSubjects && classifiedSubjects.size > 0) || (eoscSubjects && eoscSubjects.length > 0))" large="true">
|
<modal-alert #subjectsByVocabularyModal *ngIf="!isMobile && ((classifiedSubjects && classifiedSubjects.size > 0) || (eoscSubjects && eoscSubjects.length > 0))" large="true">
|
||||||
<div class="uk-text-small">
|
<div class="uk-text-small">
|
||||||
<ng-container *ngTemplateOutlet="subjects_by_vocabulary_template"></ng-container>
|
<ng-container *ngTemplateOutlet="subjects_by_vocabulary_template"></ng-container>
|
||||||
<ng-container *ngIf="eoscSubjects && eoscSubjects.length > 0"><ng-container *ngTemplateOutlet="eosc_subjects_template"></ng-container></ng-container>
|
<ng-container *ngIf="eoscSubjects && eoscSubjects.length > 0"><ng-container *ngTemplateOutlet="eosc_subjects_template; context: {id: 'content'}"></ng-container></ng-container>
|
||||||
</div>
|
</div>
|
||||||
</modal-alert>
|
</modal-alert>
|
||||||
`
|
`
|
||||||
|
@ -234,4 +249,8 @@ export class ShowSubjectsComponent {
|
||||||
this.openSubjectsByVocabularyModal();
|
this.openSubjectsByVocabularyModal();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getValue(eosSubjects) {
|
||||||
|
return eosSubjects.map(res => res.value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -897,9 +897,11 @@ export class ProjectComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
private closeLoading() {
|
private closeLoading() {
|
||||||
if (this.loading) {
|
setTimeout(() => {
|
||||||
this.loading.close();
|
if (this.loading) {
|
||||||
}
|
this.loading.close();
|
||||||
|
}
|
||||||
|
}, 300)
|
||||||
}
|
}
|
||||||
|
|
||||||
private setMessageLoading(message: string) {
|
private setMessageLoading(message: string) {
|
||||||
|
|
|
@ -284,7 +284,7 @@
|
||||||
<!-- <showTitle *ngIf="stickyHeader" [titleName]="resultLandingInfo.title" classNames="uk-margin-remove-bottom" class="uk-visible@m"></showTitle>-->
|
<!-- <showTitle *ngIf="stickyHeader" [titleName]="resultLandingInfo.title" classNames="uk-margin-remove-bottom" class="uk-visible@m"></showTitle>-->
|
||||||
<my-tabs (selectedActiveTab)="onSelectActiveTab($event)" [offsetForSticky]="offset" [(isSticky)]="stickyHeader">
|
<my-tabs (selectedActiveTab)="onSelectActiveTab($event)" [offsetForSticky]="offset" [(isSticky)]="stickyHeader">
|
||||||
<my-tab tabTitle="Summary" [tabId]="'summary'" [active]="true"></my-tab>
|
<my-tab tabTitle="Summary" [tabId]="'summary'" [active]="true"></my-tab>
|
||||||
<my-tab *ngIf="resultLandingInfo.subjects || resultLandingInfo.otherSubjects || resultLandingInfo.classifiedSubjects"
|
<my-tab *ngIf="hasSubjects"
|
||||||
[tabTitle]="'Subjects'" [tabId]="'subjects'">
|
[tabTitle]="'Subjects'" [tabId]="'subjects'">
|
||||||
</my-tab>
|
</my-tab>
|
||||||
<my-tab *ngIf="resultLandingInfo.references && resultLandingInfo.references.length > 0"
|
<my-tab *ngIf="resultLandingInfo.references && resultLandingInfo.references.length > 0"
|
||||||
|
@ -313,7 +313,7 @@
|
||||||
<ng-container>
|
<ng-container>
|
||||||
<ng-container *ngTemplateOutlet="summary_content"></ng-container>
|
<ng-container *ngTemplateOutlet="summary_content"></ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="resultLandingInfo.subjects || resultLandingInfo.otherSubjects || resultLandingInfo.classifiedSubjects">
|
<ng-container *ngIf="hasSubjects">
|
||||||
<ng-container *ngTemplateOutlet="subjects_content"></ng-container>
|
<ng-container *ngTemplateOutlet="subjects_content"></ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="resultLandingInfo.references && resultLandingInfo.references.length > 0">
|
<ng-container *ngIf="resultLandingInfo.references && resultLandingInfo.references.length > 0">
|
||||||
|
@ -599,7 +599,7 @@
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="resultLandingInfo.subjects || resultLandingInfo.otherSubjects || resultLandingInfo.classifiedSubjects">
|
<ng-container *ngIf="hasSubjects">
|
||||||
<div class="clickable uk-flex uk-flex-middle uk-flex-between" (click)="openFsModal(subjectsFsModal, 'Subjects'); onSelectActiveTab('subjects')">
|
<div class="clickable uk-flex uk-flex-middle uk-flex-between" (click)="openFsModal(subjectsFsModal, 'Subjects'); onSelectActiveTab('subjects')">
|
||||||
<span>Subjects</span>
|
<span>Subjects</span>
|
||||||
<icon name="chevron_right" [ratio]="1.5" [flex]="true"></icon>
|
<icon name="chevron_right" [ratio]="1.5" [flex]="true"></icon>
|
||||||
|
@ -786,7 +786,7 @@
|
||||||
</fs-modal>
|
</fs-modal>
|
||||||
|
|
||||||
<fs-modal #subjectsFsModal classTitle="uk-tile-default uk-border-bottom" (cancelEmitter)="cancelSubjectsClicked()"
|
<fs-modal #subjectsFsModal classTitle="uk-tile-default uk-border-bottom" (cancelEmitter)="cancelSubjectsClicked()"
|
||||||
*ngIf="resultLandingInfo.subjects || resultLandingInfo.otherSubjects || resultLandingInfo.classifiedSubjects">
|
*ngIf="hasSubjects">
|
||||||
<ng-container *ngIf="activeTab == 'subjects'">
|
<ng-container *ngIf="activeTab == 'subjects'">
|
||||||
<ng-container *ngTemplateOutlet="subjects_content"></ng-container>
|
<ng-container *ngTemplateOutlet="subjects_content"></ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
|
@ -1171,6 +1171,10 @@ export class ResultLandingComponent {
|
||||||
return "Not available access";
|
return "Not available access";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public get hasSubjects(): boolean {
|
||||||
|
return !!(this.resultLandingInfo.subjects || this.resultLandingInfo.otherSubjects || (this.resultLandingInfo.classifiedSubjects && this.properties.environment == 'production') || this.resultLandingInfo.eoscSubjects);
|
||||||
|
}
|
||||||
|
|
||||||
public getEoscParams() {
|
public getEoscParams() {
|
||||||
let params = "";
|
let params = "";
|
||||||
if(this.prevPath) {
|
if(this.prevPath) {
|
||||||
|
|
|
@ -36,17 +36,17 @@
|
||||||
<ng-template #result>
|
<ng-template #result>
|
||||||
<span class="uk-text-uppercase">
|
<span class="uk-text-uppercase">
|
||||||
{{resultsName}}
|
{{resultsName}}
|
||||||
<span *ngIf=" fetchPublications.searchUtils.totalResults!=null" class="uk-visible@m">
|
<span *ngIf=" fetchPublications.searchUtils.totalResults!=null" class="uk-visible@m"
|
||||||
({{fetchPublications.searchUtils.totalResults | number}})</span>
|
[innerHTML]="'('+(fetchPublications.searchUtils.totalResults | numberRound)+')'"></span>
|
||||||
</span>
|
</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</slider-tab>
|
</slider-tab>
|
||||||
<slider-tab *ngIf="showProjects" tabId="projects" [tabTemplate]="projects" [active]="activeEntity == 'projects'">
|
<slider-tab *ngIf="showProjects" tabId="projects" [tabTemplate]="projects" [active]="activeEntity == 'projects'">
|
||||||
<ng-template #projects>
|
<ng-template #projects>
|
||||||
<span class="uk-text-uppercase">
|
<span class="uk-text-uppercase">
|
||||||
{{projectName}}
|
{{projectName}}
|
||||||
<span *ngIf="fetchProjects.searchUtils.totalResults!=null" class="uk-visible@m">
|
<span *ngIf="fetchProjects.searchUtils.totalResults!=null" class="uk-visible@m"
|
||||||
({{fetchProjects.searchUtils.totalResults | number}})</span>
|
[innerHTML]="'('+(fetchProjects.searchUtils.totalResults | numberRound)+')'"></span>
|
||||||
</span>
|
</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</slider-tab>
|
</slider-tab>
|
||||||
|
@ -54,8 +54,8 @@
|
||||||
<ng-template #datasources>
|
<ng-template #datasources>
|
||||||
<span class="uk-text-uppercase">
|
<span class="uk-text-uppercase">
|
||||||
{{dataSourcesName}}
|
{{dataSourcesName}}
|
||||||
<span *ngIf="fetchDataproviders.searchUtils.totalResults!=null" class="uk-visible@m">
|
<span *ngIf="fetchDataproviders.searchUtils.totalResults!=null" class="uk-visible@m"
|
||||||
({{fetchDataproviders.searchUtils.totalResults | number}})</span>
|
[innerHTML]="'('+(fetchDataproviders.searchUtils.totalResults | numberRound)+')'"></span>
|
||||||
</span>
|
</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</slider-tab>
|
</slider-tab>
|
||||||
|
@ -63,8 +63,8 @@
|
||||||
<ng-template #services>
|
<ng-template #services>
|
||||||
<span class="uk-text-uppercase">
|
<span class="uk-text-uppercase">
|
||||||
{{servicesName}}
|
{{servicesName}}
|
||||||
<span *ngIf="fetchServices.searchUtils.totalResults!=null" class="uk-visible@m">
|
<span *ngIf="fetchServices.searchUtils.totalResults!=null" class="uk-visible@m"
|
||||||
({{fetchServices.searchUtils.totalResults | number}})</span>
|
[innerHTML]="'('+(fetchServices.searchUtils.totalResults | numberRound)+')'"></span>
|
||||||
</span>
|
</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</slider-tab>
|
</slider-tab>
|
||||||
|
@ -72,9 +72,9 @@
|
||||||
<ng-template #organizations>
|
<ng-template #organizations>
|
||||||
<span class="uk-text-uppercase">
|
<span class="uk-text-uppercase">
|
||||||
{{organizationsName}}
|
{{organizationsName}}
|
||||||
<span *ngIf="fetchOrganizations.searchUtils.totalResults!=null" class="uk-visible@m">
|
<span *ngIf="fetchOrganizations.searchUtils.totalResults!=null" class="uk-visible@m"
|
||||||
({{fetchOrganizations.searchUtils.totalResults | number}})</span>
|
[innerHTML]="'('+(fetchOrganizations.searchUtils.totalResults | numberRound)+')'"></span>
|
||||||
</span>
|
</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</slider-tab>
|
</slider-tab>
|
||||||
</slider-tabs>
|
</slider-tabs>
|
||||||
|
|
|
@ -23,13 +23,14 @@ import {SearchDataProvidersModule} from "../searchDataProviders.module";
|
||||||
import {PreviousRouteRecorder} from "../../utils/piwik/previousRouteRecorder.guard";
|
import {PreviousRouteRecorder} from "../../utils/piwik/previousRouteRecorder.guard";
|
||||||
import {BreadcrumbsModule} from "../../utils/breadcrumbs/breadcrumbs.module";
|
import {BreadcrumbsModule} from "../../utils/breadcrumbs/breadcrumbs.module";
|
||||||
import {SliderTabsModule} from "../../sharedComponents/tabs/slider-tabs.module";
|
import {SliderTabsModule} from "../../sharedComponents/tabs/slider-tabs.module";
|
||||||
|
import {NumberRoundModule} from "../../utils/pipes/number-round.module";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule, FormsModule, RouterModule,
|
CommonModule, FormsModule, RouterModule,
|
||||||
DataProvidersServiceModule, ProjectsServiceModule,
|
DataProvidersServiceModule, ProjectsServiceModule,
|
||||||
SearchResearchResultsServiceModule, OrganizationsServiceModule,
|
SearchResearchResultsServiceModule, OrganizationsServiceModule,
|
||||||
SearchResultsModule, PiwikServiceModule, Schema2jsonldModule, SEOServiceModule, AdvancedSearchFormModule, SearchResearchResultsModule, SearchProjectsModule, SearchOrganizationsModule, SearchDataProvidersModule, BreadcrumbsModule, SliderTabsModule
|
SearchResultsModule, PiwikServiceModule, Schema2jsonldModule, SEOServiceModule, AdvancedSearchFormModule, SearchResearchResultsModule, SearchProjectsModule, SearchOrganizationsModule, SearchDataProvidersModule, BreadcrumbsModule, SliderTabsModule, NumberRoundModule
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
SearchAllComponent
|
SearchAllComponent
|
||||||
|
|
|
@ -197,7 +197,17 @@ export class SearchDataProvidersComponent {
|
||||||
this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils});
|
this.searchPageUpdates.emit({disableForms: this.disableForms, disableRefineForms: this.disableRefineForms, searchUtils: this.searchUtils});
|
||||||
|
|
||||||
let datasourceQueryPrefix = DatasourcesHelperClass.getQueryPrefix(this.type);
|
let datasourceQueryPrefix = DatasourcesHelperClass.getQueryPrefix(this.type);
|
||||||
this.searchFiltersSub = this._searchDataProvidersService.advancedSearchDataproviders( datasourceQueryPrefix +(datasourceQueryPrefix.length > 0 && parameters.length > 0 ?' and (':'') + parameters +(datasourceQueryPrefix.length > 0 && parameters.length > 0 ?' ) ':''), page, size, this.properties, (refine /*&& (this.type=="all" || this.type == "deposit")*/) ? this.searchPage.getRefineFieldsQuery() : null, this.searchPage.getFields(), refineFieldsFilterQuery, (this.type == "deposit"), true)
|
let isDeposit: boolean = (this.type == "deposit");
|
||||||
|
let parametersFull;
|
||||||
|
let refineQueryFull;
|
||||||
|
if(isDeposit) {
|
||||||
|
parametersFull = datasourceQueryPrefix +(datasourceQueryPrefix.length > 0 && parameters.length > 0 ?' and (':'') + parameters +(datasourceQueryPrefix.length > 0 && parameters.length > 0 ?' ) ':'');
|
||||||
|
refineQueryFull = refineFieldsFilterQuery;
|
||||||
|
} else {
|
||||||
|
parametersFull = parameters;
|
||||||
|
refineQueryFull = refineFieldsFilterQuery+(refineFieldsFilterQuery.length > 0 && datasourceQueryPrefix.length >0 ? "&" : "")+(datasourceQueryPrefix.length>0 ? "fq=" : "")+datasourceQueryPrefix;
|
||||||
|
}
|
||||||
|
this.searchFiltersSub = this._searchDataProvidersService.advancedSearchDataproviders( parametersFull, page, size, this.properties, (refine /*&& (this.type=="all" || this.type == "deposit")*/) ? this.searchPage.getRefineFieldsQuery() : null, this.searchPage.getFields(), refineQueryFull, isDeposit, true)
|
||||||
//.switchMap(
|
//.switchMap(
|
||||||
.subscribe(
|
.subscribe(
|
||||||
data => {
|
data => {
|
||||||
|
@ -269,7 +279,17 @@ export class SearchDataProvidersComponent {
|
||||||
this.searchUtils.totalResults = 0;
|
this.searchUtils.totalResults = 0;
|
||||||
|
|
||||||
let datasourceQueryPrefix = DatasourcesHelperClass.getQueryPrefix(this.type);
|
let datasourceQueryPrefix = DatasourcesHelperClass.getQueryPrefix(this.type);
|
||||||
this.searchResultsSub = this._searchDataProvidersService.advancedSearchDataproviders( datasourceQueryPrefix +(datasourceQueryPrefix.length > 0 && parameters.length > 0 ?' and (':'') + parameters +(datasourceQueryPrefix.length > 0 && parameters.length > 0 ?' ) ':''), page, size, this.properties, null, this.searchPage.getFields(), refineFieldsFilterQuery, (this.type == "deposit")).subscribe(
|
let isDeposit: boolean = (this.type == "deposit");
|
||||||
|
let parametersFull;
|
||||||
|
let refineQueryFull;
|
||||||
|
if(isDeposit) {
|
||||||
|
parametersFull = datasourceQueryPrefix +(datasourceQueryPrefix.length > 0 && parameters.length > 0 ?' and (':'') + parameters +(datasourceQueryPrefix.length > 0 && parameters.length > 0 ?' ) ':'');
|
||||||
|
refineQueryFull = refineFieldsFilterQuery;
|
||||||
|
} else {
|
||||||
|
parametersFull = parameters;
|
||||||
|
refineQueryFull = refineFieldsFilterQuery+(refineFieldsFilterQuery.length > 0 && datasourceQueryPrefix.length >0 ? "&" : "")+(datasourceQueryPrefix.length>0 ? "fq=" : "")+datasourceQueryPrefix;
|
||||||
|
}
|
||||||
|
this.searchResultsSub = this._searchDataProvidersService.advancedSearchDataproviders( parametersFull, page, size, this.properties, null, this.searchPage.getFields(), refineQueryFull, isDeposit).subscribe(
|
||||||
data => {
|
data => {
|
||||||
let totalResults = data[0];
|
let totalResults = data[0];
|
||||||
let results = data[1];
|
let results = data[1];
|
||||||
|
|
|
@ -63,11 +63,12 @@ export class SearchOrganizationsService {
|
||||||
"reldatasourcecompatibilityid exact openaire-cris_1.1 or " +
|
"reldatasourcecompatibilityid exact openaire-cris_1.1 or " +
|
||||||
"reldatasourcecompatibilityid exact openaire2.0_data or reldatasourcecompatibilityid exact hostedBy or relproject=*)";
|
"reldatasourcecompatibilityid exact openaire2.0_data or reldatasourcecompatibilityid exact hostedBy or relproject=*)";
|
||||||
|
|
||||||
url += "&query=";
|
// url += "&query=";
|
||||||
if(params!= null && params != '' ) {
|
if(params!= null && params != '' ) {
|
||||||
url +=" ( "+basicQuery+ " ) " +" and (" + params + ")";
|
// url +=" ( "+basicQuery+ " ) " +" and (" + params + ")";
|
||||||
}else{
|
url +="&query=(" + params + ")";
|
||||||
url +=" ( "+basicQuery+ " ) ";
|
// }else{
|
||||||
|
// url +=" ( "+basicQuery+ " ) ";
|
||||||
}
|
}
|
||||||
if(refineParams!= null && refineParams != '' ) {
|
if(refineParams!= null && refineParams != '' ) {
|
||||||
url += refineParams;
|
url += refineParams;
|
||||||
|
@ -75,6 +76,7 @@ export class SearchOrganizationsService {
|
||||||
if(refineQuery) {
|
if(refineQuery) {
|
||||||
url += "&" + refineQuery;
|
url += "&" + refineQuery;
|
||||||
}
|
}
|
||||||
|
url += "&fq="+basicQuery;
|
||||||
url += "&page="+(page-1)+"&size="+size;
|
url += "&page="+(page-1)+"&size="+size;
|
||||||
url += minRef ? "&minRef=true" : "";
|
url += minRef ? "&minRef=true" : "";
|
||||||
|
|
||||||
|
@ -212,15 +214,17 @@ export class SearchOrganizationsService {
|
||||||
"reldatasourcecompatibilityid exact openaire-cris_1.1 or " +
|
"reldatasourcecompatibilityid exact openaire-cris_1.1 or " +
|
||||||
"reldatasourcecompatibilityid exact openaire2.0_data or reldatasourcecompatibilityid exact hostedBy or relproject=*)";
|
"reldatasourcecompatibilityid exact openaire2.0_data or reldatasourcecompatibilityid exact hostedBy or relproject=*)";
|
||||||
|
|
||||||
url += "&query=";
|
// url += "&query=";
|
||||||
if(params!= null && params != '' ) {
|
if(params!= null && params != '' ) {
|
||||||
url +=" ( "+basicQuery+ " ) " +" and (" + params + ")";
|
// url +=" ( "+basicQuery+ " ) " +" and (" + params + ")";
|
||||||
}else{
|
url +="&query=( "+params+ " ) ";
|
||||||
url +=" ( "+basicQuery+ " ) ";
|
// }else{
|
||||||
|
// url +=" ( "+basicQuery+ " ) ";
|
||||||
}
|
}
|
||||||
if(refineParams!= null && refineParams != '' ) {
|
if(refineParams!= null && refineParams != '' ) {
|
||||||
url += refineParams;
|
url += refineParams;
|
||||||
}
|
}
|
||||||
|
url += "&fq="+basicQuery;
|
||||||
return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
|
return this.http.get((properties.useCache)? (properties.cacheUrl+encodeURIComponent(url)): url)
|
||||||
.pipe(map(res => res['meta']['total']));
|
.pipe(map(res => res['meta']['total']));
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,11 @@ export class EntitiesSearchService {
|
||||||
return [{id:'-2',label:'Error'}];
|
return [{id:'-2',label:'Error'}];
|
||||||
});
|
});
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
// not used
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
searchByDepositType(keyword:string, DepositType:string, properties:EnvProperties ):any {
|
searchByDepositType(keyword:string, DepositType:string, properties:EnvProperties ):any {
|
||||||
this.ready = false;
|
this.ready = false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue