connect-admin/src/app/pages/users/users-tabs.component.ts

52 lines
2.2 KiB
TypeScript

import {Component, Input, OnInit} from '@angular/core';
import {Session} from '../../openaireLibrary/login/utils/helper.class';
import {UserManagementService} from '../../openaireLibrary/services/user-management.service';
import {Subscriber} from 'rxjs';
import {ActivatedRoute} from '@angular/router';
@Component({
selector: 'users-tabs',
template: `
<ul class="uk-tab customTabs admin uk-flex uk-flex-center uk-flex-left@m" uk-tab>
<li [class.uk-active]="tab === 'managers'"><a routerLink="../managers"><span class="title">Managers</span></a></li>
<li [class.uk-active]="tab === 'members'"><a routerLink="../subscribers"><span class="title">Subscribers</span></a></li>
<li *ngIf="canManageNotifications" [class.uk-active]="tab === 'notifications'"><a routerLink="../notifications"><span
class="title">Notification settings</span></a></li>
<li [class.uk-active]="tab === 'claims'"><a routerLink="../claims"><span class="title">links</span></a></li>
<li *ngIf=" isAManager" [class.uk-active]="tab === 'personal'"><a routerLink="../personal"><span
class="title">Personal info</span></a></li>
</ul>
`
})
export class UsersTabsComponent implements OnInit {
@Input()
public type: string;
@Input()
public tab: "managers"| "members" | "notifications" | "claims" | "personal" = 'managers';
private subscriptions = [];
isAManager: boolean = false;
canManageNotifications: boolean = false;
constructor(private userManagementService: UserManagementService, private route: ActivatedRoute) {
}
ngOnInit() {
this.route.params.subscribe(params => {
if (params && params['community']) {
let communityPid = params['community'];
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
this.isAManager = Session.isManager("community", communityPid, user);
this.canManageNotifications = Session.isManager("community", communityPid, user)// || Session.isCommunityCurator(user);
}));
}
});
}
ngOnDestroy() {
this.subscriptions.forEach(value => {
if (value instanceof Subscriber) {
value.unsubscribe();
}
});
}
}