diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 4410dc3..10d1fb1 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -112,7 +112,7 @@ export class AppComponent implements OnInit, OnDestroy {
if (params && params['stakeholder']) {
this.stakeholder = this.stakeholderService.stakeholder;
if (!this.stakeholder || this.stakeholderService.stakeholder.alias !== params['stakeholder']) {
- this.stakeholderService.getStakeholder(params['stakeholder']).subscribe(stakeholder => {
+ this.subscriptions.push(this.stakeholderService.getStakeholder(params['stakeholder']).subscribe(stakeholder => {
if (stakeholder) {
this.stakeholder = stakeholder;
LinksResolver.setProperties(this.stakeholder.alias);
@@ -137,7 +137,7 @@ export class AppComponent implements OnInit, OnDestroy {
this.navigateToError();
this.buildMenu();
this.loading = false;
- });
+ }));
} else {
this.buildMenu();
if (isSearch) {
@@ -177,6 +177,9 @@ export class AppComponent implements OnInit, OnDestroy {
value.unsubscribe();
}
});
+ this.userManagementService.clearSubscriptions();
+ this.layoutService.clearSubscriptions();
+ this.stakeholderService.clearSubscriptions();
}
private navigateToError() {
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 559a0fb..684f38e 100755
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,7 +1,7 @@
import {NgModule} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {CommonModule} from '@angular/common';
-import {HttpClientModule} from "@angular/common/http";
+import {HTTP_INTERCEPTORS, HttpClientModule} from "@angular/common/http";
import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {AppComponent} from './app.component';
@@ -14,13 +14,13 @@ import {ErrorModule} from './openaireLibrary/error/error.module';
import {NavigationBarModule} from './openaireLibrary/sharedComponents/navigationBar.module';
import {EnvironmentSpecificResolver} from './openaireLibrary/utils/properties/environmentSpecificResolver';
-import {SubscribeModule} from './utils/subscribe/subscribe.module';
import {UserMiniModule} from "./openaireLibrary/login/userMiniModule.module";
import {SideBarModule} from "./openaireLibrary/dashboard/sharedComponents/sidebar/sideBar.module";
import {SharedModule} from "./openaireLibrary/shared/shared.module";
import {Schema2jsonldModule} from "./openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module";
import {RoleVerificationModule} from "./openaireLibrary/role-verification/role-verification.module";
import {LoadingModule} from "./openaireLibrary/utils/loading/loading.module";
+import {DEFAULT_TIMEOUT, TimeoutInterceptor} from "./openaireLibrary/timeout-interceptor.service";
@NgModule({
@@ -34,14 +34,15 @@ import {LoadingModule} from "./openaireLibrary/utils/loading/loading.module";
NavigationBarModule,
BottomModule,
CookieLawModule,
- SubscribeModule.forRoot(),
BrowserModule.withServerTransition({appId: 'my-app'}),
AppRoutingModule,
UserMiniModule, SideBarModule, Schema2jsonldModule, RoleVerificationModule, LoadingModule
],
declarations: [AppComponent, OpenaireErrorPageComponent],
exports: [AppComponent],
- providers: [EnvironmentSpecificResolver],
+ providers: [EnvironmentSpecificResolver,
+ [{ provide: HTTP_INTERCEPTORS, useClass: TimeoutInterceptor, multi: true }],
+ [{ provide: DEFAULT_TIMEOUT, useValue: 30000 }]],
bootstrap: [AppComponent]
})
//
diff --git a/src/app/general/edit-stakeholder/edit-stakeholder.component.ts b/src/app/general/edit-stakeholder/edit-stakeholder.component.ts
index 5e7710c..9a7762d 100644
--- a/src/app/general/edit-stakeholder/edit-stakeholder.component.ts
+++ b/src/app/general/edit-stakeholder/edit-stakeholder.component.ts
@@ -3,7 +3,7 @@ import {Stakeholder} from "../../openaireLibrary/monitor/entities/stakeholder";
import {FormBuilder, FormGroup, Validators} from "@angular/forms";
import {StakeholderUtils} from "../../utils/indicator-utils";
import {Option} from "../../openaireLibrary/sharedComponents/input/input.component";
-import {Subscription} from "rxjs";
+import {Subscriber, Subscription} from "rxjs";
import {EnvProperties} from "../../openaireLibrary/utils/properties/env-properties";
import {properties} from "../../../environments/environment";
import {StakeholderService} from "../../openaireLibrary/monitor/services/stakeholder.service";
@@ -242,7 +242,7 @@ export class EditStakeholderComponent implements OnDestroy {
public save(callback: Function, errorCallback: Function = null) {
if (this.file) {
- this.utilsService.uploadPhoto(this.properties.utilsService + "/upload/stakeholder/" + encodeURIComponent(this.stakeholderFb.value.alias), this.file).subscribe(res => {
+ this.subscriptions.push(this.utilsService.uploadPhoto(this.properties.utilsService + "/upload/stakeholder/" + encodeURIComponent(this.stakeholderFb.value.alias), this.file).subscribe(res => {
this.deletePhoto();
this.removePhoto();
this.stakeholderFb.get('logoUrl').setValue(res.filename);
@@ -250,7 +250,7 @@ export class EditStakeholderComponent implements OnDestroy {
}, error => {
this.uploadError = "An error has been occurred during upload your image. Try again later";
this.saveStakeholder(callback, errorCallback);
- });
+ }));
} else if (this.deleteCurrentPhoto) {
this.deletePhoto();
this.saveStakeholder(callback, errorCallback);
@@ -267,7 +267,7 @@ export class EditStakeholderComponent implements OnDestroy {
(stakeholder ? stakeholder.topics : [])));
}
this.removePhoto();
- this.stakeholderService.buildStakeholder(this.properties.monitorServiceAPIURL,
+ this.subscriptions.push(this.stakeholderService.buildStakeholder(this.properties.monitorServiceAPIURL,
this.stakeholderFb.value).subscribe(stakeholder => {
UIkit.notification(stakeholder.name + '\'s has been successfully created', {
status: 'success',
@@ -284,14 +284,14 @@ export class EditStakeholderComponent implements OnDestroy {
if (errorCallback) {
errorCallback(error)
}
- });
+ }));
} else {
this.stakeholderFb.get('type').enable();
this.stakeholderFb.get('alias').enable();
this.stakeholderFb.get('index_id').enable();
this.stakeholderFb.get('index_name').enable();
this.stakeholderFb.get('index_shortName').enable();
- this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.stakeholderFb.value).subscribe(stakeholder => {
+ this.subscriptions.push(this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.stakeholderFb.value).subscribe(stakeholder => {
UIkit.notification(stakeholder.name + '\'s has been successfully saved', {
status: 'success',
timeout: 3000,
@@ -304,7 +304,7 @@ export class EditStakeholderComponent implements OnDestroy {
timeout: 3000,
pos: 'top-left'
});
- });
+ }));
}
}
@@ -362,7 +362,7 @@ export class EditStakeholderComponent implements OnDestroy {
public deletePhoto() {
if (this.stakeholder.logoUrl) {
- this.utilsService.deletePhoto(this.properties.utilsService + '/delete/stakeholder/' + this.stakeholder.logoUrl).subscribe();
+ this.subscriptions.push(this.utilsService.deletePhoto(this.properties.utilsService + '/delete/stakeholder/' + this.stakeholder.logoUrl).subscribe());
}
}
}
diff --git a/src/app/general/general.component.ts b/src/app/general/general.component.ts
index 533d095..ad88811 100644
--- a/src/app/general/general.component.ts
+++ b/src/app/general/general.component.ts
@@ -1,17 +1,8 @@
import {Component, OnDestroy, OnInit, ViewChild} from "@angular/core";
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
-import {EnvironmentSpecificService} from "../openaireLibrary/utils/properties/environment-specific.service";
import {Stakeholder} from "../openaireLibrary/monitor/entities/stakeholder";
-import {Subscriber, Subscription, zip} from "rxjs";
-import {StakeholderUtils} from "../utils/indicator-utils";
-import {FormBuilder, FormGroup, Validators} from "@angular/forms";
-import {AlertModal} from "../openaireLibrary/utils/modal/alert";
-import {Option} from "../openaireLibrary/sharedComponents/input/input.component";
-import {Title} from "@angular/platform-browser";
-import {UserManagementService} from "../openaireLibrary/services/user-management.service";
-import {Session} from "../openaireLibrary/login/utils/helper.class";
-import {UtilitiesService} from "../openaireLibrary/services/utilities.service";
+import { Subscription, zip} from "rxjs";
import {EditStakeholderComponent} from "./edit-stakeholder/edit-stakeholder.component";
import {properties} from "../../environments/environment";
@@ -29,10 +20,10 @@ export class GeneralComponent implements OnInit, OnDestroy {
public loading: boolean = false;
private subscriptions: any[] = [];
@ViewChild('editStakeholderComponent') editStakeholderComponent: EditStakeholderComponent;
-
+
constructor(private stakeholderService: StakeholderService) {
}
-
+
ngOnInit() {
this.loading = true;
this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
@@ -51,12 +42,12 @@ export class GeneralComponent implements OnInit, OnDestroy {
}
}));
}
-
+
public reset() {
this.editStakeholderComponent.init(this.stakeholder, this.stakeholders, this.defaultStakeholders, this.stakeholder.defaultId == null, false)
}
-
-
+
+
public save() {
this.loading = true;
this.editStakeholderComponent.save((stakeholder) => {
@@ -67,7 +58,7 @@ export class GeneralComponent implements OnInit, OnDestroy {
this.loading = false;
});
}
-
+
ngOnDestroy() {
this.subscriptions.forEach(subscription => {
if(subscription instanceof Subscription) {
diff --git a/src/app/helpTexts/new-page-help-content.module.ts b/src/app/helpTexts/new-page-help-content.module.ts
index 7db8b7e..d18e4d9 100644
--- a/src/app/helpTexts/new-page-help-content.module.ts
+++ b/src/app/helpTexts/new-page-help-content.module.ts
@@ -11,6 +11,6 @@ import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
CommonModule, RouterModule,
NewPageHelpContentRoutingModule, NewPageHelpContentModule
],
- providers: [ AdminDashboardGuard],
+ providers: [AdminDashboardGuard],
})
export class MonitorNewPageHelpContentModule { }
diff --git a/src/app/login/libUser.module.ts b/src/app/login/libUser.module.ts
index b8ed9dd..062d5b1 100644
--- a/src/app/login/libUser.module.ts
+++ b/src/app/login/libUser.module.ts
@@ -9,12 +9,11 @@ import { UserModule} from '../openaireLibrary/login/user.module';
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import { SubscribeService } from '../openaireLibrary/utils/subscribe/subscribe.service';
import {EmailService} from "../openaireLibrary/utils/email/email.service";
-import {SubscribeModule} from "../utils/subscribe/subscribe.module";
@NgModule({
imports: [
CommonModule, FormsModule,
- UserRoutingModule, UserModule, SubscribeModule
+ UserRoutingModule, UserModule
],
providers:[PreviousRouteRecorder, SubscribeService, EmailService],
declarations: [
diff --git a/src/app/login/user.component.ts b/src/app/login/user.component.ts
index 70bc4bc..edead77 100644
--- a/src/app/login/user.component.ts
+++ b/src/app/login/user.component.ts
@@ -1,106 +1,10 @@
-import {Component, ElementRef, ViewChild} from '@angular/core';
-import {Observable} from 'rxjs/Observable';
-import {ActivatedRoute} from '@angular/router';
-
-import {UserComponent} from '../openaireLibrary/login/user.component';
-import {SubscribeService} from '../openaireLibrary/utils/subscribe/subscribe.service';
-import {EmailService} from "../openaireLibrary/utils/email/email.service";
-import {Email} from "../openaireLibrary/utils/email/email";
-
-import {Session} from '../openaireLibrary/login/utils/helper.class';
-import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
-import {SubscribeComponent} from '../utils/subscribe/subscribe.component';
-import {ConnectHelper} from '../openaireLibrary/connect/connectHelper';
+import {Component} from '@angular/core';
@Component({
selector: 'openaire-user',
- template: `
-
-
-
-
-
-
-
For this action you have to login and subscribe to the research community.
- Login and Subscribe here .
-
-
Subscribing to community....
-
An error occured while trying to subscribe to community....
-
-
-
- This action requires authentication.
-
- Please sign in to continue.
-
-
-
-
-
-
-
- `
+ template: ` `
})
export class OpenaireUserComponent {
- @ViewChild(UserComponent) usercomponent:UserComponent;
- @ViewChild(SubscribeComponent) subscribe:SubscribeComponent;
- properties:EnvProperties;
- communityId = null;
- subscribeLoading:boolean = false;
- subscribeError:boolean = false;
- isSubscribed:boolean = false;
- public server: boolean = true;
- loggedIn:boolean = false;
- constructor(private _subscribeService: SubscribeService,
- private _emailService: EmailService, private route: ActivatedRoute){}
- public ngOnInit() {
- if( typeof document !== 'undefined') {
- this.server = false;
- this.loggedIn = Session.isLoggedIn();
- }
- this.route.data
- .subscribe((data: { envSpecific: any }) => {
- this.route.queryParams.subscribe(
- communityId => {
- this.communityId = ConnectHelper.getCommunityFromDomain(data.envSpecific.domain);
- if(!this.communityId) {
- this.communityId = communityId['communityId'];
- }
- if(this.subscribe.subscribed){
- this.usercomponent.redirect();
- }
- });
- });
-
-
-
- }
- login(){
- this.usercomponent.logIn();
-
- }
- subscribeTo(){
- if(this.subscribe && this.communityId){
- this.subscribeLoading = true;
- this.subscribe.subscribe();
-
-
-
- }
-
- }
- afterSubscibeEvent($event){
- var res = $event.value;
- this.subscribeLoading = false;
- this.isSubscribed = this.subscribe.subscribed;
- if(res == "ok"){
- this.isSubscribed = true;
- this.usercomponent.redirect();
- }else{
- this.subscribeError = true;
- }
-
- }
}
diff --git a/src/app/manageStakeholders/manageStakeholders.component.ts b/src/app/manageStakeholders/manageStakeholders.component.ts
index bca93ba..afbed06 100644
--- a/src/app/manageStakeholders/manageStakeholders.component.ts
+++ b/src/app/manageStakeholders/manageStakeholders.component.ts
@@ -12,7 +12,7 @@ import {Title} from "@angular/platform-browser";
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
import {Session} from "../openaireLibrary/login/utils/helper.class";
import {EditStakeholderComponent} from "../general/edit-stakeholder/edit-stakeholder.component";
-import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
+import {properties} from "../../environments/environment";
declare var UIkit;
@@ -66,25 +66,23 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
ngOnInit(): void {
this.buildFilters();
- this.propertiesService.loadEnvironment()
- .then(properties => {
- this.properties = properties;
- this.title.setTitle('Manage profiles');
- this.userManagementService.getUserInfo().subscribe(user => {
- this.user = user;
- });
- let data = zip(
- this.stakeholderService.getDefaultStakeholders(this.properties.monitorServiceAPIURL),
- this.stakeholderService.getMyStakeholders(this.properties.monitorServiceAPIURL)
- );
- data.subscribe(res => {
- this.defaultStakeholders = res[0];
- this.stakeholders = res[1];
- this.displayDefaultStakeholders = res[0];
- this.displayStakeholders = res[1];
- this.loading = false;
- });
- });
+ this.properties = properties;
+ this.title.setTitle('Manage profiles');
+ this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
+ this.user = user;
+ }));
+ let data = zip(
+ this.stakeholderService.getDefaultStakeholders(this.properties.monitorServiceAPIURL),
+ this.stakeholderService.getMyStakeholders(this.properties.monitorServiceAPIURL)
+ );
+ this.subscriptions.push(data.subscribe(res => {
+ this.defaultStakeholders = res[0];
+ this.stakeholders = res[1];
+ this.displayDefaultStakeholders = res[0];
+ this.displayStakeholders = res[1];
+ this.loading = false;
+ }));
+
this.subscriptions.push(UIkit.util.on(document, 'hidden', '#edit_modal', (): void => {
this.editStakeholderComponent.removePhoto();
}));
@@ -204,7 +202,7 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
} else {
this.index = (this.stakeholder) ? this.stakeholders.findIndex(value => value._id === this.stakeholder._id) : -1;
}
- this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, [this.stakeholder._id]).subscribe(() => {
+ this.subscriptions.push(this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, [this.stakeholder._id]).subscribe(() => {
UIkit.notification(this.stakeholder.name+ ' has been successfully deleted', {
status: 'success',
timeout: 3000,
@@ -221,14 +219,14 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
timeout: 3000,
pos: 'top-left'
});
- });
+ }));
}
changeStakeholderStatus(stakeholder: Stakeholder, visibility: Visibility) {
let path = [
stakeholder._id
];
- this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(visibility => {
+ this.subscriptions.push(this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(visibility => {
stakeholder.visibility = visibility;
UIkit.notification(stakeholder.name+ '\'s status has been successfully changed to ' + stakeholder.visibility.toLowerCase(), {
status: 'success',
@@ -241,7 +239,7 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
timeout: 3000,
pos: 'top-left'
});
- });
+ }));
}
public isManager(): boolean {
diff --git a/src/app/monitor/monitor-routing.module.ts b/src/app/monitor/monitor-routing.module.ts
index 8fb60b8..9c5b760 100644
--- a/src/app/monitor/monitor-routing.module.ts
+++ b/src/app/monitor/monitor-routing.module.ts
@@ -1,6 +1,5 @@
import {NgModule} from '@angular/core';
import {RouterModule} from '@angular/router';
-import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {MonitorComponent} from "./monitor.component";
import {EnvironmentSpecificResolver} from "../openaireLibrary/utils/properties/environmentSpecificResolver";
@@ -12,7 +11,6 @@ import {EnvironmentSpecificResolver} from "../openaireLibrary/utils/properties/e
{
path: ':stakeholder',
component: MonitorComponent,
- canActivate: [FreeGuard],
canDeactivate: [PreviousRouteRecorder]
},
{
@@ -23,19 +21,16 @@ import {EnvironmentSpecificResolver} from "../openaireLibrary/utils/properties/e
{
path: ':stakeholder/:topic',
component: MonitorComponent,
- canActivate: [FreeGuard],
canDeactivate: [PreviousRouteRecorder]
},
{
path: ':stakeholder/:topic/:category',
component: MonitorComponent,
- canActivate: [FreeGuard],
canDeactivate: [PreviousRouteRecorder]
},
{
path: ':stakeholder/:topic/:category/:subCategory',
component: MonitorComponent,
- canActivate: [FreeGuard],
canDeactivate: [PreviousRouteRecorder]
}
])
diff --git a/src/app/monitor/monitor.component.ts b/src/app/monitor/monitor.component.ts
index 5c8d6c9..84f0dcb 100644
--- a/src/app/monitor/monitor.component.ts
+++ b/src/app/monitor/monitor.component.ts
@@ -22,11 +22,11 @@ import {StatisticsService} from "../utils/services/statistics.service";
import {IndicatorUtils, StakeholderUtils} from "../utils/indicator-utils";
import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
import {FormBuilder, FormControl} from "@angular/forms";
-import {Subscription} from "rxjs";
-import {Session, User} from "../openaireLibrary/login/utils/helper.class";
+import {Subscriber, Subscription} from "rxjs";
+import {User} from "../openaireLibrary/login/utils/helper.class";
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
import {RangeFilter} from "../openaireLibrary/utils/rangeFilter/rangeFilterHelperClasses.class";
-import {Filter, Value} from "../openaireLibrary/searchPages/searchUtils/searchHelperClasses.class";
+import {Filter} from "../openaireLibrary/searchPages/searchUtils/searchHelperClasses.class";
import {Location} from "@angular/common";
import {RouterHelper} from "../openaireLibrary/utils/routerHelper.class";
import {properties} from "../../environments/environment";
@@ -76,8 +76,7 @@ export class MonitorComponent implements OnInit, OnDestroy {
private layoutService: LayoutService,
private seoService: SEOService,
private cdr: ChangeDetectorRef,
- private sanitizer: DomSanitizer, private _fb: FormBuilder, private router: Router,
- private location: Location) {
+ private sanitizer: DomSanitizer, private _fb: FormBuilder, private router: Router) {
this.errorCodes = new ErrorCodes();
this.errorMessages = new ErrorMessagesComponent();
this.status = this.errorCodes.LOADING;
@@ -85,83 +84,83 @@ export class MonitorComponent implements OnInit, OnDestroy {
public ngOnInit() {
this.keyword = this._fb.control('');
- this.keyword.valueChanges.subscribe(value => {
+ this.subscriptions.push(this.keyword.valueChanges.subscribe(value => {
console.log("Keyword Changed!");
//TODO do a real action
- });
- let subscription: Subscription;
- this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
- this.user = user;
+ }));
+ let subscription: Subscription;
+ this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
+ this.user = user;
- this.route.params.subscribe(params => {
- this.loading = true;
- this.activeTopic = null;
- this.activeCategory = null;
- this.activeSubCategory = null;
- this.filterToggle = false;
- if (subscription) {
- subscription.unsubscribe();
- }
- var url = properties.domain + properties.baseLink + this._router.url;
- this.route.queryParams.subscribe(params => {
- this.queryParams = Object.assign({}, params);
- this.isViewPublic = (params['view'] == 'public');
- });
- if (!this.stakeholder || this.stakeholder.alias !== params['stakeholder']) {
- this.status = this.errorCodes.LOADING;
- this.numberResults = new Map();
- this.chartsActiveType = new Map();
- subscription = this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.stakeholder = stakeholder;
- // add fl0 filter only for EC
- if(this.stakeholder.index_id == "ec__________::EC"){
- this.filters.push({title: "Funding Stream",filterId: "relfundinglevel0_id",originalFilterId: "relfundinglevel0_id", countSelectedValues: 0,
- values:[{name: "EC|FP7", id: "ec__________::EC::FP7", selected: false, number: 0}, {name: "EC|H2020", id: "ec__________::EC::H2020", selected: false, number: 0}]
- ,filterOperator: "or", valueIsExact: true, filterType: "radio", radioValue:""});
- }
- if(this.stakeholder.type == "funder"){
- // this.filters.push({title: "Co-funded research outcomes",filterId: "co-funded",originalFilterId: "co-funded", countSelectedValues: 0,
- // values:[{name: "true", id: "co-funded", selected: false, number: 0}, {name: "false", id: "no-co-funded", selected: false, number: 0}]
- // ,filterOperator: "or", valueIsExact: true, filterType: "radio", radioValue:""});
- this.filters.push({title: "Co-funded",filterId: "co-funded",originalFilterId: "co-funded", countSelectedValues: 0,
- values:[{name: "Co-funded research output", id: "co-funded-results", selected: false, number: 0}]
- ,filterOperator: "or", valueIsExact: true, filterType: "checkbox", radioValue:""});
- }
- this.initializeFilters();
- this.seoService.createLinkForCanonicalURL(url, false);
- this._meta.updateTag({content: url}, "property='og:url'");
- var description = "Monitor Dashboard | " + this.stakeholder.name;
- var title = "Monitor Dashboard | " + this.stakeholder.name;
- this._meta.updateTag({content: description}, "name='description'");
- this._meta.updateTag({content: description}, "property='og:description'");
- this._meta.updateTag({content: title}, "property='og:title'");
- this._title.setTitle(title);
- if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
- this.piwiksub = this._piwikService.trackView(this.properties, title, this.properties.piwikSiteId).subscribe();
- }
- if(this.isPublicOrIsMember(stakeholder.visibility)) {
- //this.getDivContents();
- // this.getPageContents();
- this.status = this.errorCodes.DONE;
- this.setView(params);
- } else {
- this.privateStakeholder = true;
- // this.navigateToError();
- if(subscription) {
- subscription.unsubscribe();
- }
- }
- }
- });
- this.subscriptions.push(subscription);
- } else {
- console.debug(" stakeholder is already available")
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ this.loading = true;
+ this.activeTopic = null;
+ this.activeCategory = null;
+ this.activeSubCategory = null;
+ this.filterToggle = false;
+ if (subscription) {
+ subscription.unsubscribe();
+ }
+ var url = properties.domain + properties.baseLink + this._router.url;
+ this.subscriptions.push(this.route.queryParams.subscribe(params => {
+ this.queryParams = Object.assign({}, params);
+ this.isViewPublic = (params['view'] == 'public');
+ }));
+ if (!this.stakeholder || this.stakeholder.alias !== params['stakeholder']) {
+ this.status = this.errorCodes.LOADING;
+ this.numberResults = new Map();
+ this.chartsActiveType = new Map();
+ subscription = this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.stakeholder = stakeholder;
+ // add fl0 filter only for EC
+ if(this.stakeholder.index_id == "ec__________::EC"){
+ this.filters.push({title: "Funding Stream",filterId: "relfundinglevel0_id",originalFilterId: "relfundinglevel0_id", countSelectedValues: 0,
+ values:[{name: "EC|FP7", id: "ec__________::EC::FP7", selected: false, number: 0}, {name: "EC|H2020", id: "ec__________::EC::H2020", selected: false, number: 0}]
+ ,filterOperator: "or", valueIsExact: true, filterType: "radio", radioValue:""});
+ }
+ if(this.stakeholder.type == "funder"){
+ // this.filters.push({title: "Co-funded research outcomes",filterId: "co-funded",originalFilterId: "co-funded", countSelectedValues: 0,
+ // values:[{name: "true", id: "co-funded", selected: false, number: 0}, {name: "false", id: "no-co-funded", selected: false, number: 0}]
+ // ,filterOperator: "or", valueIsExact: true, filterType: "radio", radioValue:""});
+ this.filters.push({title: "Co-funded",filterId: "co-funded",originalFilterId: "co-funded", countSelectedValues: 0,
+ values:[{name: "Co-funded research output", id: "co-funded-results", selected: false, number: 0}]
+ ,filterOperator: "or", valueIsExact: true, filterType: "checkbox", radioValue:""});
+ }
this.initializeFilters();
- this.setView(params);
+ this.seoService.createLinkForCanonicalURL(url, false);
+ this._meta.updateTag({content: url}, "property='og:url'");
+ var description = "Monitor Dashboard | " + this.stakeholder.name;
+ var title = "Monitor Dashboard | " + this.stakeholder.name;
+ this._meta.updateTag({content: description}, "name='description'");
+ this._meta.updateTag({content: description}, "property='og:description'");
+ this._meta.updateTag({content: title}, "property='og:title'");
+ this._title.setTitle(title);
+ if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
+ this.subscriptions.push(this._piwikService.trackView(this.properties, title, this.properties.piwikSiteId).subscribe());
+ }
+ if(this.isPublicOrIsMember(stakeholder.visibility)) {
+ //this.getDivContents();
+ // this.getPageContents();
+ this.status = this.errorCodes.DONE;
+ this.setView(params);
+ } else {
+ this.privateStakeholder = true;
+ // this.navigateToError();
+ if(subscription) {
+ subscription.unsubscribe();
+ }
+ }
}
});
- }));
+ this.subscriptions.push(subscription);
+ } else {
+ console.debug(" stakeholder is already available")
+ this.initializeFilters();
+ this.setView(params);
+ }
+ }));
+ }));
}
private initializeFilters(){
@@ -245,15 +244,15 @@ export class MonitorComponent implements OnInit, OnDestroy {
}
private getPageContents() {
- this.helper.getPageHelpContents(this.properties, 'monitor', this._router.url).subscribe(contents => {
+ this.subscriptions.push(this.helper.getPageHelpContents(this.properties, 'monitor', this._router.url).subscribe(contents => {
this.pageContents = contents;
- })
+ }));
}
private getDivContents() {
- this.helper.getDivHelpContents(this.properties, 'monitor', this._router.url).subscribe(contents => {
+ this.subscriptions.push(this.helper.getDivHelpContents(this.properties, 'monitor', this._router.url).subscribe(contents => {
this.divContents = contents;
- })
+ }));
}
private setView(params: Params) {
@@ -379,7 +378,7 @@ export class MonitorComponent implements OnInit, OnDestroy {
});
urls.forEach((indexes, pair) => {
pair = JSON.parse(pair);
- this.statisticsService.getNumbers(this.statisticsService.getSourceType(pair[0]), pair[1]).subscribe(response => {
+ this.subscriptions.push(this.statisticsService.getNumbers(this.statisticsService.getSourceType(pair[0]), pair[1]).subscribe(response => {
indexes.forEach(([i, j]) => {
let result = JSON.parse(JSON.stringify(response));
this.activeSubCategory.numbers[i].indicators[j].indicatorPaths[0].jsonPath.forEach(jsonPath => {
@@ -389,7 +388,7 @@ export class MonitorComponent implements OnInit, OnDestroy {
});
this.numberResults.set(i + '-' + j, result);
});
- })
+ }));
});
this.activeSubCategory.charts.forEach((section, i) => {
section.indicators.forEach((indicator, j) => {
@@ -433,6 +432,11 @@ export class MonitorComponent implements OnInit, OnDestroy {
if (this.piwiksub) {
this.piwiksub.unsubscribe();
}
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
+ }
+ });
}
public isPublicOrIsMember(visibility: Visibility): boolean {
diff --git a/src/app/monitor/monitor.module.ts b/src/app/monitor/monitor.module.ts
index f5a2773..1583505 100644
--- a/src/app/monitor/monitor.module.ts
+++ b/src/app/monitor/monitor.module.ts
@@ -3,7 +3,6 @@ import {CommonModule} from '@angular/common';
import {FormsModule} from '@angular/forms';
import {RouterModule} from '@angular/router';
-import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
@@ -33,7 +32,7 @@ import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/p
MonitorComponent
],
providers: [
- FreeGuard, PreviousRouteRecorder,
+ PreviousRouteRecorder,
PiwikService,
StatisticsService
],
diff --git a/src/app/pages/pages-routing.module.ts b/src/app/pages/pages-routing.module.ts
index d26cac7..1e9df81 100644
--- a/src/app/pages/pages-routing.module.ts
+++ b/src/app/pages/pages-routing.module.ts
@@ -3,11 +3,12 @@ import {RouterModule} from '@angular/router';
import {PagesComponent} from "../openaireLibrary/dashboard/page/pages.component";
import {IsCommunityOrAdmin} from "../openaireLibrary/connect/communityGuard/isCommunityOrAdmin";
import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
+import {LoginGuard} from "../openaireLibrary/login/loginGuard.guard";
@NgModule({
imports: [
RouterModule.forChild([
- { path: '', canActivate: [IsCommunityOrAdmin, AdminDashboardGuard], component: PagesComponent}
+ { path: '', canActivate: [LoginGuard,IsCommunityOrAdmin, AdminDashboardGuard], component: PagesComponent}
])
]
})
diff --git a/src/app/search/landingPages/dataProvider/dataProvider.component.ts b/src/app/search/landingPages/dataProvider/dataProvider.component.ts
index da32f1f..38046e7 100644
--- a/src/app/search/landingPages/dataProvider/dataProvider.component.ts
+++ b/src/app/search/landingPages/dataProvider/dataProvider.component.ts
@@ -1,6 +1,7 @@
import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-dataprovider',
@@ -16,16 +17,23 @@ export class MonitorDataProviderComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
- ngOnInit() {
- this.route.params.subscribe(params => {
- if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.initialized = true;
- }
- });
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
}
});
}
+ ngOnInit() {
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ if (params['stakeholder']) {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.initialized = true;
+ }
+ }));
+ }
+ }));
+ }
}
diff --git a/src/app/search/landingPages/dataProvider/libDataProvider.module.ts b/src/app/search/landingPages/dataProvider/libDataProvider.module.ts
index f8e98cb..f224d39 100644
--- a/src/app/search/landingPages/dataProvider/libDataProvider.module.ts
+++ b/src/app/search/landingPages/dataProvider/libDataProvider.module.ts
@@ -2,14 +2,13 @@ import { NgModule} from '@angular/core';
import { DataProviderModule } from '../../../openaireLibrary/landingPages/dataProvider/dataProvider.module';
import { MonitorDataProviderComponent } from './dataProvider.component';
import {DataProviderRoutingModule} from './dataProvider-routing.module';
-import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {CommonModule} from "@angular/common";
@NgModule({
imports: [DataProviderModule, DataProviderRoutingModule, CommonModule],
declarations:[MonitorDataProviderComponent],
- providers:[FreeGuard, PreviousRouteRecorder],
+ providers:[ PreviousRouteRecorder],
exports:[MonitorDataProviderComponent]
})
export class LibDataProviderModule { }
diff --git a/src/app/search/landingPages/dataset/dataset.component.ts b/src/app/search/landingPages/dataset/dataset.component.ts
index 9d52d47..2f61d99 100644
--- a/src/app/search/landingPages/dataset/dataset.component.ts
+++ b/src/app/search/landingPages/dataset/dataset.component.ts
@@ -1,6 +1,7 @@
import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-dataset',
@@ -17,17 +18,24 @@ export class MonitorDatasetComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
- ngOnInit() {
- this.route.params.subscribe(params => {
- if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.initialized = true;
- }
- });
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
}
});
}
+ ngOnInit() {
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ if (params['stakeholder']) {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.initialized = true;
+ }
+ }));
+ }
+ }));
+ }
}
diff --git a/src/app/search/landingPages/dataset/libDataset.module.ts b/src/app/search/landingPages/dataset/libDataset.module.ts
index 36d375b..ef39994 100644
--- a/src/app/search/landingPages/dataset/libDataset.module.ts
+++ b/src/app/search/landingPages/dataset/libDataset.module.ts
@@ -1,6 +1,5 @@
import {NgModule} from '@angular/core';
import {MonitorDatasetComponent} from './dataset.component';
-import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {DatasetRoutingModule} from './dataset-routing.module';
import {ResultLandingModule} from "../../../openaireLibrary/landingPages/result/resultLanding.module";
@@ -9,7 +8,7 @@ import {CommonModule} from "@angular/common";
@NgModule({
imports: [DatasetRoutingModule, ResultLandingModule, CommonModule],
declarations:[MonitorDatasetComponent],
- providers:[FreeGuard, PreviousRouteRecorder],
+ providers:[PreviousRouteRecorder],
exports:[MonitorDatasetComponent]
})
export class LibDatasetModule { }
diff --git a/src/app/search/landingPages/organization/libOrganization.module.ts b/src/app/search/landingPages/organization/libOrganization.module.ts
index 0bb7180..f858741 100644
--- a/src/app/search/landingPages/organization/libOrganization.module.ts
+++ b/src/app/search/landingPages/organization/libOrganization.module.ts
@@ -1,6 +1,5 @@
import {NgModule} from '@angular/core';
import {OrganizationModule} from '../../../openaireLibrary/landingPages/organization/organization.module';
-import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {MonitorOrganizationComponent} from './organization.component';
import {OrganizationRoutingModule} from './organization-routing.module';
@@ -9,7 +8,7 @@ import {CommonModule} from "@angular/common";
@NgModule({
imports: [OrganizationModule, OrganizationRoutingModule, CommonModule],
declarations:[MonitorOrganizationComponent],
- providers:[FreeGuard, PreviousRouteRecorder],
+ providers:[ PreviousRouteRecorder],
exports:[MonitorOrganizationComponent]
})
export class LibOrganizationModule { }
diff --git a/src/app/search/landingPages/organization/organization.component.ts b/src/app/search/landingPages/organization/organization.component.ts
index 336e97d..707aa4f 100644
--- a/src/app/search/landingPages/organization/organization.component.ts
+++ b/src/app/search/landingPages/organization/organization.component.ts
@@ -1,6 +1,7 @@
import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-organization',
@@ -16,16 +17,23 @@ export class MonitorOrganizationComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
- ngOnInit() {
- this.route.params.subscribe(params => {
- if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.initialized = true;
- }
- });
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
}
});
}
+ ngOnInit() {
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ if (params['stakeholder']) {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.initialized = true;
+ }
+ }));
+ }
+ }));
+ }
}
diff --git a/src/app/search/landingPages/orp/libOrp.module.ts b/src/app/search/landingPages/orp/libOrp.module.ts
index c8fe74a..9a9aec9 100644
--- a/src/app/search/landingPages/orp/libOrp.module.ts
+++ b/src/app/search/landingPages/orp/libOrp.module.ts
@@ -1,5 +1,4 @@
import {NgModule} from '@angular/core';
-import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {MonitorOrpComponent} from './orp.component';
import {OrpRoutingModule} from './orp-routing.module';
@@ -14,7 +13,7 @@ import {CommonModule} from "@angular/common";
MonitorOrpComponent
],
providers: [
- FreeGuard, PreviousRouteRecorder
+ PreviousRouteRecorder
],
exports: [
MonitorOrpComponent
diff --git a/src/app/search/landingPages/orp/orp.component.ts b/src/app/search/landingPages/orp/orp.component.ts
index 94c407f..7f868ac 100644
--- a/src/app/search/landingPages/orp/orp.component.ts
+++ b/src/app/search/landingPages/orp/orp.component.ts
@@ -1,6 +1,7 @@
import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-orp',
@@ -18,16 +19,23 @@ export class MonitorOrpComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
- ngOnInit() {
- this.route.params.subscribe(params => {
- if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.initialized = true;
- }
- });
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
}
});
}
+ ngOnInit() {
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ if (params['stakeholder']) {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.initialized = true;
+ }
+ }));
+ }
+ }));
+ }
}
diff --git a/src/app/search/landingPages/project/libProject.module.ts b/src/app/search/landingPages/project/libProject.module.ts
index 7f9c7f3..0eaa797 100644
--- a/src/app/search/landingPages/project/libProject.module.ts
+++ b/src/app/search/landingPages/project/libProject.module.ts
@@ -1,6 +1,5 @@
import {NgModule} from '@angular/core';
import {ProjectModule} from '../../../openaireLibrary/landingPages/project/project.module';
-import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {MonitorProjectComponent} from './project.component';
import {ProjectRoutingModule} from './project-routing.module';
@@ -9,7 +8,7 @@ import {CommonModule} from "@angular/common";
@NgModule({
imports: [ProjectModule, ProjectRoutingModule, CommonModule],
declarations:[MonitorProjectComponent],
- providers:[FreeGuard, PreviousRouteRecorder],
+ providers:[PreviousRouteRecorder],
exports:[MonitorProjectComponent]
})
export class LibProjectModule { }
diff --git a/src/app/search/landingPages/project/project.component.ts b/src/app/search/landingPages/project/project.component.ts
index 34b1e61..d11db45 100644
--- a/src/app/search/landingPages/project/project.component.ts
+++ b/src/app/search/landingPages/project/project.component.ts
@@ -1,6 +1,7 @@
import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-project',
@@ -16,17 +17,24 @@ export class MonitorProjectComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
- ngOnInit() {
- this.route.params.subscribe(params => {
- if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.initialized = true;
- }
- });
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
}
});
}
+ ngOnInit() {
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ if (params['stakeholder']) {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.initialized = true;
+ }
+ }));
+ }
+ }));
+ }
}
diff --git a/src/app/search/landingPages/publication/libPublication.module.ts b/src/app/search/landingPages/publication/libPublication.module.ts
index 77cf32c..3f54a84 100644
--- a/src/app/search/landingPages/publication/libPublication.module.ts
+++ b/src/app/search/landingPages/publication/libPublication.module.ts
@@ -1,5 +1,4 @@
import { NgModule} from '@angular/core';
-import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import { MonitorPublicationComponent } from './publication.component';
import {PublicationRoutingModule} from './publication-routing.module';
@@ -9,7 +8,7 @@ import {CommonModule} from "@angular/common";
@NgModule({
imports: [PublicationRoutingModule, ResultLandingModule, CommonModule],
declarations:[MonitorPublicationComponent],
- providers:[FreeGuard, PreviousRouteRecorder],
+ providers:[PreviousRouteRecorder],
exports:[MonitorPublicationComponent]
})
export class LibPublicationModule { }
diff --git a/src/app/search/landingPages/publication/publication.component.ts b/src/app/search/landingPages/publication/publication.component.ts
index ae47bea..2d9fdd6 100644
--- a/src/app/search/landingPages/publication/publication.component.ts
+++ b/src/app/search/landingPages/publication/publication.component.ts
@@ -1,6 +1,7 @@
import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-publication',
@@ -17,16 +18,23 @@ export class MonitorPublicationComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
- ngOnInit() {
- this.route.params.subscribe(params => {
- if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.initialized = true;
- }
- });
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
}
});
}
+ ngOnInit() {
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ if (params['stakeholder']) {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.initialized = true;
+ }
+ }));
+ }
+ }));
+ }
}
diff --git a/src/app/search/landingPages/result/libResult.module.ts b/src/app/search/landingPages/result/libResult.module.ts
index a890901..6efb86a 100644
--- a/src/app/search/landingPages/result/libResult.module.ts
+++ b/src/app/search/landingPages/result/libResult.module.ts
@@ -1,5 +1,4 @@
import {NgModule} from '@angular/core';
-import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {MonitorResultComponent} from './result.component';
import {ResultRoutingModule} from './result-routing.module';
@@ -9,7 +8,7 @@ import {CommonModule} from "@angular/common";
@NgModule({
imports: [ResultRoutingModule, ResultLandingModule, CommonModule],
declarations:[MonitorResultComponent],
- providers:[FreeGuard, PreviousRouteRecorder],
+ providers:[PreviousRouteRecorder],
exports:[MonitorResultComponent]
})
export class LibResultModule { }
diff --git a/src/app/search/landingPages/result/result.component.ts b/src/app/search/landingPages/result/result.component.ts
index 2de3f3e..dfd9782 100644
--- a/src/app/search/landingPages/result/result.component.ts
+++ b/src/app/search/landingPages/result/result.component.ts
@@ -1,6 +1,7 @@
import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-result',
@@ -16,16 +17,23 @@ export class MonitorResultComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
- ngOnInit() {
- this.route.params.subscribe(params => {
- if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.initialized = true;
- }
- });
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
}
});
}
+ ngOnInit() {
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ if (params['stakeholder']) {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.initialized = true;
+ }
+ }));
+ }
+ }));
+ }
}
diff --git a/src/app/search/landingPages/software/libSoftware.module.ts b/src/app/search/landingPages/software/libSoftware.module.ts
index 6e662d6..2b28566 100644
--- a/src/app/search/landingPages/software/libSoftware.module.ts
+++ b/src/app/search/landingPages/software/libSoftware.module.ts
@@ -1,5 +1,4 @@
import { NgModule} from '@angular/core';
-import {FreeGuard} from '../../../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import { MonitorSoftwareComponent } from './software.component';
import {SoftwareRoutingModule} from './software-routing.module';
@@ -8,7 +7,7 @@ import {CommonModule} from "@angular/common";
@NgModule({
imports: [SoftwareRoutingModule, ResultLandingModule, CommonModule],
declarations:[MonitorSoftwareComponent],
- providers:[FreeGuard, PreviousRouteRecorder],
+ providers:[ PreviousRouteRecorder],
exports:[MonitorSoftwareComponent]
})
export class LibSoftwareModule { }
diff --git a/src/app/search/landingPages/software/software.component.ts b/src/app/search/landingPages/software/software.component.ts
index b5fa8d9..dd812d0 100644
--- a/src/app/search/landingPages/software/software.component.ts
+++ b/src/app/search/landingPages/software/software.component.ts
@@ -1,6 +1,7 @@
import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-software',
@@ -17,16 +18,23 @@ export class MonitorSoftwareComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
- ngOnInit() {
- this.route.params.subscribe(params => {
- if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.initialized = true;
- }
- });
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
}
});
}
+ ngOnInit() {
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ if (params['stakeholder']) {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.initialized = true;
+ }
+ }));
+ }
+ }));
+ }
}
diff --git a/src/app/search/searchPages/advanced/searchDataproviders.component.ts b/src/app/search/searchPages/advanced/searchDataproviders.component.ts
index 065f848..4764697 100644
--- a/src/app/search/searchPages/advanced/searchDataproviders.component.ts
+++ b/src/app/search/searchPages/advanced/searchDataproviders.component.ts
@@ -2,6 +2,7 @@ import {Component} from '@angular/core';
import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class";
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-advanced-search-dataproviders',
@@ -22,11 +23,19 @@ export class MonitorAdvancedSearchDataprovidersComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
+ }
+ });
+ }
+
ngOnInit() {
- this.route.params.subscribe(params => {
+ this.subscriptions.push(this.route.params.subscribe(params => {
if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
if (stakeholder) {
if (stakeholder.type === "organization") {
let value = stakeholder.index_id;
@@ -45,12 +54,9 @@ export class MonitorAdvancedSearchDataprovidersComponent {
}
this.initialized = true;
}
- });
+ }));
}
- });
- }
-
- navigateToError() {
- this.router.navigate(['/error'], {queryParams: {'page': this.router.url}});
+ }));
}
+
}
diff --git a/src/app/search/searchPages/advanced/searchOrganizations.component.ts b/src/app/search/searchPages/advanced/searchOrganizations.component.ts
index 6529025..1fe14f3 100644
--- a/src/app/search/searchPages/advanced/searchOrganizations.component.ts
+++ b/src/app/search/searchPages/advanced/searchOrganizations.component.ts
@@ -2,6 +2,7 @@ import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-advanced-search-organizations',
@@ -20,11 +21,19 @@ export class MonitorAdvancedSearchOrganizationsComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
+ }
+ });
+ }
+
ngOnInit() {
- this.route.params.subscribe(params => {
+ this.subscriptions.push(this.route.params.subscribe(params => {
if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
if (stakeholder) {
if (stakeholder.type === "funder") {
let value = stakeholder.index_id+"||"+stakeholder.index_name+"||"+stakeholder.index_shortName;
@@ -41,8 +50,8 @@ export class MonitorAdvancedSearchOrganizationsComponent {
}
this.initialized = true;
}
- });
+ }));
}
- });
+ }));
}
}
diff --git a/src/app/search/searchPages/advanced/searchProjects.component.ts b/src/app/search/searchPages/advanced/searchProjects.component.ts
index 7ae927d..ec9a049 100644
--- a/src/app/search/searchPages/advanced/searchProjects.component.ts
+++ b/src/app/search/searchPages/advanced/searchProjects.component.ts
@@ -2,6 +2,7 @@ import {Component} from '@angular/core';
import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class";
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-advanced-search-projects',
@@ -23,11 +24,19 @@ export class MonitorAdvancedSearchProjectsComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
+ }
+ });
+ }
+
ngOnInit() {
- this.route.params.subscribe(params => {
+ this.subscriptions.push(this.route.params.subscribe(params => {
if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
if (stakeholder) {
if (stakeholder.type === "funder") {
let value = stakeholder.index_id+"||"+stakeholder.index_name+"||"+stakeholder.index_shortName;
@@ -48,12 +57,9 @@ export class MonitorAdvancedSearchProjectsComponent {
}
this.initialized = true;
}
- });
+ }));
}
- });
- }
-
- navigateToError() {
- this.router.navigate(['/error'], {queryParams: {'page': this.router.url}});
+ }));
}
+
}
diff --git a/src/app/search/searchPages/advanced/searchResearchResults.component.ts b/src/app/search/searchPages/advanced/searchResearchResults.component.ts
index bfb1cb0..3ff105b 100644
--- a/src/app/search/searchPages/advanced/searchResearchResults.component.ts
+++ b/src/app/search/searchPages/advanced/searchResearchResults.component.ts
@@ -2,6 +2,7 @@ import {Component} from '@angular/core';
import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class";
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-advanced-search-results',
@@ -22,11 +23,19 @@ export class MonitorAdvancedSearchResearchResultsComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
+ }
+ });
+ }
+
ngOnInit() {
- this.route.params.subscribe(params => {
+ this.subscriptions.push(this.route.params.subscribe(params => {
if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
if (stakeholder) {
if (stakeholder.type === "funder") {
let value = stakeholder.index_id+"||"+stakeholder.index_name+"||"+stakeholder.index_shortName;
@@ -46,8 +55,8 @@ export class MonitorAdvancedSearchResearchResultsComponent {
}
this.initialized = true;
}
- });
+ }));
}
- });
+ }));
}
}
diff --git a/src/app/search/searchPages/simple/searchDataproviders.component.ts b/src/app/search/searchPages/simple/searchDataproviders.component.ts
index a3204f9..012a7a5 100644
--- a/src/app/search/searchPages/simple/searchDataproviders.component.ts
+++ b/src/app/search/searchPages/simple/searchDataproviders.component.ts
@@ -2,6 +2,7 @@ import {Component} from '@angular/core';
import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class";
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-search-dataproviders',
@@ -22,11 +23,19 @@ export class MonitorSearchDataprovidersComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
+ }
+ });
+ }
+
ngOnInit() {
- this.route.params.subscribe(params => {
+ this.subscriptions.push(this.route.params.subscribe(params => {
if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
if (stakeholder) {
if (stakeholder.type === "funder") {
this.navigateToError();
@@ -40,9 +49,9 @@ export class MonitorSearchDataprovidersComponent {
}
this.initialized = true;
}
- });
+ }));
}
- });
+ }));
}
navigateToError() {
diff --git a/src/app/search/searchPages/simple/searchOrganizations.component.ts b/src/app/search/searchPages/simple/searchOrganizations.component.ts
index f202d58..602bb1b 100644
--- a/src/app/search/searchPages/simple/searchOrganizations.component.ts
+++ b/src/app/search/searchPages/simple/searchOrganizations.component.ts
@@ -1,6 +1,7 @@
import {Component} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-search-organizations',
@@ -18,16 +19,24 @@ export class MonitorSearchOrganizationsComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
- ngOnInit() {
- this.route.params.subscribe(params => {
- if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if (stakeholder) {
- this.initialized = true;
- }
- });
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
}
});
}
+
+ ngOnInit() {
+ this.subscriptions.push(this.route.params.subscribe(params => {
+ if (params['stakeholder']) {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ if (stakeholder) {
+ this.initialized = true;
+ }
+ }));
+ }
+ }));
+ }
}
diff --git a/src/app/search/searchPages/simple/searchProjects.component.ts b/src/app/search/searchPages/simple/searchProjects.component.ts
index 2bf45f3..5fcb367 100644
--- a/src/app/search/searchPages/simple/searchProjects.component.ts
+++ b/src/app/search/searchPages/simple/searchProjects.component.ts
@@ -2,6 +2,7 @@ import {Component} from '@angular/core';
import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class";
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-search-projects',
@@ -23,11 +24,19 @@ export class MonitorSearchProjectsComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
+ }
+ });
+ }
+
ngOnInit() {
- this.route.params.subscribe(params => {
+ this.subscriptions.push(this.route.params.subscribe(params => {
if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
if (stakeholder) {
if (stakeholder.type === "funder") {
let value = stakeholder.index_id+"||"+stakeholder.index_name+"||"+stakeholder.index_shortName;
@@ -45,9 +54,9 @@ export class MonitorSearchProjectsComponent {
this.initialized = true;
}
- });
+ }));
}
- });
+ }));
}
navigateToError() {
diff --git a/src/app/search/searchPages/simple/searchResearchResults.component.ts b/src/app/search/searchPages/simple/searchResearchResults.component.ts
index 81dd009..fe95b88 100644
--- a/src/app/search/searchPages/simple/searchResearchResults.component.ts
+++ b/src/app/search/searchPages/simple/searchResearchResults.component.ts
@@ -2,6 +2,7 @@ import {Component} from '@angular/core';
import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class";
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
+import {Subscriber} from "rxjs";
@Component({
selector: 'monitor-search-results',
@@ -22,11 +23,19 @@ export class MonitorSearchResearchResultsComponent {
private router: Router,
private stakeholderService: StakeholderService) {
}
-
+ subscriptions = [];
+ ngOnDestroy() {
+ this.subscriptions.forEach(subscription => {
+ if (subscription instanceof Subscriber) {
+ subscription.unsubscribe();
+ }
+ });
+ }
+
ngOnInit() {
- this.route.params.subscribe(params => {
+ this.subscriptions.push(this.route.params.subscribe(params => {
if (params['stakeholder']) {
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
if (stakeholder) {
if (stakeholder.type === "funder") {
let value = stakeholder.index_id+"||"+stakeholder.index_name+"||"+stakeholder.index_shortName;
@@ -46,8 +55,8 @@ export class MonitorSearchResearchResultsComponent {
}
this.initialized = true;
}
- });
+ }));
}
- });
+ }));
}
}
diff --git a/src/app/topic/indicators.component.ts b/src/app/topic/indicators.component.ts
index e3a7f18..b7697c2 100644
--- a/src/app/topic/indicators.component.ts
+++ b/src/app/topic/indicators.component.ts
@@ -108,10 +108,10 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
}
ngOnInit(): void {
- this.userManagementService.getUserInfo().subscribe(user => {
+ this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
this.user = user;
- });
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ }));
+ this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
this.stakeholder = stakeholder;
if (this.stakeholder) {
this.buildFilters();
@@ -120,7 +120,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.filterNumbers();
this.setPreview();
}
- });
+ }));
}
ngOnDestroy(): void {
@@ -131,6 +131,11 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
value();
}
});
+ this.urlSubscriptions.forEach(value => {
+ if (value instanceof Subscriber) {
+ value.unsubscribe();
+ }
+ });
}
ngAfterViewInit(): void {
@@ -163,7 +168,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
});
urls.forEach((indexes, pair) => {
pair = JSON.parse(pair);
- this.statisticsService.getNumbers(this.statisticsService.getSourceType(pair[0]), pair[1]).subscribe(response => {
+ this.subscriptions.push(this.statisticsService.getNumbers(this.statisticsService.getSourceType(pair[0]), pair[1]).subscribe(response => {
indexes.forEach(([i, j]) => {
let result = JSON.parse(JSON.stringify(response));
this.numbers[i].indicators[j].indicatorPaths[0].jsonPath.forEach(jsonPath => {
@@ -173,7 +178,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
});
this.numberResults.set(i + '-' + j, result);
});
- });
+ }));
});
}
@@ -427,7 +432,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
let indicatorPath: FormGroup = this.numberIndicatorPaths.at(index);
this.getJsonPath(index).disable();
indicatorPath.get('result').setErrors({validating: true});
- this.statisticsService.getNumbers(null, indicatorPath.get('url').value).subscribe(response => {
+ this.subscriptions.push(this.statisticsService.getNumbers(null, indicatorPath.get('url').value).subscribe(response => {
let result = JSON.parse(JSON.stringify(response));
this.getJsonPath(index).controls.forEach(jsonPath => {
if (result) {
@@ -448,7 +453,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
indicatorPath.get('result').setValue(null);
}
}, 500);
- });
+ }));
}
public getJsonPath(index: number): FormArray {
@@ -746,7 +751,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.subcategoryIndex]._id,
this.section._id
];
- this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.indicator, path).subscribe(indicator => {
+ this.subscriptions.push(this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.indicator, path).subscribe(indicator => {
if (this.index !== -1) {
this.section.indicators[this.index] = indicator;
} else {
@@ -773,7 +778,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
pos: 'top-left'
});
this.editing = false;
- });
+ }));
}
reorderIndicators(sectionId: string, type: IndicatorType, indicatorIds: string[]) {
@@ -785,7 +790,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.subcategoryIndex]._id,
sectionId
];
- this.stakeholderService.reorderIndicators(this.properties.monitorServiceAPIURL, path, indicatorIds, type).subscribe(indicators => {
+ this.subscriptions.push(this.stakeholderService.reorderIndicators(this.properties.monitorServiceAPIURL, path, indicatorIds, type).subscribe(indicators => {
if (type === 'chart') {
this.charts.find(section => section._id === sectionId).indicators = indicators;
this.filterCharts();
@@ -794,7 +799,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.filterNumbers();
}
this.editing = false;
- });
+ }));
}
hasDifference(index: number): boolean {
@@ -851,7 +856,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.section._id,
this.indicator._id
];
- this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, path, this.indicatorChildrenActionOnDelete).subscribe(() => {
+ this.subscriptions.push(this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, path, this.indicatorChildrenActionOnDelete).subscribe(() => {
if (this.indicator.type === 'chart') {
this.charts.find(section => section._id === this.section._id).indicators.splice(this.index, 1);
this.filterCharts();
@@ -872,7 +877,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
pos: 'top-left'
});
this.editing = false;
- });
+ }));
}
changeIndicatorStatus(sectionId: string, indicator: Indicator, visibility: Visibility) {
@@ -885,7 +890,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
sectionId,
indicator._id
];
- this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(visibility => {
+ this.subscriptions.push(this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(visibility => {
indicator.visibility = visibility;
UIkit.notification('Indicator has been successfully changed to ' + indicator.visibility.toLowerCase(), {
status: 'success',
@@ -900,7 +905,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
pos: 'top-left'
});
this.editing = false;
- });
+ }));
}
/*toggleIndicatorAccess(sectionId: string, indicator: Indicator) {
@@ -939,7 +944,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex]._id,
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.subcategoryIndex]._id
];
- this.stakeholderService.saveSection(this.properties.monitorServiceAPIURL, section, path, index).subscribe(section => {
+ this.subscriptions.push(this.stakeholderService.saveSection(this.properties.monitorServiceAPIURL, section, path, index).subscribe(section => {
if (type === 'chart') {
this.charts[index] = section;
this.filterCharts();
@@ -961,7 +966,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
pos: 'top-left'
});
this.editing = false;
- });
+ }));
}
createSection(index = -1, type: IndicatorType = 'chart') {
@@ -973,7 +978,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex]._id,
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.subcategoryIndex]._id
];
- this.stakeholderService.saveSection(this.properties.monitorServiceAPIURL, this.section, path, index).subscribe(section => {
+ this.subscriptions.push(this.stakeholderService.saveSection(this.properties.monitorServiceAPIURL, this.section, path, index).subscribe(section => {
if (type === 'chart') {
if (index !== -1) {
this.charts.splice(index, 0, section);
@@ -1003,7 +1008,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
pos: 'top-left'
});
this.editing = false;
- });
+ }));
}
// deleteNumberSectionOpen(section: Section, index: number) {
@@ -1052,7 +1057,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.subcategoryIndex]._id,
this.section._id
];
- this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, path, this.sectionChildrenActionOnDelete).subscribe(() => {
+ this.subscriptions.push(this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, path, this.sectionChildrenActionOnDelete).subscribe(() => {
if (this.sectionTypeToDelete === "chart") {
this.charts.splice(this.index, 1);
this.filterCharts();
@@ -1074,6 +1079,6 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
pos: 'top-left'
});
this.editing = false;
- });
+ }));
}
}
diff --git a/src/app/topic/topic.component.ts b/src/app/topic/topic.component.ts
index 3859a05..8310286 100644
--- a/src/app/topic/topic.component.ts
+++ b/src/app/topic/topic.component.ts
@@ -1,10 +1,9 @@
import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute, Router} from '@angular/router';
-import {DomSanitizer, Title} from '@angular/platform-browser';
+import {Title} from '@angular/platform-browser';
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
import {
Category,
- Section,
Stakeholder,
SubCategory,
Topic,
@@ -20,6 +19,7 @@ import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
import {IDeactivateComponent} from "../openaireLibrary/utils/can-exit.guard";
import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
import {Option} from "../openaireLibrary/sharedComponents/input/input.component";
+import {properties} from "../../environments/environment";
declare var UIkit;
@@ -31,7 +31,6 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
public subscriptions: any[] = [];
public properties: EnvProperties;
public stakeholderUtils: StakeholderUtils = new StakeholderUtils();
- public indicatorUtils: IndicatorUtils = new IndicatorUtils();
public loading: boolean = true;
public stakeholder: Stakeholder;
/**
@@ -78,11 +77,9 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
}
public ngOnInit() {
- this.route.data
- .subscribe((data: { envSpecific: EnvProperties }) => {
- this.properties = data.envSpecific;
+ this.properties = properties;
let subscription: Subscription;
- this.route.params.subscribe(params => {
+ this.subscriptions.push(this.route.params.subscribe(params => {
if (subscription) {
subscription.unsubscribe();
}
@@ -110,11 +107,16 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
}
});
this.subscriptions.push(subscription);
- });
- });
+ }));
+
}
public ngOnDestroy() {
+ this.subscriptions.forEach(value => {
+ if (value instanceof Subscriber) {
+ value.unsubscribe();
+ }
+ });
}
canExit():boolean {
@@ -463,7 +465,7 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
}
private save(message: string, path: string[], saveElement: any, callback: Function, redirect = false) {
- this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, saveElement, path).subscribe(saveElement => {
+ this.subscriptions.push(this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, saveElement, path).subscribe(saveElement => {
callback(saveElement);
this.stakeholderService.setStakeholder(this.stakeholder);
UIkit.notification(message, {
@@ -482,11 +484,11 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
timeout: 3000,
pos: 'top-left'
});
- });
+ }));
}
private delete(message: string, path: string[], callback: Function, redirect = false) {
- this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, path, this.elementChildrenActionOnDelete).subscribe(() => {
+ this.subscriptions.push(this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, path, this.elementChildrenActionOnDelete).subscribe(() => {
callback();
this.stakeholderService.setStakeholder(this.stakeholder);
UIkit.notification(message, {
@@ -503,7 +505,7 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
timeout: 3000,
pos: 'top-left'
});
- });
+ }));
}
public toggleStatusByIndex(index: number, visibility:Visibility, type) {
@@ -518,7 +520,7 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
}
private changeStatus(element: Topic | Category | SubCategory, path: string[], visibility:Visibility) {
- this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(visibility => {
+ this.subscriptions.push(this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(visibility => {
element.visibility = visibility;
this.stakeholderService.setStakeholder(this.stakeholder);
UIkit.notification(StringUtils.capitalize(this.type) + ' has been successfully changed to ' + element.visibility.toLowerCase(), {
@@ -532,7 +534,7 @@ export class TopicComponent implements OnInit, OnDestroy, IDeactivateComponent {
timeout: 3000,
pos: 'top-left'
});
- });
+ }));
}
back() {
diff --git a/src/app/topic/topic.module.ts b/src/app/topic/topic.module.ts
index 5f1f96f..096d98d 100644
--- a/src/app/topic/topic.module.ts
+++ b/src/app/topic/topic.module.ts
@@ -1,7 +1,6 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
-import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
diff --git a/src/app/users/users.component.ts b/src/app/users/users.component.ts
index d195ffd..a8e3724 100644
--- a/src/app/users/users.component.ts
+++ b/src/app/users/users.component.ts
@@ -1,6 +1,7 @@
import {Component, OnInit} from "@angular/core";
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
import {properties} from "../../environments/environment";
+import {Subscriber} from "rxjs";
@Component({
selector: 'users',
@@ -16,10 +17,15 @@ export class UsersComponent implements OnInit{
constructor(private stakeholderService: StakeholderService) {
}
-
+ subscription;
+ ngOnDestroy() {
+ if (this.subscription instanceof Subscriber) {
+ this.subscription.unsubscribe();
+ }
+ }
ngOnInit() {
this.loading = true;
- this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
+ this.subscription = this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
if(stakeholder) {
this.alias = stakeholder.alias;
this.name = stakeholder.name;
diff --git a/src/app/utils/adminDashboard.guard.ts b/src/app/utils/adminDashboard.guard.ts
index 27c75a5..888996b 100644
--- a/src/app/utils/adminDashboard.guard.ts
+++ b/src/app/utils/adminDashboard.guard.ts
@@ -1,14 +1,14 @@
import {Injectable} from '@angular/core';
-import {ActivatedRouteSnapshot, CanActivate, CanLoad, Route, Router, RouterStateSnapshot} from '@angular/router';
+import {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from '@angular/router';
import {Observable} from 'rxjs/Observable';
-import {filter, map, mergeMap} from "rxjs/operators";
+import {map, take, tap} from "rxjs/operators";
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
import {LoginErrorCodes} from "../openaireLibrary/login/utils/guardHelper.class";
import {Session} from "../openaireLibrary/login/utils/helper.class";
-import {properties} from "../../environments/environment";
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
-import {of} from "rxjs";
+import {zip} from "rxjs";
+
@Injectable()
export class AdminDashboardGuard implements CanActivate {
@@ -20,26 +20,18 @@ export class AdminDashboardGuard implements CanActivate {
check(path: string, alias: string): Observable | boolean {
if (Session.isLoggedIn()) {
- const obs = this.userManagementService.getUserInfo(false).pipe(map(user => {
- if(user) {
- return this.stakeholderService.getStakeholder(alias).pipe(map(stakeholder => {
- if(stakeholder) {
- return (Session.isPortalAdministrator(user) ||
- Session.isCurator(stakeholder.type, user) || Session.isManager(stakeholder.type, stakeholder.alias, user));
- } else {
- return false;
- }
- }));
- } else {
- return of(false);
+ return zip(
+ this.userManagementService.getUserInfo(false)
+ ,this.stakeholderService.getStakeholder(alias)
+ ).pipe(take(1),map(res =>{
+ return res[0] && res[1] && (Session.isPortalAdministrator(res[0]) ||
+ Session.isCurator(res[1].type, res[0]) || Session.isManager(res[1].type, res[1].alias, res[0]));
+ }),tap(authorized => {
+ if(!authorized){
+ this.router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_ADMIN, 'redirectUrl':path}});
}
- }), mergeMap( authorized => {
- return authorized;
}));
- obs.pipe(filter(isManager => !isManager)).subscribe(() => {
- this.router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_ADMIN, 'redirectUrl':path}});
- });
- return obs;
+
} else {
this.router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_LOGIN, 'redirectUrl':path}});
return false;
diff --git a/src/app/utils/piwikHelper.ts b/src/app/utils/piwikHelper.ts
deleted file mode 100644
index 390c493..0000000
--- a/src/app/utils/piwikHelper.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-export class PiwikHelper{
- public static siteIDs={
- "connect": 80,
- "dh-ch":81,
- "ee":82,
- "egi":83,
- "elixir-gr":84,
- "fam":85,
- "instruct":86,
- "mes":87,
- "ni":88,
- "oa-pg":89,
- "rda":90,
- "aginfra":93,
- "clarin":100,
- "dariah":103
- };
- public static siteIDsProduction={
- "connect": 112,
- "dh-ch":198,
- "ee":200,
- "egi":'',
- "elixir-gr":'',
- "fam":197,
- "instruct":'',
- "mes":196,
- "ni":199,
- "oa-pg":'',
- "rda":'',
- "aginfra":'',
- "clarin":'',
- "dariah":''
- };
- public static getSiteId(communityId:string, environment:string){
- if(environment == 'production'){
- return this.siteIDsProduction[communityId];
- }
- return this.siteIDs[communityId];
- }
-
-}
diff --git a/src/app/utils/services/statistics.service.ts b/src/app/utils/services/statistics.service.ts
index 0977944..fd13de6 100644
--- a/src/app/utils/services/statistics.service.ts
+++ b/src/app/utils/services/statistics.service.ts
@@ -1,9 +1,8 @@
import {Injectable} from '@angular/core';
import {HttpClient} from "@angular/common/http";
-import {EnvironmentSpecificService} from "../../openaireLibrary/utils/properties/environment-specific.service";
import {Observable} from "rxjs";
import {SourceType} from "../../openaireLibrary/monitor/entities/stakeholder";
-import {el} from "@angular/platform-browser/testing/src/browser_util";
+import {properties} from "../../../environments/environment";
@Injectable({
@@ -14,8 +13,7 @@ export class StatisticsService {
numberSources: Map = new Map();
chartSources: Map = new Map();
- constructor(private http:HttpClient, private environmentSpecificService: EnvironmentSpecificService) {
- this.environmentSpecificService.subscribeEnvironment().subscribe(properties => {
+ constructor(private http:HttpClient) {
this.numberSources.set('statistics', [properties.statisticsAPIURL]);
this.numberSources.set('search', [properties.searchAPIURLLAst]);
this.numberSources.set('metrics', [properties.metricsAPIURL]);
@@ -24,7 +22,6 @@ export class StatisticsService {
this.chartSources.set('old', [properties.statisticsFrameAPIURL]);
this.chartSources.set('metrics', [properties.metricsAPIURL]);
this.chartSources.set('image', [""]);
- })
}
getSourceType(source:string):SourceType{
let sourceType: SourceType = 'search';
diff --git a/src/app/utils/subscribe/subscribe.component.ts b/src/app/utils/subscribe/subscribe.component.ts
deleted file mode 100644
index 9f8ec7f..0000000
--- a/src/app/utils/subscribe/subscribe.component.ts
+++ /dev/null
@@ -1,242 +0,0 @@
-import {Component, EventEmitter, Input, Output, ViewChild} from '@angular/core';
-import {ActivatedRoute, Router} from '@angular/router';
-import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
-import {AlertModal} from '../../openaireLibrary/utils/modal/alert';
-
-import {CommunityService} from '../../openaireLibrary/connect/community/community.service';
-import {SubscribeService} from '../../openaireLibrary/utils/subscribe/subscribe.service';
-import {EmailService} from "../../openaireLibrary/utils/email/email.service";
-import {Session, User} from '../../openaireLibrary/login/utils/helper.class';
-
-import {Email} from "../../openaireLibrary/utils/email/email";
-import {Composer} from "../../openaireLibrary/utils/email/composer";
-import {LoginErrorCodes} from '../../openaireLibrary/login/utils/guardHelper.class';
-import {UserManagementService} from "../../openaireLibrary/services/user-management.service";
-
-declare var UIkit: any;
-
-@Component({
- selector: 'subscribe',
- template: `
-
-
-
-
-
Please login first to subscribe
-
- Subscribe
- Unsubscribe
-
-
- 0 && showTemplate">
- Members {{subscribers}}
-
-
-
- `
-})
-
-export class SubscribeComponent {
- // @Input() showSubscribe:boolean = true;
- @Input() showNumbers: boolean;
- @Input() communityId: string;
- @Input() showTemplate: boolean = true;
- @Output() subscribeEvent = new EventEmitter();
-
- public community = null;
- public emailToInformManagers: Email;
-
- loading: boolean = false;
- subscribed: boolean = null;
- properties: EnvProperties;
- subscribers: number = null;
- showLoginAlert: Boolean = false;
- @ViewChild(AlertModal) alert;
- private user: User;
-
- constructor(private route: ActivatedRoute,
- private _subscribeService: SubscribeService,
- private _emailService: EmailService,
- private _communityService: CommunityService,
- private router: Router,
- private userManagementService: UserManagementService
- ) {
- }
-
- public ngOnInit() {
- this.route.data
- .subscribe((data: { envSpecific: EnvProperties }) => {
- this.properties = data.envSpecific;
- this.userManagementService.getUserInfo().subscribe(user => {
- this.user = user;
- if (!this.showNumbers) {
- let email = (this.user)?this.user.email:null;
- if (email == null) {
- this.subscribed = false;
- } else {
- if (this.communityId) {
- this._subscribeService.isSubscribedToCommunity(this.properties, this.communityId).subscribe(
- res => {
- this.subscribed = res;
- if (this.subscribed) {
- this.subscribeEvent.emit({
- value: "ok"
- });
- }
- },
- error => {
- this.handleError("Error getting response if email: " + email + " is subscribed to community with id: " + this.communityId, error);
- });
- }
- }
- } else {
- if (this.communityId) {
- this._subscribeService.getCommunitySubscribers(this.properties, this.communityId).subscribe(
- res => {
- this.subscribers = (res && res.subscribers && res.subscribers.length) ? res.subscribers.length : 0;
- },
- error => {
- this.handleError("Error getting community subscribers for community with id: " + this.communityId, error);
- });
- }
- }
- if (this.communityId) {
- this.emailToInformManagers = {body: "", subject: "", recipients: []};
-
- this._communityService.getCommunity(this.properties, this.properties.communityAPI + this.communityId).subscribe(
- community => {
- this.community = community;
- },
- error => {
- //console.log('System error retrieving community profile', error)
- this.handleError("Error getting community with id: " + this.communityId, error);
- }
- );
- }
- });
- });
- }
-
- subscribe() {
- var email = (this.user)?this.user.email:null;
- if (email == null) {
- this.subscribed = false;
- // this.showLoginAlert = true;
- this.router.navigate(['/user-info'], {
- queryParams: {
- "errorCode": LoginErrorCodes.ACTION_REQUIRES_LOGIN,
- "redirectUrl": this.properties.baseLink + this.router.url
- }
- });
- } else {
- this.loading = true;
- this.showLoginAlert = false;
- this._subscribeService.subscribeToCommunity(this.properties, this.communityId).subscribe(
- res => {
- this.loading = false;
- if (res.status && res.status != 200) {
- this.subscribeEvent.emit({
- value: "error"
- });
- UIkit.notification({
- message: 'An error occured. Please try again!',
- status: 'warning',
- timeout: 3000,
- pos: 'top-center'
- });
- } else {
- if (!this.subscribed) {
- this.subscribed = true;
- this.subscribeEvent.emit({
- value: "ok"
- });
- this._emailService.sendEmail(this.properties,
- Composer.composeEmailToInformManagers(this.community.title, this.communityId, this.community.managers, email, this.properties.adminPortalURL)).subscribe(
- res => {
- //console.log("The email has been sent successfully!")
- },
- error => {
- //console.log(error)
- this.handleError("Error notifying managers about new subscribers for community with id: " + this.communityId, error);
- }
- );
- }
- }
- },
- error => {
- this.loading = false;
- this.subscribeEvent.emit({
- value: "error"
- });
- UIkit.notification({
- message: 'An error occured. Please try again!',
- status: 'warning',
- timeout: 3000,
- pos: 'top-center'
- });
- //console.log(error)
- this.handleError("Error subscribing email: " + email + " to community with id: " + this.communityId, error);
- });
- }
- }
-
- unsubscribe() {
- var email = (this.user)?this.user.email:null;
- if (email == null) {
- this.subscribed = false;
- } else {
- this.loading = true;
- //this.properties.adminToolsAPIURL
- this._subscribeService.unSubscribeToCommunity(this.properties, this.communityId).subscribe(
- res => {
- this.loading = false;
- if (res.status && res.status != 200) {
- UIkit.notification({
- message: 'An error occured. Please try again!',
- status: 'warning',
- timeout: 3000,
- pos: 'top-center'
- });
- } else {
- //console.log(res);
- if (this.subscribed) {
- console.log('here')
- this.subscribed = false;
- }
- }
- },
- error => {
- this.loading = false;
- UIkit.notification({
- message: 'An error occured. Please try again!',
- status: 'warning',
- timeout: 3000,
- pos: 'top-center'
- });
- //console.log(error)
- this.handleError("Error unsubscribing email: " + email + " from community with id: " + this.communityId, error);
- });
- }
- }
-
- confirmOpen() {
-
- this.alert.cancelButton = true;
- this.alert.okButton = true;
- this.alert.alertTitle = "Unsubscribe community ";
- this.alert.message = "Do you want to proceed? ";
- this.alert.okButtonText = "Yes";
- this.alert.cancelButtonText = "No";
- this.alert.open();
- }
-
- confirmClose(data) {
- this.unsubscribe();
- }
-
- private handleError(message: string, error) {
- console.error("Subscribe (component): " + message, error);
- }
-}
diff --git a/src/app/utils/subscribe/subscribe.module.ts b/src/app/utils/subscribe/subscribe.module.ts
deleted file mode 100644
index ea9d6e9..0000000
--- a/src/app/utils/subscribe/subscribe.module.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import {ModuleWithProviders, NgModule} from '@angular/core';
-import {CommonModule} from '@angular/common';
-import {RouterModule} from '@angular/router';
-
-import {SubscribeService} from '../../openaireLibrary/utils/subscribe/subscribe.service';
-import {CommunityService} from "../../openaireLibrary/connect/community/community.service";
-
-import {EmailService} from "../../openaireLibrary/utils/email/email.service";
-import {SubscribeComponent} from './subscribe.component';
-import {AlertModalModule} from '../../openaireLibrary/utils/modal/alertModal.module';
-
-@NgModule({
- imports: [
- CommonModule, RouterModule, AlertModalModule
- ],
- declarations: [
- SubscribeComponent
- ],
- exports: [
- SubscribeComponent
- ]
-})
-export class SubscribeModule {
- static forRoot(): ModuleWithProviders {
- return {
- ngModule: SubscribeModule,
- providers: [
- SubscribeService, EmailService, CommunityService
- ]
- }
- }
-}
diff --git a/src/robots.prod.txt b/src/robots.prod.txt
index e44c1d4..d557e30 100644
--- a/src/robots.prod.txt
+++ b/src/robots.prod.txt
@@ -1,4 +1,3 @@
User-Agent: *
-Disallow: /cache
-Disallow: /upload
-Disallow: /
+Disallow: /admin
+Crawl-delay: 30