Mercurial > hg > ng2-query-ismi
comparison src/app/query-state.ts @ 57:d7c947909ab8 ng2-table
renamed query-app.module to app.module. loading query from url fragment works now.
author | casties |
---|---|
date | Wed, 29 Mar 2017 17:16:10 +0200 |
parents | 308c96f734c8 |
children |
comparison
equal
deleted
inserted
replaced
56:b22e52a128a8 | 57:d7c947909ab8 |
---|---|
19 public resultAttributes: string[]; | 19 public resultAttributes: string[]; |
20 public resultRelations: any[]; | 20 public resultRelations: any[]; |
21 public resultColumns: any[]; | 21 public resultColumns: any[]; |
22 | 22 |
23 | 23 |
24 /** | |
25 * Sets the query state from a string. | |
26 */ | |
24 setStateFromString(newStateString: string) { | 27 setStateFromString(newStateString: string) { |
25 try { | 28 try { |
26 // state string is json | 29 // state string is json |
27 let newState = JSON.parse(newStateString); | 30 let newState = JSON.parse(newStateString); |
28 // state should be list of steps | 31 // state should be list of steps |
30 let newSteps: QueryStep[] = []; | 33 let newSteps: QueryStep[] = []; |
31 newState.forEach((elem) => { | 34 newState.forEach((elem) => { |
32 // step is an array [mode, params] | 35 // step is an array [mode, params] |
33 if (!Array.isArray(elem)) return; | 36 if (!Array.isArray(elem)) return; |
34 let mode = elem[0]; | 37 let mode = elem[0]; |
38 // get QueryMode object | |
35 let qm: QueryMode = getQueryModeById(mode); | 39 let qm: QueryMode = getQueryModeById(mode); |
36 let params = elem[1]; | 40 let params = elem[1]; |
37 if (qm != null && params != null) { | 41 if (qm != null && params != null) { |
42 // construct QueryStep | |
38 let qs = new QueryStep(qm, params); | 43 let qs = new QueryStep(qm, params); |
39 newSteps.push(qs); | 44 newSteps.push(qs); |
40 } | 45 } |
41 }); | 46 }); |
42 if (newSteps.length > 0) { | 47 if (newSteps.length > 0) { |
43 // set state | 48 // set new state |
44 this.steps = newSteps; | 49 this.steps = newSteps; |
45 } | 50 } |
46 } catch (e) { | 51 } catch (e) { |
47 console.error("Unable to set state from string: "+newStateString); | 52 console.error("Unable to set state from string: "+newStateString); |
48 } | 53 } |
50 | 55 |
51 getNumSteps() { | 56 getNumSteps() { |
52 return this.steps.length; | 57 return this.steps.length; |
53 } | 58 } |
54 | 59 |
60 /** | |
61 * Returns the current query state as a string. | |
62 */ | |
63 getStateAsString(): string { | |
64 let stateList = this.steps.map((qs) => [qs.mode.id, qs.params]); | |
65 let stateStr = JSON.stringify(stateList); | |
66 return stateStr; | |
67 } | |
68 | |
55 /** | 69 /** |
56 * Returns the cypher query as text for display. | 70 * Returns the cypher query as text for display. |
57 */ | 71 */ |
58 getQueryText() { | 72 getQueryText() { |
59 let text = this.resultCypherQuery; | 73 let text = this.resultCypherQuery; |