Project

General

Profile

« Previous | Next » 

Revision 57935

[Library| Trunk]

dashboard:
move sidebar under library
use menuItems class & add new fields needed

View differences:

layout.service.ts
1
import {Injectable} from "@angular/core";
2
import {BehaviorSubject, Observable} from "rxjs";
3
import {ActivationStart, Router} from "@angular/router";
4

  
5
@Injectable({
6
  providedIn: 'root'
7
})
8
export class LayoutService {
9

  
10
  /**
11
   * Set this to true when sidebar items are ready.
12
   */
13
  private openSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
14

  
15
  /**
16
   *  Add hasSidebar: false on data of route config, if sidebar is not needed.
17
   */
18
  private hasSidebarSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
19

  
20
  /**
21
   *  Add hasHeader: false on data of route config, if header is not needed.
22
   */
23
  private hasHeaderSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
24
  /**
25
   *  Add hasAdminMenu: false on data of route config, if header is not needed.
26
   */
27

  
28
  private _hasAdminMenuSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
29

  
30
  constructor(private router: Router) {
31
    this.router.events.subscribe(event => {
32
      if (event instanceof ActivationStart) {
33
        let data = event.snapshot.data;
34
        if (this.hasSidebarSubject.value === true &&
35
          data['hasSidebar'] !== undefined &&
36
          data['hasSidebar'] === false) {
37
          this.setHasSidebar(false);
38
        } else if (this.hasSidebarSubject.value === false) {
39
          this.setHasSidebar(true);
40
        }
41
        if (this.hasHeaderSubject.value === true &&
42
          data['hasHeader'] !== undefined &&
43
          data['hasHeader'] === false) {
44
          this.setHasHeader(false);
45
        } else if (this.hasHeaderSubject.value === false) {
46
          this.setHasHeader(true);
47
        }
48
        if (this._hasAdminMenuSubject.value === true &&
49
          data['hasAdminMenu'] !== undefined &&
50
          data['hasAdminMenu'] === false) {
51
          this.setHasAdminMenu(false);
52
        } else if (this.hasAdminMenu.value === false) {
53
          this.setHasAdminMenu(true);
54
        }
55
      }
56
    });
57
  }
58

  
59
  get open(): boolean {
60
    return this.openSubject.getValue();
61
  }
62

  
63
  setOpen(value: boolean) {
64
    this.openSubject.next(value);
65
  }
66

  
67
  get hasSidebar(): Observable<boolean> {
68
    return this.hasSidebarSubject.asObservable();
69
  }
70

  
71
  setHasSidebar(value: boolean) {
72
    this.hasSidebarSubject.next(value);
73
  }
74

  
75
  get hasHeader(): Observable<boolean> {
76
    return this.hasHeaderSubject.asObservable();
77
  }
78

  
79
  setHasHeader(value: boolean) {
80
    this.hasHeaderSubject.next(value);
81
  }
82

  
83

  
84
  get hasAdminMenu(): BehaviorSubject<boolean> {
85
    return this._hasAdminMenuSubject;
86
  }
87

  
88
  setHasAdminMenu(value: boolean) {
89
    this._hasAdminMenuSubject.next(value);
90
  }
91
}

Also available in: Unified diff