diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 553f63c..39e20dc 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -4,12 +4,13 @@
import {Component, OnInit} from '@angular/core';
import {MenuItem, RootMenuItem, SideMenuItem} from './openaireLibrary/sharedComponents/menu';
-import {ActivatedRoute, NavigationStart, Router, RoutesRecognized} from '@angular/router';
+import {ActivatedRoute, NavigationStart, Router} from '@angular/router';
import {EnvironmentSpecificService} from './openaireLibrary/utils/properties/environment-specific.service';
import {CommunitiesService} from './openaireLibrary/connect/communities/communities.service';
import {EnvProperties} from './openaireLibrary/utils/properties/env-properties';
-import {Session} from './openaireLibrary/login/utils/helper.class';
+import {Session, User} from './openaireLibrary/login/utils/helper.class';
import {HelperFunctions} from './openaireLibrary/utils/HelperFunctions.class';
+import {UserManagementService} from './openaireLibrary/services/user-management.service';
declare var UIkit: any;
@@ -18,7 +19,7 @@ declare var UIkit: any;
templateUrl: './app.component.html',
})
-export class AppComponent implements OnInit{
+export class AppComponent implements OnInit {
title = 'Metadata Registry Service';
userMenuItems: MenuItem[] = [];
@@ -33,16 +34,19 @@ export class AppComponent implements OnInit{
isPortalAdministrator = false;
showSidebar: boolean;
wellcome = false;
- showMenu:boolean = false;
+ showMenu: boolean = false;
+ user: User;
+ checkLogin: boolean = false;
constructor(private route: ActivatedRoute,
private propertiesService: EnvironmentSpecificService,
private _communitiesService: CommunitiesService,
- private router: Router) {
+ private router: Router,
+ private userManagementService: UserManagementService) {
this.router.events.forEach((event) => {
if (event instanceof NavigationStart) {
HelperFunctions.scroll();
- if(event.url === '/') {
+ if (event.url === '/') {
this.wellcome = true;
} else {
this.wellcome = false;
@@ -60,15 +64,18 @@ export class AppComponent implements OnInit{
this.logOutUrl = this.properties.logoutUrl;
this.showSidebar = false;
this.showMenu = false;
- if (Session.getUser()) {
- localStorage.setItem('user_id', Session.getUser().id);
- localStorage.setItem('mining_backend_address', this.properties.miningBackendURL);
- localStorage.setItem('isCommunityManager', Session.isCommunityCurator() + '');
+ this.userManagementService.getUserInfo(this.properties.userInfoUrl).subscribe(user => {
+ this.user = user;
+ this.checkLogin = true;
+ if (this.user) {
+ localStorage.setItem('user_id', this.user.id);
+ localStorage.setItem('mining_backend_address', this.properties.miningBackendURL);
+ localStorage.setItem('isCommunityManager', Session.isCommunityCurator(this.user) + '');
- this.isPortalAdministrator = Session.isPortalAdministrator();
- }
- this._communitiesService.updateCommunities(this.properties, this.properties.communityAPI + 'communities');
- this.route.queryParams.subscribe(params => {
+ this.isPortalAdministrator = Session.isPortalAdministrator(this.user);
+ }
+ this._communitiesService.updateCommunities(this.properties, this.properties.communityAPI + 'communities');
+ this.route.queryParams.subscribe(params => {
this.communityId = (params['communityId']) ? params['communityId'] : '';
this.communityType = null;
@@ -77,7 +84,7 @@ export class AppComponent implements OnInit{
this._communitiesService.getCommunitiesState().subscribe(
communities => {
// this.community = community;
- if(!communities || communities.length === 0) {
+ if (!communities || communities.length === 0) {
return;
}
this.userMenuItems = [];
@@ -85,11 +92,11 @@ export class AppComponent implements OnInit{
let index_managerOfCommunity = null;
for (let i = 0; i < communities.length; i++) {
const com = communities[i];
- if (Session.isPortalAdministrator() || Session.isCommunityCurator()) {
+ if (Session.isPortalAdministrator(this.user) || Session.isCommunityCurator(this.user)) {
this.userMenuItems.push(new MenuItem('manage' + com.communityId, 'Manage ' + ((com.shortTitle) ? com.shortTitle : com.title), '', '/dashboard', false, [], [], {communityId: com.communityId}));
} else {
for (const manager of com.managers) {
- if (manager == Session.getUserEmail()) {
+ if (this.user && manager == this.user.email) {
countCommunities++;
index_managerOfCommunity = i;
this.userMenuItems.push(new MenuItem('manage' + com.communityId, 'Manage ' + ((com.shortTitle) ? com.shortTitle : com.title), '', '/dashboard', false, [], [], {communityId: com.communityId}));
@@ -130,7 +137,7 @@ export class AppComponent implements OnInit{
if (this.communityId) {
this.userMenuItems.push(new MenuItem('manage-user-notifications', 'Manage notification settings', '', '/manage-user-notifications', false, [], [], {communityId: this.communityId}));
this.userMenuItems.push(new MenuItem('personal', 'Manage Personal Info', '', '/personal', false, [], [], {communityId: this.communityId}));
- this.userMenuItems.push(new MenuItem("","Support","https://openaire-connect.d4science.org/group/openaire-connect-gateway/explore?siteId=172366611","",false,[],[],{}))
+ this.userMenuItems.push(new MenuItem('', 'Support', 'https://openaire-connect.d4science.org/group/openaire-connect-gateway/explore?siteId=172366611', '', false, [], [], {}));
}
this.showMenu = true;
this.buildSideBar();
@@ -146,6 +153,7 @@ export class AppComponent implements OnInit{
}
}
);
+ });
});
});
}
@@ -185,19 +193,19 @@ export class AppComponent implements OnInit{
}
);
this.sideMenuItems.push(adminTools);
- this.sideMenuItems.push( {
+ this.sideMenuItems.push({
rootItem: new MenuItem('communities', 'Manage Communities', '/',
'/', false, [], [], null),
items: [],
ukIcon: 'cog'
});
- this.sideMenuItems.push( {
+ this.sideMenuItems.push({
rootItem: new MenuItem('communities', 'Explore', '',
'/dashboard', false, [], [], {communityId: 'openaire'}),
items: [],
ukIcon: 'cog'
});
- this.sideMenuItems.push( {
+ this.sideMenuItems.push({
rootItem: new MenuItem('communities', 'Connect', '',
'/dashboard', false, [], [], {communityId: 'connect'}),
items: [],
@@ -362,11 +370,11 @@ export class AppComponent implements OnInit{
'/manage-subscribers', false, [], [], {communityId: this.communityId}),
items: []
});
- users.items.push( {
+ users.items.push({
rootItem: new MenuItem('personalInfo', 'Personal Info', '/personal',
'/personal', false, [], [], {communityId: this.communityId}),
items: []
- })
+ });
users.items.push({
rootItem: new MenuItem('notifications', 'Notification settings', '/manage-user-notifications',
'/manage-user-notifications', false, [], [], {communityId: this.communityId}),
diff --git a/src/app/pages/affiliations/affiliations.component.ts b/src/app/pages/affiliations/affiliations.component.ts
index 12170e3..ab3d0d0 100644
--- a/src/app/pages/affiliations/affiliations.component.ts
+++ b/src/app/pages/affiliations/affiliations.component.ts
@@ -44,8 +44,7 @@ export class AffiliationsComponent implements OnInit {
private route: ActivatedRoute,
private _router: Router,
private affiliationService: AffiliationService,
- private _helpContentService: HelpContentService,
- private utilitiesService: UtilitiesService) {
+ private _helpContentService: HelpContentService) {
}
diff --git a/src/app/pages/curator/curator.component.ts b/src/app/pages/curator/curator.component.ts
index dc76488..c0fd342 100644
--- a/src/app/pages/curator/curator.component.ts
+++ b/src/app/pages/curator/curator.component.ts
@@ -3,7 +3,7 @@ import {ActivatedRoute, Router} from '@angular/router';
import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
-import {Session} from '../../openaireLibrary/login/utils/helper.class';
+import {Session, User} from '../../openaireLibrary/login/utils/helper.class';
import {LoginErrorCodes} from '../../openaireLibrary/login/utils/guardHelper.class';
import {CuratorService} from '../../openaireLibrary/connect/curators/curator.service';
import {Curator} from '../../openaireLibrary/utils/entities/CuratorInfo';
@@ -11,6 +11,7 @@ import {HelperFunctions} from '../../openaireLibrary/utils/HelperFunctions.class
import {UtilitiesService} from '../../openaireLibrary/services/utilities.service';
import {HelpContentService} from '../../services/help-content.service';
import {AlertModal} from '../../openaireLibrary/utils/modal/alert';
+import {UserManagementService} from '../../openaireLibrary/services/user-management.service';
@Component({
selector: 'curator',
@@ -34,9 +35,10 @@ export class CuratorComponent implements OnInit {
public curator: Curator = null;
public photo: any = null;
public properties: EnvProperties = null;
+ public user: User;
private file: File = null;
- private maxsize: number = 200*1024;
+ private maxsize: number = 200 * 1024;
public enabled = true;
private deletePhoto = false;
@@ -47,7 +49,8 @@ export class CuratorComponent implements OnInit {
private _router: Router,
private curatorService: CuratorService,
private utilitiesService: UtilitiesService,
- private helpContentService: HelpContentService) {
+ private helpContentService: HelpContentService,
+ private userManagementService: UserManagementService) {
}
@@ -63,39 +66,42 @@ export class CuratorComponent implements OnInit {
this.communityId = params['communityId'];
this.showLoading = true;
this.updateErrorMessage = '';
- this.curatorId = Session.getUser().id;
- this.curatorService.getCurator(this.properties,
- this.properties.adminToolsAPIURL + 'curator/' + this.curatorId).subscribe(
- curator => {
- if (curator && Object.keys(curator).length > 0) {
- this.curator = curator;
- this.curator.email = Session.getUserEmail();
- if (this.curator.photo && this.curator.photo !== '') {
- this.photo = this.properties.utilsService + '/download/' + this.curator.photo;
+ this.userManagementService.getUserInfo(this.properties.userInfoUrl).subscribe(user => {
+ this.user = user;
+ this.curatorId = this.user.id;
+ this.curatorService.getCurator(this.properties,
+ this.properties.adminToolsAPIURL + 'curator/' + this.curatorId).subscribe(
+ curator => {
+ if (curator && Object.keys(curator).length > 0) {
+ this.curator = curator;
+ this.curator.email = this.user.email;
+ if (this.curator.photo && this.curator.photo !== '') {
+ this.photo = this.properties.utilsService + '/download/' + this.curator.photo;
+ } else {
+ this.photo = 'assets/common-assets/curator-default.png';
+ }
+ this.curatorsPageStatus();
+ this.showLoading = false;
+ HelperFunctions.scroll();
} else {
+ this.newCurator = true;
+ this.curator = new Curator();
+ this.curator._id = this.curatorId;
+ this.curator.email = this.user.email;
+ this.curator.name = this.user.fullname;
+ this.curator.affiliations = [];
+ this.curator.bio = '';
+ this.curator.photo = null;
this.photo = 'assets/common-assets/curator-default.png';
+ this.showLoading = false;
+ HelperFunctions.scroll();
}
- this.curatorsPageStatus();
- this.showLoading = false;
- HelperFunctions.scroll();
- } else {
- this.newCurator = true;
- this.curator = new Curator();
- this.curator._id = this.curatorId;
- this.curator.email = Session.getUserEmail();
- this.curator.name = Session.getUserFullName();
- this.curator.affiliations = [];
- this.curator.bio = '';
- this.curator.photo = null;
- this.photo = 'assets/common-assets/curator-default.png';
- this.showLoading = false;
- HelperFunctions.scroll();
+ },
+ error => {
}
- },
- error => {
- }
- );
- })
+ );
+ });
+ });
}
});
@@ -116,7 +122,7 @@ export class CuratorComponent implements OnInit {
curator => {
if (curator) {
this.curator = curator;
- this.curator.email = Session.getUserEmail();
+ this.curator.email = this.user.email;
if (this.curator.photo && this.curator.photo !== '') {
this.photo = this.properties.utilsService + '/download/' + this.curator.photo;
} else {
@@ -129,8 +135,8 @@ export class CuratorComponent implements OnInit {
this.newCurator = true;
this.curator = new Curator();
this.curator._id = this.curatorId;
- this.curator.email = Session.getUserEmail();
- this.curator.name = Session.getUserFullName();
+ this.curator.email = this.user.email
+ this.curator.name = this.user.fullname;
this.curator.affiliations = [];
this.curator.bio = '';
this.curator.photo = null;
@@ -149,16 +155,16 @@ export class CuratorComponent implements OnInit {
private curatorsPageStatus() {
this.helpContentService.getCommunityFull(this.communityId, this.properties.adminToolsAPIURL).subscribe((community) => {
- for(let page of community.pages) {
- if(page['route'] === '/curators') {
+ for (let page of community.pages) {
+ if (page['route'] === '/curators') {
this.curatorsEnabled = page['isEnabled'];
- console.log(this.curatorsEnabled)
+ console.log(this.curatorsEnabled);
return;
}
}
this.curatorsEnabled = false;
- console.log(this.curatorsEnabled)
- })
+ console.log(this.curatorsEnabled);
+ });
}
private change() {
@@ -199,7 +205,7 @@ export class CuratorComponent implements OnInit {
this.handleUpdateError('You must choose a file with type: image/png or image/jpeg!', null);
this.file = null;
} else if (this.file.size > this.maxsize) {
- this.handleUpdateError("File exceeds size's limit! Maximum resolution is 256x256 pixels.", null);
+ this.handleUpdateError('File exceeds size\'s limit! Maximum resolution is 256x256 pixels.', null);
this.file = null;
} else {
this.updateErrorMessage = '';
@@ -247,7 +253,7 @@ export class CuratorComponent implements OnInit {
}
);
} else {
- if(this.deletePhoto) {
+ if (this.deletePhoto) {
this.utilitiesService.deletePhoto(this.properties.utilsService + '/delete/' + this.curator.photo).subscribe();
this.curator.photo = '';
}
@@ -262,9 +268,9 @@ export class CuratorComponent implements OnInit {
this.handleUpdateError('An error has occurred. Try again later!', error);
this.resetChange();
});
- }
}
}
+ }
}
onNameChange() {
@@ -285,7 +291,7 @@ export class CuratorComponent implements OnInit {
privacy() {
this.privacyStatement.cancelButton = false;
this.privacyStatement.okButtonText = 'Close';
- this.privacyStatement.alertTitle = 'Privacy policy statement'
+ this.privacyStatement.alertTitle = 'Privacy policy statement';
this.privacyStatement.open();
}
}
diff --git a/src/app/pages/entity/entities.component.ts b/src/app/pages/entity/entities.component.ts
index 1eba300..2d55d45 100644
--- a/src/app/pages/entity/entities.component.ts
+++ b/src/app/pages/entity/entities.component.ts
@@ -9,6 +9,7 @@ import { EnvProperties } from '../../openaireLibrary/utils/properties/env-proper
import {Session} from '../../openaireLibrary/login/utils/helper.class';
import {LoginErrorCodes} from '../../openaireLibrary/login/utils/guardHelper.class';
import {HelperFunctions} from "../../openaireLibrary/utils/HelperFunctions.class";
+import {UserManagementService} from '../../openaireLibrary/services/user-management.service';
@Component({
selector: 'entities',
@@ -55,6 +56,11 @@ export class EntitiesComponent implements OnInit {
public modalErrorMessage = '';
public isPortalAdministrator = null;
+ constructor(private element: ElementRef, private route: ActivatedRoute,
+ private _router: Router,
+ private _helpContentService: HelpContentService,
+ private userManagementService: UserManagementService) {}
+
ngOnInit() {
this.formGroup = this.formComponent.form;
this.route.data
@@ -63,18 +69,16 @@ export class EntitiesComponent implements OnInit {
this.route.queryParams.subscribe(params => {
HelperFunctions.scroll();
-
- this.selectedCommunityPid = params['communityId'];
- this.applyCommunityFilter(this.selectedCommunityPid);
- this.isPortalAdministrator = Session.isPortalAdministrator() && !this.selectedCommunityPid;
+ this.userManagementService.getUserInfo(this.properties.userInfoUrl).subscribe( user => {
+ this.selectedCommunityPid = params['communityId'];
+ this.applyCommunityFilter(this.selectedCommunityPid);
+ this.isPortalAdministrator = Session.isPortalAdministrator(user) && !this.selectedCommunityPid;
+ });
});
});
}
- constructor(private element: ElementRef, private route: ActivatedRoute,
- private _router: Router,
- private _helpContentService: HelpContentService) {}
getEntities(community_pid: string) {
if (!Session.isLoggedIn()) {
this._router.navigate(['/user-info'],
diff --git a/src/app/pages/page/pages.component.ts b/src/app/pages/page/pages.component.ts
index 5591615..64ca3c4 100644
--- a/src/app/pages/page/pages.component.ts
+++ b/src/app/pages/page/pages.component.ts
@@ -1,367 +1,372 @@
/**
* Created by stefania on 7/13/17.
*/
-import { Component, ViewChild, OnInit, ElementRef } from '@angular/core';
-import { ActivatedRoute, Router } from "@angular/router";
-import { HelpContentService } from "../../services/help-content.service";
-import { FormGroup } from "@angular/forms";
-import { PageFormComponent } from "./page-form.component";
-import { CheckPage, Page } from "../../domain/page";
-import { Community } from "../../domain/community";
-import { Entity } from "../../domain/entity";
-import { EnvProperties } from '../../openaireLibrary/utils/properties/env-properties';
+import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';
+import {ActivatedRoute, Router} from '@angular/router';
+import {HelpContentService} from '../../services/help-content.service';
+import {FormGroup} from '@angular/forms';
+import {PageFormComponent} from './page-form.component';
+import {CheckPage, Page} from '../../domain/page';
+import {Community} from '../../domain/community';
+import {Entity} from '../../domain/entity';
+import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
import {Session} from '../../openaireLibrary/login/utils/helper.class';
import {LoginErrorCodes} from '../../openaireLibrary/login/utils/guardHelper.class';
-import {HelperFunctions} from "../../openaireLibrary/utils/HelperFunctions.class";
+import {HelperFunctions} from '../../openaireLibrary/utils/HelperFunctions.class';
+import {UserManagementService} from '../../openaireLibrary/services/user-management.service';
@Component({
- selector: 'pages',
- templateUrl: './pages.component.html',
+ selector: 'pages',
+ templateUrl: './pages.component.html',
})
export class PagesComponent implements OnInit {
- @ViewChild('AlertModalSavePage') alertModalSavePage;
- @ViewChild('AlertModalUpdatePage') alertModalUpdatePage;
- @ViewChild('AlertModalDeletePages') alertModalDeletePages;
- private selectedPages: string[] = [];
+ @ViewChild('AlertModalSavePage') alertModalSavePage;
+ @ViewChild('AlertModalUpdatePage') alertModalUpdatePage;
+ @ViewChild('AlertModalDeletePages') alertModalDeletePages;
+ private selectedPages: string[] = [];
- @ViewChild(PageFormComponent)
- public formComponent : PageFormComponent;
+ @ViewChild(PageFormComponent)
+ public formComponent: PageFormComponent;
- public checkboxes : CheckPage[] = [];
+ public checkboxes: CheckPage[] = [];
- public pages : Page[] = [];
- public pageWithDivIds: string[] = [];
+ public pages: Page[] = [];
+ public pageWithDivIds: string[] = [];
- //public errorMessage: string;
+ //public errorMessage: string;
- public formGroup : FormGroup;
+ public formGroup: FormGroup;
- private searchText : RegExp = new RegExp('');
- public keyword: string = "";
+ private searchText: RegExp = new RegExp('');
+ public keyword: string = '';
- public communities: Community[] = [];
+ public communities: Community[] = [];
- public selectedCommunityPid: string;
+ public selectedCommunityPid: string;
- public pagesType: string;
- public properties:EnvProperties = null;
+ public pagesType: string;
+ public properties: EnvProperties = null;
- public showLoading: boolean = true;
- public errorMessage: string = '';
- public updateErrorMessage: string = '';
- public modalErrorMessage: string = '';
- public isPortalAdministrator = null;
+ public showLoading: boolean = true;
+ public errorMessage: string = '';
+ public updateErrorMessage: string = '';
+ public modalErrorMessage: string = '';
+ public isPortalAdministrator = null;
- ngOnInit() {
- this.formGroup = this.formComponent.form;
- this.route.data
- .subscribe((data: { envSpecific: EnvProperties }) => {
- this.properties = data.envSpecific;
+ constructor(private element: ElementRef, private route: ActivatedRoute,
+ private _router: Router, private _helpContentService: HelpContentService,
+ private userManagementService: UserManagementService) {
+ }
- this.route.queryParams.subscribe(params => {
- HelperFunctions.scroll();
+ ngOnInit() {
+ this.formGroup = this.formComponent.form;
+ this.route.data
+ .subscribe((data: { envSpecific: EnvProperties }) => {
+ this.properties = data.envSpecific;
- this.pagesType = "";
- if(params['type']) {
- this.pagesType = params['type'];
- }
+ this.route.queryParams.subscribe(params => {
+ HelperFunctions.scroll();
- this.keyword = "";
+ this.pagesType = '';
+ if (params['type']) {
+ this.pagesType = params['type'];
+ }
- this.selectedCommunityPid = params['communityId'];
- this.applyCommunityFilter(this.selectedCommunityPid);
- this.isPortalAdministrator = Session.isPortalAdministrator() && !this.selectedCommunityPid;
-
- //this.getCommunities();
- });
+ this.keyword = '';
+ this.userManagementService.getUserInfo(this.properties.userInfoUrl).subscribe( user => {
+ this.selectedCommunityPid = params['communityId'];
+ this.applyCommunityFilter(this.selectedCommunityPid);
+ this.isPortalAdministrator = Session.isPortalAdministrator(user) && !this.selectedCommunityPid;
+ });
+ //this.getCommunities();
});
- }
+ });
+ }
- constructor(private element: ElementRef, private route: ActivatedRoute, private _router: Router, private _helpContentService: HelpContentService) {}
+ getPages(community_pid: string) {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}});
+ } else {
+ this.showLoading = true;
+ this.updateErrorMessage = '';
+ this.errorMessage = '';
- getPages(community_pid: string) {
- if(!Session.isLoggedIn()){
- this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
- } else {
- this.showLoading = true;
- this.updateErrorMessage = "";
- this.errorMessage = "";
+ this.pageWithDivIds = [];
- this.pageWithDivIds = [];
-
- let parameters = "";
- if(this.pagesType) {
- parameters = "?page_type="+this.pagesType;
- }
- if(community_pid) {
- this._helpContentService.getCommunityPages(community_pid, parameters, this.properties.adminToolsAPIURL).subscribe(
- pages => {
- this.pagesReturned(pages);
- //if(!this.pagesType || this.pagesType == "link") {
- this.getPagesWithDivIds(community_pid);
- //} else {
- //this.showLoading = false;
- //}
- },
- error => this.handleError('System error retrieving pages', error)
- );
- } else {
- this._helpContentService.getPagesFull(this.properties.adminToolsAPIURL, null).subscribe(
- pages => {
- this.pagesReturned(pages);
- this.showLoading = false;
- },
- error => this.handleError('System error retrieving pages', error)
- );
- }
+ let parameters = '';
+ if (this.pagesType) {
+ parameters = '?page_type=' + this.pagesType;
}
- }
-
- getPagesWithDivIds(community_pid: string) {
- if(!Session.isLoggedIn()){
- this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
- } else {
- this._helpContentService.getPagesWithDivIds(community_pid, this.properties.adminToolsAPIURL).subscribe(
+ if (community_pid) {
+ this._helpContentService.getCommunityPages(community_pid, parameters, this.properties.adminToolsAPIURL).subscribe(
pages => {
- this.pageWithDivIds = pages;
- this.showLoading = false;
- },
- error => this.handleError('System error retrieving information about pages\' classes', error));
+ this.pagesReturned(pages);
+ //if(!this.pagesType || this.pagesType == "link") {
+ this.getPagesWithDivIds(community_pid);
+ //} else {
+ //this.showLoading = false;
+ //}
+ },
+ error => this.handleError('System error retrieving pages', error)
+ );
+ } else {
+ this._helpContentService.getPagesFull(this.properties.adminToolsAPIURL, null).subscribe(
+ pages => {
+ this.pagesReturned(pages);
+ this.showLoading = false;
+ },
+ error => this.handleError('System error retrieving pages', error)
+ );
}
}
+ }
- pagesReturned(pages: Page[]) {
- this.pages = pages;
- this.checkboxes = [];
-
- if(pages) {
- pages.forEach(_ => {
- this.checkboxes.push(
{page : _, checked : false});
- });
- }
- }
-/*
- getCommunities() {
- this._helpContentService.getCommunities(this.properties.adminToolsAPIURL).subscribe(
- communities => {
- this.communities = communities;
- this.selectedCommunityPid = this.communities[0].pid;
- this.getPages(this.selectedCommunityPid);
- this.getPagesWithDivIds(this.selectedCommunityPid);
+ getPagesWithDivIds(community_pid: string) {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}});
+ } else {
+ this._helpContentService.getPagesWithDivIds(community_pid, this.properties.adminToolsAPIURL).subscribe(
+ pages => {
+ this.pageWithDivIds = pages;
+ this.showLoading = false;
},
- error => this.handleError('System error retrieving communities', error));
+ error => this.handleError('System error retrieving information about pages\' classes', error));
}
-*/
+ }
- public toggleCheckBoxes(event) {
- this.checkboxes.forEach(_ => _.checked = event.target.checked);
+ pagesReturned(pages: Page[]) {
+ this.pages = pages;
+ this.checkboxes = [];
+
+ if (pages) {
+ pages.forEach(_ => {
+ this.checkboxes.push({page: _, checked: false});
+ });
+ }
+ }
+
+ /*
+ getCommunities() {
+ this._helpContentService.getCommunities(this.properties.adminToolsAPIURL).subscribe(
+ communities => {
+ this.communities = communities;
+ this.selectedCommunityPid = this.communities[0].pid;
+ this.getPages(this.selectedCommunityPid);
+ this.getPagesWithDivIds(this.selectedCommunityPid);
+ },
+ error => this.handleError('System error retrieving communities', error));
+ }
+ */
+
+ public toggleCheckBoxes(event) {
+ this.checkboxes.forEach(_ => _.checked = event.target.checked);
+ }
+
+ public applyCheck(flag: boolean) {
+ this.checkboxes.forEach(_ => _.checked = flag);
+ }
+
+ public getSelectedPages(): string[] {
+ return this.checkboxes.filter(page => page.checked == true).map(checkedPage => checkedPage.page).map(res => res._id);
+ }
+
+ private deletePagesFromArray(ids: string[]): void {
+ for (let id of ids) {
+ let i = this.checkboxes.findIndex(_ => _.page._id == id);
+ this.checkboxes.splice(i, 1);
+ }
+ }
+
+ public confirmDeletePage(id: string) {
+ //this.deleteConfirmationModal.ids = [id];
+ //this.deleteConfirmationModal.showModal();
+ this.selectedPages = [id];
+ this.confirmModalOpen();
+ }
+
+ public confirmDeleteSelectedPages() {
+ //this.deleteConfirmationModal.ids = this.getSelectedPages();
+ //this.deleteConfirmationModal.showModal();
+ this.selectedPages = this.getSelectedPages();
+ this.confirmModalOpen();
+ }
+
+ private confirmModalOpen() {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}});
+ } else {
+ this.alertModalDeletePages.cancelButton = true;
+ this.alertModalDeletePages.okButton = true;
+ this.alertModalDeletePages.alertTitle = 'Delete Confirmation';
+ this.alertModalDeletePages.message = 'Are you sure you want to delete the selected page(s)?';
+ this.alertModalDeletePages.okButtonText = 'Yes';
+ this.alertModalDeletePages.open();
+ }
+ }
+
+ public confirmedDeletePages(data: any) {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}});
+ } else {
+ this.showLoading = true;
+ this.updateErrorMessage = '';
+
+ this._helpContentService.deletePages(this.selectedPages, this.properties.adminToolsAPIURL).subscribe(
+ _ => {
+ this.deletePagesFromArray(this.selectedPages);
+ this.showLoading = false;
+ },
+ error => this.handleUpdateError('System error deleting the selected pages', error)
+ );
+ }
+ }
+
+ public editPage(i: number) {
+ let page: Page = this.checkboxes[i].page;
+ this.formGroup.patchValue(page);
+ this.formComponent.setEntities(page.entities as Entity[]);
+
+ //console.info(this.formGroup.value);
+ //this.updateModal.showModal();
+ this.modalErrorMessage = '';
+ this.pagesModalOpen(this.alertModalUpdatePage, 'Update', 'Update Page');
+ }
+
+ public newPage() {
+ this.formComponent.reset();
+ this.modalErrorMessage = '';
+ this.pagesModalOpen(this.alertModalSavePage, 'Save', 'Add a new Page');
+ }
+
+ private pagesModalOpen(modal: any, title: string, yesBtn: string) {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}});
+ } else {
+ modal.cancelButton = true;
+ modal.okButton = true;
+ modal.alertTitle = title;
+ modal.okButtonText = yesBtn;
+ modal.open();
+ }
+ }
+
+ public pageSaveConfirmed(data: any) {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}});
+ } else {
+ if (!this.formGroup.valid) {
+ this.pagesModalOpen(this.alertModalSavePage, 'Save', 'Add a new Page');
+ this.modalErrorMessage = 'Please fill in all required fields marked with *';
+ } else {
+ this.modalErrorMessage = '';
+ this._helpContentService.savePage(this.formGroup.value, this.properties.adminToolsAPIURL).subscribe(
+ page => {
+ this.pageSavedSuccessfully(page);
+ },
+ error => this.handleUpdateError('System error creating page', error)
+ );
+ }
+ }
+ }
+
+ public pageUpdateConfirmed(data: any) {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}});
+ } else {
+ if (!this.formGroup.valid) {
+ this.pagesModalOpen(this.alertModalUpdatePage, 'Update', 'Update Page');
+ this.modalErrorMessage = 'Please fill in all required fields marked with *';
+ } else {
+ this._helpContentService.updatePage(this.formGroup.value, this.properties.adminToolsAPIURL).subscribe(
+ page => {
+ this.pageUpdatedSuccessfully(page);
+ },
+ error => this.handleUpdateError('System error updating page', error)
+ );
+ }
+ }
+ }
+
+ public pageSavedSuccessfully(page: Page) {
+ this.checkboxes.push({page: page, checked: false});
+ this.applyCheck(false);
+ }
+
+ public pageUpdatedSuccessfully(page: Page) {
+ this.checkboxes.find(checkItem => checkItem.page._id == page._id).page = page;
+ this.applyCheck(false);
+ }
+
+ public filterBySearch(text: string) {
+ this.searchText = new RegExp(text, 'i');
+ this.applyFilter();
+ }
+
+ public applyFilter() {
+ this.checkboxes = [];
+ this.pages.filter(item => this.filterPages(item)).forEach(
+ _ => this.checkboxes.push({page: _, checked: false})
+ );
+ }
+
+ public filterPages(page: Page): boolean {
+ let textFlag = this.searchText.toString() == '' || (page.route + ' ' + page.name).match(this.searchText) != null;
+ return textFlag;
+ }
+
+ handleError(message: string, error) {
+ // if(error == null) {
+ // this.formComponent.reset();
+ // } else {
+ this.errorMessage = message;// + ' (Server responded: ' + error + ')';
+ console.log('Server responded: ' + error);
+ //}
+
+ this.showLoading = false;
+ }
+
+ handleUpdateError(message: string, error) {
+ if (error == null) {
+ this.formComponent.reset();
+ } else {
+ this.updateErrorMessage = message;// + ' (Server responded: ' + error + ')';
+ console.log('Server responded: ' + error);
}
- public applyCheck(flag : boolean) {
- this.checkboxes.forEach(_ => _.checked = flag);
- }
+ this.showLoading = false;
+ }
- public getSelectedPages() : string[] {
- return this.checkboxes.filter(page => page.checked == true).map(checkedPage => checkedPage.page).map(res => res._id);
- }
+ // public filterByCommunity(event: any) {
+ // this.selectedCommunityPid = event.target.value;
+ // this.applyCommunityFilter(this.selectedCommunityPid);
+ // }
- private deletePagesFromArray(ids : string[]) : void {
- for(let id of ids) {
+ public applyCommunityFilter(community_pid: string) {
+ this.getPages(community_pid);
+ }
+
+ public togglePages(status: boolean, ids: string[]) {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}});
+ } else {
+ this.updateErrorMessage = '';
+
+ this._helpContentService.togglePages(this.selectedCommunityPid, ids, status, this.properties.adminToolsAPIURL).subscribe(
+ () => {
+ for (let id of ids) {
let i = this.checkboxes.findIndex(_ => _.page._id == id);
- this.checkboxes.splice(i, 1);
- }
+ this.checkboxes[i].page.isEnabled = status;
+ }
+ this.applyCheck(false);
+ },
+ error => this.handleUpdateError('System error changing the status of the selected page(s)', error)
+ );
}
+ }
- public confirmDeletePage(id : string) {
- //this.deleteConfirmationModal.ids = [id];
- //this.deleteConfirmationModal.showModal();
- this.selectedPages = [id];
- this.confirmModalOpen();
- }
-
- public confirmDeleteSelectedPages() {
- //this.deleteConfirmationModal.ids = this.getSelectedPages();
- //this.deleteConfirmationModal.showModal();
- this.selectedPages = this.getSelectedPages();
- this.confirmModalOpen();
- }
-
- private confirmModalOpen() {
- if(!Session.isLoggedIn()){
- this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
- } else {
- this.alertModalDeletePages.cancelButton = true;
- this.alertModalDeletePages.okButton = true;
- this.alertModalDeletePages.alertTitle = "Delete Confirmation";
- this.alertModalDeletePages.message = "Are you sure you want to delete the selected page(s)?";
- this.alertModalDeletePages.okButtonText = "Yes";
- this.alertModalDeletePages.open();
- }
- }
-
- public confirmedDeletePages(data: any) {
- if(!Session.isLoggedIn()){
- this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
- } else {
- this.showLoading = true;
- this.updateErrorMessage = "";
-
- this._helpContentService.deletePages(this.selectedPages, this.properties.adminToolsAPIURL).subscribe(
- _ => {
- this.deletePagesFromArray(this.selectedPages);
- this.showLoading = false;
- },
- error => this.handleUpdateError('System error deleting the selected pages', error)
- );
- }
- }
-
- public editPage(i : number) {
- let page : Page = this.checkboxes[i].page;
- this.formGroup.patchValue(page);
- this.formComponent.setEntities(page.entities as Entity[]);
-
- //console.info(this.formGroup.value);
- //this.updateModal.showModal();
- this.modalErrorMessage = "";
- this.pagesModalOpen(this.alertModalUpdatePage, "Update", "Update Page");
- }
-
- public newPage() {
- this.formComponent.reset();
- this.modalErrorMessage = "";
- this.pagesModalOpen(this.alertModalSavePage, "Save", "Add a new Page");
- }
-
- private pagesModalOpen(modal: any, title: string, yesBtn: string) {
- if(!Session.isLoggedIn()){
- this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
- } else {
- modal.cancelButton = true;
- modal.okButton = true;
- modal.alertTitle = title;
- modal.okButtonText = yesBtn;
- modal.open();
- }
- }
-
- public pageSaveConfirmed(data: any) {
- if(!Session.isLoggedIn()){
- this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
- } else {
- if(!this.formGroup.valid) {
- this.pagesModalOpen(this.alertModalSavePage, "Save", "Add a new Page");
- this.modalErrorMessage = "Please fill in all required fields marked with *";
- } else {
- this.modalErrorMessage = "";
- this._helpContentService.savePage( this.formGroup.value, this.properties.adminToolsAPIURL).subscribe(
- page => {
- this.pageSavedSuccessfully(page);
- },
- error => this.handleUpdateError("System error creating page", error)
- );
- }
- }
- }
-
- public pageUpdateConfirmed(data: any) {
- if(!Session.isLoggedIn()){
- this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
- } else {
- if(!this.formGroup.valid) {
- this.pagesModalOpen(this.alertModalUpdatePage, "Update", "Update Page");
- this.modalErrorMessage = "Please fill in all required fields marked with *";
- } else {
- this._helpContentService.updatePage( this.formGroup.value, this.properties.adminToolsAPIURL).subscribe(
- page => {
- this.pageUpdatedSuccessfully(page);
- },
- error => this.handleUpdateError("System error updating page", error)
- );
- }
- }
- }
-
- public pageSavedSuccessfully(page: Page) {
- this.checkboxes.push({page : page, checked : false});
- this.applyCheck(false);
- }
-
- public pageUpdatedSuccessfully(page : Page) {
- this.checkboxes.find(checkItem => checkItem.page._id==page._id).page = page;
- this.applyCheck(false);
- }
-
- public filterBySearch(text : string) {
- this.searchText = new RegExp(text,'i');
- this.applyFilter();
- }
-
- public applyFilter() {
- this.checkboxes = [];
- this.pages.filter(item => this.filterPages(item)).forEach(
- _ => this.checkboxes.push({page: _, checked: false})
- );
- }
-
- public filterPages(page : Page) : boolean {
- let textFlag = this.searchText.toString() == '' || (page.route + ' ' +page.name).match(this.searchText) != null;
- return textFlag;
- }
-
- handleError(message: string, error) {
- // if(error == null) {
- // this.formComponent.reset();
- // } else {
- this.errorMessage = message;// + ' (Server responded: ' + error + ')';
- console.log('Server responded: ' +error);
- //}
-
- this.showLoading = false;
- }
-
- handleUpdateError(message: string, error) {
- if(error == null) {
- this.formComponent.reset();
- } else {
- this.updateErrorMessage = message;// + ' (Server responded: ' + error + ')';
- console.log('Server responded: ' +error);
- }
-
- this.showLoading = false;
- }
-
- // public filterByCommunity(event: any) {
- // this.selectedCommunityPid = event.target.value;
- // this.applyCommunityFilter(this.selectedCommunityPid);
- // }
-
- public applyCommunityFilter(community_pid: string) {
- this.getPages(community_pid);
- }
-
- public togglePages(status : boolean, ids : string[]) {
- if(!Session.isLoggedIn()){
- this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl": this._router.url} });
- } else {
- this.updateErrorMessage = "";
-
- this._helpContentService.togglePages(this.selectedCommunityPid,ids,status, this.properties.adminToolsAPIURL).subscribe(
- () => {
- for(let id of ids) {
- let i = this.checkboxes.findIndex(_ => _.page._id == id);
- this.checkboxes[i].page.isEnabled=status;
- }
- this.applyCheck(false);
- },
- error => this.handleUpdateError('System error changing the status of the selected page(s)', error)
- );
- }
- }
-
- public capitalizeFirstLetter(str: string) {
- return str.charAt(0).toUpperCase() + str.slice(1);
- }
+ public capitalizeFirstLetter(str: string) {
+ return str.charAt(0).toUpperCase() + str.slice(1);
+ }
}
diff --git a/src/app/pages/usernotifications/manage-user-notifications.component.ts b/src/app/pages/usernotifications/manage-user-notifications.component.ts
index 9c3a139..46c8108 100644
--- a/src/app/pages/usernotifications/manage-user-notifications.component.ts
+++ b/src/app/pages/usernotifications/manage-user-notifications.component.ts
@@ -4,7 +4,7 @@ import {ActivatedRoute, Router} from '@angular/router';
import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
-import {Session} from '../../openaireLibrary/login/utils/helper.class';
+import {Session, User} from '../../openaireLibrary/login/utils/helper.class';
import {ManageUserNotificationsService} from './manage-user-notifications.service';
@@ -12,214 +12,221 @@ import {UserNotificationsRights} from './userNotificationsRights';
import {MailPrefsComponent} from '../../openaireLibrary/connect/userEmailPreferences/mailPrefs.component';
import {LoginErrorCodes} from '../../openaireLibrary/login/utils/guardHelper.class';
-import {HelperFunctions} from "../../openaireLibrary/utils/HelperFunctions.class";
+import {HelperFunctions} from '../../openaireLibrary/utils/HelperFunctions.class';
+import {UserManagementService} from '../../openaireLibrary/services/user-management.service';
@Component({
- selector: 'manage-user-notifications',
- templateUrl: './manage-user-notifications.component.html',
+ selector: 'manage-user-notifications',
+ templateUrl: './manage-user-notifications.component.html',
})
export class ManageUserNotificationsComponent implements OnInit {
- @Input('group')
- myForm: FormGroup;
+ @Input('group')
+ myForm: FormGroup;
- public properties: EnvProperties = null;
- public communityId = null;
- public userNotifications = null;
- public initialUserNotifications = null;
- public userEmail = null;
+ public properties: EnvProperties = null;
+ public communityId = null;
+ public userNotifications = null;
+ public initialUserNotifications = null;
+ public userEmail = null;
- public showLoading = true;
- public errorMessage = '';
- public updateErrorMessage = '';
+ public showLoading = true;
+ public errorMessage = '';
+ public updateErrorMessage = '';
- public successfulSaveMessage = '';
- public successfulResetMessage = '';
+ public successfulSaveMessage = '';
+ public successfulResetMessage = '';
- public hasChanged = false;
+ public hasChanged = false;
+ public user: User;
- @ViewChild (MailPrefsComponent) mailPrefs: MailPrefsComponent;
+ @ViewChild(MailPrefsComponent) mailPrefs: MailPrefsComponent;
- constructor (private route: ActivatedRoute, private _router: Router, public _fb: FormBuilder,
- private _manageUserNotificationsService: ManageUserNotificationsService, private element: ElementRef) {
- }
+ constructor(private route: ActivatedRoute, private _router: Router, public _fb: FormBuilder,
+ private _manageUserNotificationsService: ManageUserNotificationsService,
+ private element: ElementRef, private userManagementService: UserManagementService) {
+ }
- ngOnInit() {
- this.route.data.subscribe((data: { envSpecific: EnvProperties }) => {
- this.properties = data.envSpecific;
- this.route.queryParams.subscribe(
- communityId => {
- HelperFunctions.scroll();
+ ngOnInit() {
+ this.route.data.subscribe((data: { envSpecific: EnvProperties }) => {
+ this.properties = data.envSpecific;
+ this.route.queryParams.subscribe(
+ communityId => {
+ HelperFunctions.scroll();
+ this.communityId = communityId['communityId'];
+ if (this.communityId != null && this.communityId !== '') {
+ this.showLoading = true;
+ this.updateErrorMessage = '';
+ this.errorMessage = '';
+ this.successfulSaveMessage = '';
+ this.userManagementService.getUserInfo(this.properties.userInfoUrl).subscribe(user => {
+ this.user = user;
+ if (this.user) {
+ this.userEmail = this.user.email;
+ this._manageUserNotificationsService.getUserNotifications(
+ this.properties.adminToolsAPIURL + 'community/' + this.communityId + '/notifications', this.userEmail).subscribe(
+ userNotifications => {
+ this.initialUserNotifications = userNotifications;
+ if (this.initialUserNotifications['notifyForNewManagers'] == null ||
+ this.initialUserNotifications['notifyForNewSubscribers'] == null) {
+ this.initialUserNotifications = this.initiateUserNotifications();
+ }
- this.communityId = communityId['communityId'];
- if (this.communityId != null && this.communityId !== '') {
- this.showLoading = true;
- this.updateErrorMessage = '';
- this.errorMessage = '';
- this.successfulSaveMessage = '';
+ this.userNotifications = JSON.parse(JSON.stringify(this.initialUserNotifications));
- if (Session.getUser()) {
- this.userEmail = Session.getUserEmail();
- this._manageUserNotificationsService.getUserNotifications(
- this.properties.adminToolsAPIURL + 'community/' + this.communityId + '/notifications', this.userEmail).
- subscribe(
- userNotifications => {
- this.initialUserNotifications = userNotifications;
- if (this.initialUserNotifications['notifyForNewManagers'] == null ||
- this.initialUserNotifications['notifyForNewSubscribers'] == null) {
- this.initialUserNotifications = this.initiateUserNotifications();
- }
-
- this.userNotifications = JSON.parse(JSON.stringify( this.initialUserNotifications ));
-
- // TODO remove after final testing
- this.showLoading = false;
- },
- error => {
- if (error.status === 404) {
- this.initialUserNotifications = this.initiateUserNotifications();
- this.userNotifications = JSON.parse(JSON.stringify( this.initialUserNotifications ));
- } else {
- this.handleError('System error retrieving user notifications', error);
- }
- this.showLoading = false;
- }
- );
- }
- }
+ // TODO remove after final testing
+ this.showLoading = false;
+ },
+ error => {
+ if (error.status === 404) {
+ this.initialUserNotifications = this.initiateUserNotifications();
+ this.userNotifications = JSON.parse(JSON.stringify(this.initialUserNotifications));
+ } else {
+ this.handleError('System error retrieving user notifications', error);
+ }
+ this.showLoading = false;
+ }
+ );
}
- );
- });
- }
-
- public initiateUserNotifications(): UserNotificationsRights {
- const notificationRights: UserNotificationsRights = new UserNotificationsRights();
-
- notificationRights['notifyForNewManagers'] = true;
- notificationRights['notifyForNewSubscribers'] = true;
- notificationRights['managerEmail'] = this.userEmail;
-
- return notificationRights;
- }
-
- public updateUserNotifications() {
- if (!Session.isLoggedIn()) {
- this._router.navigate(['/user-info'],
- { queryParams: { 'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url} });
- } else {
- if (this.communityId != null && this.communityId !== '') {
- this.mailPrefs.saveNotification(0);
-
- this.successfulSaveMessage = '';
- this.showLoading = true;
- const userNotifications = this.parseUpdatedUserNotifications();
- this._manageUserNotificationsService.updateUserNotifications(
- this.properties.adminToolsAPIURL + 'community/' + this.communityId + '/notifications',
- userNotifications).subscribe(
- userNotifications => {
- this.initialUserNotifications = JSON.parse(JSON.stringify( this.userNotifications ));
- this.handleSuccessfulSave('Notification settings saved!');
- },
- error => this.handleUpdateError('System error updating user notifications', error)
- );
+ });
}
- this.resetChange();
- }
- }
+ }
+ );
+ });
+ }
- private parseUpdatedUserNotifications(): {} {
- const userNotifications = {};
+ public initiateUserNotifications(): UserNotificationsRights {
+ const notificationRights: UserNotificationsRights = new UserNotificationsRights();
- userNotifications['notifyForNewManagers'] = this.userNotifications.notifyForNewManagers;
- userNotifications['notifyForNewSubscribers'] = this.userNotifications.notifyForNewSubscribers;
+ notificationRights['notifyForNewManagers'] = true;
+ notificationRights['notifyForNewSubscribers'] = true;
+ notificationRights['managerEmail'] = this.userEmail;
- if (this.userNotifications.managerEmail) {
- userNotifications['managerEmail'] = this.userNotifications.managerEmail;
- } else {
- if (Session.getUser()) {
- userNotifications['managerEmail'] = Session.getUserEmail();
- }
- }
- return userNotifications;
- }
+ return notificationRights;
+ }
- public resetForm() {
- if (!Session.isLoggedIn()) {
- this._router.navigate(['/user-info'], {
- queryParams: { 'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url} });
- } else {
- this.mailPrefs.restoreNotification(0);
- if (this.userNotifications && this.initialUserNotifications) {
- this.successfulSaveMessage = '';
- this.showLoading = true;
- this.userNotifications = JSON.parse(JSON.stringify( this.initialUserNotifications ));
- this.showLoading = false;
- }
- this.resetChange();
- }
- }
+ public updateUserNotifications() {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'],
+ {queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}});
+ } else {
+ if (this.communityId != null && this.communityId !== '') {
+ this.mailPrefs.saveNotification(0);
- public changeValueForNewManagers(notifyForManagers: any) {
- if (!Session.isLoggedIn()) {
- this._router.navigate(['/user-info'], {
- queryParams: {' "errorCode"': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url} });
- } else {
- this.userNotifications.notifyForNewManagers = !notifyForManagers;
- this.change();
- }
- }
-
- public changeValueForNewSubscribers(notifyForSubscribers: any) {
- if (!Session.isLoggedIn()) {
- this._router.navigate(['/user-info'], {
- queryParams: { 'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url} });
- } else {
- this.userNotifications.notifyForNewSubscribers = !notifyForSubscribers;
- this.change();
- }
- }
-
- private change() {
- this.hasChanged = true;
this.successfulSaveMessage = '';
- this.successfulResetMessage = '';
+ this.showLoading = true;
+ const userNotifications = this.parseUpdatedUserNotifications();
+ this._manageUserNotificationsService.updateUserNotifications(
+ this.properties.adminToolsAPIURL + 'community/' + this.communityId + '/notifications',
+ userNotifications).subscribe(
+ userNotifications => {
+ this.initialUserNotifications = JSON.parse(JSON.stringify(this.userNotifications));
+ this.handleSuccessfulSave('Notification settings saved!');
+ },
+ error => this.handleUpdateError('System error updating user notifications', error)
+ );
+ }
+ this.resetChange();
}
+ }
- private resetChange() {
- this.hasChanged = false;
+ private parseUpdatedUserNotifications(): {} {
+ const userNotifications = {};
+
+ userNotifications['notifyForNewManagers'] = this.userNotifications.notifyForNewManagers;
+ userNotifications['notifyForNewSubscribers'] = this.userNotifications.notifyForNewSubscribers;
+
+ if (this.userNotifications.managerEmail) {
+ userNotifications['managerEmail'] = this.userNotifications.managerEmail;
+ } else {
+ if (this.user) {
+ userNotifications['managerEmail'] = this.user.email;
+ }
}
+ return userNotifications;
+ }
- public mailPrefsChanged(): boolean {
- if (!Session.isLoggedIn()) {
- this._router.navigate(['/user-info'], {
- queryParams: { 'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url} });
- } else {
- return this.mailPrefs.prefsChanged['0'];
- }
- }
-
- handleUpdateError(message: string, error) {
- this.updateErrorMessage = message;
- console.log('Server responded: ' + error);
-
+ public resetForm() {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {
+ queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}
+ });
+ } else {
+ this.mailPrefs.restoreNotification(0);
+ if (this.userNotifications && this.initialUserNotifications) {
+ this.successfulSaveMessage = '';
+ this.showLoading = true;
+ this.userNotifications = JSON.parse(JSON.stringify(this.initialUserNotifications));
this.showLoading = false;
+ }
+ this.resetChange();
}
+ }
- handleError(message: string, error) {
- this.errorMessage = message;
- console.log('Server responded: ' + error);
-
- this.showLoading = false;
+ public changeValueForNewManagers(notifyForManagers: any) {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {
+ queryParams: {' "errorCode"': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}
+ });
+ } else {
+ this.userNotifications.notifyForNewManagers = !notifyForManagers;
+ this.change();
}
+ }
- handleSuccessfulSave(message) {
- this.showLoading = false;
- this.successfulSaveMessage = message;
+ public changeValueForNewSubscribers(notifyForSubscribers: any) {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {
+ queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}
+ });
+ } else {
+ this.userNotifications.notifyForNewSubscribers = !notifyForSubscribers;
+ this.change();
}
+ }
- handleSuccessfulReset(message) {
- this.showLoading = false;
- this.successfulResetMessage = message;
+ private change() {
+ this.hasChanged = true;
+ this.successfulSaveMessage = '';
+ this.successfulResetMessage = '';
+ }
+
+ private resetChange() {
+ this.hasChanged = false;
+ }
+
+ public mailPrefsChanged(): boolean {
+ if (!Session.isLoggedIn()) {
+ this._router.navigate(['/user-info'], {
+ queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url}
+ });
+ } else {
+ return this.mailPrefs.prefsChanged['0'];
}
+ }
+
+ handleUpdateError(message: string, error) {
+ this.updateErrorMessage = message;
+ console.log('Server responded: ' + error);
+
+ this.showLoading = false;
+ }
+
+ handleError(message: string, error) {
+ this.errorMessage = message;
+ console.log('Server responded: ' + error);
+
+ this.showLoading = false;
+ }
+
+ handleSuccessfulSave(message) {
+ this.showLoading = false;
+ this.successfulSaveMessage = message;
+ }
+
+ handleSuccessfulReset(message) {
+ this.showLoading = false;
+ this.successfulResetMessage = message;
+ }
}
diff --git a/src/app/pages/wellcome/wellcome.component.ts b/src/app/pages/wellcome/wellcome.component.ts
index 16de259..14d735c 100644
--- a/src/app/pages/wellcome/wellcome.component.ts
+++ b/src/app/pages/wellcome/wellcome.component.ts
@@ -1,11 +1,12 @@
import {Component, Input, OnInit} from '@angular/core';
-import {Session} from '../../openaireLibrary/login/utils/helper.class';
+import {Session, User} from '../../openaireLibrary/login/utils/helper.class';
import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
import {ActivatedRoute} from '@angular/router';
import {EnvironmentSpecificService} from '../../openaireLibrary/utils/properties/environment-specific.service';
import {CommunitiesService} from '../../openaireLibrary/connect/communities/communities.service';
import {CommunityInfo} from '../../openaireLibrary/connect/community/communityInfo';
import {HelperFunctions} from '../../openaireLibrary/utils/HelperFunctions.class';
+import {UserManagementService} from '../../openaireLibrary/services/user-management.service';
@Component({
selector: 'wellcome',
@@ -88,8 +89,10 @@ export class WellcomeComponent implements OnInit {
properties: EnvProperties = null;
public communities: CommunityInfo[] = [];
showLoading: boolean;
+ private user: User;
- constructor(private route: ActivatedRoute, private propertiesService: EnvironmentSpecificService, private _communitiesService: CommunitiesService) {
+ constructor(private route: ActivatedRoute, private propertiesService: EnvironmentSpecificService, private _communitiesService: CommunitiesService,
+ private userManagementService: UserManagementService) {
}
ngOnInit() {
@@ -98,32 +101,35 @@ export class WellcomeComponent implements OnInit {
this.propertiesService.setEnvProperties(es);
this.properties = this.propertiesService.envSpecific;
HelperFunctions.scroll();
+ this.userManagementService.getUserInfo(this.properties.userInfoUrl).subscribe(user => {
+ this.user = user;
- //this._communitiesService.getCommunities(this.properties, this.properties.communityAPI + 'communities').subscribe(
- this._communitiesService.getCommunitiesState().subscribe(
- communities => {
- if (!communities || communities.length === 0) {
- return;
- }
- var countCommunities = 0;
- var index_managerOfCommunity = null;
- for (var i = 0; i < communities.length; i++) {
- var com = communities[i];
- if (Session.isPortalAdministrator() || Session.isCommunityCurator()) {
- this.communities.push(communities[i]);
- } else {
- for (var manager of com.managers) {
- if (manager == Session.getUserEmail()) {
- countCommunities++;
- index_managerOfCommunity = i;
- this.communities.push(communities[i]);
- break;
+ //this._communitiesService.getCommunities(this.properties, this.properties.communityAPI + 'communities').subscribe(
+ this._communitiesService.getCommunitiesState().subscribe(
+ communities => {
+ if (!communities || communities.length === 0) {
+ return;
+ }
+ var countCommunities = 0;
+ var index_managerOfCommunity = null;
+ for (var i = 0; i < communities.length; i++) {
+ var com = communities[i];
+ if (Session.isPortalAdministrator(this.user) || Session.isCommunityCurator(this.user)) {
+ this.communities.push(communities[i]);
+ } else {
+ for (var manager of com.managers) {
+ if (this.user && manager == this.user.email) {
+ countCommunities++;
+ index_managerOfCommunity = i;
+ this.communities.push(communities[i]);
+ break;
+ }
}
}
}
- }
- this.showLoading = false;
- });
+ this.showLoading = false;
+ });
+ });
});
}
}
diff --git a/src/assets/env-properties.json b/src/assets/env-properties.json
index 66180d8..b28b594 100644
--- a/src/assets/env-properties.json
+++ b/src/assets/env-properties.json
@@ -35,6 +35,8 @@
"piwikBaseUrl" :" https://analytics.openaire.eu/piwik.php?idsite=6",
"loginUrl" :"http://scoobydoo.di.uoa.gr:8080/dnet-openaire-users-1.0.0-SNAPSHOT/openid_connect_login",
+ "userInfoUrl" : "http://rudie.di.uoa.gr:8280/dnet-openaire-users-1.0.0-SNAPSHOT/api/users/getUserInfo?accessToken=",
+
"logoutUrl" :"https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=",
"cookieDomain" :".di.uoa.gr",