[Monitor Dashboard | Trunk]: Users add fragment about tab

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@60270 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Konstantinos Triantafyllou 2021-01-18 16:51:07 +00:00
parent e664cd04d9
commit f075610e2c
3 changed files with 37 additions and 16 deletions

View File

@ -5,8 +5,8 @@
</div> </div>
<ng-template #tabs> <ng-template #tabs>
<ul class="uk-tab customTabs admin uk-flex uk-flex-center uk-flex-left@m" uk-tab> <ul class="uk-tab customTabs admin uk-flex uk-flex-center uk-flex-left@m" uk-tab>
<li [class.uk-active]="tab === 'manager'"><a (click)="changeTab('manager')"><span class="title">Managers</span></a></li> <li [class.uk-active]="tab === 'manager'"><a routerLink="./"><span class="title">Managers</span></a></li>
<li [class.uk-active]="tab === 'member'"><a (click)="changeTab('member')"><span class="title">Members</span></a></li> <li [class.uk-active]="tab === 'member'"><a routerLink="./" fragment="member"><span class="title">Members</span></a></li>
</ul> </ul>
</ng-template> </ng-template>
<role-users *ngIf="!loading && alias" [id]="alias" [type]="type" [name]="name" [link]="link" [role]="tab" [message]="messages.get(tab)" [emailComposer]="emailComposer"> <role-users *ngIf="!loading && alias" [id]="alias" [type]="type" [name]="name" [link]="link" [role]="tab" [message]="messages.get(tab)" [emailComposer]="emailComposer">

View File

@ -5,33 +5,44 @@ import {Subscriber} from "rxjs";
import {Title} from "@angular/platform-browser"; import {Title} from "@angular/platform-browser";
import {Composer} from "../openaireLibrary/utils/email/composer"; import {Composer} from "../openaireLibrary/utils/email/composer";
import {Email} from "../openaireLibrary/utils/email/email"; import {Email} from "../openaireLibrary/utils/email/email";
import {ActivatedRoute} from "@angular/router";
type Tab = 'member' | 'manager';
@Component({ @Component({
selector: 'users', selector: 'users',
templateUrl: 'users.component.html' templateUrl: 'users.component.html'
}) })
export class UsersComponent implements OnInit{ export class UsersComponent implements OnInit {
public alias: string; public alias: string;
public name: string; public name: string;
public type: string; public type: string;
public link: string; public link: string;
public loading: boolean; public loading: boolean;
public messages: Map<"member" | "manager", string> = new Map<"member"|"manager", string>(); public messages: Map<Tab, string> = new Map<Tab, string>();
public tab: "manager" | "member" = 'manager'; public tab: Tab = 'manager';
private subscription; private subscriptions = [];
public emailComposer: Function = (name, recipient, role):Email => { public emailComposer: Function = (name, recipient, role): Email => {
return Composer.composeEmailForMonitorDashboard(name, recipient, role); return Composer.composeEmailForMonitorDashboard(name, recipient, role);
} }
constructor(private stakeholderService: StakeholderService, constructor(private stakeholderService: StakeholderService,
private route: ActivatedRoute,
private title: Title) { private title: Title) {
} }
ngOnInit() { ngOnInit() {
this.loading = true; this.loading = true;
this.subscription = this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => { this.subscriptions.push(this.route.fragment.subscribe((fragment: Tab) => {
if(stakeholder) { if (this.isTab(fragment)) {
this.tab = fragment;
} else {
this.tab = 'manager';
}
}));
this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
if (stakeholder) {
this.alias = stakeholder.alias; this.alias = stakeholder.alias;
this.name = stakeholder.name; this.name = stakeholder.name;
this.title.setTitle(this.name + " | Users"); this.title.setTitle(this.name + " | Users");
@ -43,17 +54,26 @@ export class UsersComponent implements OnInit{
'where he is able to customize and manage indicators, and invite other users as members.'); 'where he is able to customize and manage indicators, and invite other users as members.');
this.loading = false; this.loading = false;
} }
}) }));
} }
ngOnDestroy() { ngOnDestroy() {
if (this.subscription instanceof Subscriber) { this.subscriptions.forEach(value => {
this.subscription.unsubscribe(); if (value instanceof Subscriber) {
} value.unsubscribe();
}
});
} }
changeTab(tab: "manager" | "member") { private isTab(tab: Tab): boolean {
this.tab = tab; switch (tab) {
case "manager":
return true;
case "member":
return true;
default:
return false;
}
} }
private getURL(id: string): string { private getURL(id: string): string {

View File

@ -6,9 +6,10 @@ import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module"; import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module"; import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
import {RoleUsersModule} from "../openaireLibrary/dashboard/users/role-users/role-users.module"; import {RoleUsersModule} from "../openaireLibrary/dashboard/users/role-users/role-users.module";
import {RouterModule} from "@angular/router";
@NgModule({ @NgModule({
imports: [CommonModule, UsersRoutingModule, LoadingModule, PageContentModule, RoleUsersModule], imports: [CommonModule, UsersRoutingModule, LoadingModule, PageContentModule, RoleUsersModule, RouterModule],
declarations: [UsersComponent], declarations: [UsersComponent],
exports: [UsersComponent], exports: [UsersComponent],
providers: [AdminDashboardGuard] providers: [AdminDashboardGuard]