Add start of user/account menu
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
This commit is contained in:
parent
978cbdabfc
commit
c1c0bd2596
@ -31,6 +31,7 @@ import { TimespanComponent } from './components/timespan/timespan.component';
|
|||||||
import { TagInputComponent } from './components/tag-input/tag-input.component';
|
import { TagInputComponent } from './components/tag-input/tag-input.component';
|
||||||
import { MenuBackgroundComponent } from './components/menu-background/menu-background.component';
|
import { MenuBackgroundComponent } from './components/menu-background/menu-background.component';
|
||||||
import { HasPackageDirective} from './components/has-package/has-package.directive';
|
import { HasPackageDirective} from './components/has-package/has-package.directive';
|
||||||
|
import { UserMenuComponent} from './components/user-menu/user-menu.component';
|
||||||
import { Alert } from './enumerations/alert.enum';
|
import { Alert } from './enumerations/alert.enum';
|
||||||
import { IEventMessage } from './models/event.message';
|
import { IEventMessage } from './models/event.message';
|
||||||
import { IItem, Item } from './models/item';
|
import { IItem, Item } from './models/item';
|
||||||
@ -60,6 +61,7 @@ export {
|
|||||||
SidePanelComponent,
|
SidePanelComponent,
|
||||||
TimespanComponent,
|
TimespanComponent,
|
||||||
TagInputComponent,
|
TagInputComponent,
|
||||||
|
UserMenuComponent,
|
||||||
HasPackageDirective,
|
HasPackageDirective,
|
||||||
Alert,
|
Alert,
|
||||||
IEventMessage,
|
IEventMessage,
|
||||||
@ -109,7 +111,8 @@ export {
|
|||||||
TagInputComponent,
|
TagInputComponent,
|
||||||
SessionClearedComponent,
|
SessionClearedComponent,
|
||||||
MenuBackgroundComponent,
|
MenuBackgroundComponent,
|
||||||
HasPackageDirective
|
HasPackageDirective,
|
||||||
|
UserMenuComponent
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
NgbModule,
|
NgbModule,
|
||||||
@ -127,7 +130,8 @@ export {
|
|||||||
TagInputComponent,
|
TagInputComponent,
|
||||||
SessionClearedComponent,
|
SessionClearedComponent,
|
||||||
MenuBackgroundComponent,
|
MenuBackgroundComponent,
|
||||||
HasPackageDirective
|
HasPackageDirective,
|
||||||
|
UserMenuComponent
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class AppCommonModule {
|
export class AppCommonModule {
|
||||||
|
@ -23,4 +23,7 @@
|
|||||||
<ng-container *ngIf="showUploadProgress">
|
<ng-container *ngIf="showUploadProgress">
|
||||||
<fm-resumable-file-upload></fm-resumable-file-upload>
|
<fm-resumable-file-upload></fm-resumable-file-upload>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
<div class="user-menu">
|
||||||
|
<fm-user-menu [user]="user|async"></fm-user-menu>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -76,3 +76,9 @@ body { background: #f1f1f1; line-height: 18px; user-select:none;}
|
|||||||
.logo {
|
.logo {
|
||||||
margin-left: 1rem;
|
margin-left: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.user-menu {
|
||||||
|
position: absolute;
|
||||||
|
top:1em;
|
||||||
|
right:1em;
|
||||||
|
}
|
||||||
|
@ -3,6 +3,7 @@ import { Router, NavigationStart, NavigationEnd, RouteConfigLoadStart, RouteConf
|
|||||||
import { Meta, Title, MetaDefinition } from '@angular/platform-browser';import { DOCUMENT } from "@angular/common";
|
import { Meta, Title, MetaDefinition } from '@angular/platform-browser';import { DOCUMENT } from "@angular/common";
|
||||||
import { Subscription , Observable } from 'rxjs';
|
import { Subscription , Observable } from 'rxjs';
|
||||||
import { Store, Action } from '@ngrx/store';
|
import { Store, Action } from '@ngrx/store';
|
||||||
|
import { IUser } from '../../models/user';
|
||||||
|
|
||||||
//AppCommon
|
//AppCommon
|
||||||
import { IEventMessage } from '../../models/event.message';
|
import { IEventMessage } from '../../models/event.message';
|
||||||
@ -34,6 +35,7 @@ export class AppComponent implements OnInit, OnDestroy {
|
|||||||
public fullScreen: Observable<boolean>;
|
public fullScreen: Observable<boolean>;
|
||||||
public routeLoading: Observable<boolean>;
|
public routeLoading: Observable<boolean>;
|
||||||
public menuVisible: Observable<boolean>;
|
public menuVisible: Observable<boolean>;
|
||||||
|
public user:Observable<IUser>;
|
||||||
@Input() showUploadProgress: boolean =true;
|
@Input() showUploadProgress: boolean =true;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@ -88,6 +90,7 @@ export class AppComponent implements OnInit, OnDestroy {
|
|||||||
this.fullScreen = this.store.select(appReducers.selectGetFullScreen);
|
this.fullScreen = this.store.select(appReducers.selectGetFullScreen);
|
||||||
this.routeLoading = this.store.select(appReducers.selectGetRouteLoading);
|
this.routeLoading = this.store.select(appReducers.selectGetRouteLoading);
|
||||||
this.menuVisible = this.store.select(appReducers.SelectGetMenuVisible);
|
this.menuVisible = this.store.select(appReducers.SelectGetMenuVisible);
|
||||||
|
this.user = this.store.select(appReducers.SelectGetUser);
|
||||||
this.InstallRouteEventHandler();
|
this.InstallRouteEventHandler();
|
||||||
this.InstallEventServiceEventHandler();
|
this.InstallEventServiceEventHandler();
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
<div *ngIf="user">
|
||||||
|
<span class="rounded-circle menu-button" [title]="user.name">{{getLetter()}}</span>
|
||||||
|
</div>
|
@ -0,0 +1,10 @@
|
|||||||
|
.menu-button {
|
||||||
|
background-color: purple;
|
||||||
|
color:white;
|
||||||
|
display: inline-block;
|
||||||
|
width: 2.5em;
|
||||||
|
height: 2.5em;
|
||||||
|
line-height: 2.5em;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { UserMenuComponent } from './user-menu.component';
|
||||||
|
|
||||||
|
describe('UserMenuComponent', () => {
|
||||||
|
let component: UserMenuComponent;
|
||||||
|
let fixture: ComponentFixture<UserMenuComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ UserMenuComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(UserMenuComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,21 @@
|
|||||||
|
import { Component, OnInit,Input } from '@angular/core';
|
||||||
|
import { IUser } from '../../models/user';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'fm-user-menu',
|
||||||
|
templateUrl: './user-menu.component.html',
|
||||||
|
styleUrls: ['./user-menu.component.scss']
|
||||||
|
})
|
||||||
|
export class UserMenuComponent implements OnInit {
|
||||||
|
|
||||||
|
@Input() user:IUser;
|
||||||
|
|
||||||
|
constructor() { }
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
}
|
||||||
|
|
||||||
|
getLetter():string {
|
||||||
|
return this.user.name ? this.user.name.substr(0,1).toUpperCase():"";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user