Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/app/modules/core/core.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@ import { ContactComponent } from './contact/contact.component';
import { NewVisContainerComponent } from './new-vis-container/new-vis-container.component';
import { NewVisComponent } from './new-vis/new-vis.component';
import { VisFormComponent } from './vis-form/vis-form.component';
import { DownloadComponent } from './filter/download/download.component';

@NgModule({
declarations: [FilterContainerComponent, SearchComponent, SearchContainerComponent, PhenomenonComponent, NavContainerComponent, NavRightComponent, BottomBarContainerComponent, DatepickerComponent, FilterSwitcherComponent, FilterComponent, ImpressumComponent, PhenoInfoComponent, PhenoInfoModalComponent, VisContainerComponent, VisComponent, FilterContainerValuesComponent, FilterValuesComponent, DatetimeModalContainerComponent, DatetimeModalComponent, SidebarMenuComponent, SidebarMenuItemsComponent, AboutComponent, PrivacyComponent, SidebarBreadcrumbsComponent, ContactComponent, NewVisContainerComponent, NewVisComponent, VisFormComponent],
declarations: [FilterContainerComponent, SearchComponent, SearchContainerComponent, PhenomenonComponent, NavContainerComponent, NavRightComponent, BottomBarContainerComponent, DatepickerComponent, FilterSwitcherComponent, FilterComponent, ImpressumComponent, PhenoInfoComponent, PhenoInfoModalComponent, VisContainerComponent, VisComponent, FilterContainerValuesComponent, FilterValuesComponent, DatetimeModalContainerComponent, DatetimeModalComponent, SidebarMenuComponent, SidebarMenuItemsComponent, AboutComponent, PrivacyComponent, SidebarBreadcrumbsComponent, ContactComponent, NewVisContainerComponent, NewVisComponent, VisFormComponent, DownloadComponent],
imports: [
CommonModule,
RouterModule,
Expand Down
171 changes: 171 additions & 0 deletions src/app/modules/core/filter/download/download.component.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
<div class="osem-padding-small download-container">
<div class="notification is-info is-light">
<button class="delete"></button>
Primar lorem ipsum dolor sit amet, consectetur
adipiscing elit lorem ipsum dolor. <strong>Pellentesque risus mi</strong>, tempus quis placerat ut, porta nec nulla.
Vestibulum rhoncus ac ex sit amet fringilla. Nullam gravida purus diam, et dictum <a>felis venenatis</a> efficitur.
</div>
<form>

<!-- <div class="field">
<osem-datepicker [dateRange]="selectedDateRange$ | async" [dateStamp]="selectedDateStamp$ | async"
[activeTimeMode]="selectActiveTimeMode$ | async" [showDateModal]="showDateModal$ | async"
(dateChanged)="changeDateRange($event)" (toggledDateModal)="toggleDateModal($event)"></osem-datepicker>
</div> -->

<div class="field">
<label class="label">{{'MEAN' | translate}}</label>
<div class="control is-expanded">
<div class="select is-small is-fullwidth">
<select [(ngModel)]="downloadDetails.window" name="window">
<option *ngFor="let window of windows" [value]="window">{{window}}</option>
</select>
</div>
</div>
</div>

<div class="field">
<label class="label">Operationen</label>
<div class="control is-expanded">
<div class="select is-small is-fullwidth">
<select [(ngModel)]="downloadDetails.operation" name="operation">
<option *ngFor="let operation of operations" [value]="operation">{{operation}}</option>
</select>
</div>
</div>
</div>

<div class="field">
<label class="label">{{ "DOWNLOAD_SELECTSENSOR" | translate }}</label>
<div class="control is-expanded">
<div class="select is-small is-fullwidth">
<select>
<option value=""></option>
</select>
</div>
</div>
</div>

<div class="field">
<nav class="panel">
<div class="panel-heading">
<div class="panel-header">
<span class="panel-header-text">Erweitert</span>
<button class="button is-small" (click)="expand()">
<span class="icon is-small">
<i class="fa fa-plus"></i>
</span>
</button>
</div>
</div>
<div class="panel-block" *ngIf="collapsed">
<div class="options-container">
<div class="options-row">
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.lat" name="lat">
Geographische Breite
</label>
</div>
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.boxId" name="boxId">
Box ID
</label>
</div>
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.sensorType" name="sensorType">
Sensor Typ
</label>
</div>
</div>
<div class="options-row">
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.lng" name="lng">
Geographische Länge
</label>
</div>
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.boxName" name="boxName">
Name
</label>
</div>
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.sensorId" name="sensorId">
Sensor ID
</label>
</div>
</div>
<div class="options-row">
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.height" name="height">
Höhe (GPS)
</label>
</div>
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.phenomenon" name="phenomenon">
Phänomen
</label>
</div>
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.unit" name="unit">
Einheit
</label>
</div>
</div>
<div class="options-row">
<div class="option-item">
<div class="field control">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.exposure" name="exposure">
Standort
</label>
</div>
</div>
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.value" name="value">
Messwert
</label>
</div>
<div class="option-item">
<label class="checkbox">
<input type="checkbox" [(ngModel)]="downloadDetails.createdAt" name="createdAt">
Erstellt am
</label>
</div>
</div>
</div>
</div>
</nav>
</div>

<div class="field">
<label class="label">Datenformat</label>
<div class="control is-expanded">
<div class="buttons has-addons">
<button class="button grow" [ngClass]="downloadDetails.format=='csv' ? 'is-success is-selected' : ''" (click)="selectFormat('csv')">CSV</button>
<button class="button grow" [ngClass]="downloadDetails.format=='json' ? 'is-success is-selected' : ''" (click)="selectFormat('json')">JSON</button>
</div>
</div>
</div>

<div class="field is-grouped">
<div class="control is-expanded">
<a class="button is-fullwidth" (click)="download()">
<span class="icon">
<i class="fa fa-download"></i>
</span>
<span>Download</span>
</a>
</div>
</div>
</form>
</div>
32 changes: 32 additions & 0 deletions src/app/modules/core/filter/download/download.component.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
@import '../../../../../styles/variables.scss';

.download-container {
height: 75vh;
overflow: auto;
}

.panel-header {
display: flex;
}

.panel-header-text {
flex-grow: 1;
}

.options-container {
width: 100%;

.options-row {
width: 100%;
display: flex;
justify-content: space-around;

.option-item {
flex-grow: 1;
}
}
}

.grow {
flex-grow: 1;
}
25 changes: 25 additions & 0 deletions src/app/modules/core/filter/download/download.component.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { DownloadComponent } from './download.component';

describe('DownloadComponent', () => {
let component: DownloadComponent;
let fixture: ComponentFixture<DownloadComponent>;

beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ DownloadComponent ]
})
.compileComponents();
}));

