Compare commits
No commits in common. "e873f5af5bfe174acafd3b5f2b15e638fda79e89" and "1a8bc43c604179d554f1389046a4de3635f7b63e" have entirely different histories.
e873f5af5b
...
1a8bc43c60
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 34 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -23,30 +23,6 @@
|
|||||||
content: "b";
|
content: "b";
|
||||||
}
|
}
|
||||||
|
|
||||||
.fm-trijntje:before {
|
|
||||||
content: "c";
|
|
||||||
}
|
|
||||||
|
|
||||||
.fm-satellite:before {
|
|
||||||
content: "d";
|
|
||||||
}
|
|
||||||
|
|
||||||
.fm-sensoterra:before {
|
|
||||||
content: "e";
|
|
||||||
}
|
|
||||||
|
|
||||||
.fm-blight:before {
|
|
||||||
content: "f";
|
|
||||||
}
|
|
||||||
|
|
||||||
.fm-agrodatacube:before {
|
|
||||||
content: "g";
|
|
||||||
}
|
|
||||||
|
|
||||||
.fm-app-menu:before {
|
|
||||||
content: "h";
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "FarmMaps";
|
font-family: "FarmMaps";
|
||||||
src: url("./FMIconFont.woff") format("woff"), /* Modern Browsers */
|
src: url("./FMIconFont.woff") format("woff"), /* Modern Browsers */
|
||||||
|
@ -60,8 +60,6 @@ export const TOGGLEMENU = '[AppCommon] ToggleMenu';
|
|||||||
|
|
||||||
export const TOGGLEACCOUNTMENU = '[AppCommon] ToggleAccountMenu';
|
export const TOGGLEACCOUNTMENU = '[AppCommon] ToggleAccountMenu';
|
||||||
|
|
||||||
export const TOGGLEAPPMENU = '[AppCommon] ToggleAppMenu';
|
|
||||||
|
|
||||||
export const SETMENUVISIBLE = '[AppCommon] SetMenuVisible';
|
export const SETMENUVISIBLE = '[AppCommon] SetMenuVisible';
|
||||||
|
|
||||||
export const ONLINE = '[AppCommon] Online';
|
export const ONLINE = '[AppCommon] Online';
|
||||||
@ -285,12 +283,6 @@ export class ToggleAccountMenu implements Action {
|
|||||||
constructor() { }
|
constructor() { }
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ToggleAppMenu implements Action {
|
|
||||||
readonly type = TOGGLEAPPMENU;
|
|
||||||
|
|
||||||
constructor() { }
|
|
||||||
}
|
|
||||||
|
|
||||||
export class SetMenuVisible implements Action {
|
export class SetMenuVisible implements Action {
|
||||||
readonly type = SETMENUVISIBLE;
|
readonly type = SETMENUVISIBLE;
|
||||||
|
|
||||||
@ -354,7 +346,6 @@ export type Actions = OpenModal
|
|||||||
| CloseAll
|
| CloseAll
|
||||||
| Online
|
| Online
|
||||||
| Offline
|
| Offline
|
||||||
| SetPageMode
|
| SetPageMode;
|
||||||
| ToggleAppMenu;
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,7 +55,6 @@ import * as commonEffects from './effects/app-common.effects';
|
|||||||
import { SecureOAuthStorage} from './shared/secureOAuthStorage';
|
import { SecureOAuthStorage} from './shared/secureOAuthStorage';
|
||||||
import { GradientComponent } from './components/gradient/gradient.component';
|
import { GradientComponent } from './components/gradient/gradient.component';
|
||||||
import { GradientSelectComponent } from './components/gradient-select/gradient-select.component';
|
import { GradientSelectComponent } from './components/gradient-select/gradient-select.component';
|
||||||
import { AppMenuComponent } from './components/app-menu/app-menu.component';
|
|
||||||
|
|
||||||
export {
|
export {
|
||||||
SafePipe,
|
SafePipe,
|
||||||
@ -127,8 +126,7 @@ export {
|
|||||||
HasClaimDirective,
|
HasClaimDirective,
|
||||||
UserMenuComponent,
|
UserMenuComponent,
|
||||||
GradientComponent,
|
GradientComponent,
|
||||||
GradientSelectComponent,
|
GradientSelectComponent
|
||||||
AppMenuComponent
|
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
NgbModule,
|
NgbModule,
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
<div>
|
|
||||||
<div (click)="toggle($event)" class="rounded-circle menu-button hidden" [ngClass]="{'hidden':!user}">
|
|
||||||
<span i18n-title title="Apps"><i class="fm fm-app-menu" aria-hidden="true"></i></span>
|
|
||||||
<div class="menu hidden" [ngClass]="{'hidden':!showMenu}">
|
|
||||||
<router-outlet name="app-menu"></router-outlet>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
|||||||
.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: 100vh;
|
|
||||||
//transition: max-height 0.2s;
|
|
||||||
overflow: hidden;
|
|
||||||
box-shadow: 0 0 20px rgba(0,0,0,.3);
|
|
||||||
position: absolute;
|
|
||||||
top: 3rem;
|
|
||||||
right:0;
|
|
||||||
background-color: #fff;
|
|
||||||
border-radius: 0.25rem;
|
|
||||||
padding: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.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;
|
|
||||||
}
|
|
@ -1,25 +0,0 @@
|
|||||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
||||||
|
|
||||||
import { AppMenuComponent } from './app-menu.component';
|
|
||||||
|
|
||||||
describe('AppMenuComponent', () => {
|
|
||||||
let component: AppMenuComponent;
|
|
||||||
let fixture: ComponentFixture<AppMenuComponent>;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
await TestBed.configureTestingModule({
|
|
||||||
declarations: [ AppMenuComponent ]
|
|
||||||
})
|
|
||||||
.compileComponents();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
fixture = TestBed.createComponent(AppMenuComponent);
|
|
||||||
component = fixture.componentInstance;
|
|
||||||
fixture.detectChanges();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should create', () => {
|
|
||||||
expect(component).toBeTruthy();
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,29 +0,0 @@
|
|||||||
import { Component, OnInit, Input } 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-app-menu',
|
|
||||||
templateUrl: './app-menu.component.html',
|
|
||||||
styleUrls: ['./app-menu.component.scss']
|
|
||||||
})
|
|
||||||
export class AppMenuComponent 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());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -31,8 +31,7 @@
|
|||||||
<fm-resumable-file-upload></fm-resumable-file-upload>
|
<fm-resumable-file-upload></fm-resumable-file-upload>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<div class="user-menu apponly">
|
<div class="user-menu apponly">
|
||||||
<fm-app-menu [user]="user|async" [showMenu]="appMenuVisible|async"></fm-app-menu>
|
<fm-user-menu [user]="user|async" [showMenu]="accountMenuVisible|async"></fm-user-menu>
|
||||||
<fm-user-menu [user]="user|async" [showMenu]="accountMenuVisible|async"></fm-user-menu>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="healthstatus-container online apponly" [ngClass]="{'online' :(isOnline|async)}">
|
<div class="healthstatus-container online apponly" [ngClass]="{'online' :(isOnline|async)}">
|
||||||
<div class="healthstatus alert alert-danger m-0" >
|
<div class="healthstatus alert alert-danger m-0" >
|
||||||
|
@ -124,8 +124,3 @@ body { background: #f1f1f1; line-height: 18px; user-select:none;font-family: Lat
|
|||||||
.online {
|
.online {
|
||||||
max-height:0em;
|
max-height:0em;
|
||||||
}
|
}
|
||||||
|
|
||||||
fm-app-menu,fm-user-menu {
|
|
||||||
display: inline-block;
|
|
||||||
margin-left: 1rem;
|
|
||||||
}
|
|
||||||
|
@ -42,7 +42,6 @@ export class AppComponent implements OnInit, OnDestroy {
|
|||||||
public routeLoading: Observable<boolean> = this.store$.select(appReducers.selectGetRouteLoading);
|
public routeLoading: Observable<boolean> = this.store$.select(appReducers.selectGetRouteLoading);
|
||||||
public menuVisible: Observable<boolean> = this.store$.select(appReducers.SelectGetMenuVisible);
|
public menuVisible: Observable<boolean> = this.store$.select(appReducers.SelectGetMenuVisible);
|
||||||
public accountMenuVisible: Observable<boolean> = this.store$.select(appReducers.SelectGetAccountMenuVisible);
|
public accountMenuVisible: Observable<boolean> = this.store$.select(appReducers.SelectGetAccountMenuVisible);
|
||||||
public appMenuVisible: Observable<boolean> = this.store$.select(appReducers.SelectGetAppMenuVisible);
|
|
||||||
public user: Observable<IUser> = this.store$.select(appReducers.SelectGetUser);
|
public user: Observable<IUser> = this.store$.select(appReducers.SelectGetUser);
|
||||||
public isPageMode: Observable<boolean> = this.store$.select(appReducers.SelectGetIsPageMode);
|
public isPageMode: Observable<boolean> = this.store$.select(appReducers.SelectGetIsPageMode);
|
||||||
@Input() showUploadProgress: boolean = true;
|
@Input() showUploadProgress: boolean = true;
|
||||||
|
@ -13,8 +13,6 @@ export class AuthCallbackComponent {
|
|||||||
oauthService$.loadDiscoveryDocument().then(() => {
|
oauthService$.loadDiscoveryDocument().then(() => {
|
||||||
oauthService$.tryLoginCodeFlow().then(() => {
|
oauthService$.tryLoginCodeFlow().then(() => {
|
||||||
router$.navigateByUrl((oauthService$.state && oauthService$.state!="")?decodeURIComponent(oauthService$.state):"");
|
router$.navigateByUrl((oauthService$.state && oauthService$.state!="")?decodeURIComponent(oauthService$.state):"");
|
||||||
}).catch(() => {
|
|
||||||
router$.navigateByUrl("/");
|
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.menu-button > span {
|
div.menu-button > span {
|
||||||
|
@ -21,7 +21,6 @@ export interface State {
|
|||||||
userPackages: IPackages,
|
userPackages: IPackages,
|
||||||
userSettingsRoot: IItem,
|
userSettingsRoot: IItem,
|
||||||
accountMenuVisible: boolean,
|
accountMenuVisible: boolean,
|
||||||
appMenuVisible: boolean,
|
|
||||||
isOnline: boolean,
|
isOnline: boolean,
|
||||||
isPageMode:boolean
|
isPageMode:boolean
|
||||||
}
|
}
|
||||||
@ -38,7 +37,6 @@ export const initialState: State = {
|
|||||||
userPackages: {},
|
userPackages: {},
|
||||||
userSettingsRoot: null,
|
userSettingsRoot: null,
|
||||||
accountMenuVisible: false,
|
accountMenuVisible: false,
|
||||||
appMenuVisible: false,
|
|
||||||
isOnline: true,
|
isOnline: true,
|
||||||
isPageMode: true
|
isPageMode: true
|
||||||
}
|
}
|
||||||
@ -97,20 +95,17 @@ export function reducer(state = initialState, action: appCommonActions.Actions )
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
case appCommonActions.TOGGLEMENU: {
|
case appCommonActions.TOGGLEMENU: {
|
||||||
return tassign(state, { menuVisible: !state.menuVisible,accountMenuVisible:!state.menuVisible?false:state.accountMenuVisible,appMenuVisible:!state.menuVisible?false:state.appMenuVisible });
|
return tassign(state, { menuVisible: !state.menuVisible,accountMenuVisible:!state.menuVisible?false:state.accountMenuVisible });
|
||||||
}
|
}
|
||||||
case appCommonActions.TOGGLEACCOUNTMENU: {
|
case appCommonActions.TOGGLEACCOUNTMENU: {
|
||||||
return tassign(state, { accountMenuVisible: !state.accountMenuVisible,appMenuVisible:false });
|
return tassign(state, { accountMenuVisible: !state.accountMenuVisible });
|
||||||
}
|
|
||||||
case appCommonActions.TOGGLEAPPMENU: {
|
|
||||||
return tassign(state, { appMenuVisible: !state.appMenuVisible,accountMenuVisible:false });
|
|
||||||
}
|
}
|
||||||
case appCommonActions.ESCAPE: {
|
case appCommonActions.ESCAPE: {
|
||||||
return tassign(state, { menuVisible: false,accountMenuVisible:false,appMenuVisible: false });
|
return tassign(state, { menuVisible: false,accountMenuVisible:false });
|
||||||
}
|
}
|
||||||
case appCommonActions.SETMENUVISIBLE: {
|
case appCommonActions.SETMENUVISIBLE: {
|
||||||
let a = action as appCommonActions.SetMenuVisible;
|
let a = action as appCommonActions.SetMenuVisible;
|
||||||
return tassign(state, { menuVisible: a.visible,accountMenuVisible:a.visible?false:state.accountMenuVisible,appMenuVisible:a.visible?false:state.appMenuVisible });
|
return tassign(state, { menuVisible: a.visible,accountMenuVisible:a.visible?false:state.accountMenuVisible });
|
||||||
}
|
}
|
||||||
case appCommonActions.INITUSERPACKAGESSUCCESS:{
|
case appCommonActions.INITUSERPACKAGESSUCCESS:{
|
||||||
let a = action as appCommonActions.InitUserPackagesSuccess;
|
let a = action as appCommonActions.InitUserPackagesSuccess;
|
||||||
@ -129,7 +124,7 @@ export function reducer(state = initialState, action: appCommonActions.Actions )
|
|||||||
return tassign(state,{user:null,initialized:false});
|
return tassign(state,{user:null,initialized:false});
|
||||||
}
|
}
|
||||||
case appCommonActions.CLOSEALL: {
|
case appCommonActions.CLOSEALL: {
|
||||||
return tassign(state,{accountMenuVisible:false,appMenuVisible:false, menuVisible:false });
|
return tassign(state,{accountMenuVisible:false,menuVisible:false });
|
||||||
}
|
}
|
||||||
case appCommonActions.ONLINE:{
|
case appCommonActions.ONLINE:{
|
||||||
return tassign(state,{isOnline:true});
|
return tassign(state,{isOnline:true});
|
||||||
@ -158,7 +153,6 @@ export const getUser = (state: State) => state.user;
|
|||||||
export const getUserPackages = (state: State) => state.userPackages;
|
export const getUserPackages = (state: State) => state.userPackages;
|
||||||
export const getUserSettingsRoot = (state: State) => state.userSettingsRoot;
|
export const getUserSettingsRoot = (state: State) => state.userSettingsRoot;
|
||||||
export const getAccountMenuVisible = (state: State) => state.accountMenuVisible;
|
export const getAccountMenuVisible = (state: State) => state.accountMenuVisible;
|
||||||
export const getAppMenuVisible = (state: State) => state.appMenuVisible;
|
|
||||||
export const getIsOnline = (state: State) => state.isOnline;
|
export const getIsOnline = (state: State) => state.isOnline;
|
||||||
export const getIsPageMode = (state: State) => state.isPageMode;
|
export const getIsPageMode = (state: State) => state.isPageMode;
|
||||||
|
|
||||||
@ -175,7 +169,6 @@ export const SelectGetUser = createSelector(selectAppCommonState,getUser);
|
|||||||
export const SelectGetUserPackages = createSelector(selectAppCommonState,getUserPackages);
|
export const SelectGetUserPackages = createSelector(selectAppCommonState,getUserPackages);
|
||||||
export const SelectGetUserSettingsRoot = createSelector(selectAppCommonState,getUserSettingsRoot);
|
export const SelectGetUserSettingsRoot = createSelector(selectAppCommonState,getUserSettingsRoot);
|
||||||
export const SelectGetAccountMenuVisible = createSelector(selectAppCommonState,getAccountMenuVisible);
|
export const SelectGetAccountMenuVisible = createSelector(selectAppCommonState,getAccountMenuVisible);
|
||||||
export const SelectGetAppMenuVisible = createSelector(selectAppCommonState,getAppMenuVisible);
|
|
||||||
export const SelectGetIsOnline = createSelector(selectAppCommonState,getIsOnline);
|
export const SelectGetIsOnline = createSelector(selectAppCommonState,getIsOnline);
|
||||||
export const SelectGetIsPageMode = createSelector(selectAppCommonState,getIsPageMode);
|
export const SelectGetIsPageMode = createSelector(selectAppCommonState,getIsPageMode);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user