AW-1959 Add global help-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:
		@@ -0,0 +1,8 @@
 | 
			
		||||
<div>
 | 
			
		||||
    <div   (click)="toggle($event)" class="rounded-circle menu-button hidden"  [ngClass]="{'hidden':!user}">
 | 
			
		||||
        <span i18n-title title="Apps"><i class="fas fa-question" aria-hidden="true"></i></span>
 | 
			
		||||
        <div class="menu hidden" [ngClass]="{'hidden':!showMenu}">                                     
 | 
			
		||||
            <router-outlet name="help-menu"></router-outlet>            
 | 
			
		||||
       </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
@@ -0,0 +1,80 @@
 | 
			
		||||
.menu-button {
 | 
			
		||||
    background-color: gray;  
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    width: 2.5em;
 | 
			
		||||
    height: 2.5em;
 | 
			
		||||
    line-height: 2.5em;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-size: 1rem;
 | 
			
		||||
    position: relative;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.menu-button > span {
 | 
			
		||||
    color:white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.menu {
 | 
			
		||||
    max-height: calc( 100vh - 4rem);
 | 
			
		||||
    //transition: max-height 0.2s;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
    box-shadow: 0 0 20px rgba(0,0,0,.3);
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    top: 3.4rem;
 | 
			
		||||
    right:0.5rem;
 | 
			
		||||
    left:0.5rem;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    border-radius: 0.25rem;
 | 
			
		||||
    padding: 0.5rem;
 | 
			
		||||
    z-index: 3;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
:host-context(.fullscreen)  .menu  {
 | 
			
		||||
    top:4em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card {      
 | 
			
		||||
    padding:0.5rem;
 | 
			
		||||
    min-width: 10rem;          
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-body {
 | 
			
		||||
    text-align: left;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hidden {
 | 
			
		||||
    max-height: 0;   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.menu.hidden {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.menu-button.hidden {
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@media screen and (min-width: 44rem)  {
 | 
			
		||||
    .menu {
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: 3rem;
 | 
			
		||||
        right:0;
 | 
			
		||||
        left: unset;
 | 
			
		||||
        max-width: 30em;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    :host-context(.fullscreen)  .menu  {
 | 
			
		||||
        top: 3rem;
 | 
			
		||||
    }
 | 
			
		||||
}    
 | 
			
		||||
 | 
			
		||||
.unread {
 | 
			
		||||
    display: block;
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top:-0.5em;
 | 
			
		||||
    right: -0.5em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.unread.hidden {
 | 
			
		||||
    display: none;
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
 | 
			
		||||
 | 
			
		||||
import { HelpMenuComponent } from './help-menu.component';
 | 
			
		||||
 | 
			
		||||
describe('HelpMenuComponent', () => {
 | 
			
		||||
  let component: HelpMenuComponent;
 | 
			
		||||
  let fixture: ComponentFixture<HelpMenuComponent>;
 | 
			
		||||
 | 
			
		||||
  beforeEach(async () => {
 | 
			
		||||
    await TestBed.configureTestingModule({
 | 
			
		||||
      declarations: [ HelpMenuComponent ]
 | 
			
		||||
    })
 | 
			
		||||
    .compileComponents();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  beforeEach(() => {
 | 
			
		||||
    fixture = TestBed.createComponent(HelpMenuComponent);
 | 
			
		||||
    component = fixture.componentInstance;
 | 
			
		||||
    fixture.detectChanges();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should create', () => {
 | 
			
		||||
    expect(component).toBeTruthy();
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
@@ -0,0 +1,28 @@
 | 
			
		||||
import { Input } from '@angular/core';
 | 
			
		||||
import { Component, OnInit } from '@angular/core';
 | 
			
		||||
 | 
			
		||||
import { IUser } from '../../models/user';
 | 
			
		||||
import {Store} from '@ngrx/store';
 | 
			
		||||
import * as appReducers from '../../reducers/app-common.reducer';
 | 
			
		||||
import * as appActions from '../../actions/app-common.actions';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'fm-help-menu',
 | 
			
		||||
  templateUrl: './help-menu.component.html',
 | 
			
		||||
  styleUrls: ['./help-menu.component.scss']
 | 
			
		||||
})
 | 
			
		||||
export class HelpMenuComponent implements OnInit {
 | 
			
		||||
  
 | 
			
		||||
  @Input() user:IUser;
 | 
			
		||||
  @Input() showMenu:boolean;
 | 
			
		||||
 | 
			
		||||
  constructor(private store: Store<appReducers.State>) { }
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  toggle(event:MouseEvent) {
 | 
			
		||||
    event.stopPropagation();
 | 
			
		||||
    this.store.dispatch(new appActions.ToggleAppMenu());
 | 
			
		||||
  } 
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user