Commit 35c4a6d817970c36d47b88670c055b0c05633f2e

Authored by Luigi Serra
1 parent 1c6559d7

Datasets providers compatimilityupdate, leafletjs update

controllets/data-sevc-controllet/data-sevc-controllet.html
@@ -58,7 +58,7 @@ Example: @@ -58,7 +58,7 @@ Example:
58 58
59 <data-sevc-controllet deep-url="http://192.168.214.128/DEEalerProvider/DEEP/" 59 <data-sevc-controllet deep-url="http://192.168.214.128/DEEalerProvider/DEEP/"
60 datalets-list-url="http://192.168.214.128/DEEalerProvider/DEEP/datalets-list" 60 datalets-list-url="http://192.168.214.128/DEEalerProvider/DEEP/datalets-list"
61 - organization="2" > 61 + datasets='{[{name : 'dataset1', url : dataset1Urls}, ... , {name : 'datasetN', url : datasetNUrls}]' >
62 </data-sevc-controllet> 62 </data-sevc-controllet>
63 63
64 64
@@ -313,7 +313,7 @@ Example: @@ -313,7 +313,7 @@ Example:
313 <paper-dropdown-menu id="datasets-sources" label="Available datasets"> 313 <paper-dropdown-menu id="datasets-sources" label="Available datasets">
314 <paper-menu class="dropdown-content"> 314 <paper-menu class="dropdown-content">
315 <template is="dom-repeat" items="{{datasets}}" as="dataset" index-as="index"> 315 <template is="dom-repeat" items="{{datasets}}" as="dataset" index-as="index">
316 - <paper-item id="{{index}}" on-tap="_datasourceSelected">{{dataset}}</paper-item> 316 + <paper-item id="{{index}}" on-tap="_datasourceSelected">{{dataset.name}}</paper-item>
317 </template> 317 </template>
318 </paper-menu> 318 </paper-menu>
319 </paper-dropdown-menu> 319 </paper-dropdown-menu>
@@ -424,60 +424,6 @@ Example: @@ -424,60 +424,6 @@ Example:
424 424
425 <script> 425 <script>
426 426
427 - var datasetsPrato = {  
428 - names:[  
429 - 'Consuntivo entrate 2009',  
430 - 'Consuntivo entrate 2010',  
431 - 'Consuntivo entrate 2011',  
432 - 'Consuntivo entrate 2012',  
433 - 'Consuntivo entrate 2014'  
434 - ],  
435 - urls: [  
436 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=07843fc3-07e1-4c66-9be4-fed43ca4a26f&limit=10000',  
437 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=48a4db73-d3d4-4639-bbc2-9c797d0e6cda&limit=10000',  
438 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=a14cc2fb-0c24-48d7-9370-834045797d89&limit=10000',  
439 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=fb32fcb6-5e44-4e52-b132-01c6540ddbee&limit=10000',  
440 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=0cb600fc-19ad-4aaf-9794-1e6ea851840a&limit=10000'  
441 - ]  
442 - }  
443 -  
444 - var datasetsGroeningen = {  
445 - names:[  
446 - 'Vestigingen register gemeente Groningen',  
447 - 'Woonruimte gemeente Groningen'  
448 - ],  
449 - urls: [  
450 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=ba554c1f-02a7-4d76-b449-fb9daa1f8bfd&limit=10000',  
451 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=af7b3916-4347-469a-8354-3c2d559bd92f&limit=10000'  
452 - ]  
453 - }  
454 -  
455 - var datasetsDublin = {  
456 - names:[  
457 - 'SDCC Traffic Cameras',  
458 - 'Derelict Site Register',  
459 - 'Dublin City Council Commencement Notices',  
460 - 'Dublin City Council Planning Applications',  
461 - 'Dun Laoghaire-Rathdown County Council Planning Application 2008-2014',  
462 - 'Fingal Council Planning Applications for last 7 years',  
463 - 'Planning Register',  
464 - 'Fingal Development Plan 2011-2017 Record of Protected Structures'  
465 - ],  
466 - urls: [  
467 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=73e02092-85a1-434e-85fe-0c9a43aa9a52&limit=10000',  
468 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=fcbee83e-3d3d-4303-a568-24dd33d02adc&limit=10000',  
469 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=ee00de68-f2e4-482f-a003-3c0561351075&limit=10000',  
470 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=2f4a9d44-b52f-4c8b-a5db-d8f4a676d81e&limit=10000',  
471 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=c479f061-9638-489d-ac55-0c68765548ff&limit=10000',  
472 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=d29a477a-4734-43ef-8002-048c8640d441&limit=10000',  
473 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=2b23f32d-e27e-4eef-af1e-27e05103df7d&limit=10000',  
474 - 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=5ea813bc-fdf9-4edb-b3b1-0142b593d5c6&limit=10000',  
475 - ]  
476 - }  
477 -  
478 - var AvailableDatasets = [datasetsPrato, datasetsGroeningen, datasetsDublin]  
479 -  
480 -  
481 Polymer({ 427 Polymer({
482 428
483 is : 'data-sevc-controllet', 429 is : 'data-sevc-controllet',
@@ -544,7 +490,7 @@ Example: @@ -544,7 +490,7 @@ Example:
544 */ 490 */
545 dataUrl : { 491 dataUrl : {
546 type : String, 492 type : String,
547 - value : "",/*"http://demo.ckan.org/api/action/datastore_search?resource_id=8324a4c9-66d6-47bf-a898-94237cc39b9f&limit=50",*/ 493 + value : "",
548 observer : '_dataUrlChanged' 494 observer : '_dataUrlChanged'
549 }, 495 },
550 /** 496 /**
@@ -559,17 +505,6 @@ Example: @@ -559,17 +505,6 @@ Example:
559 value : "" 505 value : ""
560 }, 506 },
561 /** 507 /**
562 - * It represents the organization related to datesets available for the user. It will be set at runtime based on the country of the user  
563 - *  
564 - * @attribute organization  
565 - * @type Number  
566 - * @default 2  
567 - */  
568 - organization : {  
569 - type : Number,  
570 - value : 2  
571 - },  
572 - /**  
573 * It's used to store the list of datalets returned from DEEP 508 * It's used to store the list of datalets returned from DEEP
574 * 509 *
575 * @attribute datalets_list 510 * @attribute datalets_list
@@ -623,19 +558,7 @@ Example: @@ -623,19 +558,7 @@ Example:
623 datasets : 558 datasets :
624 { 559 {
625 type : Array, 560 type : Array,
626 - value : AvailableDatasets[0].names  
627 - },  
628 - /**  
629 - * It's used to store the datasets urls  
630 - *  
631 - * @attribute datasets  
632 - * @type Array  
633 - * @default empty  
634 - */  
635 - datasets_urls :  
636 - {  
637 - type : Array,  
638 - value :AvailableDatasets[0].urls 561 + value : []
639 } 562 }
640 563
641 }, 564 },
@@ -650,9 +573,6 @@ Example: @@ -650,9 +573,6 @@ Example:
650 573
651 ready : function(){ 574 ready : function(){
652 575
653 - this.datasets = AvailableDatasets[this.organization].names;  
654 - this.datasets_urls = AvailableDatasets[this.organization].urls;  
655 -  
656 $(this.$.fields_placeholder).perfectScrollbar(); 576 $(this.$.fields_placeholder).perfectScrollbar();
657 $(this.$.selected_fields_main_container).perfectScrollbar(); 577 $(this.$.selected_fields_main_container).perfectScrollbar();
658 $(this.$.idm_fields_main_container).perfectScrollbar(); 578 $(this.$.idm_fields_main_container).perfectScrollbar();
@@ -790,7 +710,7 @@ Example: @@ -790,7 +710,7 @@ Example:
790 */ 710 */
791 _datasourceSelected : function(e){ 711 _datasourceSelected : function(e){
792 712
793 - this.$.data_url.value = this.datasets_urls[parseInt(e.target.id)]; 713 + this.$.data_url.value = this.datasets[parseInt(e.target.id)].url;
794 }, 714 },
795 /** 715 /**
796 * Callback related to data url change 716 * Callback related to data url change
datalets/base-ajax-json-jsonpath-datalet/static/js/AjaxJsonJsonPathBehavior.js
@@ -68,6 +68,21 @@ var AjaxJsonJsonPathBehavior = { @@ -68,6 +68,21 @@ var AjaxJsonJsonPathBehavior = {
68 this.properties.json_results.value = e; 68 this.properties.json_results.value = e;
69 this.runWorkcycle(); 69 this.runWorkcycle();
70 }, 70 },
  71 + /**
  72 + * Check if input field(passed as an array of separated value that mach with field path in received object) is an array of objet.
  73 + * The field is checked on current json object retrieved from the async request.
  74 + *
  75 + * @param field
  76 + */
  77 + isFieldArray : function(field){
  78 + if(field.length == 0) return false;
  79 + var obj = this.properties.json_results.value[field[0]];
  80 + for(var i=1; i < field.length; i++){
  81 + obj = (obj.constructor == Array) ? obj[0][field[i]] : obj[field[i]];
  82 + }
  83 +
  84 + return (obj.constructor === Array && obj[0].constructor == Object) ? true : false;
  85 + },
71 86
72 /** 87 /**
73 * selectData built a JSONPATH query based on the user selected fields then extract data from the JSON response. 88 * selectData built a JSONPATH query based on the user selected fields then extract data from the JSON response.
@@ -83,10 +98,12 @@ var AjaxJsonJsonPathBehavior = { @@ -83,10 +98,12 @@ var AjaxJsonJsonPathBehavior = {
83 for(var i=0;i < this._component.fields.length; i++){ 98 for(var i=0;i < this._component.fields.length; i++){
84 var query = "$"; 99 var query = "$";
85 var query_elements = this._component.fields[i].split(','); 100 var query_elements = this._component.fields[i].split(',');
86 - for(var j=0; j < query_elements.length - 1;j++){ 101 + for(var j=0; j < query_elements.length;j++){
87 query += "['" + query_elements[j] + "']"; 102 query += "['" + query_elements[j] + "']";
  103 + if(this.isFieldArray(query_elements.slice(0,j+1))){
  104 + query += "[*]";
  105 + }
88 } 106 }
89 - query += "[*]" + "['" + query_elements[query_elements.length - 1] + "']";  
90 this.data.push({name : query_elements[query_elements.length - 1], data : jsonPath(this.properties.json_results.value, query)}); 107 this.data.push({name : query_elements[query_elements.length - 1], data : jsonPath(this.properties.json_results.value, query)});
91 } 108 }
92 } 109 }
datalets/leafletjs-datalet/leafletjs-datalet.html
@@ -69,11 +69,15 @@ Example: @@ -69,11 +69,15 @@ Example:
69 presentData: function(){ 69 presentData: function(){
70 70
71 var coordinates = []; 71 var coordinates = [];
72 - //var keys = Object.keys(this.properties.data.value[0]); 72 + var isArray = (this.data[0].data[0].constructor === Array) ? true : false;
73 73
74 for(var i=0; i<this.data[0].data.length; i++) 74 for(var i=0; i<this.data[0].data.length; i++)
75 { 75 {
76 - coordinates.push([parseFloat(this.data[0].data[i]), parseFloat(this.data[1].data[i])]); 76 + if(isArray)
  77 + coordinates.push([parseFloat(this.data[0].data[i][0]), parseFloat(this.data[0].data[i][1])]);
  78 + else
  79 + coordinates.push([parseFloat(this.data[0].data[i]), parseFloat(this.data[1].data[i])]);
  80 +
77 var marker = L.marker([coordinates[i][0], coordinates[i][1]]).addTo(this._component.map); 81 var marker = L.marker([coordinates[i][0], coordinates[i][1]]).addTo(this._component.map);
78 82
79 if(this.data[2]) 83 if(this.data[2])