Commit 3b5f486864864c74939b36bf741a67617fe6d4bc
1 parent
4cbf1380
co-datalets-creator
Showing
4 changed files
with
435 additions
and
6 deletions
controllets/data-sevc-controllet/co-datalets-creator-controllet.html
@@ -40,7 +40,6 @@ | @@ -40,7 +40,6 @@ | ||
40 | 40 | ||
41 | listeners : { | 41 | listeners : { |
42 | 'page-slider-controllet_selected' : '_updateSlider', | 42 | 'page-slider-controllet_selected' : '_updateSlider', |
43 | - 'dataset-selection-controllet_data-url' : '_allowSecondStep', | ||
44 | 'select-fields-controllet_selected-fields' : '_allowThirdStep', | 43 | 'select-fields-controllet_selected-fields' : '_allowThirdStep', |
45 | 'filters-controllet_filters': '_allowThirdStep' | 44 | 'filters-controllet_filters': '_allowThirdStep' |
46 | }, | 45 | }, |
@@ -77,7 +76,10 @@ | @@ -77,7 +76,10 @@ | ||
77 | ready : function(){ | 76 | ready : function(){ |
78 | ln["localization"] = this.localization; | 77 | ln["localization"] = this.localization; |
79 | 78 | ||
79 | + this.$.select_data.dataUrl = this.dataUrl; | ||
80 | this.$.select_data.init(); | 80 | this.$.select_data.init(); |
81 | + this.$.select_visualization.dataUrl = this.dataUrl; | ||
82 | + this.$.select_visualization.init(); | ||
81 | }, | 83 | }, |
82 | 84 | ||
83 | _updateSlider : function(e){ | 85 | _updateSlider : function(e){ |
@@ -88,7 +90,7 @@ | @@ -88,7 +90,7 @@ | ||
88 | this.$.slider.chevronLeft("invisible"); | 90 | this.$.slider.chevronLeft("invisible"); |
89 | this.$.slider.chevronRight(false); | 91 | this.$.slider.chevronRight(false); |
90 | 92 | ||
91 | - if(this.$.slider.getPrevSelected() == 2) | 93 | + if(this.$.slider.getPrevSelected() == 1) |
92 | this.$.slider.chevronRight(true); | 94 | this.$.slider.chevronRight(true); |
93 | break; | 95 | break; |
94 | case 1: | 96 | case 1: |
controllets/data-sevc-controllet/demo/index.html
@@ -21,8 +21,8 @@ | @@ -21,8 +21,8 @@ | ||
21 | <!--suggested-datasets='[{"resource_name":"SUGGESTED 1","url":"noUrl.csv","metas":"{\"description\":\"noDescriione\"}"},{"resource_name":"SUGGESTED 2","url":"noUrl.csv","metas":"{\"description\":\"noDescriione\"}"},{"resource_name":"SUGGESTED 3","url":"noUrl.csv","metas":"{\"description\":\"noDescriione\"}"}]'--> | 21 | <!--suggested-datasets='[{"resource_name":"SUGGESTED 1","url":"noUrl.csv","metas":"{\"description\":\"noDescriione\"}"},{"resource_name":"SUGGESTED 2","url":"noUrl.csv","metas":"{\"description\":\"noDescriione\"}"},{"resource_name":"SUGGESTED 3","url":"noUrl.csv","metas":"{\"description\":\"noDescriione\"}"}]'--> |
22 | <!--</data-sevc-controllet>--> | 22 | <!--</data-sevc-controllet>--> |
23 | 23 | ||
24 | - <co-datalets-creator-controllet data='[{"a":"0", "b":"1"},{"a":"2", "b":"3"}]' deep-url="http://172.16.15.38/DEEalerProvider/DEEP/" | ||
25 | - datalets-list-url="http://172.16.15.38/DEEalerProvider/DEEP/datalets-list" | 24 | + <co-datalets-creator-controllet data='[{"a":"0", "b":"1"},{"a":"2", "b":"3a"},{"a":"2", "b":"3"}]' deep-url="http://172.16.15.38/DEEalerProvider/DEEP/" |
25 | + datalets-list-url="http://172.16.15.38/DEEalerProvider/DEEP/datalets-list"> | ||
26 | </co-datalets-creator-controllet> | 26 | </co-datalets-creator-controllet> |
27 | 27 | ||
28 | </body> | 28 | </body> |
controllets/select-visualization-controllet/select-visualization-controllet_old.html
0 → 100755
1 | +<link rel="import" href="../../bower_components/polymer/polymer.html" /> | ||
2 | + | ||
3 | +<link rel="import" href="../../bower_components/paper-material/paper-material.html" /> | ||
4 | + | ||
5 | +<link rel="import" href="../../bower_components/paper-button/paper-button.html"> | ||
6 | + | ||
7 | +<link rel="import" href="../items-vslider-controllet/items-vslider-controllet.html" /> | ||
8 | +<link rel="import" href="select-datalet-inputs_series.html" /> | ||
9 | +<link rel="import" href="select-datalet-inputs.html" /> | ||
10 | +<link rel="import" href="select-datalet-options.html" /> | ||
11 | + | ||
12 | +<script src="../../../DEEPCLIENT/js/deepClient.js"></script> | ||
13 | + | ||
14 | +<dom-module id="select-visualization-controllet"> | ||
15 | + | ||
16 | + <template> | ||
17 | + | ||
18 | + <style is="custom-style"> | ||
19 | + #select_visualization_container { | ||
20 | + display: flex; | ||
21 | + font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif; | ||
22 | + font-size: 16px; | ||
23 | + margin-top: 8px; | ||
24 | + } | ||
25 | + | ||
26 | + #items_vslider_controllet { | ||
27 | + position: relative; | ||
28 | + min-width: 172px; | ||
29 | + } | ||
30 | + | ||
31 | + #datalet_selection_inputs { | ||
32 | + position: relative; | ||
33 | + margin-left: 32px; | ||
34 | + min-width: 258px; | ||
35 | + } | ||
36 | + | ||
37 | + #datalet_selection_options { | ||
38 | + position: relative; | ||
39 | + margin-left: 32px; | ||
40 | + min-width: 258px; | ||
41 | + } | ||
42 | + | ||
43 | + #datalet_preview_container { | ||
44 | + position: relative; | ||
45 | + width: 100%; | ||
46 | + margin-left: 32px; | ||
47 | + } | ||
48 | + | ||
49 | + #datalet_selection_datalet { | ||
50 | + position: relative; | ||
51 | + height: 100vh; | ||
52 | + width: 100%; | ||
53 | + } | ||
54 | + | ||
55 | + #datalet_selection_datalet_placeholder { | ||
56 | + padding: 16px; | ||
57 | + } | ||
58 | + | ||
59 | + .input_header { | ||
60 | + height: 32px; | ||
61 | + padding-top: 16px; | ||
62 | + text-align: center; | ||
63 | + font-weight: 700; | ||
64 | + background-color: #B6B6B6; | ||
65 | + } | ||
66 | + | ||
67 | + paper-button { | ||
68 | + position: absolute; | ||
69 | + bottom: 16px; | ||
70 | + right: 11px; | ||
71 | + | ||
72 | + height: 48px; | ||
73 | + width: 172px; | ||
74 | + background-color: #00BCD4; | ||
75 | + color: white; | ||
76 | + font-weight: 700; | ||
77 | + padding: 16px; | ||
78 | + } | ||
79 | + | ||
80 | + paper-button:hover { | ||
81 | + background-color: #00AABF; | ||
82 | + | ||
83 | + box-shadow: 0px 8px 12px #888; | ||
84 | + -webkit-box-shadow: 0px 8px 12px #888; | ||
85 | + -moz-box-shadow: 0px 8px 12px #888; | ||
86 | + } | ||
87 | + | ||
88 | + paper-button[disabled] { | ||
89 | + background-color: #B6B6B6; | ||
90 | + } | ||
91 | + </style> | ||
92 | + | ||
93 | + <iron-ajax id="selectedDatalet_request" on-response="_handleSelectedDatalet"></iron-ajax> | ||
94 | + | ||
95 | + <div id="select_visualization_container"> | ||
96 | + | ||
97 | + <div id="items_vslider_controllet"> | ||
98 | + <items-vslider-controllet id="vslider" datalets-list-url={{dataletsListUrl}} preselected-datalet={{preselectedDatalet}}></items-vslider-controllet> | ||
99 | + </div> | ||
100 | + | ||
101 | + <div id="datalet_selection_inputs"> | ||
102 | + <template is="dom-if" if="{{_checkType(type, 'multiseries')}}"> | ||
103 | + <select-datalet-inputs_series id="inputs_series"></select-datalet-inputs_series> | ||
104 | + </template> | ||
105 | + <template is="dom-if" if="{{_checkType(type, 'default')}}"> | ||
106 | + <select-datalet-inputs id="inputs"></select-datalet-inputs> | ||
107 | + </template> | ||
108 | + <template is="dom-if" if="{{_checkType(type, '')}}"> | ||
109 | + <select-datalet-inputs></select-datalet-inputs> | ||
110 | + </template> | ||
111 | + </div> | ||
112 | + | ||
113 | + <div id="datalet_selection_options"> | ||
114 | + <select-datalet-options id="options"></select-datalet-options> | ||
115 | + </div> | ||
116 | + | ||
117 | + <div id="datalet_preview_container"> | ||
118 | + | ||
119 | + <paper-material id="datalet_selection_datalet" elevation="5"> | ||
120 | + <div class="input_header"><span id="dataletPreview"></span></div> | ||
121 | + <div id="datalet_selection_datalet_placeholder"></div> | ||
122 | + </paper-material> | ||
123 | + | ||
124 | + <paper-button id="add_button" disabled raised on-click="_addDatalet"></paper-button> | ||
125 | + | ||
126 | + </div> | ||
127 | + | ||
128 | + </div> | ||
129 | + | ||
130 | + </template> | ||
131 | + | ||
132 | + <script> | ||
133 | + | ||
134 | + Polymer({ | ||
135 | + | ||
136 | + is : 'select-visualization-controllet', | ||
137 | + | ||
138 | + properties : { | ||
139 | + | ||
140 | + deepUrl : { | ||
141 | + type : String, | ||
142 | + value : undefined | ||
143 | + }, | ||
144 | + | ||
145 | + dataletsListUrl : { | ||
146 | + type : String, | ||
147 | + value : undefined | ||
148 | + }, | ||
149 | + | ||
150 | + selectedDatalet : { | ||
151 | + type : String, | ||
152 | + value : undefined | ||
153 | + }, | ||
154 | + | ||
155 | + preselectedDatalet : { | ||
156 | + type : String, | ||
157 | + value : undefined | ||
158 | + }, | ||
159 | + | ||
160 | + type : { | ||
161 | + type : String, | ||
162 | + value : "" | ||
163 | + }, | ||
164 | + | ||
165 | + filters : { | ||
166 | + type : Array, | ||
167 | + value : [] | ||
168 | + }, | ||
169 | + | ||
170 | + fields : { | ||
171 | + type : Array, | ||
172 | + value : [] | ||
173 | + }, | ||
174 | + | ||
175 | + selectedFields : { | ||
176 | + type : Array, | ||
177 | + value : [] | ||
178 | + }, | ||
179 | + | ||
180 | + dataletPreset : { | ||
181 | + type : Object, | ||
182 | + value : [] | ||
183 | + }, | ||
184 | + | ||
185 | + dataUrl : { | ||
186 | + type : String, | ||
187 | + value : undefined | ||
188 | + }, | ||
189 | + | ||
190 | + params:{ | ||
191 | + type: Object, | ||
192 | + value: undefined | ||
193 | + }, | ||
194 | + | ||
195 | + data : { | ||
196 | + type : Object, | ||
197 | + value : undefined | ||
198 | + }, | ||
199 | + | ||
200 | + }, | ||
201 | + | ||
202 | + listeners: { | ||
203 | +// 'select-fields-controllet_selected-fields': '_updateFields', | ||
204 | +// 'filters-controllet_filters': '_updateFilters', | ||
205 | + 'items-vslider-controllet_selected-datalet': '_selectDatalet', | ||
206 | + 'select_visualization_inputs_ready': '_loadDatalet', | ||
207 | + 'select_visualization_options_changed': '_tryLoadDatalet' | ||
208 | + }, | ||
209 | + | ||
210 | + ready : function() { | ||
211 | + this._resize(); | ||
212 | + | ||
213 | + $(this.$.datalet_selection_datalet).perfectScrollbar(); | ||
214 | + | ||
215 | +// this.params = {'data-url' : this.dataUrl};//not here | ||
216 | + }, | ||
217 | + | ||
218 | + attached : function() { | ||
219 | + this._resize(); | ||
220 | + var that = this; | ||
221 | + window.addEventListener("resize", function() { that._resize(); }); | ||
222 | + | ||
223 | + this._translate(); | ||
224 | + }, | ||
225 | + | ||
226 | + setFilters : function(filters) { | ||
227 | + this.filters = this._copy(filters); | ||
228 | + }, | ||
229 | + | ||
230 | + setFields : function(fields) { | ||
231 | +// if (this.fields.length > 0 && JSON.stringify(this.fields) != JSON.stringify(fields)) | ||
232 | +// this.init(); | ||
233 | + | ||
234 | + this.fields = this._copy(fields); | ||
235 | + | ||
236 | + var inputs = this._getInputs(); | ||
237 | + if (inputs) | ||
238 | + inputs.setFields(this.fields); | ||
239 | + }, | ||
240 | + | ||
241 | + setData : function(data) { | ||
242 | + this.data = this._copy(data); | ||
243 | + }, | ||
244 | + | ||
245 | + init : function() { | ||
246 | + this.$.vslider._reset(); | ||
247 | + }, | ||
248 | + | ||
249 | + show : function() {//show --> preselect | ||
250 | +// if(this.preselectedDatalet) | ||
251 | + if(this.dataletPreset) | ||
252 | + this._preselectDatalet(); | ||
253 | + | ||
254 | +// if (this.$.datalet_selection_datalet_placeholder.innerHTML == "") { | ||
255 | +// var inputs = this._getInputs(); | ||
256 | +// inputs.fireReady(); | ||
257 | +// } | ||
258 | + }, | ||
259 | + | ||
260 | + _translate : function(){ | ||
261 | + if(this.preselectedDatalet) | ||
262 | + this.$.add_button.innerHTML = ln["modifyDatalet_" + ln["localization"]]; | ||
263 | + else | ||
264 | + this.$.add_button.innerHTML = ln["addDatalet_" + ln["localization"]]; | ||
265 | + | ||
266 | + this.$.dataletPreview.innerHTML = ln["dataletPreview_" + ln["localization"]]; | ||
267 | + }, | ||
268 | + | ||
269 | + _selectDatalet : function(e){ | ||
270 | + | ||
271 | + this.$.add_button.setAttribute("disabled", "true"); | ||
272 | + | ||
273 | + this.selectedDatalet = e.detail.datalet; | ||
274 | + | ||
275 | + this.$.datalet_selection_datalet_placeholder.innerHTML = ""; | ||
276 | + | ||
277 | + if(!this.selectedDatalet){ | ||
278 | + this.type = ""; | ||
279 | + this.$.options.setOptions([]); | ||
280 | + } | ||
281 | + else{ | ||
282 | + this.$.selectedDatalet_request.url = this.deepUrl + e.detail.datalet + "-datalet"; | ||
283 | + this.$.selectedDatalet_request.generateRequest(); | ||
284 | + } | ||
285 | + }, | ||
286 | + | ||
287 | + _handleSelectedDatalet : function(e){ | ||
288 | + | ||
289 | + if(this.type != e.detail.response.type) { | ||
290 | + | ||
291 | + this.type = e.detail.response.type; | ||
292 | + | ||
293 | + this.async(function () { | ||
294 | + var inputs = this._getInputs(); | ||
295 | + inputs.setFields(this.fields); | ||
296 | + inputs.setInputs(e.detail.response.idm.inputs.input);// Cannot read property '0' of undefined | ||
297 | + }, 0); | ||
298 | + | ||
299 | + this.$.options.setOptions(e.detail.response.idm.inputs.layouts.input); | ||
300 | + } | ||
301 | + else { | ||
302 | + this.$.options.checkOptions(e.detail.response.idm.inputs.layouts.input); | ||
303 | + } | ||
304 | + | ||
305 | + this.async(function () { | ||
306 | + var inputs = this._getInputs(); | ||
307 | + inputs.fireReady(); | ||
308 | + }, 0); | ||
309 | + | ||
310 | +// this.async(function () { | ||
311 | +// if(this.preselectedDatalet) | ||
312 | +// this._preselectDatalet(); | ||
313 | +// }, 1); | ||
314 | + }, | ||
315 | + | ||
316 | + _preselectDatalet : function() { | ||
317 | + this.$.vslider._preselectDatalet(); | ||
318 | + | ||
319 | + this.async(function () { | ||
320 | + this.$.options._preselectOptions(this.dataletPreset); | ||
321 | + }, 100); | ||
322 | + | ||
323 | + this.async(function () { | ||
324 | + var inputs = this._getInputs(); | ||
325 | + inputs._preselectInputs(this.fields, this.dataletPreset["aggregators"], this.dataletPreset["orders"]); | ||
326 | + this.dataletPreset = undefined; | ||
327 | + }, 200); | ||
328 | + }, | ||
329 | + | ||
330 | + _tryLoadDatalet : function(){ | ||
331 | + var inputs = this._getInputs(); | ||
332 | + inputs.fireReady(); | ||
333 | + }, | ||
334 | + | ||
335 | + _loadDatalet : function(e){ | ||
336 | + if(!e.detail.isReady) { | ||
337 | + this.$.datalet_selection_datalet_placeholder.innerHTML = ""; | ||
338 | + return; | ||
339 | + } | ||
340 | + | ||
341 | + var inputs = this._getInputs(); | ||
342 | + | ||
343 | + this.selectedFields = inputs.getSelectedFields(); | ||
344 | + | ||
345 | + this.params = {'data-url' : this.dataUrl};//?????????????????? | ||
346 | +// this.params = {}; | ||
347 | + | ||
348 | + this.params["filters"] = JSON.stringify(this.filters); | ||
349 | + this.params["aggregators"] = JSON.stringify(inputs.getAggregators()); | ||
350 | + this.params["orders"] = JSON.stringify(inputs.getOrders()); | ||
351 | + | ||
352 | + this.params["export_menu"] = "0"; | ||
353 | + | ||
354 | + var params = this.$.options.getParams(); | ||
355 | + for (var key in params) { this.params[key] = params[key]; } | ||
356 | + | ||
357 | + var data = alasql_complexSelectData(this.data, this.selectedFields, this.filters, inputs.getAggregators(), inputs.getOrders()); | ||
358 | + data = transformData(data, this.selectedFields, true); | ||
359 | + this.params["data"] = JSON.stringify(data).replace(/'/g, "'"); | ||
360 | + | ||
361 | + var dataletParams ={ | ||
362 | + component: this.selectedDatalet+"-datalet", | ||
363 | + fields: this.selectedFields, | ||
364 | + params: this.params, | ||
365 | + placeHolder: this.$.datalet_selection_datalet_placeholder, | ||
366 | + }; | ||
367 | + | ||
368 | + ComponentService.deep_url = this.deepUrl; | ||
369 | + ComponentService.getComponent(dataletParams); | ||
370 | + | ||
371 | + this.$.add_button.removeAttribute("disabled"); | ||
372 | + }, | ||
373 | + | ||
374 | + _addDatalet : function(){ | ||
375 | + delete this.params["export_menu"]; | ||
376 | + | ||
377 | + var data = { | ||
378 | + dataUrl: this.dataUrl, | ||
379 | + datalet: this.selectedDatalet+"-datalet", | ||
380 | + fields: this.selectedFields, | ||
381 | + params: this.params, | ||
382 | + staticData: JSON.stringify(this.$.datalet_selection_datalet_placeholder.children[1].behavior.data) | ||
383 | + } | ||
384 | + | ||
385 | + this.fire('data-sevc-controllet.dataletCreated', {data : data}); | ||
386 | + }, | ||
387 | + | ||
388 | + _checkType: function(type, check){ | ||
389 | + if (type == "multiseries" || type == "") | ||
390 | + return (type == check); | ||
391 | + else if(check == "default") | ||
392 | + return true; | ||
393 | + return false; | ||
394 | + }, | ||
395 | + | ||
396 | + _getInputs : function(){ | ||
397 | + if(this.type == "multiseries") | ||
398 | + return this.$$("#inputs_series") | ||
399 | + return this.$$("#inputs"); | ||
400 | + }, | ||
401 | + | ||
402 | + _copy : function(o) { | ||
403 | + var out, v, key; | ||
404 | + out = Array.isArray(o) ? new Array(o.length) : {}; | ||
405 | + for (key in o) { | ||
406 | + v = o[key]; | ||
407 | + out[key] = (typeof v === "object") ? this._copy(v) : v; | ||
408 | + } | ||
409 | + return out; | ||
410 | + }, | ||
411 | + | ||
412 | + _resize : function(){ | ||
413 | + var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - 16; | ||
414 | + h = h - 64 - 8; //height with page scroller | ||
415 | + | ||
416 | + $("#items_vslider_controllet").height(h);//vslider controllet | ||
417 | + $("#datalet_selection_inputs").height(h); | ||
418 | + $("#datalet_selection_options").height(h); | ||
419 | + | ||
420 | + $("#datalet_selection_datalet").height(h); | ||
421 | + } | ||
422 | + | ||
423 | + }); | ||
424 | + | ||
425 | + </script> | ||
426 | + | ||
427 | +</dom-module> | ||
0 | \ No newline at end of file | 428 | \ No newline at end of file |
locales/controllet_ln.js
@@ -8,7 +8,7 @@ ln["localization"] = "en"; | @@ -8,7 +8,7 @@ ln["localization"] = "en"; | ||
8 | ln["slide1Title_en"] = "SELECT DATASET"; | 8 | ln["slide1Title_en"] = "SELECT DATASET"; |
9 | ln["slide1Subtitle_en"] = "Select a dataset from the list or copy and paste the url of dataset."; | 9 | ln["slide1Subtitle_en"] = "Select a dataset from the list or copy and paste the url of dataset."; |
10 | ln["slide2Title_en"] = "SELECT DATA"; | 10 | ln["slide2Title_en"] = "SELECT DATA"; |
11 | -ln["slide2Subtitle_en"] = "Select the fields from tree-view. The multi-table will show the values related to the selected fields."; | 11 | +ln["slide2Subtitle_en"] = "Select the fields on the left. The table will show the values related to the selected fields."; |
12 | ln["slide3Title_en"] = "SELECT VISUALIZATION"; | 12 | ln["slide3Title_en"] = "SELECT VISUALIZATION"; |
13 | ln["slide3Subtitle_en"] = "Select a visualization, fill out inputs and labels (optional)."; | 13 | ln["slide3Subtitle_en"] = "Select a visualization, fill out inputs and labels (optional)."; |
14 | ln["back_en"] = "Back"; | 14 | ln["back_en"] = "Back"; |
@@ -135,7 +135,7 @@ ln["donut_description_en"] = "If 'true' Pie will become Donut! :)"; | @@ -135,7 +135,7 @@ ln["donut_description_en"] = "If 'true' Pie will become Donut! :)"; | ||
135 | ln["slide1Title_it"] = "SELEZIONA IL DATASET"; | 135 | ln["slide1Title_it"] = "SELEZIONA IL DATASET"; |
136 | ln["slide1Subtitle_it"] = "Seleziona il dataset dalla lista o copia e incolla la url del dataset."; | 136 | ln["slide1Subtitle_it"] = "Seleziona il dataset dalla lista o copia e incolla la url del dataset."; |
137 | ln["slide2Title_it"] = "SELEZIONA I DATI"; | 137 | ln["slide2Title_it"] = "SELEZIONA I DATI"; |
138 | -ln["slide2Subtitle_it"] = "Seleziona i campi dalla struttura ad albero. Nella tabella saranno mostrati i valori dei campi selezionati."; | 138 | +ln["slide2Subtitle_it"] = "Seleziona i campi sulla sinistra. Nella tabella saranno mostrati i valori dei campi selezionati."; |
139 | ln["slide3Title_it"] = "SELEZIONA LA VISUALIZZAZIONE"; | 139 | ln["slide3Title_it"] = "SELEZIONA LA VISUALIZZAZIONE"; |
140 | ln["slide3Subtitle_it"] = "Seleziona una visualizzazione, inserisci dati di input ed etichette (opzionale)."; | 140 | ln["slide3Subtitle_it"] = "Seleziona una visualizzazione, inserisci dati di input ed etichette (opzionale)."; |
141 | ln["back_it"] = "Indietro"; | 141 | ln["back_it"] = "Indietro"; |