diff options
author | 2019-12-18 22:32:06 +0530 | |
---|---|---|
committer | 2019-12-18 22:41:02 +0530 | |
commit | 1515595ee5302e3380a65a7c7cace0905e2a38f1 (patch) | |
tree | eeb7a4cf8ef12bf762eaa025d09d2d07eb1274e9 /portal-FE-common/src/app/layout/components/header | |
parent | 89498fdaf633640c04f9179e0d1514a89f36a18e (diff) |
Added portal-FE-os project
Added portal-FE-os project and included layout components which is
having header,footer,global-serach,header-menu,search-users,sidebar,tabbar,userbar components.
Removed layout components from portal-FE-common
Issue-ID: PORTAL-795
Change-Id: I5764a851ef3b1ba701117759dac38909f129aabd
Signed-off-by: Sudarshan Kumar <sudarshan.kumar@att.com>
Diffstat (limited to 'portal-FE-common/src/app/layout/components/header')
4 files changed, 0 insertions, 458 deletions
diff --git a/portal-FE-common/src/app/layout/components/header/header.component.html b/portal-FE-common/src/app/layout/components/header/header.component.html deleted file mode 100644 index 6329f3ae..00000000 --- a/portal-FE-common/src/app/layout/components/header/header.component.html +++ /dev/null @@ -1,130 +0,0 @@ -<!-- - ============LICENSE_START========================================== - ONAP Portal - =================================================================== - Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - =================================================================== - - Unless otherwise specified, all software contained herein is licensed - under the Apache License, Version 2.0 (the "License"); - you may not use this software except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - Unless otherwise specified, all documentation contained herein is licensed - under the Creative Commons License, Attribution 4.0 Intl. (the "License"); - you may not use this documentation except in compliance with the License. - You may obtain a copy of the License at - - https://creativecommons.org/licenses/by/4.0/ - - Unless required by applicable law or agreed to in writing, documentation - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - ============LICENSE_END============================================ - - - --> - -<div style="bottom: tabBottom; display: flex; height: 100%; overflow: hidden"> - <nav class="navbar navbar-expand-lg fixed-top"> - <a class="navbar-brand" href=""> <img src="assets/images/global.logo" style="width:14%"/> Ecomp Portal</a> - <div class="header-menu-display"> - <app-header-menu></app-header-menu> - </div> - <button class="navbar-toggler" type="button" (click)="toggleSidebar()"> - <i class="icon ion-md-menu" style="color:white;"></i> - </button> - <div class="collapse navbar-collapse"> - <ul class="navbar-nav ml-auto"> - <app-global-search></app-global-search> - <li class="nav-item dropdown" ngbDropdown> - <a href="javascript:void(0)" class="nav-link" ngbDropdownToggle> - <i class="icon ion-md-bulb"></i> <b class="caret"></b><span class="sr-only"></span> - </a> - <div class="custom-dropdown-item" ngbDropdownMenu> - - <li class="dropdown-divider"></li> - </div> - </li> - <li class="nav-item dropdown" ngbDropdown> - <a href="javascript:void(0)" class="nav-link" ngbDropdownToggle> - <i class="icon ion-md-flag"></i> <b class="caret"></b><span class="sr-only"></span> - </a> - <div class="dropdown-menu-right" ngbDropdownMenu> - <a style="margin-left: 8%;" id="application-role" [routerLink]="['/recentNotifications']" - href="javascript:void(0);"> - {{ 'View All Recent Notifications' }} </a> - <li class="dropdown-divider"></li> -</div> -</li> -<li class="nav-item dropdown" ngbDropdown> - <a href="javascript:void(0)" class="nav-link" ngbDropdownToggle> - <i class="icon ion-md-person"></i> {{firstName}} <b class="caret"></b> - </a> - <div class="dropdown-menu-right" ngbDropdownMenu> -<li class="dropdown-item" style="font-weight: lighter"> - {{firstName}}, {{lastName}} -</li> -<li class="dropdown-item"> - <span class="dropdown-item-name"> {{ 'Email'}}: </span> - <div> - <span class="dropdown-item-value"> - {{loginSnippetEmail}} - </span> - </div> -</li> -<li class="dropdown-item"> - <span class="dropdown-item-name"> {{ 'User Id' }}: </span> - <div> - <span class="dropdown-item-value"> - {{loginSnippetUserid}} - </span> - </div> -</li> -<li class="dropdown-item"> - <span class="dropdown-item-name"> {{ 'Last login' }}: </span> - <div> - <span class="dropdown-item-value"> - {{lastLogin | date:'medium'}} - </span> - </div> -</li> -<li class="custom-display-item"> - <a (click)="getUserApplicationRoles()" href="javascript:void(0);"><span><i class="icon ion-md-add-circle-outline" - [ngClass]="{true: 'icon ion-md-add-circle-outline', false: 'icon ion-md-remove-circle-outline'}[ !displayUserAppRoles]"></i> - {{ 'Applications and Roles' }} </span></a> - <span class="ecomp-spinner" *ngIf="isLoading"></span> -</li> <br> -<div class="custom-display-item approles" [hidden]="!displayUserAppRoles"> - <div *ngFor="let ua of userapproles ; index as i"> - <div class="reg-userApp-value"> - <span class="dropdown-item-name">{{ua.App}}:</span> - </div> - <div *ngFor="let role of ua.Roles ; index as i" class="reg-userAppRoles-value"> - <span *ngIf="role.indexOf('global_')!=-1" id="required" style="color: Red;" visible="false"> - *</span> <span class="dropdown-item-value">{{role}}</span> - </div> - <br> - </div> -</div> -<hr> -<div id="reg-logout-div" > -<button type="button" class="btn btn-primary" (click)="allAppsLogout()"> - <i class="icon ion-md-log-out"></i> {{ 'Log Out' }} </button></div> -</div> -</li> -</ul> -</div> -</nav> -</div>
\ No newline at end of file diff --git a/portal-FE-common/src/app/layout/components/header/header.component.scss b/portal-FE-common/src/app/layout/components/header/header.component.scss deleted file mode 100644 index c1ef2a34..00000000 --- a/portal-FE-common/src/app/layout/components/header/header.component.scss +++ /dev/null @@ -1,84 +0,0 @@ -/* - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright � 2019 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the "License"); - * you may not use this software except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * ============LICENSE_END============================================ - * - * - */ -$topnav-background-color: #222; -:host { - .navbar { - background-color: $topnav-background-color; - .navbar-brand { - color: #fff; - } - .nav-item > a { - color: #999; - &:hover { - color: #fff; - } - } - } - - .dropdown-menu-right.dropdown-menu.show{ - width: 250px; - } - .dropdown-item-name { - font-weight: bold; - } - - .dropdown-item-value { - font-weight: lighter; - } - - .custom-display-item { - display: block; - width: 100%; - padding: 0.25rem 1.5rem; - clear: both; - font-weight: 400; - color: #212529; - text-align: inherit; - white-space: nowrap; - background-color: transparent; - border: 0; - } - - .custom-display-item.approles { - overflow-y: scroll; - height: 250px; - } - .header-menu-display { - width: 250px; - } -} diff --git a/portal-FE-common/src/app/layout/components/header/header.component.spec.ts b/portal-FE-common/src/app/layout/components/header/header.component.spec.ts deleted file mode 100644 index 1bcd2ffb..00000000 --- a/portal-FE-common/src/app/layout/components/header/header.component.spec.ts +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the "License"); - * you may not use this software except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * ============LICENSE_END============================================ - * - * - */ - -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { HeaderComponent } from './header.component'; - -describe('HeaderComponent', () => { - let component: HeaderComponent; - let fixture: ComponentFixture<HeaderComponent>; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ HeaderComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(HeaderComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/portal-FE-common/src/app/layout/components/header/header.component.ts b/portal-FE-common/src/app/layout/components/header/header.component.ts deleted file mode 100644 index cb6bdd31..00000000 --- a/portal-FE-common/src/app/layout/components/header/header.component.ts +++ /dev/null @@ -1,181 +0,0 @@ -/* - * ============LICENSE_START========================================== - * ONAP Portal SDK - * =================================================================== - * Copyright � 2019 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the "License"); - * you may not use this software except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * ============LICENSE_END============================================ - * - * - */ -import { Component, OnInit } from '@angular/core'; -import { Router, NavigationEnd } from '@angular/router'; -import { UserProfileService, MenusService } from 'src/app/shared/services'; -import { CookieService } from 'ngx-cookie-service'; - -@Component({ - selector: 'app-header', - templateUrl: './header.component.html', - styleUrls: ['./header.component.scss'] -}) -export class HeaderComponent implements OnInit { - public pushRightClass: string; - firstName: string; - lastName: string; - loginSnippetUserid: any; - lastLogin: number; - loginSnippetEmail: any; - userapproles: any[]; - displayUserAppRoles: any; - isLoading: boolean; - - constructor(public router: Router, private userProfileService: UserProfileService, private menusService: MenusService, private cookieService: CookieService) { - - this.router.events.subscribe(val => { - if ( - val instanceof NavigationEnd && - window.innerWidth <= 992 && - this.isToggled() - ) { - this.toggleSidebar(); - } - }); - } - - ngOnInit() { - this.pushRightClass = 'push-right'; - this.getUserInformation(); - } - - getUserInformation() { - this.userProfileService.getFunctionalMenuStaticInfo().toPromise().then((res: any) => { - if (res == null || res.firstName == null || res.firstName == '' || res.lastName == null || res.lastName == '') { - // $log.info('HeaderCtrl: failed to get all required data, trying user profile'); - this.userProfileService.getUserProfile().toPromise().then((profile: any) => { - this.firstName = profile.firstName; - this.lastName = profile.lastName; - }, (err) => { - // $log.error('Header Controller:: getUserProfile() failed: ' + err); - }); - } else { - this.firstName = res.firstName; - this.lastName = res.lastName; - this.loginSnippetEmail = res.email; - this.loginSnippetUserid = res.userId; - this.lastLogin = Date.parse(res.last_login); - } - sessionStorage.userId = res.userId; - this.menusService.getFunctionalMenuForUser().toPromise().then((jsonHeaderMenu: any) => { - // $scope.menuItems = unflatten(jsonHeaderMenu); - // $scope.megaMenuDataObject = $scope.menuItems; - }, (err) => { - // $log.error('HeaderCtrl::GetFunctionalMenuForUser: HeaderCtrl json returned: ' + err); - }); - - }, (err) => { - // $log.error('HeaderCtrl::getFunctionalMenuStaticInfo failed: ' + err); - }) - } - - // unflatten = function( array, parent, tree ){ - - // tree = typeof tree !== 'undefined' ? tree : []; - // parent = typeof parent !== 'undefined' ? parent : { menuId: null }; - // var children = _.filter( array, function(child){ return child.parentMenuId == parent.menuId; }); - - // if( !_.isEmpty( children ) ){ - // if( parent.menuId === null ){ - // tree = children; - // }else{ - // parent['children'] = children - // } - // _.each( children, function( child ){ unflatten( array, child ) } ); - // } - - // return tree; - // } - - getUserApplicationRoles() { - this.userapproles = []; - if (this.displayUserAppRoles) { - this.displayUserAppRoles = false; - } else { - this.displayUserAppRoles = true; - this.isLoading = true; - this.userProfileService.getUserAppRoles(this.loginSnippetUserid) - .subscribe((res: any) => { - this.isLoading = false; - for (var i = 0; i < res.length; i++) { - var userapprole = { - App: res[i].appName, - Roles: res[i].roleNames, - }; - this.userapproles.push(userapprole); - } - }, (err) => { - this.isLoading = false; - }); - } - } - - allAppsLogout() { - this.firstName=""; - this.lastName=""; - this.displayUserAppRoles=false; - var cookieTabs = this.cookieService.get("visInVisCookieTabs").toString; - if(cookieTabs!=null){ - for(var t in cookieTabs){ - - var url = cookieTabs[t].content; - if(url != "") { - this.menusService.logout(url); - } - } - } - // wait for individual applications to log out before the portal logout - setTimeout(function() { - window.location.href = "logout.htm"; - }, 2000); - } - - isToggled(): boolean { - const dom: Element = document.querySelector('body'); - return dom.classList.contains(this.pushRightClass); - } - - toggleSidebar() { - const dom: any = document.querySelector('body'); - dom.classList.toggle(this.pushRightClass); - } - - onLoggedout() { - localStorage.removeItem('isLoggedin'); - } -} |