diff --git a/src/app/users/users.component.html b/src/app/users/users.component.html
index 265afc1..550c584 100644
--- a/src/app/users/users.component.html
+++ b/src/app/users/users.component.html
@@ -5,8 +5,8 @@
diff --git a/src/app/users/users.component.ts b/src/app/users/users.component.ts
index 4618e42..5619be8 100644
--- a/src/app/users/users.component.ts
+++ b/src/app/users/users.component.ts
@@ -5,33 +5,44 @@ import {Subscriber} from "rxjs";
import {Title} from "@angular/platform-browser";
import {Composer} from "../openaireLibrary/utils/email/composer";
import {Email} from "../openaireLibrary/utils/email/email";
+import {ActivatedRoute} from "@angular/router";
+
+type Tab = 'member' | 'manager';
@Component({
selector: 'users',
templateUrl: 'users.component.html'
})
-export class UsersComponent implements OnInit{
+export class UsersComponent implements OnInit {
public alias: string;
public name: string;
public type: string;
public link: string;
public loading: boolean;
- public messages: Map<"member" | "manager", string> = new Map<"member"|"manager", string>();
- public tab: "manager" | "member" = 'manager';
- private subscription;
- public emailComposer: Function = (name, recipient, role):Email => {
+ public messages: Map = new Map();
+ public tab: Tab = 'manager';
+ private subscriptions = [];
+ public emailComposer: Function = (name, recipient, role): Email => {
return Composer.composeEmailForMonitorDashboard(name, recipient, role);
}
constructor(private stakeholderService: StakeholderService,
+ private route: ActivatedRoute,
private title: Title) {
}
ngOnInit() {
this.loading = true;
- this.subscription = this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
- if(stakeholder) {
+ this.subscriptions.push(this.route.fragment.subscribe((fragment: Tab) => {
+ 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.name = stakeholder.name;
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.');
this.loading = false;
}
- })
+ }));
}
ngOnDestroy() {
- if (this.subscription instanceof Subscriber) {
- this.subscription.unsubscribe();
- }
+ this.subscriptions.forEach(value => {
+ if (value instanceof Subscriber) {
+ value.unsubscribe();
+ }
+ });
}
- changeTab(tab: "manager" | "member") {
- this.tab = tab;
+ private isTab(tab: Tab): boolean {
+ switch (tab) {
+ case "manager":
+ return true;
+ case "member":
+ return true;
+ default:
+ return false;
+ }
}
private getURL(id: string): string {
diff --git a/src/app/users/users.module.ts b/src/app/users/users.module.ts
index e03ef98..292b19a 100644
--- a/src/app/users/users.module.ts
+++ b/src/app/users/users.module.ts
@@ -6,9 +6,10 @@ import {AdminDashboardGuard} from "../utils/adminDashboard.guard";
import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module";
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
import {RoleUsersModule} from "../openaireLibrary/dashboard/users/role-users/role-users.module";
+import {RouterModule} from "@angular/router";
@NgModule({
- imports: [CommonModule, UsersRoutingModule, LoadingModule, PageContentModule, RoleUsersModule],
+ imports: [CommonModule, UsersRoutingModule, LoadingModule, PageContentModule, RoleUsersModule, RouterModule],
declarations: [UsersComponent],
exports: [UsersComponent],
providers: [AdminDashboardGuard]