1 /* Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 # Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 # you may not use this file except in compliance with the License. #
\r
5 # You may obtain a copy of the License at #
\r
7 # http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 # Unless required by applicable law or agreed to in writing, software #
\r
10 # distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 # See the License for the specific language governing permissions and #
\r
13 # limitations under the License. #
\r
14 ##############################################################################*/
\r
17 import { Component, OnInit, ViewChild } from '@angular/core';
\r
18 import { Router, NavigationEnd } from '@angular/router';
\r
19 import { TranslateService } from '@ngx-translate/core';
\r
20 import { AuthService } from 'app/shared/services/auth.service';
\r
21 import { CookieService } from 'ngx-cookie-service';
\r
22 import { GroupService } from 'app/shared/services/group.service';
\r
23 import { UserService } from 'app/shared/services/user.service';
\r
24 //import { group } from '@angular/animations';
\r
25 import { CreateGroupModalComponent } from 'app/shared/modules/create-group-modal/create-group-modal.component';
\r
26 import { MatDialog } from '@angular/material/dialog';
\r
27 import { NavItem } from 'app/shared/components/menu-item/menu-item.component';
\r
28 import { MatMenuTrigger } from '@angular/material';
\r
32 selector: 'app-header',
\r
33 templateUrl: './header.component.html',
\r
34 styleUrls: ['./header.component.scss']
\r
37 export class HeaderComponent implements OnInit {
\r
38 pushRightClass: string = 'push-right';
\r
39 myStyle: object = {};
\r
40 myParams: object = {};
\r
41 width: number = 100;
\r
42 height: number = 100;
\r
44 public groups: Array<NavItem>;
\r
45 public selectedGroup;
\r
47 @ViewChild('goupMenuTrigger') groupMenu: MatMenuTrigger;
\r
51 private translate: TranslateService,
\r
52 public router: Router,
\r
53 private auth: AuthService,
\r
54 private cookie: CookieService,
\r
55 public _groups: GroupService,
\r
56 private user: UserService,
\r
57 private modal: MatDialog
\r
61 this.translate.addLangs(['en', 'fr', 'ur', 'es', 'it', 'fa', 'de', 'zh-CHS']);
\r
62 this.translate.setDefaultLang('en');
\r
63 const browserLang = this.translate.getBrowserLang();
\r
64 this.translate.use(browserLang.match(/en|fr|ur|es|it|fa|de|zh-CHS/) ? browserLang : 'en');
\r
67 this.router.events.subscribe(val => {
\r
69 val instanceof NavigationEnd &&
\r
70 window.innerWidth <= 992 &&
\r
73 this.toggleSidebar();
\r
77 public currentUser;// = {};
\r
84 this.currentUser = JSON.parse(this.cookie.get('currentUser'));
\r
85 this.username = this.currentUser["firstName"] + " " + this.currentUser["lastName"];
\r
89 this._groups.setUp();
\r
91 this._groups.listChange().subscribe(res => {
\r
95 // if (!window.localStorage.getItem("currentGroupId"))
\r
97 // if (!(this.currentUser.defaultGroup)){
\r
98 // let userPatch = {
\r
99 // _id : this.currentUser._id,
\r
100 // defaultGroup : this.currentUser.groups[0].groupId,
\r
101 // defaultGroupEnabled: false
\r
104 // this.user.patch(userPatch).subscribe((res) => {
\r
105 // console.log(res)
\r
106 // console.log("Created first default group for user. Default group has been added!")
\r
112 // this._groups.setGroup({_id: this.currentUser.defaultGroup})
\r
117 //this._groups.setUp();
\r
119 this._groups.listChange().subscribe(res => {
\r
120 res = this._groups.format(res);
\r
122 this.setNavFields(res);
\r
123 this.groups = res as Array<NavItem>;
\r
126 this._groups.groupChange().subscribe(res => {
\r
128 this.selectedGroup = res;
\r
133 setNavFields(groups){
\r
134 groups.forEach((elem, val) => {
\r
135 groups[val].displayName = elem.groupName;
\r
136 this.setNavFields(groups[val].children);
\r
144 changeGroup(group) {
\r
145 this.groupMenu.closeMenu();
\r
146 // Patch to add update Default Group
\r
148 // If the Default Group Enabled does not exist (users havent saved a default group)
\r
149 if (!this.currentUser.defaultGroupEnabled)
\r
152 _id : this.currentUser._id,
\r
153 defaultGroup: group._id
\r
156 this.user.patch(userPatch).subscribe((res) =>{
\r
161 // If the default Group Enabled exists (Users saved a default group)
\r
164 //Take the default group from the user input
\r
169 this._groups.setGroup(group);
\r
174 this.modal.open(CreateGroupModalComponent, {
\r
176 }).afterClosed().subscribe((result) => {
\r
178 this.groups.push(result);
\r
183 isToggled(): boolean {
\r
184 const dom: Element = document.querySelector('body');
\r
185 return dom.classList.contains(this.pushRightClass);
\r
189 const dom: any = document.querySelector('body');
\r
190 dom.classList.toggle(this.pushRightClass);
\r
194 const dom: any = document.querySelector('body');
\r
195 dom.classList.toggle('rtl');
\r
199 this.auth.logout();
\r
202 changeLang(language: string) {
\r
203 this.translate.use(language);
\r