annotate src/app/query-state.js @ 58:3b4046e0cc02 default

Merge from ng2-table branch. d7c947909ab888c013171b8c037e4f9fab30fe57
author casties
date Wed, 29 Mar 2017 17:19:12 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
58
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
1 "use strict";
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
2 var query_step_1 = require('./query-step');
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
3 var query_mode_1 = require('./query-mode');
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
4 var QueryState = (function () {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
5 function QueryState() {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
6 this.steps = [];
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
7 }
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
8 /**
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
9 * Sets the query state from a string.
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
10 */
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
11 QueryState.prototype.setStateFromString = function (newStateString) {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
12 try {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
13 // state string is json
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
14 var newState = JSON.parse(newStateString);
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
15 // state should be list of steps
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
16 if (!Array.isArray(newState))
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
17 return;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
18 var newSteps_1 = [];
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
19 newState.forEach(function (elem) {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
20 // step is an array [mode, params]
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
21 if (!Array.isArray(elem))
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
22 return;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
23 var mode = elem[0];
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
24 // get QueryMode object
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
25 var qm = query_mode_1.getQueryModeById(mode);
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
26 var params = elem[1];
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
27 if (qm != null && params != null) {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
28 // construct QueryStep
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
29 var qs = new query_step_1.QueryStep(qm, params);
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
30 newSteps_1.push(qs);
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
31 }
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
32 });
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
33 if (newSteps_1.length > 0) {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
34 // set new state
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
35 this.steps = newSteps_1;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
36 }
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
37 }
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
38 catch (e) {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
39 console.error("Unable to set state from string: " + newStateString);
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
40 }
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
41 };
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
42 QueryState.prototype.getNumSteps = function () {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
43 return this.steps.length;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
44 };
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
45 /**
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
46 * Returns the current query state as a string.
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
47 */
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
48 QueryState.prototype.getStateAsString = function () {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
49 var stateList = this.steps.map(function (qs) { return [qs.mode.id, qs.params]; });
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
50 var stateStr = JSON.stringify(stateList);
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
51 return stateStr;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
52 };
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
53 /**
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
54 * Returns the cypher query as text for display.
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
55 */
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
56 QueryState.prototype.getQueryText = function () {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
57 var text = this.resultCypherQuery;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
58 var hasParams = false;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
59 for (var k in this.cypherQueryParams) {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
60 if (!hasParams) {
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
61 hasParams = true;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
62 text += '\n';
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
63 }
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
64 text += "[" + k + "='" + this.cypherQueryParams[k] + "'] ";
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
65 }
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
66 return text;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
67 };
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
68 return QueryState;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
69 }());
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
70 exports.QueryState = QueryState;
3b4046e0cc02 Merge from ng2-table branch.
casties
parents:
diff changeset
71 //# sourceMappingURL=query-state.js.map