Mercurial > hg > ng2-query-ismi
view src/app/query-state.ts @ 55:308c96f734c8 ng2-table
first steps to importing state from URL.
author | casties |
---|---|
date | Mon, 27 Mar 2017 14:17:55 +0200 |
parents | b65a031c4967 |
children | d7c947909ab8 |
line wrap: on
line source
import {QueryStep} from './query-step'; import {ResultType} from './result-type'; import {QueryMode, getQueryModeById} from './query-mode'; export class QueryState { public steps: QueryStep[] = []; public resultCypherQuery: string; public attributesCypherQuery: string; public outRelsCypherQuery: string; public inRelsCypherQuery: string; public cypherQueryParams: any; public results: any[]; public numResults: number; public resultTypes: string; public resultType: ResultType; public resultInfo: string; public resultAttributes: string[]; public resultRelations: any[]; public resultColumns: any[]; setStateFromString(newStateString: string) { try { // state string is json let newState = JSON.parse(newStateString); // state should be list of steps if (!Array.isArray(newState)) return; let newSteps: QueryStep[] = []; newState.forEach((elem) => { // step is an array [mode, params] if (!Array.isArray(elem)) return; let mode = elem[0]; let qm: QueryMode = getQueryModeById(mode); let params = elem[1]; if (qm != null && params != null) { let qs = new QueryStep(qm, params); newSteps.push(qs); } }); if (newSteps.length > 0) { // set state this.steps = newSteps; } } catch (e) { console.error("Unable to set state from string: "+newStateString); } } getNumSteps() { return this.steps.length; } /** * Returns the cypher query as text for display. */ getQueryText() { let text = this.resultCypherQuery; let hasParams = false; for (let k in this.cypherQueryParams) { if (!hasParams) { hasParams = true; text += '\n'; } text += `[${k}='${this.cypherQueryParams[k]}'] `; } return text; } }