Commit 413bc5414bc904f1a80d226e63d666c5fd2f5504
1 parent
166db682
data cache
Showing
61 changed files
with
161 additions
and
53975 deletions
controllets/data-sevc-controllet/demo/index.html
... | ... | @@ -15,8 +15,8 @@ |
15 | 15 | |
16 | 16 | <body> |
17 | 17 | |
18 | - <data-sevc-controllet deep-url="http://172.16.15.77/DEEalerProvider/DEEP/" | |
19 | - datalets-list-url="http://172.16.15.77/DEEalerProvider/DEEP/datalets-list" | |
18 | + <data-sevc-controllet deep-url="http://172.16.15.38/DEEalerProvider/DEEP/" | |
19 | + datalets-list-url="http://172.16.15.38/DEEalerProvider/DEEP/datalets-list" | |
20 | 20 | datasets='{"result":{"providers":{"1":{"title":"CKAN","api_url":"http:\/\/ckan.routetopa.eu","image_hash":"11","id":"1"}},"datasets":[{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 2","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b056c5e6-76af-4526-a35d-7dee664fb6ee\/download\/isislab.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"Year 1 Dissemination of the ROUTE-TO-PA project (2015)","resource_name":"First year (2015) ROUTE-TO-PA Dissemination","url":"http:\/\/ckan.routetopa.eu\/dataset\/d81d451d-8b3d-47f4-b57f-e295e8f51da0\/resource\/818c2edb-0cb7-4288-b340-e4dd1933d817\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New---Link-Upd.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"Year 1 Dissemination of the ROUTE-TO-PA project (2015)","resource_name":"First year (2015) ROUTE-TO-PA Dissemination - dl","url":"http:\/\/ckan.routetopa.eu\/dataset\/d81d451d-8b3d-47f4-b57f-e295e8f51da0\/resource\/fd8c4d6f-315d-4aa0-b7bd-4fdde7bf641b\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New---Link-Upd.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"Year 1 Dissemination of the ROUTE-TO-PA project (2015)","resource_name":"First year (2015) dissemination of ROUTE-TO-PA project","url":"http:\/\/ckan.routetopa.eu\/dataset\/d81d451d-8b3d-47f4-b57f-e295e8f51da0\/resource\/b0ef6017-8c64-4e11-8046-7e51a8561856\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New---Link-Upd.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"test dissemination with link","resource_name":"Year 1 Dissemination of the ROUTE-TO-PA project (2015)","url":"http:\/\/ckan.routetopa.eu\/dataset\/ba5054af-7561-4f99-9504-76ea004a1e85\/resource\/4cc2349d-bf7b-4bbe-a7ca-db5312bb6c94\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New---Link.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"Dissemination activity of the first year","resource_name":"Dissemination activity of the first year (2015)","url":"http:\/\/ckan.routetopa.eu\/dataset\/61f07087-210a-4c35-9606-2aafe183633b\/resource\/5f9d8d8b-1c41-45f7-9dbb-61b9a7bcd076\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"City of the Hague Municipality","package_name":"Test 3- Buurten","resource_name":"Test Buurten - 3","url":"http:\/\/ckan.routetopa.eu\/dataset\/1248d447-2901-4beb-91ae-c2f249fd8a99\/resource\/1fdbc765-8945-4271-8dce-9c7eba45a67d\/download\/Test-3-Compare.csv","metas":"{\"organization\":\"City of the Hague Municipality\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"}]}}' |
21 | 21 | <!--datasets='{"result":{"providers":{"1":{"title":"CKAN","api_url":"http:\/\/ckan.routetopa.eu","image_hash":"11","id":"1"}},"datasets":[{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 1","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b3d3d9ff-291e-47ca-a0d2-a15deef81737\/download\/isislab2.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"Dublin","package_name":"isislab DATA","resource_name":"Resource 2","url":"http:\/\/ckan.routetopa.eu\/dataset\/566c2867-ea89-45a2-bd7a-30ae82606007\/resource\/b056c5e6-76af-4526-a35d-7dee664fb6ee\/download\/isislab.csv","metas":"{\"organization\":\"Dublin\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"Year 1 Dissemination of the ROUTE-TO-PA project (2015)","resource_name":"First year (2015) ROUTE-TO-PA Dissemination","url":"http:\/\/ckan.routetopa.eu\/dataset\/d81d451d-8b3d-47f4-b57f-e295e8f51da0\/resource\/818c2edb-0cb7-4288-b340-e4dd1933d817\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New---Link-Upd.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"Year 1 Dissemination of the ROUTE-TO-PA project (2015)","resource_name":"First year (2015) ROUTE-TO-PA Dissemination - dl","url":"http:\/\/ckan.routetopa.eu\/dataset\/d81d451d-8b3d-47f4-b57f-e295e8f51da0\/resource\/fd8c4d6f-315d-4aa0-b7bd-4fdde7bf641b\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New---Link-Upd.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"Year 1 Dissemination of the ROUTE-TO-PA project (2015)","resource_name":"First year (2015) dissemination of ROUTE-TO-PA project","url":"http:\/\/ckan.routetopa.eu\/dataset\/d81d451d-8b3d-47f4-b57f-e295e8f51da0\/resource\/b0ef6017-8c64-4e11-8046-7e51a8561856\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New---Link-Upd.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"test dissemination with link","resource_name":"Year 1 Dissemination of the ROUTE-TO-PA project (2015)","url":"http:\/\/ckan.routetopa.eu\/dataset\/ba5054af-7561-4f99-9504-76ea004a1e85\/resource\/4cc2349d-bf7b-4bbe-a7ca-db5312bb6c94\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New---Link.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"ROUTE-TO-PA","package_name":"Dissemination activity of the first year","resource_name":"Dissemination activity of the first year (2015)","url":"http:\/\/ckan.routetopa.eu\/dataset\/61f07087-210a-4c35-9606-2aafe183633b\/resource\/5f9d8d8b-1c41-45f7-9dbb-61b9a7bcd076\/download\/ROUTE-TO-PA-Individual-Dissemination-Activity-Report-Form-Responses-New.csv","metas":"{\"organization\":\"ROUTE-TO-PA\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"},{"w":1,"provider_name":"p:1","organization_name":"City of the Hague Municipality","package_name":"Test 3- Buurten","resource_name":"Test Buurten - 3","url":"http:\/\/ckan.routetopa.eu\/dataset\/1248d447-2901-4beb-91ae-c2f249fd8a99\/resource\/1fdbc765-8945-4271-8dce-9c7eba45a67d\/download\/Test-3-Compare.csv","metas":"{\"organization\":\"City of the Hague Municipality\",\"description\":\"\",\"format\":\"\",\"last_modified\":\"\",\"name\":\"\",\"created\":\"\"}"}]}}'--> |
22 | 22 | <!--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\"}"}]'--> | ... | ... |
controllets/select-data-controllet/select-data-controllet.html
... | ... | @@ -94,13 +94,11 @@ |
94 | 94 | filters : { |
95 | 95 | type : Array, |
96 | 96 | value : [] |
97 | -// value : [{logicalOperator: "OR"}, {field: "annee", operation: "=", value: "2014"}, {field: "annee", operation: "=", value: "2015"}] | |
98 | 97 | }, |
99 | 98 | |
100 | 99 | selectedFields : { |
101 | 100 | type : Array, |
102 | 101 | value : [] |
103 | -// value : [0,2,4] | |
104 | 102 | } |
105 | 103 | |
106 | 104 | }, | ... | ... |
controllets/select-dataset-controllet/select-dataset-controllet.html
... | ... | @@ -553,7 +553,7 @@ |
553 | 553 | var data = JSON.stringify({result : {providers: this.providers, datasets: this.filteredDatasets}}).replace(/'/g, ""); |
554 | 554 | |
555 | 555 | if(this.filteredDatasets.length > 0) |
556 | - this.$.treemap_container.innerHTML = "<datasetexplorer-datalet data='"+data+"' width=\""+w+"\" height=\""+h+"\" fields='[\"result,datasets,provider_name\",\"result,datasets,organization_name\",\"result,datasets,package_name\",\"result,datasets,resource_name\",\"result,datasets,url\",\"result,datasets,w\",\"result,datasets,metas\"]'></datasetexplorer-datalet>"; | |
556 | + this.$.treemap_container.innerHTML = "<datasetexplorer-datalet data='"+data+"' width=\""+w+"\" height=\""+h+"\" fields='[\"provider_name\",\"organization_name\",\"package_name\",\"resource_name\",\"url\",\"w\",\"metas\"]'></datasetexplorer-datalet>"; | |
557 | 557 | else |
558 | 558 | this.$.treemap_container.innerHTML = ""; |
559 | 559 | }, | ... | ... |
datalets/areachart-datalet/areachart-datalet.html
datalets/areachart_stacked-datalet/areachart_stacked-datalet.html
datalets/barchart-datalet/barchart-datalet.html
datalets/barchart_stacked-datalet/barchart_stacked-datalet.html
datalets/base-ajax-json-alasql-datalet/static/js/AjaxJsonAlasqlBehavior.js
... | ... | @@ -77,7 +77,7 @@ var AjaxJsonAlasqlBehavior = { |
77 | 77 | }, |
78 | 78 | |
79 | 79 | /** |
80 | - * selectData built a JSONPATH query based on the user selected fields then extract data from the JSON response. | |
80 | + * selectData built a ALASQL query based on the user selected fields then extract data from the JSON response. | |
81 | 81 | * This method built an objects <name, data> for every user selected field and push it into the data array. |
82 | 82 | * |
83 | 83 | * @method selectData | ... | ... |
datalets/base-ajax-json-jsonpath-datalet/base-ajax-json-jsonpath-datalet.html deleted
1 | -<!-- | |
2 | -@license | |
3 | - The MIT License (MIT) | |
4 | - | |
5 | - Copyright (c) 2015 Dipartimento di Informatica - Universit๏ฟฝ di Salerno - Italy | |
6 | - | |
7 | - Permission is hereby granted, free of charge, to any person obtaining a copy | |
8 | - of this software and associated documentation files (the "Software"), to deal | |
9 | - in the Software without restriction, including without limitation the rights | |
10 | - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
11 | - copies of the Software, and to permit persons to whom the Software is | |
12 | - furnished to do so, subject to the following conditions: | |
13 | - | |
14 | - The above copyright notice and this permission notice shall be included in | |
15 | - all copies or substantial portions of the Software. | |
16 | - | |
17 | - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
18 | - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
19 | - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
20 | - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
21 | - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
22 | - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
23 | - THE SOFTWARE. | |
24 | ---> | |
25 | -<!-- | |
26 | -* Developed by : | |
27 | -* ROUTE-TO-PA Project - grant No 645860. - www.routetopa.eu | |
28 | -* | |
29 | ---> | |
30 | - | |
31 | -<link rel="import" href="../base-datalet/base-datalet.html"> | |
32 | - | |
33 | -<!-- | |
34 | -The `base-ajax-json-jsonpath-datalet` extend the base component and define the mechanism to access and select data. | |
35 | -This datalet handles AJAX request with JSON response and uses JSONPATH for data selection and filtering. | |
36 | - | |
37 | -Example : | |
38 | - | |
39 | - <dom-module id="every-datalet-that-handle-ajax-json"> | |
40 | - <template> | |
41 | - ... | |
42 | - <base-ajax-json-jsonpath-datalet data-url="{{dataUrl}}" fields="{{fields}}"></base-ajax-json-jsonpath-datalet> | |
43 | - ... | |
44 | - </template> | |
45 | - </dom-module> | |
46 | - | |
47 | -@element base-ajax-json-jsonpath-datalet | |
48 | -@status v0.1 | |
49 | -@homepage | |
50 | -@group datalets | |
51 | ---> | |
52 | - | |
53 | -<dom-module id="base-ajax-json-jsonpath-datalet"> | |
54 | - <template> | |
55 | - <base-datalet data-url="{{dataUrl}}" fields="{{fields}}" data="{{data}}" title="{{title}}" description="{{description}}" export_menu="{{export_menu}}"></base-datalet> | |
56 | - </template> | |
57 | - | |
58 | - <script src="static/js/vendor/jsonpath-0.8.5.js"></script> | |
59 | - <script src="static/js/AjaxJsonJsonPathBehavior.js"></script> | |
60 | - | |
61 | - <script> | |
62 | - BaseDatalet = Polymer({ | |
63 | - is: 'base-ajax-json-jsonpath-datalet' | |
64 | - }); | |
65 | - </script> | |
66 | -</dom-module> | |
67 | 0 | \ No newline at end of file |
datalets/base-ajax-json-jsonpath-datalet/docs.html deleted
1 | -<!DOCTYPE html> | |
2 | -<html lang="en"> | |
3 | -<head> | |
4 | - <link rel="import" href="../../bower_components/iron-component-page/iron-component-page.html"> | |
5 | - <meta charset="UTF-8"> | |
6 | -</head> | |
7 | -<body> | |
8 | - | |
9 | -<iron-component-page src="base-ajax-json-jsonpath-datalet.html"></iron-component-page> | |
10 | - | |
11 | -</body> | |
12 | -</html> | |
13 | 0 | \ No newline at end of file |
datalets/base-ajax-json-jsonpath-datalet/static/js/AjaxJsonJsonPathBehavior.js deleted
1 | -/* | |
2 | -@license | |
3 | - The MIT License (MIT) | |
4 | - | |
5 | - Copyright (c) 2015 Dipartimento di Informatica - Universit๏ฟฝ di Salerno - Italy | |
6 | - | |
7 | - Permission is hereby granted, free of charge, to any person obtaining a copy | |
8 | - of this software and associated documentation files (the "Software"), to deal | |
9 | - in the Software without restriction, including without limitation the rights | |
10 | - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
11 | - copies of the Software, and to permit persons to whom the Software is | |
12 | - furnished to do so, subject to the following conditions: | |
13 | - | |
14 | - The above copyright notice and this permission notice shall be included in | |
15 | - all copies or substantial portions of the Software. | |
16 | - | |
17 | - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
18 | - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
19 | - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
20 | - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
21 | - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
22 | - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
23 | - THE SOFTWARE. | |
24 | -*/ | |
25 | - | |
26 | -/** | |
27 | - * Developed by : | |
28 | - * ROUTE-TO-PA Project - grant No 645860. - www.routetopa.eu | |
29 | - * | |
30 | -*/ | |
31 | - | |
32 | - | |
33 | -var AjaxJsonJsonPathBehavior = { | |
34 | - | |
35 | - properties: { | |
36 | - | |
37 | - /** | |
38 | - * It contains the json data from async xhr call returned from core-ajax core component | |
39 | - * | |
40 | - * @attribute json_results | |
41 | - * @type object | |
42 | - * @default 'null'. | |
43 | - */ | |
44 | - json_results: { | |
45 | - type: Object, | |
46 | - value: {} | |
47 | - } | |
48 | - }, | |
49 | - | |
50 | - /** | |
51 | - * Make an AJAX call to the dataset URL | |
52 | - * | |
53 | - * @method requestData | |
54 | - */ | |
55 | - requestData: function(){ | |
56 | - | |
57 | - var comp = this; | |
58 | - | |
59 | - /*if(typeof(Worker) !== "undefined") { | |
60 | - | |
61 | - var myWorker = function() { | |
62 | - | |
63 | - self.onmessage = function(event) | |
64 | - { | |
65 | - console.log(event.data); | |
66 | - | |
67 | - var xmlhttp; | |
68 | - | |
69 | - if ( XMLHttpRequest) { | |
70 | - // code for IE7+, Firefox, Chrome, Opera, Safari | |
71 | - xmlhttp = new XMLHttpRequest(); | |
72 | - } else { | |
73 | - // code for IE6, IE5 | |
74 | - xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); | |
75 | - } | |
76 | - | |
77 | - xmlhttp.onreadystatechange = function() { | |
78 | - if (xmlhttp.readyState == XMLHttpRequest.DONE ) { | |
79 | - if(xmlhttp.status == 200){ | |
80 | - //console.log(xmlhttp.responseText); | |
81 | - self.postMessage(xmlhttp.responseText); | |
82 | - } | |
83 | - else if(xmlhttp.status == 400) { | |
84 | - console.log('There was an error 400') | |
85 | - } | |
86 | - else { | |
87 | - console.log('something else other than 200 was returned') | |
88 | - } | |
89 | - } | |
90 | - } | |
91 | - | |
92 | - //xmlhttp.open("GET", event.data, true); | |
93 | - xmlhttp.open("GET", "http://172.16.15.77/openwall/api/datasetTree", true); | |
94 | - xmlhttp.send(); | |
95 | - } | |
96 | - }; | |
97 | - | |
98 | - var workerData = new Blob(['(' + myWorker.toString() + ')()'], { | |
99 | - type: "text/javascript" | |
100 | - }); | |
101 | - | |
102 | - myWorker = new Worker(window.URL.createObjectURL(workerData)); | |
103 | - myWorker.postMessage(this._component.dataUrl); | |
104 | - myWorker.onmessage = function (e) { | |
105 | - console.log(e); | |
106 | - comp.handleResponse(JSON.parse(e.data)); | |
107 | - }; | |
108 | - | |
109 | - } else { | |
110 | - $.ajax({ | |
111 | - url: this._component.dataUrl, | |
112 | - dataType: "json", | |
113 | - async : true, | |
114 | - success: function(e){ | |
115 | - comp.handleResponse(e); | |
116 | - } | |
117 | - }); | |
118 | - }*/ | |
119 | - | |
120 | - $.ajax({ | |
121 | - url: this._component.dataUrl, | |
122 | - dataType: "json", | |
123 | - async : true, | |
124 | - cache : false, | |
125 | - success: function(e){ | |
126 | - comp.handleResponse(e); | |
127 | - } | |
128 | - }); | |
129 | - }, | |
130 | - | |
131 | - /** | |
132 | - * Called when core-ajax component receive the json data from called url. | |
133 | - * | |
134 | - * @method handleResponse | |
135 | - */ | |
136 | - handleResponse: function(e) { | |
137 | - this.properties.json_results.value = e; | |
138 | - this.runWorkcycle(); | |
139 | - }, | |
140 | - /** | |
141 | - * Check if input field(passed as an array of separated value that mach with field path in received object) is an array of objet. | |
142 | - * The field is checked on current json object retrieved from the async request. | |
143 | - * | |
144 | - * @param field | |
145 | - */ | |
146 | - isFieldArray : function(field){ | |
147 | - if(field.length == 0) return false; | |
148 | - | |
149 | - var obj = this.properties.json_results.value[field[0]]; | |
150 | - for(var i=1; i < field.length; i++){ | |
151 | - obj = (obj.constructor == Array) ? obj[0][field[i]] : obj[field[i]]; | |
152 | - } | |
153 | - | |
154 | - if(obj == null) return false; | |
155 | - return (obj.constructor === Array && obj[0].constructor == Object) ? true : false; | |
156 | - }, | |
157 | - | |
158 | - /** | |
159 | - * selectData built a JSONPATH query based on the user selected fields then extract data from the JSON response. | |
160 | - * This method built an objects <name, data> for every user selected field and push it into the data array. | |
161 | - * | |
162 | - * @method selectData | |
163 | - */ | |
164 | - selectData : function() { | |
165 | - | |
166 | - this.data = []; | |
167 | - | |
168 | - //Deal the fields with "'" char | |
169 | - //this._component.fields = this._component.fields.replace(/#/g,"'"); | |
170 | - | |
171 | - this._component.fields = JSON.parse(this._component.fields); | |
172 | - | |
173 | - for (var i = 0; i < this._component.fields.length; i++) { | |
174 | - var query = "$"; | |
175 | - var query_elements = this._component.fields[i].split(','); | |
176 | - for (var j = 0; j < query_elements.length; j++) { | |
177 | - query += "['" + query_elements[j] + "']"; | |
178 | - if (this.isFieldArray(query_elements.slice(0, j + 1))) { | |
179 | - query += "[*]"; | |
180 | - } | |
181 | - } | |
182 | - this.data.push({ | |
183 | - name: query_elements[query_elements.length - 1], | |
184 | - data: jsonPath(this.properties.json_results.value, query) | |
185 | - }); | |
186 | - } | |
187 | - this._deleteWaitImage(); | |
188 | - }, | |
189 | - | |
190 | - /** | |
191 | - * Delete a image after loading a datalet | |
192 | - */ | |
193 | - _deleteWaitImage : function() { | |
194 | - $("img[src$='spin.svg']").remove(); | |
195 | - } | |
196 | -}; | |
197 | 0 | \ No newline at end of file |
datalets/base-ajax-json-jsonpath-datalet/static/js/AjaxJsonJsonPathBehavior.json deleted
1 | -{ | |
2 | - "elements": [], | |
3 | - "elementsByTagName": {}, | |
4 | - "behaviors": [ | |
5 | - { | |
6 | - "type": "behaviour", | |
7 | - "desc": "Defined in `AjaxJsonJsonPathBehaviour.js`. It is a specific implemetation that uses Ajax to get the data in Json format and uses JsonPath to select and filtering the data", | |
8 | - "events": [], | |
9 | - "properties": [ | |
10 | - { | |
11 | - "name": "json_results", | |
12 | - "type": "Object", | |
13 | - "desc": "It contains the json data from async xhr call returned from core-ajax core component", | |
14 | - "published": true | |
15 | - }, | |
16 | - { | |
17 | - "name": "requestData", | |
18 | - "type": "Function", | |
19 | - "desc": "Make an AJAX call to the dataset URL", | |
20 | - "params": [ | |
21 | - ], | |
22 | - "published": true, | |
23 | - "function": true | |
24 | - }, | |
25 | - { | |
26 | - "name": "handleResponse", | |
27 | - "type": "Function", | |
28 | - "desc": "Called when core-ajax component receive the json data from called url.", | |
29 | - "params": [ | |
30 | - ], | |
31 | - "published": true, | |
32 | - "function": true | |
33 | - }, | |
34 | - { | |
35 | - "name": "selectData", | |
36 | - "type": "Function", | |
37 | - "desc": "selectData built a JSONPATH query based on the user selected fields then extract data from the JSON response. This method built an objects <name, data> for every user selected field and push it into the data array.", | |
38 | - "params": [ | |
39 | - ], | |
40 | - "published": true, | |
41 | - "function": true | |
42 | - } | |
43 | - ], | |
44 | - "is": "AjaxJsonJsonPathBehaviour" | |
45 | - } | |
46 | - ] | |
47 | -} | |
48 | 0 | \ No newline at end of file |
datalets/base-ajax-json-jsonpath-datalet/static/js/vendor/jsonpath-0.8.5.js deleted
1 | -/* JSONPath 0.8.5 - XPath for JSON | |
2 | - * | |
3 | - * Copyright (c) 2007 Stefan Goessner (goessner.net) | |
4 | - * Licensed under the MIT (MIT-LICENSE.txt) licence. | |
5 | - * | |
6 | - * Proposal of Chris Zyp goes into version 0.9.x | |
7 | - * Issue 7 resolved | |
8 | - */ | |
9 | -function jsonPath(obj, expr, arg) { | |
10 | - var P = { | |
11 | - resultType: arg && arg.resultType || "VALUE", | |
12 | - result: [], | |
13 | - normalize: function(expr) { | |
14 | - var subx = []; | |
15 | - return expr.replace(/[\['](\??\(.*?\))[\]']|\['(.*?)'\]/g, function($0,$1,$2){return "[#"+(subx.push($1||$2)-1)+"]";}) /* http://code.google.com/p/jsonpath/issues/detail?id=4 */ | |
16 | - .replace(/'?\.'?|\['?/g, ";") | |
17 | - .replace(/;;;|;;/g, ";..;") | |
18 | - .replace(/;$|'?\]|'$/g, "") | |
19 | - .replace(/#([0-9]+)/g, function($0,$1){return subx[$1];}); | |
20 | - }, | |
21 | - asPath: function(path) { | |
22 | - var x = path.split(";"), p = "$"; | |
23 | - for (var i=1,n=x.length; i<n; i++) | |
24 | - p += /^[0-9*]+$/.test(x[i]) ? ("["+x[i]+"]") : ("['"+x[i]+"']"); | |
25 | - return p; | |
26 | - }, | |
27 | - store: function(p, v) { | |
28 | - if (p) P.result[P.result.length] = P.resultType == "PATH" ? P.asPath(p) : v; | |
29 | - return !!p; | |
30 | - }, | |
31 | - trace: function(expr, val, path) { | |
32 | - if (expr !== "") { | |
33 | - var x = expr.split(";"), loc = x.shift(); | |
34 | - x = x.join(";"); | |
35 | - if (val && val.hasOwnProperty(loc)) | |
36 | - P.trace(x, val[loc], path + ";" + loc); | |
37 | - else if (loc === "*") | |
38 | - P.walk(loc, x, val, path, function(m,l,x,v,p) { P.trace(m+";"+x,v,p); }); | |
39 | - else if (loc === "..") { | |
40 | - P.trace(x, val, path); | |
41 | - P.walk(loc, x, val, path, function(m,l,x,v,p) { typeof v[m] === "object" && P.trace("..;"+x,v[m],p+";"+m); }); | |
42 | - } | |
43 | - else if (/^\(.*?\)$/.test(loc)) // [(expr)] | |
44 | - P.trace(P.eval(loc, val, path.substr(path.lastIndexOf(";")+1))+";"+x, val, path); | |
45 | - else if (/^\?\(.*?\)$/.test(loc)) // [?(expr)] | |
46 | - P.walk(loc, x, val, path, function(m,l,x,v,p) { if (P.eval(l.replace(/^\?\((.*?)\)$/,"$1"), v instanceof Array ? v[m] : v, m)) P.trace(m+";"+x,v,p); }); // issue 5 resolved | |
47 | - else if (/^(-?[0-9]*):(-?[0-9]*):?([0-9]*)$/.test(loc)) // [start:end:step] phyton slice syntax | |
48 | - P.slice(loc, x, val, path); | |
49 | - else if (/,/.test(loc)) { // [name1,name2,...] | |
50 | - for (var s=loc.split(/'?,'?/),i=0,n=s.length; i<n; i++) | |
51 | - P.trace(s[i]+";"+x, val, path); | |
52 | - } | |
53 | - } | |
54 | - else | |
55 | - P.store(path, val); | |
56 | - }, | |
57 | - walk: function(loc, expr, val, path, f) { | |
58 | - if (val instanceof Array) { | |
59 | - for (var i=0,n=val.length; i<n; i++) | |
60 | - if (i in val) | |
61 | - f(i,loc,expr,val,path); | |
62 | - } | |
63 | - else if (typeof val === "object") { | |
64 | - for (var m in val) | |
65 | - if (val.hasOwnProperty(m)) | |
66 | - f(m,loc,expr,val,path); | |
67 | - } | |
68 | - }, | |
69 | - slice: function(loc, expr, val, path) { | |
70 | - if (val instanceof Array) { | |
71 | - var len=val.length, start=0, end=len, step=1; | |
72 | - loc.replace(/^(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$/g, function($0,$1,$2,$3){start=parseInt($1||start);end=parseInt($2||end);step=parseInt($3||step);}); | |
73 | - start = (start < 0) ? Math.max(0,start+len) : Math.min(len,start); | |
74 | - end = (end < 0) ? Math.max(0,end+len) : Math.min(len,end); | |
75 | - for (var i=start; i<end; i+=step) | |
76 | - P.trace(i+";"+expr, val, path); | |
77 | - } | |
78 | - }, | |
79 | - eval: function(x, _v, _vname) { | |
80 | - try { return $ && _v && eval(x.replace(/(^|[^\\])@/g, "$1_v").replace(/\\@/g, "@")); } // issue 7 : resolved .. | |
81 | - catch(e) { throw new SyntaxError("jsonPath: " + e.message + ": " + x.replace(/(^|[^\\])@/g, "$1_v").replace(/\\@/g, "@")); } // issue 7 : resolved .. | |
82 | - } | |
83 | - }; | |
84 | - | |
85 | - var $ = obj; | |
86 | - if (expr && obj && (P.resultType == "VALUE" || P.resultType == "PATH")) { | |
87 | - P.trace(P.normalize(expr).replace(/^\$;?/,""), obj, "$"); // issue 6 resolved | |
88 | - return P.result.length ? P.result : false; | |
89 | - } | |
90 | -} |
datalets/base-datalet/static/js/BaseDataletBehavior.js
... | ... | @@ -33,61 +33,30 @@ var BaseDataletBehavior ={ |
33 | 33 | |
34 | 34 | properties: { |
35 | 35 | |
36 | - /** | |
37 | - * It represent the dataset api url | |
38 | - * | |
39 | - * @attribute dataUrl | |
40 | - * @type string | |
41 | - * @default 'null' | |
42 | - */ | |
43 | - dataUrl: { | |
44 | - type: String, | |
45 | - value: "" | |
46 | - }, | |
47 | - | |
48 | - /** | |
49 | - * It represents one or multiple fields selected by user | |
50 | - * | |
51 | - * @attribute fields | |
52 | - * @type Array | |
53 | - * @default empty | |
54 | - */ | |
55 | - fields: { | |
56 | - type: String, | |
57 | - value: "" | |
58 | - }, | |
59 | - | |
60 | - /** | |
61 | - * The selected and transformed data you can use in presentation phase | |
62 | - * | |
63 | - * @attribute data | |
64 | - * @type Array | |
65 | - * @default empty | |
66 | - */ | |
67 | - data: { | |
68 | - type: Array, | |
69 | - value: [] | |
70 | - }, | |
71 | - title: { | |
72 | - type: String, | |
73 | - value: "" | |
74 | - }, | |
75 | - description: { | |
76 | - type: String, | |
77 | - value: "" | |
78 | - } | |
79 | - | |
80 | - }, | |
81 | - | |
82 | - //factoryImpl: function(data_url, fields) { | |
83 | - // this.dataUrl = data_url; | |
84 | - // this.fields = fields; | |
85 | - //}, | |
86 | - | |
87 | - //setParameters: function(params) | |
88 | - //{ | |
89 | - // this.title = params['title']; | |
90 | - // this.description = params['description']; | |
91 | - //} | |
36 | + //dataUrl: { | |
37 | + // type: String, | |
38 | + // value: "" | |
39 | + //}, | |
40 | + // | |
41 | + //data: { | |
42 | + // type: Array, | |
43 | + // value: [] | |
44 | + //}, | |
45 | + | |
46 | + //fields: { | |
47 | + // type: String, | |
48 | + // value: "" | |
49 | + //}, | |
50 | + // | |
51 | + //title: { | |
52 | + // type: String, | |
53 | + // value: "" | |
54 | + //}, | |
55 | + //description: { | |
56 | + // type: String, | |
57 | + // value: "" | |
58 | + //} | |
59 | + | |
60 | + } | |
92 | 61 | |
93 | 62 | }; |
94 | 63 | \ No newline at end of file | ... | ... |
datalets/base-datalet/static/js/WorkcycleBehavior.js
... | ... | @@ -98,14 +98,16 @@ var WorkcycleBehavior = { |
98 | 98 | init: function(component){ |
99 | 99 | this._component = component; |
100 | 100 | |
101 | - if(this._component.data === undefined || this._component.data == ""){ | |
101 | + if(this._component.data == undefined){ | |
102 | 102 | this.requestData(); |
103 | 103 | }else{ |
104 | - this._deleteWaitImage(); | |
105 | - this.data = JSON.parse(this._component.data); | |
104 | + this.data = this._component.data; | |
105 | + | |
106 | 106 | this.filterData(); |
107 | 107 | this.transformData(); |
108 | 108 | this.presentData(); |
109 | + | |
110 | + this._deleteWaitImage(); | |
109 | 111 | } |
110 | 112 | } |
111 | 113 | ... | ... |
datalets/bubblechart-datalet/bubblechart-datalet.html
datalets/columnchart-datalet/columnchart-datalet.html
datalets/columnchart_stacked-datalet/columnchart_stacked-datalet.html
datalets/datasetexplorer-datalet/datasetexplorer-datalet.html
... | ... | @@ -29,7 +29,7 @@ |
29 | 29 | * |
30 | 30 | --> |
31 | 31 | |
32 | -<link rel="import" href="../base-ajax-json-jsonpath-datalet/base-ajax-json-jsonpath-datalet.html"> | |
32 | +<link rel="import" href="../base-ajax-json-alasql-datalet/base-ajax-json-alasql-datalet.html"> | |
33 | 33 | <link rel="import" href="treemap_tooltip.html"> |
34 | 34 | |
35 | 35 | <script src="../../locales/datasetexplorer_ln.js"></script> |
... | ... | @@ -126,7 +126,7 @@ Example: |
126 | 126 | <div id="treemap_placeholder"> |
127 | 127 | <treemap-tooltip id="treemap_tooltip"></treemap-tooltip> |
128 | 128 | </div> |
129 | - <base-ajax-json-jsonpath-datalet data-url="{{dataUrl}}" fields="{{fields}}" data="{{data}}" export_menu="{{export_menu}}"></base-ajax-json-jsonpath-datalet> | |
129 | + <base-ajax-json-alasql-datalet data-url="{{dataUrl}}" fields="{{fields}}" data="{{data}}" export_menu="{{export_menu}}"></base-ajax-json-alasql-datalet> | |
130 | 130 | <!--<treemap-tooltip id="treemap_tooltip"></treemap-tooltip>--> |
131 | 131 | </template> |
132 | 132 | |
... | ... | @@ -141,7 +141,7 @@ Example: |
141 | 141 | children : [] |
142 | 142 | }, |
143 | 143 | |
144 | - transformData: function(e) | |
144 | + transformData: function() | |
145 | 145 | { |
146 | 146 | var treemapData = []; |
147 | 147 | DatasetexplorerBehavior.map.name = this._component.title; |
... | ... | @@ -214,37 +214,71 @@ Example: |
214 | 214 | |
215 | 215 | filterData : function() { |
216 | 216 | |
217 | - var tmpData = []; | |
217 | + this.meta = this.data.result.providers; | |
218 | + this._component.fields = JSON.parse(this._component.fields); | |
219 | + this.data = this._transformData(this.data.result.datasets, this._component.fields, false); | |
220 | +// var tmpData = []; | |
221 | +// | |
222 | +// if(!this.properties.json_results.value.result) | |
223 | +// this.properties.json_results.value = this.data; | |
224 | +// | |
225 | +// this.meta = this.properties.json_results.value.result.providers; | |
226 | +// | |
227 | +// //Deal the fields with "'" char | |
228 | +// //this._component.fields = this._component.fields.replace(/#/g,"'"); | |
229 | +// | |
230 | +// this._component.fields = JSON.parse(this._component.fields); | |
231 | +// | |
232 | +// for (var i = 0; i < this._component.fields.length; i++) { | |
233 | +// var query = "$"; | |
234 | +// var query_elements = this._component.fields[i].split(','); | |
235 | +// for (var j = 0; j < query_elements.length; j++) { | |
236 | +// query += "['" + query_elements[j] + "']"; | |
237 | +// if (this.isFieldArray(query_elements.slice(0, j + 1))) { | |
238 | +// query += "[*]"; | |
239 | +// } | |
240 | +// } | |
241 | +// | |
242 | +// tmpData.push({ | |
243 | +// name: query_elements[query_elements.length - 1], | |
244 | +// data: jsonPath(this.properties.json_results.value, query) | |
245 | +// }); | |
246 | +// } | |
247 | +// this.data = tmpData; | |
248 | +// this._deleteWaitImage(); | |
249 | + }, | |
218 | 250 | |
219 | - if(!this.properties.json_results.value.result) | |
220 | - this.properties.json_results.value = this.data; | |
251 | + _transformData : function(data, fields, truncate) { | |
252 | + if(!data || data.length == 0) | |
253 | + return []; | |
221 | 254 | |
222 | - this.meta = this.properties.json_results.value.result.providers; | |
255 | + /*DEPRECATED*/for (var i=0; i < fields.length; i++) | |
256 | + fields[i] = fields[i].substring(fields[i].lastIndexOf(",") + 1, fields[i].length); | |
223 | 257 | |
224 | - //Deal the fields with "'" char | |
225 | - //this._component.fields = this._component.fields.replace(/#/g,"'"); | |
258 | + var tData = []; | |
226 | 259 | |
227 | - this._component.fields = JSON.parse(this._component.fields); | |
260 | + for (var i in fields){ | |
228 | 261 | |
229 | - for (var i = 0; i < this._component.fields.length; i++) { | |
230 | - var query = "$"; | |
231 | - var query_elements = this._component.fields[i].split(','); | |
232 | - for (var j = 0; j < query_elements.length; j++) { | |
233 | - query += "['" + query_elements[j] + "']"; | |
234 | - if (this.isFieldArray(query_elements.slice(0, j + 1))) { | |
235 | - query += "[*]"; | |
236 | - } | |
237 | - } | |
262 | + var field = fields[i]; | |
263 | + var values = []; | |
238 | 264 | |
239 | - tmpData.push({ | |
240 | - name: query_elements[query_elements.length - 1], | |
241 | - data: jsonPath(this.properties.json_results.value, query) | |
242 | - }); | |
265 | + for (var i in data) { | |
266 | + var v = data[i][field]; | |
267 | + if(truncate) | |
268 | + if(!isNaN(v) && v % 1 != 0) | |
269 | + v = Math.floor(v * 100) / 100; | |
270 | + values.push(v); | |
243 | 271 | } |
244 | - this.data = tmpData; | |
245 | - this._deleteWaitImage(); | |
272 | + | |
273 | + tData.push({ | |
274 | + name: field, | |
275 | + data: values | |
276 | + }); | |
246 | 277 | } |
247 | 278 | |
279 | + return tData; | |
280 | + } | |
281 | + | |
248 | 282 | }; |
249 | 283 | |
250 | 284 | Polymer({ |
... | ... | @@ -263,6 +297,11 @@ Example: |
263 | 297 | value : {} |
264 | 298 | }, |
265 | 299 | |
300 | + data : { | |
301 | + type : Array, | |
302 | + value : undefined | |
303 | + }, | |
304 | + | |
266 | 305 | name : { |
267 | 306 | type : String, |
268 | 307 | value: "" |
... | ... | @@ -294,7 +333,7 @@ Example: |
294 | 333 | ready: function(){ |
295 | 334 | $(this).find("base-datalet")[0].hideFooter(); |
296 | 335 | |
297 | - this.behavior = $.extend(true, {}, BaseDataletBehavior, WorkcycleBehavior, AjaxJsonJsonPathBehavior, DatasetexplorerBehavior); | |
336 | + this.behavior = $.extend(true, {}, BaseDataletBehavior, WorkcycleBehavior, AjaxJsonAlasqlBehavior, DatasetexplorerBehavior); | |
298 | 337 | this.async(function(){this.behavior.init(this)},0); |
299 | 338 | }, |
300 | 339 | ... | ... |
datalets/datatable-datalet/datatable-datalet.html
... | ... | @@ -92,6 +92,7 @@ Example: |
92 | 92 | is : 'datatable-datalet' , |
93 | 93 | |
94 | 94 | properties: { |
95 | + | |
95 | 96 | /** |
96 | 97 | * It's the component behavior |
97 | 98 | * |
... | ... | @@ -103,6 +104,11 @@ Example: |
103 | 104 | type : Object, |
104 | 105 | value : {} |
105 | 106 | }, |
107 | + | |
108 | + data : { | |
109 | + type : Array, | |
110 | + value : undefined | |
111 | + }, | |
106 | 112 | /** |
107 | 113 | * Control the export menu |
108 | 114 | * xxxx BITMASK. FROM RIGHT : HTML, PNG, RTF, MY SPACE (eg. 1111 show all, 0000 hide all) | ... | ... |
datalets/dynamic-datatable-datalet/datatable-datalet.png deleted
5.56 KB
datalets/dynamic-datatable-datalet/demo/index.html deleted
1 | -<!DOCTYPE html> | |
2 | -<html lang="en"> | |
3 | -<head> | |
4 | - <meta charset="UTF-8"> | |
5 | - <title></title> | |
6 | - | |
7 | - <script> | |
8 | - </script> | |
9 | - | |
10 | -</head> | |
11 | -<body> | |
12 | - | |
13 | -<script src="https://code.jquery.com/jquery-2.1.4.min.js" type="text/javascript"></script> | |
14 | -<link rel="import" href="../datatable-datalet.html" /> | |
15 | - | |
16 | -<datatable-datalet data-url="http://ckan.routetopa.eu/api/action/datastore_search?resource_id=73e02092-85a1-434e-85fe-0c9a43aa9a52&limit=10000" | |
17 | - fields='["result,records,Lat","result,records,Lng"]'></datatable-datalet> | |
18 | - | |
19 | -</body> | |
20 | -</html> | |
21 | 0 | \ No newline at end of file |
datalets/dynamic-datatable-datalet/docs.html deleted
1 | -<!DOCTYPE html> | |
2 | -<html lang="en"> | |
3 | -<head> | |
4 | - <link rel="import" href="../../bower_components/iron-component-page/iron-component-page.html"> | |
5 | - <meta charset="UTF-8"> | |
6 | -</head> | |
7 | -<body> | |
8 | - | |
9 | -<iron-component-page src="datatable-datalet.html"></iron-component-page> | |
10 | - | |
11 | -</body> | |
12 | -</html> | |
13 | 0 | \ No newline at end of file |
datalets/dynamic-datatable-datalet/dynamic-datatable-datalet.html deleted
1 | -<!-- | |
2 | -@license | |
3 | - The MIT License (MIT) | |
4 | - | |
5 | - Copyright (c) 2015 Dipartimento di Informatica - Universit๏ฟฝ di Salerno - Italy | |
6 | - | |
7 | - Permission is hereby granted, free of charge, to any person obtaining a copy | |
8 | - of this software and associated documentation files (the "Software"), to deal | |
9 | - in the Software without restriction, including without limitation the rights | |
10 | - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
11 | - copies of the Software, and to permit persons to whom the Software is | |
12 | - furnished to do so, subject to the following conditions: | |
13 | - | |
14 | - The above copyright notice and this permission notice shall be included in | |
15 | - all copies or substantial portions of the Software. | |
16 | - | |
17 | - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
18 | - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
19 | - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
20 | - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
21 | - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
22 | - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
23 | - THE SOFTWARE. | |
24 | ---> | |
25 | -<!-- | |
26 | -* Developed by : | |
27 | -* ROUTE-TO-PA Project - grant No 645860. - www.routetopa.eu | |
28 | -* | |
29 | ---> | |
30 | - | |
31 | -<link rel="import" href="../base-ajax-json-alasql-datalet/base-ajax-json-alasql-datalet.html"> | |
32 | - | |
33 | -<!-- | |
34 | -The `datatable-datalet` is a porting of Datatables JQuery library in a web component that has built up by using Polymer. | |
35 | -Pass to this component a data url(CKAN api uri) and a string with one or multiple query in JsonPath format(separated by spaces) and it'll show a | |
36 | -table with data and query attributes with all Datatables library features. | |
37 | - | |
38 | -Example: | |
39 | - | |
40 | - <datatable-datalet | |
41 | - data-url="http://ckan.routetopa.eu/api/action/datastore_search?resource_id=#" | |
42 | - fields='["field1","field2"]'> | |
43 | - </datatables-datalet> | |
44 | - | |
45 | -@element datatable-datalet | |
46 | -@status v0.1 | |
47 | -@demo demo/index.html | |
48 | -@group datalets | |
49 | ---> | |
50 | - | |
51 | -<dom-module id="dynamic-datatable-datalet"> | |
52 | - <template> | |
53 | - <link rel="stylesheet" type="text/css" href="js/DataTables/datatables.css"/> | |
54 | - | |
55 | - <span id="_span"></span> | |
56 | - | |
57 | - <base-ajax-json-alasql-datalet data-url="{{dataUrl}}" fields="{{fields}}" data="{{data}}" title="{{title}}" description="{{description}}" export_menu="{{export_menu}}"></base-ajax-json-alasql-datalet> | |
58 | - </template> | |
59 | - | |
60 | - <script type="text/javascript" src="js/DataTables/datatables.js"></script> | |
61 | - | |
62 | - <script> | |
63 | - var DynamicDatatableBehavior = { | |
64 | - | |
65 | - presentData: function(){ | |
66 | - var html = "<table id=\"dynamic-datatable\" class=\"stripe row-border\" cellspacing=\"0\" style=\"height: auto; width: auto;\">"; | |
67 | - | |
68 | - if(!this.data || this.data[0] == undefined) return; | |
69 | - html += '<thead>'+ | |
70 | - '<tr>'; | |
71 | - for(var x = 0; x<this.data.length; x++){ | |
72 | - html += '<th>' + this.data[x].name + '</th>'; | |
73 | - } | |
74 | - html += '</tr>' + | |
75 | - '</thead>' + | |
76 | - '<tbody>'; | |
77 | - for(var i = 0; i<this.data[0].data.length; i++){ | |
78 | - html += '<tr>'; | |
79 | - for(var x = 0; x<this.data.length; x++){ | |
80 | - html += '<td>' + this.data[x].data[i] + '</td>'; | |
81 | - } | |
82 | - html += '</tr>'; | |
83 | - } | |
84 | - html += '</tbody></table>'; | |
85 | - | |
86 | - $(this._component.$._span).html(html); | |
87 | - $(this._component.$._span.childNodes[0]).DataTable({"order": []}); | |
88 | - }, | |
89 | - | |
90 | - _destroy: function(){ | |
91 | - if(this._component){//evita caso init | |
92 | - $(this._component.$._span).html(""); | |
93 | - //$(this._component.$.datatable).DataTable().destroy(); | |
94 | - this._component.behavior.selectData(); | |
95 | - this._component.behavior.presentData(); | |
96 | - } | |
97 | - } | |
98 | - | |
99 | - }; | |
100 | - | |
101 | - Polymer({ | |
102 | - is : 'dynamic-datatable-datalet' , | |
103 | - | |
104 | - properties: { | |
105 | - /** | |
106 | - * It's the component behavior | |
107 | - * | |
108 | - * @attribute behavior | |
109 | - * @type Object | |
110 | - * @default {} | |
111 | - */ | |
112 | - behavior : { | |
113 | - type : Object, | |
114 | - value : {} | |
115 | - }, | |
116 | - | |
117 | - fields : { | |
118 | - observer: '_reload' | |
119 | - }, | |
120 | - /** | |
121 | - * Control the export menu | |
122 | - * xxxx BITMASK. FROM RIGHT : HTML, PNG, RTF, MY SPACE (eg. 1111 show all, 0000 hide all) | |
123 | - * | |
124 | - * @attribute export_menu | |
125 | - * @type Number | |
126 | - * @default 15 | |
127 | - */ | |
128 | - export_menu : { | |
129 | - type : Number, | |
130 | - value : 15 // xxxx BITMASK. FROM RIGHT : HTML, PNG, RTF, MY SPACE (eg. 1111 show all, 0000 hide all) | |
131 | - } | |
132 | - | |
133 | -// filters : { | |
134 | -// observer: '_reload' | |
135 | -// } | |
136 | - | |
137 | - }, | |
138 | - | |
139 | - ready: function(){ | |
140 | - $(this).find("base-datalet")[0].hideFooter(); | |
141 | - | |
142 | - this.behavior = $.extend(true, {}, BaseDataletBehavior, WorkcycleBehavior, AjaxJsonAlasqlBehavior, DynamicDatatableBehavior); | |
143 | - this.async(function(){this.behavior.init(this)}, 0); | |
144 | - }, | |
145 | - | |
146 | - _reload: function(){ | |
147 | - | |
148 | - if(this.fields.constructor == Array);//fields in selectData --> from Array to String | |
149 | - else{ | |
150 | - this.behavior._destroy(); | |
151 | -// this.behavior.selectData(); | |
152 | -// this.behavior.presentData(); | |
153 | - } | |
154 | - } | |
155 | - }); | |
156 | - | |
157 | - </script> | |
158 | -</dom-module> | |
159 | - |
datalets/dynamic-datatable-datalet/js/DataTables/datatables.css deleted
1 | -/* | |
2 | - * This combined file was created by the DataTables downloader builder: | |
3 | - * https://datatables.net/download | |
4 | - * | |
5 | - * To rebuild or modify this file with the latest versions of the included | |
6 | - * software please visit: | |
7 | - * https://datatables.net/download/#ju-1.11.4/dt-1.10.9 | |
8 | - * | |
9 | - * Included libraries: | |
10 | - * jQuery UI 1.11.4, DataTables 1.10.9 | |
11 | - */ | |
12 | - | |
13 | -/*! jQuery UI - v1.11.4 - 2015-03-11 | |
14 | -* http://jqueryui.com | |
15 | -* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css | |
16 | -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px | |
17 | -* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ | |
18 | - | |
19 | -/* Layout helpers | |
20 | -----------------------------------*/ | |
21 | -.ui-helper-hidden { | |
22 | - display: none; | |
23 | -} | |
24 | -.ui-helper-hidden-accessible { | |
25 | - border: 0; | |
26 | - clip: rect(0 0 0 0); | |
27 | - height: 1px; | |
28 | - margin: -1px; | |
29 | - overflow: hidden; | |
30 | - padding: 0; | |
31 | - position: absolute; | |
32 | - width: 1px; | |
33 | -} | |
34 | -.ui-helper-reset { | |
35 | - margin: 0; | |
36 | - padding: 0; | |
37 | - border: 0; | |
38 | - outline: 0; | |
39 | - line-height: 1.3; | |
40 | - text-decoration: none; | |
41 | - font-size: 100%; | |
42 | - list-style: none; | |
43 | -} | |
44 | -.ui-helper-clearfix:before, | |
45 | -.ui-helper-clearfix:after { | |
46 | - content: ""; | |
47 | - display: table; | |
48 | - border-collapse: collapse; | |
49 | -} | |
50 | -.ui-helper-clearfix:after { | |
51 | - clear: both; | |
52 | -} | |
53 | -.ui-helper-clearfix { | |
54 | - min-height: 0; /* support: IE7 */ | |
55 | -} | |
56 | -.ui-helper-zfix { | |
57 | - width: 100%; | |
58 | - height: 100%; | |
59 | - top: 0; | |
60 | - left: 0; | |
61 | - position: absolute; | |
62 | - opacity: 0; | |
63 | - filter:Alpha(Opacity=0); /* support: IE8 */ | |
64 | -} | |
65 | - | |
66 | -.ui-front { | |
67 | - z-index: 100; | |
68 | -} | |
69 | - | |
70 | - | |
71 | -/* Interaction Cues | |
72 | -----------------------------------*/ | |
73 | -.ui-state-disabled { | |
74 | - cursor: default !important; | |
75 | -} | |
76 | - | |
77 | - | |
78 | -/* Icons | |
79 | -----------------------------------*/ | |
80 | - | |
81 | -/* states and images */ | |
82 | -.ui-icon { | |
83 | - display: block; | |
84 | - text-indent: -99999px; | |
85 | - overflow: hidden; | |
86 | - background-repeat: no-repeat; | |
87 | -} | |
88 | - | |
89 | - | |
90 | -/* Misc visuals | |
91 | -----------------------------------*/ | |
92 | - | |
93 | -/* Overlays */ | |
94 | -.ui-widget-overlay { | |
95 | - position: fixed; | |
96 | - top: 0; | |
97 | - left: 0; | |
98 | - width: 100%; | |
99 | - height: 100%; | |
100 | -} | |
101 | -.ui-accordion .ui-accordion-header { | |
102 | - display: block; | |
103 | - cursor: pointer; | |
104 | - position: relative; | |
105 | - margin: 2px 0 0 0; | |
106 | - padding: .5em .5em .5em .7em; | |
107 | - min-height: 0; /* support: IE7 */ | |
108 | - font-size: 100%; | |
109 | -} | |
110 | -.ui-accordion .ui-accordion-icons { | |
111 | - padding-left: 2.2em; | |
112 | -} | |
113 | -.ui-accordion .ui-accordion-icons .ui-accordion-icons { | |
114 | - padding-left: 2.2em; | |
115 | -} | |
116 | -.ui-accordion .ui-accordion-header .ui-accordion-header-icon { | |
117 | - position: absolute; | |
118 | - left: .5em; | |
119 | - top: 50%; | |
120 | - margin-top: -8px; | |
121 | -} | |
122 | -.ui-accordion .ui-accordion-content { | |
123 | - padding: 1em 2.2em; | |
124 | - border-top: 0; | |
125 | - overflow: auto; | |
126 | -} | |
127 | -.ui-autocomplete { | |
128 | - position: absolute; | |
129 | - top: 0; | |
130 | - left: 0; | |
131 | - cursor: default; | |
132 | -} | |
133 | -.ui-button { | |
134 | - display: inline-block; | |
135 | - position: relative; | |
136 | - padding: 0; | |
137 | - line-height: normal; | |
138 | - margin-right: .1em; | |
139 | - cursor: pointer; | |
140 | - vertical-align: middle; | |
141 | - text-align: center; | |
142 | - overflow: visible; /* removes extra width in IE */ | |
143 | -} | |
144 | -.ui-button, | |
145 | -.ui-button:link, | |
146 | -.ui-button:visited, | |
147 | -.ui-button:hover, | |
148 | -.ui-button:active { | |
149 | - text-decoration: none; | |
150 | -} | |
151 | -/* to make room for the icon, a width needs to be set here */ | |
152 | -.ui-button-icon-only { | |
153 | - width: 2.2em; | |
154 | -} | |
155 | -/* button elements seem to need a little more width */ | |
156 | -button.ui-button-icon-only { | |
157 | - width: 2.4em; | |
158 | -} | |
159 | -.ui-button-icons-only { | |
160 | - width: 3.4em; | |
161 | -} | |
162 | -button.ui-button-icons-only { | |
163 | - width: 3.7em; | |
164 | -} | |
165 | - | |
166 | -/* button text element */ | |
167 | -.ui-button .ui-button-text { | |
168 | - display: block; | |
169 | - line-height: normal; | |
170 | -} | |
171 | -.ui-button-text-only .ui-button-text { | |
172 | - padding: .4em 1em; | |
173 | -} | |
174 | -.ui-button-icon-only .ui-button-text, | |
175 | -.ui-button-icons-only .ui-button-text { | |
176 | - padding: .4em; | |
177 | - text-indent: -9999999px; | |
178 | -} | |
179 | -.ui-button-text-icon-primary .ui-button-text, | |
180 | -.ui-button-text-icons .ui-button-text { | |
181 | - padding: .4em 1em .4em 2.1em; | |
182 | -} | |
183 | -.ui-button-text-icon-secondary .ui-button-text, | |
184 | -.ui-button-text-icons .ui-button-text { | |
185 | - padding: .4em 2.1em .4em 1em; | |
186 | -} | |
187 | -.ui-button-text-icons .ui-button-text { | |
188 | - padding-left: 2.1em; | |
189 | - padding-right: 2.1em; | |
190 | -} | |
191 | -/* no icon support for input elements, provide padding by default */ | |
192 | -input.ui-button { | |
193 | - padding: .4em 1em; | |
194 | -} | |
195 | - | |
196 | -/* button icon element(s) */ | |
197 | -.ui-button-icon-only .ui-icon, | |
198 | -.ui-button-text-icon-primary .ui-icon, | |
199 | -.ui-button-text-icon-secondary .ui-icon, | |
200 | -.ui-button-text-icons .ui-icon, | |
201 | -.ui-button-icons-only .ui-icon { | |
202 | - position: absolute; | |
203 | - top: 50%; | |
204 | - margin-top: -8px; | |
205 | -} | |
206 | -.ui-button-icon-only .ui-icon { | |
207 | - left: 50%; | |
208 | - margin-left: -8px; | |
209 | -} | |
210 | -.ui-button-text-icon-primary .ui-button-icon-primary, | |
211 | -.ui-button-text-icons .ui-button-icon-primary, | |
212 | -.ui-button-icons-only .ui-button-icon-primary { | |
213 | - left: .5em; | |
214 | -} | |
215 | -.ui-button-text-icon-secondary .ui-button-icon-secondary, | |
216 | -.ui-button-text-icons .ui-button-icon-secondary, | |
217 | -.ui-button-icons-only .ui-button-icon-secondary { | |
218 | - right: .5em; | |
219 | -} | |
220 | - | |
221 | -/* button sets */ | |
222 | -.ui-buttonset { | |
223 | - margin-right: 7px; | |
224 | -} | |
225 | -.ui-buttonset .ui-button { | |
226 | - margin-left: 0; | |
227 | - margin-right: -.3em; | |
228 | -} | |
229 | - | |
230 | -/* workarounds */ | |
231 | -/* reset extra padding in Firefox, see h5bp.com/l */ | |
232 | -input.ui-button::-moz-focus-inner, | |
233 | -button.ui-button::-moz-focus-inner { | |
234 | - border: 0; | |
235 | - padding: 0; | |
236 | -} | |
237 | -.ui-datepicker { | |
238 | - width: 17em; | |
239 | - padding: .2em .2em 0; | |
240 | - display: none; | |
241 | -} | |
242 | -.ui-datepicker .ui-datepicker-header { | |
243 | - position: relative; | |
244 | - padding: .2em 0; | |
245 | -} | |
246 | -.ui-datepicker .ui-datepicker-prev, | |
247 | -.ui-datepicker .ui-datepicker-next { | |
248 | - position: absolute; | |
249 | - top: 2px; | |
250 | - width: 1.8em; | |
251 | - height: 1.8em; | |
252 | -} | |
253 | -.ui-datepicker .ui-datepicker-prev-hover, | |
254 | -.ui-datepicker .ui-datepicker-next-hover { | |
255 | - top: 1px; | |
256 | -} | |
257 | -.ui-datepicker .ui-datepicker-prev { | |
258 | - left: 2px; | |
259 | -} | |
260 | -.ui-datepicker .ui-datepicker-next { | |
261 | - right: 2px; | |
262 | -} | |
263 | -.ui-datepicker .ui-datepicker-prev-hover { | |
264 | - left: 1px; | |
265 | -} | |
266 | -.ui-datepicker .ui-datepicker-next-hover { | |
267 | - right: 1px; | |
268 | -} | |
269 | -.ui-datepicker .ui-datepicker-prev span, | |
270 | -.ui-datepicker .ui-datepicker-next span { | |
271 | - display: block; | |
272 | - position: absolute; | |
273 | - left: 50%; | |
274 | - margin-left: -8px; | |
275 | - top: 50%; | |
276 | - margin-top: -8px; | |
277 | -} | |
278 | -.ui-datepicker .ui-datepicker-title { | |
279 | - margin: 0 2.3em; | |
280 | - line-height: 1.8em; | |
281 | - text-align: center; | |
282 | -} | |
283 | -.ui-datepicker .ui-datepicker-title select { | |
284 | - /*font-size: 1em;*/ | |
285 | - margin: 1px 0; | |
286 | -} | |
287 | -.ui-datepicker select.ui-datepicker-month, | |
288 | -.ui-datepicker select.ui-datepicker-year { | |
289 | - width: 45%; | |
290 | -} | |
291 | -.ui-datepicker table { | |
292 | - width: 100%; | |
293 | - /*font-size: .9em;*/ | |
294 | - border-collapse: collapse; | |
295 | - margin: 0 0 .4em; | |
296 | -} | |
297 | -.ui-datepicker th { | |
298 | - padding: .7em .3em; | |
299 | - text-align: center; | |
300 | - font-weight: bold; | |
301 | - border: 0; | |
302 | -} | |
303 | -.ui-datepicker td { | |
304 | - border: 0; | |
305 | - padding: 1px; | |
306 | -} | |
307 | -.ui-datepicker td span, | |
308 | -.ui-datepicker td a { | |
309 | - display: block; | |
310 | - padding: .2em; | |
311 | - text-align: right; | |
312 | - text-decoration: none; | |
313 | -} | |
314 | -.ui-datepicker .ui-datepicker-buttonpane { | |
315 | - background-image: none; | |
316 | - margin: .7em 0 0 0; | |
317 | - padding: 0 .2em; | |
318 | - border-left: 0; | |
319 | - border-right: 0; | |
320 | - border-bottom: 0; | |
321 | -} | |
322 | -.ui-datepicker .ui-datepicker-buttonpane button { | |
323 | - float: right; | |
324 | - margin: .5em .2em .4em; | |
325 | - cursor: pointer; | |
326 | - padding: .2em .6em .3em .6em; | |
327 | - width: auto; | |
328 | - overflow: visible; | |
329 | -} | |
330 | -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { | |
331 | - float: left; | |
332 | -} | |
333 | - | |
334 | -/* with multiple calendars */ | |
335 | -.ui-datepicker.ui-datepicker-multi { | |
336 | - width: auto; | |
337 | -} | |
338 | -.ui-datepicker-multi .ui-datepicker-group { | |
339 | - float: left; | |
340 | -} | |
341 | -.ui-datepicker-multi .ui-datepicker-group table { | |
342 | - width: 95%; | |
343 | - margin: 0 auto .4em; | |
344 | -} | |
345 | -.ui-datepicker-multi-2 .ui-datepicker-group { | |
346 | - width: 50%; | |
347 | -} | |
348 | -.ui-datepicker-multi-3 .ui-datepicker-group { | |
349 | - width: 33.3%; | |
350 | -} | |
351 | -.ui-datepicker-multi-4 .ui-datepicker-group { | |
352 | - width: 25%; | |
353 | -} | |
354 | -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, | |
355 | -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { | |
356 | - border-left-width: 0; | |
357 | -} | |
358 | -.ui-datepicker-multi .ui-datepicker-buttonpane { | |
359 | - clear: left; | |
360 | -} | |
361 | -.ui-datepicker-row-break { | |
362 | - clear: both; | |
363 | - width: 100%; | |
364 | - font-size: 0; | |
365 | -} | |
366 | - | |
367 | -/* RTL support */ | |
368 | -.ui-datepicker-rtl { | |
369 | - direction: rtl; | |
370 | -} | |
371 | -.ui-datepicker-rtl .ui-datepicker-prev { | |
372 | - right: 2px; | |
373 | - left: auto; | |
374 | -} | |
375 | -.ui-datepicker-rtl .ui-datepicker-next { | |
376 | - left: 2px; | |
377 | - right: auto; | |
378 | -} | |
379 | -.ui-datepicker-rtl .ui-datepicker-prev:hover { | |
380 | - right: 1px; | |
381 | - left: auto; | |
382 | -} | |
383 | -.ui-datepicker-rtl .ui-datepicker-next:hover { | |
384 | - left: 1px; | |
385 | - right: auto; | |
386 | -} | |
387 | -.ui-datepicker-rtl .ui-datepicker-buttonpane { | |
388 | - clear: right; | |
389 | -} | |
390 | -.ui-datepicker-rtl .ui-datepicker-buttonpane button { | |
391 | - float: left; | |
392 | -} | |
393 | -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, | |
394 | -.ui-datepicker-rtl .ui-datepicker-group { | |
395 | - float: right; | |
396 | -} | |
397 | -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, | |
398 | -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { | |
399 | - border-right-width: 0; | |
400 | - border-left-width: 1px; | |
401 | -} | |
402 | -.ui-dialog { | |
403 | - overflow: hidden; | |
404 | - position: absolute; | |
405 | - top: 0; | |
406 | - left: 0; | |
407 | - padding: .2em; | |
408 | - outline: 0; | |
409 | -} | |
410 | -.ui-dialog .ui-dialog-titlebar { | |
411 | - padding: .4em 1em; | |
412 | - position: relative; | |
413 | -} | |
414 | -.ui-dialog .ui-dialog-title { | |
415 | - float: left; | |
416 | - margin: .1em 0; | |
417 | - white-space: nowrap; | |
418 | - width: 90%; | |
419 | - overflow: hidden; | |
420 | - text-overflow: ellipsis; | |
421 | -} | |
422 | -.ui-dialog .ui-dialog-titlebar-close { | |
423 | - position: absolute; | |
424 | - right: .3em; | |
425 | - top: 50%; | |
426 | - width: 20px; | |
427 | - margin: -10px 0 0 0; | |
428 | - padding: 1px; | |
429 | - height: 20px; | |
430 | -} | |
431 | -.ui-dialog .ui-dialog-content { | |
432 | - position: relative; | |
433 | - border: 0; | |
434 | - padding: .5em 1em; | |
435 | - background: none; | |
436 | - overflow: auto; | |
437 | -} | |
438 | -.ui-dialog .ui-dialog-buttonpane { | |
439 | - text-align: left; | |
440 | - border-width: 1px 0 0 0; | |
441 | - background-image: none; | |
442 | - margin-top: .5em; | |
443 | - padding: .3em 1em .5em .4em; | |
444 | -} | |
445 | -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { | |
446 | - float: right; | |
447 | -} | |
448 | -.ui-dialog .ui-dialog-buttonpane button { | |
449 | - margin: .5em .4em .5em 0; | |
450 | - cursor: pointer; | |
451 | -} | |
452 | -.ui-dialog .ui-resizable-se { | |
453 | - width: 12px; | |
454 | - height: 12px; | |
455 | - right: -5px; | |
456 | - bottom: -5px; | |
457 | - background-position: 16px 16px; | |
458 | -} | |
459 | -.ui-draggable .ui-dialog-titlebar { | |
460 | - cursor: move; | |
461 | -} | |
462 | -.ui-draggable-handle { | |
463 | - -ms-touch-action: none; | |
464 | - touch-action: none; | |
465 | -} | |
466 | -.ui-menu { | |
467 | - list-style: none; | |
468 | - padding: 0; | |
469 | - margin: 0; | |
470 | - display: block; | |
471 | - outline: none; | |
472 | -} | |
473 | -.ui-menu .ui-menu { | |
474 | - position: absolute; | |
475 | -} | |
476 | -.ui-menu .ui-menu-item { | |
477 | - position: relative; | |
478 | - margin: 0; | |
479 | - padding: 3px 1em 3px .4em; | |
480 | - cursor: pointer; | |
481 | - min-height: 0; /* support: IE7 */ | |
482 | - /* support: IE10, see #8844 */ | |
483 | - list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); | |
484 | -} | |
485 | -.ui-menu .ui-menu-divider { | |
486 | - margin: 5px 0; | |
487 | - height: 0; | |
488 | - font-size: 0; | |
489 | - line-height: 0; | |
490 | - border-width: 1px 0 0 0; | |
491 | -} | |
492 | -.ui-menu .ui-state-focus, | |
493 | -.ui-menu .ui-state-active { | |
494 | - margin: -1px; | |
495 | -} | |
496 | - | |
497 | -/* icon support */ | |
498 | -.ui-menu-icons { | |
499 | - position: relative; | |
500 | -} | |
501 | -.ui-menu-icons .ui-menu-item { | |
502 | - padding-left: 2em; | |
503 | -} | |
504 | - | |
505 | -/* left-aligned */ | |
506 | -.ui-menu .ui-icon { | |
507 | - position: absolute; | |
508 | - top: 0; | |
509 | - bottom: 0; | |
510 | - left: .2em; | |
511 | - margin: auto 0; | |
512 | -} | |
513 | - | |
514 | -/* right-aligned */ | |
515 | -.ui-menu .ui-menu-icon { | |
516 | - left: auto; | |
517 | - right: 0; | |
518 | -} | |
519 | -.ui-progressbar { | |
520 | - height: 2em; | |
521 | - text-align: left; | |
522 | - overflow: hidden; | |
523 | -} | |
524 | -.ui-progressbar .ui-progressbar-value { | |
525 | - margin: -1px; | |
526 | - height: 100%; | |
527 | -} | |
528 | -.ui-progressbar .ui-progressbar-overlay { | |
529 | - background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); | |
530 | - height: 100%; | |
531 | - filter: alpha(opacity=25); /* support: IE8 */ | |
532 | - opacity: 0.25; | |
533 | -} | |
534 | -.ui-progressbar-indeterminate .ui-progressbar-value { | |
535 | - background-image: none; | |
536 | -} | |
537 | -.ui-resizable { | |
538 | - position: relative; | |
539 | -} | |
540 | -.ui-resizable-handle { | |
541 | - position: absolute; | |
542 | - font-size: 0.1px; | |
543 | - display: block; | |
544 | - -ms-touch-action: none; | |
545 | - touch-action: none; | |
546 | -} | |
547 | -.ui-resizable-disabled .ui-resizable-handle, | |
548 | -.ui-resizable-autohide .ui-resizable-handle { | |
549 | - display: none; | |
550 | -} | |
551 | -.ui-resizable-n { | |
552 | - cursor: n-resize; | |
553 | - height: 7px; | |
554 | - width: 100%; | |
555 | - top: -5px; | |
556 | - left: 0; | |
557 | -} | |
558 | -.ui-resizable-s { | |
559 | - cursor: s-resize; | |
560 | - height: 7px; | |
561 | - width: 100%; | |
562 | - bottom: -5px; | |
563 | - left: 0; | |
564 | -} | |
565 | -.ui-resizable-e { | |
566 | - cursor: e-resize; | |
567 | - width: 7px; | |
568 | - right: -5px; | |
569 | - top: 0; | |
570 | - height: 100%; | |
571 | -} | |
572 | -.ui-resizable-w { | |
573 | - cursor: w-resize; | |
574 | - width: 7px; | |
575 | - left: -5px; | |
576 | - top: 0; | |
577 | - height: 100%; | |
578 | -} | |
579 | -.ui-resizable-se { | |
580 | - cursor: se-resize; | |
581 | - width: 12px; | |
582 | - height: 12px; | |
583 | - right: 1px; | |
584 | - bottom: 1px; | |
585 | -} | |
586 | -.ui-resizable-sw { | |
587 | - cursor: sw-resize; | |
588 | - width: 9px; | |
589 | - height: 9px; | |
590 | - left: -5px; | |
591 | - bottom: -5px; | |
592 | -} | |
593 | -.ui-resizable-nw { | |
594 | - cursor: nw-resize; | |
595 | - width: 9px; | |
596 | - height: 9px; | |
597 | - left: -5px; | |
598 | - top: -5px; | |
599 | -} | |
600 | -.ui-resizable-ne { | |
601 | - cursor: ne-resize; | |
602 | - width: 9px; | |
603 | - height: 9px; | |
604 | - right: -5px; | |
605 | - top: -5px; | |
606 | -} | |
607 | -.ui-selectable { | |
608 | - -ms-touch-action: none; | |
609 | - touch-action: none; | |
610 | -} | |
611 | -.ui-selectable-helper { | |
612 | - position: absolute; | |
613 | - z-index: 100; | |
614 | - border: 1px dotted black; | |
615 | -} | |
616 | -.ui-selectmenu-menu { | |
617 | - padding: 0; | |
618 | - margin: 0; | |
619 | - position: absolute; | |
620 | - top: 0; | |
621 | - left: 0; | |
622 | - display: none; | |
623 | -} | |
624 | -.ui-selectmenu-menu .ui-menu { | |
625 | - overflow: auto; | |
626 | - /* Support: IE7 */ | |
627 | - overflow-x: hidden; | |
628 | - padding-bottom: 1px; | |
629 | -} | |
630 | -.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { | |
631 | - /*font-size: 1em;*/ | |
632 | - font-weight: bold; | |
633 | - line-height: 1.5; | |
634 | - padding: 2px 0.4em; | |
635 | - margin: 0.5em 0 0 0; | |
636 | - height: auto; | |
637 | - border: 0; | |
638 | -} | |
639 | -.ui-selectmenu-open { | |
640 | - display: block; | |
641 | -} | |
642 | -.ui-selectmenu-button { | |
643 | - display: inline-block; | |
644 | - overflow: hidden; | |
645 | - position: relative; | |
646 | - text-decoration: none; | |
647 | - cursor: pointer; | |
648 | -} | |
649 | -.ui-selectmenu-button span.ui-icon { | |
650 | - right: 0.5em; | |
651 | - left: auto; | |
652 | - margin-top: -8px; | |
653 | - position: absolute; | |
654 | - top: 50%; | |
655 | -} | |
656 | -.ui-selectmenu-button span.ui-selectmenu-text { | |
657 | - text-align: left; | |
658 | - padding: 0.4em 2.1em 0.4em 1em; | |
659 | - display: block; | |
660 | - line-height: 1.4; | |
661 | - overflow: hidden; | |
662 | - text-overflow: ellipsis; | |
663 | - white-space: nowrap; | |
664 | -} | |
665 | -.ui-slider { | |
666 | - position: relative; | |
667 | - text-align: left; | |
668 | -} |