beforeEach(() => {
fixture = TestBed.createComponent(DownloadComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create', () => {
expect(component).toBeTruthy();
});
});
45 changes: 45 additions & 0 deletions src/app/modules/core/filter/download/download.component.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { Component, Input, OnInit } from '@angular/core';

@Component({
selector: 'osem-download',
templateUrl: './download.component.html',
styleUrls: ['./download.component.scss']
})
export class DownloadComponent {

collapsed: boolean = false;

downloadDetails = {
window: 'raw',
operation: 'arithmeticMean',
boxId: true,
lat: true,
lng: true,
height: false,
boxName: true,
exposure: false,
unit: true,
value: true,
createdAt: true,
phenomenon: false,
sensorId: false,
sensorType: false,
format: 'csv'
};

windows = ['raw', '10m', '1h', '1d'];
operations = ['arithmeticMean', 'harmonicMean', 'geometricMean', 'min', 'max', 'mode', 'median', 'variance', 'rootMeanSquare', 'standardDeviation', 'sum'];

expand() {
this.collapsed = !this.collapsed;
}

selectFormat(format: string) {
this.downloadDetails.format = format;
}

download() {
alert(JSON.stringify(this.downloadDetails, null, 2));
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@import '../../../../../styles/variables.scss';

.filter-container {

height: 100vh;
.filter-inner {
background: var(--background-primary-full);
box-shadow: var(--box-shadow-basic);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,18 @@
<span>{{'PHENOMENA' | translate}}</span>
</a>
</li>
<li [class.is-active]="activeTab != 'phenos'">
<li [class.is-active]="activeTab === 'filter'">
<a (click)="changeActive('filter')">
<span class="icon is-small"><i class="fa fa-filter" aria-hidden="true"></i></span>
<span>{{'FILTER' | translate}}</span>
</a>
</li>
<li [class.is-active]="activeTab === 'download'">
<a (click)="changeActive('download')">
<span class="icon is-small"><i class="fa fa-download" aria-hidden="true"></i></span>
<span>{{'DATADOWNLOAD' | translate}}</span>
</a>
</li>
</ul>
<!-- <div class="minimize"
(click)="minimize()"
Expand All @@ -29,11 +35,13 @@
(infoPhenoSelected)="selectInfoPheno($event)"
(changeToggled)="toggleChange()"
></osem-phenomenon>

<osem-filter *ngIf="activeTab === 'filter'"
[filters]="filters"
[user]="user"
(filtersSet)="setFilters($event)"
>
</osem-filter>

<osem-download *ngIf="activeTab === 'download'"></osem-download>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@


.tabs li {
width: 50%;
width: 33%;
}
4 changes: 2 additions & 2 deletions src/app/modules/core/filter/filter/filter.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ <h3>{{'EXPOSURE' | translate}}</h3>

<div class="options">
<h3>{{'MODEL' | translate}}</h3>

<div clas="field" title="{{'senseBox' | translate}}">
<input (click)="toggleModel('senseBox')" class="is-checkradio is-small is-primary" id="model-sensebox" type="checkbox" name="model-sensebox" [checked]="filters.model.indexOf('senseBox') === -1 ? false : true">
<label for="model-sensebox">senseBox</label>
Expand Down Expand Up @@ -48,5 +48,5 @@ <h3>{{'BOXES' | translate}}</h3>
</div>

</div>

</div>