Project

General

Profile

1
import {Component, Input, OnInit} from '@angular/core';
2
import {Session, User} from "../../../login/utils/helper.class";
3
import {UserManagementService} from "../../../services/user-management.service";
4
import {Subscriber} from "rxjs";
5
import {ActivatedRoute} from "@angular/router";
6
import {HelperFunctions} from "../../../utils/HelperFunctions.class";
7

    
8
@Component({
9
  selector: 'admin-tabs',
10
  template: `    
11
    <ul class="uk-tab customTabs admin uk-flex uk-flex-center uk-flex-left@m">
12
      <li *ngIf="isPortalAdmin && !portal" [class.uk-active]="tab === 'portal'"><a routerLink="../portals"><span class="title">Portals</span></a></li>
13
      <li [class.uk-active]="tab === 'page'"><a  routerLink="../pages"><span class="title">Pages</span></a></li>
14
      <li [class.uk-active]="tab === 'entity'"><a  routerLink="../entities"><span class="title">Entities</span></a></li>
15
      <li  *ngIf="isPortalAdmin  && !portal" [class.uk-active]="tab === 'class'"><a routerLink="../classes"><span class="title">Classes</span></a></li>
16
    </ul>
17
  `
18
})
19
export class AdminTabsComponent implements OnInit {
20

    
21
  @Input()
22
  public type: string;
23
  @Input()
24
  portal = null;
25
  @Input()
26
  public user: User;
27
  @Input()
28
  public tab: "portal"| "page" | "entity" | "class" = 'page';
29

    
30
  private subscriptions: any[] = [];
31
  constructor(private route: ActivatedRoute, private userManagementService: UserManagementService) {
32
  }
33

    
34
  ngOnInit() {
35
    this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
36
      this.user = user;
37
    }));
38
  }
39
  ngOnDestroy(): void {
40
    this.subscriptions.forEach(value => {
41
      if (value instanceof Subscriber) {
42
        value.unsubscribe();
43
      } else if (value instanceof Function) {
44
        value();
45
      }
46
    });
47
  }
48

    
49

    
50
  public get isPortalAdmin() {
51
    return Session.isPortalAdministrator(this.user) || Session.isCurator(this.type, this.user);
52
  }
53

    
54
}
(1-1/2)