From 1b19013b0abb794221053a26a406e5e42ff4ff19 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Tue, 29 Dec 2020 10:01:09 +0100 Subject: [PATCH] WIP: import mat-slide toggle --- projects/project-3/frontend/src/app/app.module.ts | 4 +++- .../map/auto-refresh/auto-refresh.component.html | 4 +++- .../map/auto-refresh/auto-refresh.component.ts | 10 ++++++++-- .../frontend/src/app/map/map.component.html | 4 ++++ .../frontend/src/app/map/map.component.ts | 14 ++++++++++++++ .../frontend/src/app/service/map.service.ts | 15 ++++++++++++++- 6 files changed, 46 insertions(+), 5 deletions(-) diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index eb91b13..d73a8f4 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -25,6 +25,7 @@ import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import {MatInputModule} from '@angular/material/input'; import {MatTableModule} from '@angular/material/table'; import {AutoRefreshComponent} from './map/auto-refresh/auto-refresh.component'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; @NgModule({ declarations: [ @@ -55,7 +56,8 @@ import {AutoRefreshComponent} from './map/auto-refresh/auto-refresh.component'; FormsModule, ReactiveFormsModule, MatInputModule, - MatTableModule + MatTableModule, + MatSlideToggleModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html index 4f5dd3b..09568c6 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html @@ -1 +1,3 @@ -

auto-refresh works!

+
+ auto refresh +
diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts index 8ea2a6c..8ec16dc 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core'; @Component({ selector: 'app-auto-refresh', @@ -6,10 +6,16 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./auto-refresh.component.scss'] }) export class AutoRefreshComponent implements OnInit { + isChecked: boolean; + @Input() isFlagActive: boolean; + @Output() sendData = new EventEmitter(); - constructor() { } + constructor() { + console.log('is Active? ' + this.isFlagActive); + } ngOnInit(): void { } + } diff --git a/projects/project-3/frontend/src/app/map/map.component.html b/projects/project-3/frontend/src/app/map/map.component.html index 721766a..7ad5bf8 100644 --- a/projects/project-3/frontend/src/app/map/map.component.html +++ b/projects/project-3/frontend/src/app/map/map.component.html @@ -2,6 +2,10 @@ Bike Stations in London + diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index 68b7d60..a8435f0 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -1,5 +1,6 @@ import {Component, OnInit} from '@angular/core'; import {MapService} from '../service/map.service'; +import {BehaviorSubject, Observable, of, Subject} from 'rxjs'; @Component({ @@ -8,11 +9,20 @@ import {MapService} from '../service/map.service'; styleUrls: ['./map.component.scss'] }) export class MapComponent implements OnInit { + isRefreshActive = false; + + constructor(private service: MapService) { + } ngOnInit(): void { this.initMapView(); + this.service.getAutoRefreshFlag().subscribe(isChecked => { + this.isRefreshActive = isChecked; + console.log(isChecked); + }); + console.log(this.isRefreshActive); } async initMapView(): Promise { @@ -21,4 +31,8 @@ export class MapComponent implements OnInit { this.service.drawHeatmap(); this.service.drawAccidents(); } + + autoRefresh(isActive: boolean): void { + this.service.setAutoRefreshFlag(isActive); + } } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index b99fb7c..041aef3 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -6,6 +6,7 @@ import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; import {PopUpService} from './pop-up.service'; import {IMapBikePoint} from './domain/map-bike-point'; +import {Observable, Subject} from 'rxjs'; const createIcon = L.icon({ @@ -19,6 +20,9 @@ const createIcon = L.icon({ providedIn: 'root' }) export class MapService { + isAutoRefreshActive: boolean; + isAutoRefreshActive$: Subject; + public map; public miniMap; bikePoints: Array = []; @@ -28,7 +32,16 @@ export class MapService { private client: HttpClient, private popUpService: PopUpService, ) { + this.isAutoRefreshActive$ = new Subject(); + } + public setAutoRefreshFlag(isActive: boolean): void { + this.isAutoRefreshActive = isActive; + this.isAutoRefreshActive$.next(isActive); + } + + public getAutoRefreshFlag(): Observable { + return this.isAutoRefreshActive$.asObservable(); } public initMap(lat: number, lon: number, zoom: number): void { @@ -42,7 +55,7 @@ export class MapService { } public initDashboardMap(lat: number, lon: number, zoom: number): void { - if(this.miniMap) { + if (this.miniMap) { this.miniMap.off(); this.miniMap.remove(); }