Add menu background
This commit is contained in:
parent
c52497af59
commit
d3bc921000
@ -198,9 +198,9 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit {
|
|||||||
}
|
}
|
||||||
this.stateSetCount += 1;
|
this.stateSetCount += 1;
|
||||||
});
|
});
|
||||||
// setTimeout(() => {
|
setTimeout(() => {
|
||||||
// this.map.instance.updateSize();
|
this.map.instance.updateSize();
|
||||||
// }, 500);
|
}, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSearchCollapse(event) {
|
handleSearchCollapse(event) {
|
||||||
|
@ -1,41 +1,34 @@
|
|||||||
import {NgModule} from '@angular/core';
|
import {NgModule} from '@angular/core';
|
||||||
import {RouterModule} from '@angular/router';
|
import {RouterModule} from '@angular/router';
|
||||||
|
|
||||||
import {AuthCallbackComponent} from './components/auth-callback/auth-callback.component';
|
import {AuthCallbackComponent} from './components/auth-callback/auth-callback.component';
|
||||||
import {AuthCallbackGuard} from './components/auth-callback/auth-callback.guard';
|
import {AuthCallbackGuard} from './components/auth-callback/auth-callback.guard';
|
||||||
import {FullScreenGuard} from './services/full-screen-guard.service';
|
import {NavBarGuard} from './services/nav-bar-guard.service';
|
||||||
import {SessionClearedComponent} from './components/session-cleared/session-cleared.component';
|
import {FullScreenGuard} from './services/full-screen-guard.service';
|
||||||
import {NotFoundComponent} from './components/not-found/not-found.component';
|
import {SessionClearedComponent} from './components/session-cleared/session-cleared.component';
|
||||||
|
import {NotFoundComponent} from './components/not-found/not-found.component';
|
||||||
|
|
||||||
const routes = [
|
|
||||||
{
|
const routes = [
|
||||||
path: 'cb',
|
{
|
||||||
component: AuthCallbackComponent,
|
path: 'cb',
|
||||||
canActivate: [AuthCallbackGuard],
|
component: AuthCallbackComponent,
|
||||||
},
|
canActivate: [AuthCallbackGuard],
|
||||||
{
|
},
|
||||||
path: 'loggedout',
|
{
|
||||||
component: SessionClearedComponent,
|
path: 'loggedout',
|
||||||
canActivate: [FullScreenGuard],
|
component: SessionClearedComponent,
|
||||||
},
|
canActivate: [FullScreenGuard],
|
||||||
{
|
},
|
||||||
path: '**', component: NotFoundComponent,
|
{
|
||||||
data: {
|
path: '**', component: NotFoundComponent,
|
||||||
title: '404 - Not found',
|
canActivate: [NavBarGuard]
|
||||||
meta: [{name: 'description', content: '404 - Error'}],
|
}
|
||||||
links: [],
|
];
|
||||||
// links: [
|
|
||||||
// { rel: 'canonical', href: 'http://blogs.example.com/bootstrap/something' },
|
@NgModule({
|
||||||
// { rel: 'alternate', hreflang: 'es', href: 'http://es.example.com/bootstrap-demo' }
|
imports: [RouterModule.forChild(routes)],
|
||||||
//]
|
exports: [RouterModule],
|
||||||
},
|
})
|
||||||
},
|
export class AppCommonRoutingModule {
|
||||||
];
|
}
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [RouterModule.forChild(routes)],
|
|
||||||
exports: [RouterModule],
|
|
||||||
})
|
|
||||||
export class AppCommonRoutingModule {
|
|
||||||
}
|
|
||||||
|
@ -29,6 +29,7 @@ import { NotImplementedComponent } from './components/not-implemented/not-implem
|
|||||||
import { SidePanelComponent } from './components/side-panel/side-panel.component';
|
import { SidePanelComponent } from './components/side-panel/side-panel.component';
|
||||||
import { TimespanComponent } from './components/timespan/timespan.component';
|
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 {IEventMessage } from './models/event.message';
|
import {IEventMessage } from './models/event.message';
|
||||||
import { IItem, Item } from './models/item';
|
import { IItem, Item } from './models/item';
|
||||||
import {IItemType} from './models/item.type';
|
import {IItemType} from './models/item.type';
|
||||||
@ -65,7 +66,8 @@ export {
|
|||||||
commonActions,
|
commonActions,
|
||||||
commonReducers,
|
commonReducers,
|
||||||
IAuthconfigFactory,
|
IAuthconfigFactory,
|
||||||
AuthConfigFactory
|
AuthConfigFactory,
|
||||||
|
MenuBackgroundComponent
|
||||||
};
|
};
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
@ -90,7 +92,8 @@ export {
|
|||||||
ResumableFileUploadComponent,
|
ResumableFileUploadComponent,
|
||||||
TimespanComponent,
|
TimespanComponent,
|
||||||
TagInputComponent,
|
TagInputComponent,
|
||||||
SessionClearedComponent
|
SessionClearedComponent,
|
||||||
|
MenuBackgroundComponent
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
NgbModule,
|
NgbModule,
|
||||||
@ -106,7 +109,8 @@ export {
|
|||||||
ResumableFileUploadComponent,
|
ResumableFileUploadComponent,
|
||||||
TimespanComponent,
|
TimespanComponent,
|
||||||
TagInputComponent,
|
TagInputComponent,
|
||||||
SessionClearedComponent
|
SessionClearedComponent,
|
||||||
|
MenuBackgroundComponent
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class AppCommonModule {
|
export class AppCommonModule {
|
||||||
|
@ -9,7 +9,8 @@
|
|||||||
</nav>
|
</nav>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<router-outlet></router-outlet>
|
<router-outlet></router-outlet>
|
||||||
</div>
|
</div>
|
||||||
|
<fm-menu-background [visible]="menuVisible|async"></fm-menu-background>
|
||||||
<fm-side-panel [visible]="menuVisible|async" [left]="true" class="menu" (click)="handleStopBubble($event)">
|
<fm-side-panel [visible]="menuVisible|async" [left]="true" class="menu" (click)="handleStopBubble($event)">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="body">
|
<div class="body">
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
<div class="menu-background" [ngClass]="{'show':visible}">
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,17 @@
|
|||||||
|
.menu-background {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
right:0;
|
||||||
|
bottom:0;
|
||||||
|
opacity: 0;
|
||||||
|
background-color: #000000;
|
||||||
|
transition: opacity 0s ease-out 1s;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-background.show {
|
||||||
|
pointer-events: all;
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
import { Component, OnInit,Input } from '@angular/core';
|
||||||
|
import { Store, Action } from '@ngrx/store';
|
||||||
|
import * as appReducers from '../../reducers/app-common.reducer';
|
||||||
|
import * as commonActions from '../../actions/app-common.actions';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'fm-menu-background',
|
||||||
|
templateUrl: './menu-background.component.html',
|
||||||
|
styleUrls: ['./menu-background.component.scss'],
|
||||||
|
})
|
||||||
|
export class MenuBackgroundComponent implements OnInit {
|
||||||
|
@Input() visible:boolean = false;
|
||||||
|
constructor(private store: Store<appReducers.State>) { }
|
||||||
|
|
||||||
|
ngOnInit() { }
|
||||||
|
|
||||||
|
handleOnClick(event:MouseEvent) {
|
||||||
|
if(this.visible) {
|
||||||
|
this.store.dispatch(new commonActions.SetMenuVisible(false));
|
||||||
|
event.stopPropagation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -26,7 +26,7 @@ export const initialState: State = {
|
|||||||
user:null,
|
user:null,
|
||||||
fullScreen: true,
|
fullScreen: true,
|
||||||
routeLoading: false,
|
routeLoading: false,
|
||||||
menuVisible: true
|
menuVisible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
export function reducer(state = initialState, action: appCommonActions.Actions ): State {
|
export function reducer(state = initialState, action: appCommonActions.Actions ): State {
|
||||||
|
@ -1,40 +1,46 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import {IItemTypes} from '../models/item.types'
|
import {IItemTypes} from '../models/item.types'
|
||||||
import {IItem} from '../models/item'
|
import {IItem} from '../models/item'
|
||||||
import {ItemService} from '../services/item.service';
|
import {ItemService} from '../services/item.service';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
})
|
})
|
||||||
export class ItemTypeService {
|
export class ItemTypeService {
|
||||||
public itemTypes: IItemTypes;
|
public itemTypes: IItemTypes;
|
||||||
|
|
||||||
constructor(itemService:ItemService) {
|
constructor(itemService:ItemService) {
|
||||||
itemService.getItemTypes().subscribe((itemTypes) => {
|
itemService.getItemTypes().subscribe((itemTypes) => {
|
||||||
this.itemTypes = itemTypes;
|
this.itemTypes = itemTypes;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getIcon(itemType: string) {
|
getIcon(itemType: string) {
|
||||||
var icon = "fa fa-file-o";
|
var icon = "fa fa-file-o";
|
||||||
if (this.itemTypes[itemType]) icon = this.itemTypes[itemType].icon;
|
if (this.itemTypes[itemType]) icon = this.itemTypes[itemType].icon;
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
getColor(itemType: string) {
|
getColor(itemType: string) {
|
||||||
var color = "#000000";
|
var color = "#000000";
|
||||||
if (this.itemTypes[itemType]) color = this.itemTypes[itemType].iconColor;
|
if (this.itemTypes[itemType]) color = this.itemTypes[itemType].iconColor;
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
hasViewer(item: IItem) {
|
hasViewer(item: IItem) {
|
||||||
let itemType: string = item.itemType;
|
let itemType: string = item.itemType;
|
||||||
if (this.itemTypes[itemType]) return this.itemTypes[itemType].viewer !== undefined;
|
if (this.itemTypes[itemType]) return this.itemTypes[itemType].viewer !== undefined;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
isLayer(item: IItem) {
|
hasEditor(item: IItem) {
|
||||||
let itemType: string = item.itemType;
|
let itemType: string = item.itemType;
|
||||||
return itemType == "vnd.farmmaps.itemtype.geotiff.processed" || itemType == "vnd.farmmaps.itemtype.layer" || itemType == "vnd.farmmaps.itemtype.shape.processed";
|
if (this.itemTypes[itemType]) return this.itemTypes[itemType].editor !== undefined;
|
||||||
}
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
isLayer(item: IItem) {
|
||||||
|
let itemType: string = item.itemType;
|
||||||
|
return itemType == "vnd.farmmaps.itemtype.geotiff.processed" || itemType == "vnd.farmmaps.itemtype.layer" || itemType == "vnd.farmmaps.itemtype.shape.processed";
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user