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;