Commit 35c4a6d817970c36d47b88670c055b0c05633f2e
1 parent
1c6559d7
Datasets providers compatimilityupdate, leafletjs update
Showing
3 changed files
with
30 additions
and
89 deletions
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]) |