view app/query-select.component.ts @ 6:9f5473536a98

more query generation.
author casties
date Thu, 14 Jan 2016 17:19:35 +0100
parents b06a5d61afed
children 6cd6c09032aa
line wrap: on
line source

import {Component, OnInit} from 'angular2/core';

import {QueryService} from './query.service';
import {QueryMode} from './query-mode';
import {QueryStep} from './query-step';


@Component({
    selector: 'query-select',
    template: `
        <p>Selected option: {{selectedQuery}}</p>
        <select (change)="onSelectMode($event)">
            <option *ngFor="#mode of queryModes" [value]="mode.id">
                {{mode.label}}
            </option>
        </select>
        <select (change)="onSelectOption($event)">
            <option *ngFor="#option of query2Options" [value]="option">
                {{option}}
            </option>
        </select>
        `
})
   
export class QuerySelectComponent implements OnInit { 
    public queryModes;
    public selectedMode;
    public selectedQuery = 'unknown';
    public query2Options;
    
    constructor(private _queryService: QueryService) {}
    
    ngOnInit() {
        this.setup();
    }
    
    setup() {
        this._queryService.setupIsmiObjectTypes();
        this.queryModes = this._queryService.getQueryModes();
        // select first mode
        this.selectedMode = this.queryModes[0];
        this.query2Options = this._queryService.getQueryOptions(this.selectedMode);
    }
    
    onSelectMode(event: any) {
        var selected = event.target.value;
        this.selectedMode = this.queryModes.find(mode => mode.id === selected);
        this.query2Options = this._queryService.getQueryOptions(this.selectedMode);
    }
    
    onSelectOption(event: any) {
        var selected = event.target.value;
        this.selectedQuery = selected;
        console.debug("selected option:", selected);
        var query = {'mode': this.selectedMode, 'objectType': selected};
        this._queryService.setQueryStep(0, query);    
    }
}