Commit 8d261aa1227a647a43ac7b09c255313a4acbfeb9

Authored by Renato De Donato
1 parent 9a8ed768

creator

controllet.html 0 → 100644
  1 +<script type="text/javascript" src="controllets/shared_js/jquery-1.11.2.min.js"></script>
  2 +<script type="text/javascript" src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
  3 +<link rel="import" href="controllets/data-sevc-controllet/demo-data-sevc-controllet.html" />
  4 +
  5 +<style>
  6 + #controllet paper-material {
  7 + overflow: hidden;
  8 + }
  9 +</style>
  10 +
  11 +<script type="text/javascript">
  12 + $(document).ready(function () {
  13 + var datasets = {"result":{
  14 + "providers":{"1":{"title":"CKAN","api_url":"http://ckan.routetopa.eu","image_hash":"11","id":"1"}},
  15 + "datasets":[
  16 + {"w":1,"provider_name":"p:1","organization_name":"SPOD","package_name":"isislab","resource_name":"SPOD SUPER HEROES","url":"http:\/\/ckan.routetopa.eu\/\/api/action\/datastore_search?resource_id=642ceea8-711e-4124-b450-0d23010c44e6","metas":"{\"organization\":\"SPOD\",\"description\":\"This is a test datasets.\",\"format\":\"CSV\"}"},
  17 + {"w":1,"provider_name":"p:1","organization_name":"SPOD","package_name":"isislab","resource_name":"Wonders of the World","url":"http:\/\/ckan.routetopa.eu\/\/api\/action\/datastore_search?resource_id=1d9c8e62-47ab-40d5-8943-b4c3bca14b50","metas":"{\"organization\":\"SPOD\",\"description\":\"This is a test datasets.\",\"format\":\"CSV\"}"},
  18 + {"w":1,"provider_name":"p:1","organization_name":"SPOD","package_name":"isislab","resource_name":"Animal Sounds","url":"http:\/\/ckan.routetopa.eu\/\/api\/action\/datastore_search?resource_id=1d9c8e62-47ab-40d5-8943-b4c3bca14b50","metas":"{\"organization\":\"SPOD\",\"description\":\"This is a test datasets.\",\"format\":\"CSV\"}"}
  19 + ]}};
  20 +
  21 + var controllet = document.getElementById("controllet");
  22 + controllet.setAttribute("datasets", JSON.stringify(datasets));
  23 +
  24 + window.addEventListener("data-sevc-controllet.dataletCreated", function(e){parent.createHTML(e);});
  25 + });
  26 +
  27 + //http://ckan.routetopa.eu/api/action/datastore_search?resource_id=1d9c8e62-47ab-40d5-8943-b4c3bca14b50
  28 +
  29 +</script>
  30 +
  31 +<demo-data-sevc-controllet id="controllet"
  32 + deep-url="http://172.16.15.38/DEEalerProvider/DEEP/"
  33 + datalets-list-url="http://172.16.15.38/DEEalerProvider/DEEP/datalets-list"
  34 + >
  35 +</demo-data-sevc-controllet>
  36 +
  37 +<!--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":"SPOD","package_name":"isislab","resource_name":"EXAMPLE 1","url":"http:\/\/ckan.routetopa.eu\/\/api\/action\/datastore_search?resource_id=642ceea8-711e-4124-b450-0d23010c44e6","metas":"{\"organization\":\"SPOD\",\"description\":\"This is a test datasets.\",\"format\":\"CSV\"}"}, {"w":1,"provider_name":"p:1","organization_name":"SPOD","package_name":"isislab","resource_name":"EXAMPLE 2","url":"http:\/\/ckan2.routetopa.eu\/\/api\/action\/datastore_search?resource_id=642ceea8-711e-4124-b450-0d23010c44e6","metas":"{\"organization\":\"SPOD\",\"description\":\"This is a test datasets.\",\"format\":\"CSV\"}"}, {"w":1,"provider_name":"p:1","organization_name":"SPOD","package_name":"isislab","resource_name":"EXAMPLE 3","url":"http:\/\/ckan3.routetopa.eu\/\/api\/action\/datastore_search?resource_id=642ceea8-711e-4124-b450-0d23010c44e6","metas":"{\"organization\":\"SPOD\",\"description\":\"This is a test datasets.\",\"format\":\"CSV\"}"}]}}'-->
... ...
controllets/cocreation-paper-card-controllet/cocreation-paper-card-controllet.html
... ... @@ -186,10 +186,10 @@
186 186 <iron-icon class="icon-to" icon="alarm-off"></iron-icon>&nbsp; {{to}}
187 187 </div>
188 188 </div>
189   - <template is="dom-if" if="{{!checkRoomType(roomType)}}">
  189 + <template is="dom-if" if="{{!_checkRoomType(roomType)}}">
190 190 <paper-fab mini icon="assessment" class="assessment" noink></paper-fab>
191 191 </template>
192   - <template is="dom-if" if="{{checkRoomType(roomType)}}">
  192 + <template is="dom-if" if="{{_checkRoomType(roomType)}}">
193 193 <paper-fab mini icon="description" class="description" noink></paper-fab>
194 194 </template>
195 195 </div>
... ... @@ -274,15 +274,15 @@
274 274 this.$.explore.innerHTML = cocreation_room_ln["explore_" + cocreation_room_ln["ln"]];
275 275 },
276 276  
277   - _handleDeleteClick: function(e){
  277 + _handleDeleteClick: function(){
278 278 this.fire("cocreation-paper-card-controllet_delete", {roomId: this.roomId});
279 279 },
280 280  
281   - _onExplore: function(e){
  281 + _onExplore: function(){
282 282 window.location = this.roomUrl;
283 283 },
284 284  
285   - checkRoomType: function(type){
  285 + _checkRoomType: function(type){
286 286 return (type == "knowledge") ? true : false;
287 287 }
288 288 })
... ...
controllets/data-sevc-controllet/data-sevc-controllet_old.html deleted
1   -<script src="../shared_js/perfect-scrollbar/js/min/perfect-scrollbar.jquery.min.js"></script>
2   -<link rel="stylesheet" href="../shared_js/perfect-scrollbar/css/perfect-scrollbar.min.css">
3   -
4   -<script src="../../locales/controllet_ln.js"></script>
5   -
6   -<link rel="import" href="../../bower_components/polymer/polymer.html">
7   -
8   -<link rel="import" href="../page-slider-controllet/page-slider-controllet.html">
9   -
10   -<link rel="import" href="../select-dataset-controllet/select-dataset-controllet.html">
11   -<link rel="import" href="../select-data-controllet/select-data-controllet.html" />
12   -<link rel="import" href="../select-visualization-controllet/select-visualization-controllet.html" />
13   -
14   -<dom-module id="data-sevc-controllet">
15   -
16   - <template>
17   -
18   - <page-slider-controllet id="slider">
19   -
20   - <neon-animatable>
21   -
22   - <template is="dom-if" if={{!modify}}>
23   - <select-dataset-controllet id="select_dataset" data={{data}} datasets={{datasets}} suggested-datasets={{suggestedDatasets}}></select-dataset-controllet>
24   - </template>
25   -
26   - </neon-animatable>
27   -
28   - <neon-animatable>
29   -
30   - <select-data-controllet id="select_data" data-url={{dataUrl}} preselected-fields={{selectedFields}} datalet-preset="{{dataletPreset}}"></select-data-controllet>
31   -
32   - </neon-animatable>
33   -
34   - <neon-animatable>
35   -
36   - <select-visualization-controllet id="select_visualization" deep-url={{deepUrl}} datalets-list-url={{dataletsListUrl}} data-url={{dataUrl}} preselected-datalet={{selectedDatalet}} datalet-preset={{dataletPreset}}></select-visualization-controllet>
37   -
38   - </neon-animatable>
39   -
40   - </page-slider-controllet>
41   -
42   - </template>
43   -
44   - <script>
45   -
46   - Polymer({
47   -
48   - is : 'data-sevc-controllet',
49   -
50   - listeners : {
51   - 'page-slider-controllet_selected' : '_updateSlider',
52   - 'dataset-selection-controllet_data-url' : '_allowSecondStep',
53   - 'tree-view-controllet_selected-fields' : '_allowThirdStep'
54   - },
55   -
56   - properties : {
57   -
58   - deepUrl : {
59   - type : String,
60   - value : undefined
61   - },
62   -
63   - dataletsListUrl : {
64   - type : String ,
65   - value : undefined
66   - },
67   -
68   - datasets : {
69   - type : Array,
70   - value : undefined
71   - },
72   -
73   - suggestedDatasets : {
74   - type : Array,
75   - value : undefined
76   - },
77   -
78   - dataUrl : {
79   - type : String,
80   - value : undefined
81   - },
82   -
83   - jsonData : {
84   - type : Object,
85   - value : undefined
86   - },
87   -
88   - modify : {
89   - type : Boolean,
90   - value : false
91   - },
92   -
93   - selectedDatalet : {
94   - type : String,
95   - value : undefined
96   - },
97   -
98   - selectedFields : {
99   - type : Array,
100   - value : []
101   - },
102   -
103   - dataletPreset : {
104   - type : Object,
105   - value : []
106   - },
107   -
108   - localization : {
109   - type : String,
110   - value : "en"
111   - }
112   -
113   - },
114   -
115   - ready : function(){
116   - if(this.selectedDatalet){
117   - this.modify = true;
118   - this.$.slider.selected = 1;
119   - this.dataUrl = this.dataletPreset["data-url"];
120   - }
121   - ln["localization"] = this.localization;
122   - },
123   -
124   - _updateSlider : function(e){
125   - switch (e.detail.selected) {
126   - case 0:
127   - slider.setTitle(ln["slide1Title_" + this.localization], ln["slide1Subtitle_" + this.localization]);
128   - slider.chevronLeft("invisible");
129   - slider.chevronRight(false);
130   - if(slider.getPrevSelected() == 1)
131   - slider.chevronRight(true);
132   - break;
133   - case 1:
134   - slider.setTitle(ln["slide2Title_" + this.localization], ln["slide2Subtitle_" + this.localization]);
135   - if(this.modify){
136   - slider.chevronLeft("invisible");
137   - }
138   - else{
139   - slider.chevronLeft(true);
140   - }
141   - slider.chevronRight(false);
142   - this._allowThirdStep({detail: {fields: select_data.getSelectedFields()}});
143   - if(this.modify){
144   - this.$.select_visualization.setFields(select_data.getSelectedFields());
145   - this.$.select_visualization.setFilters(select_data.getFilters());
146   - }
147   - break;
148   - case 2:
149   - slider.setTitle(ln["slide3Title_" + this.localization], ln["slide3Subtitle_" + this.localization]);
150   - slider.chevronLeft(true);
151   - slider.chevronRight("invisible");
152   -
153   - this.$.select_visualization.setFields(select_data.getSelectedFields());
154   - this.$.select_visualization.setFilters(select_data.getFilters());
155   - if(this.modify) {
156   - this.$.select_visualization.show();//resize
157   - }
158   - }
159   - },
160   -
161   - _allowSecondStep : function(e){
162   - if(e.detail.url == "") {
163   - slider.chevronRight(false);
164   - select_dataset.$.selected_url.invalid = false;
165   - return;
166   - }
167   -
168   - this.dataUrl = e.detail.url;
169   -
170   - var that = this;
171   -
172   - $.ajax({
173   - url: e.detail.url,
174   - dataType: "json",
175   - success: function(data){
176   -// this.dataUrl = e.detail.url
177   -// this.jsonData = JSON.stringify(data);
178   - slider.chevronRight(true);
179   - select_dataset.$.selected_url.invalid = false;
180   -
181   - that.$.select_data._init();
182   - },
183   - error: function(){
184   -// this.jsonData = undefined;
185   - slider.chevronRight(false);
186   - select_dataset.$.selected_url.invalid = true;
187   -
188   - that.$.select_data._reset();
189   - }
190   - });
191   -
192   - //NOT HERE ma quando VADO al secondo passo e l'url è cambiato
193   -// this.$.select_data._init();
194   - this.$.select_visualization.reset();
195   - },
196   -
197   - _allowThirdStep : function(e){
198   - if(e.detail.fields.length > 0)
199   - slider.chevronRight(true);
200   - else
201   - slider.chevronRight(false);
202   -
203   - //this.$.select_visualization.reset();
204   - }
205   -
206   - });
207   -
208   - </script>
209   -
210   -</dom-module>
211 0 \ No newline at end of file
controllets/data-sevc-controllet/datalets-modifier-controllet.html deleted
1   -<script src="../shared_js/perfect-scrollbar/js/min/perfect-scrollbar.jquery.min.js"></script>
2   -<link rel="stylesheet" href="../shared_js/perfect-scrollbar/css/perfect-scrollbar.min.css">
3   -
4   -<script src="../../locales/controllet_ln.js"></script>
5   -
6   -<link rel="import" href="../../bower_components/polymer/polymer.html">
7   -
8   -<link rel="import" href="../page-slider-controllet/page-slider-controllet.html">
9   -
10   -<link rel="import" href="../select-data-controllet/select-data-controllet.html" />
11   -<link rel="import" href="../select-visualization-controllet/select-visualization-controllet.html" />
12   -
13   -<dom-module id="datalets-modifier-controllet">
14   -
15   - <template>
16   -
17   - <page-slider-controllet id="slider">
18   -
19   - <neon-animatable>
20   -
21   - <select-data-controllet id="select_data"></select-data-controllet>
22   -
23   - </neon-animatable>
24   -
25   - <neon-animatable>
26   -
27   - <select-visualization-controllet id="select_visualization" deep-url={{deepUrl}} datalets-list-url={{dataletsListUrl}}></select-visualization-controllet>
28   -
29   - </neon-animatable>
30   -
31   - </page-slider-controllet>
32   -
33   - </template>
34   -
35   - <script>
36   -
37   - Polymer({
38   -
39   - is : 'datalets-modifier-controllet',
40   -
41   - listeners : {
42   - 'page-slider-controllet_selected' : '_updateSlider',
43   - 'dataset-selection-controllet_data-url' : '_allowSecondStep',
44   - 'tree-view-controllet_selected-fields' : '_allowThirdStep'
45   - },
46   -
47   - properties : {
48   -// dataUrl : {
49   -// type : String,
50   -// value : undefined
51   -// },
52   -
53   - preselectedDatalet : { //datalet
54   - type : String,
55   - value : undefined
56   - },
57   -
58   - preselectedFields : { //fields
59   - type : Array,
60   - value : undefined
61   - },
62   -
63   - dataletPreset : { //params
64   - type : String,
65   - value : undefined
66   - },
67   -
68   - deepUrl : {
69   - type : String,
70   - value : undefined
71   - },
72   -
73   - dataletsListUrl : {
74   - type : String ,
75   - value : undefined
76   - },
77   -
78   - localization : {
79   - type : String,
80   - value : "en"
81   - }
82   -
83   - },
84   -
85   - ready : function(){
86   - if(this.selectedDatalet){
87   - this.modify = true;
88   - this.$.slider.selected = 1;
89   - this.dataUrl = this.dataletPreset["data-url"];
90   - }
91   - ln["localization"] = this.localization;
92   - },
93   -
94   - _updateSlider : function(e){
95   - switch (e.detail.selected) {
96   - case 0:
97   - slider.setTitle(ln["slide1Title_" + this.localization], ln["slide1Subtitle_" + this.localization]);
98   - slider.chevronLeft("invisible");
99   - slider.chevronRight(false);
100   - if(slider.getPrevSelected() == 1)
101   - slider.chevronRight(true);
102   - break;
103   - case 1:
104   - slider.setTitle(ln["slide2Title_" + this.localization], ln["slide2Subtitle_" + this.localization]);
105   - if(this.modify){
106   - slider.chevronLeft("invisible");
107   - }
108   - else{
109   - slider.chevronLeft(true);
110   - }
111   - slider.chevronRight(false);
112   - this._allowThirdStep({detail: {fields: select_data.getSelectedFields()}});
113   - if(this.modify){
114   - this.$.select_visualization.setFields(select_data.getSelectedFields());
115   - this.$.select_visualization.setFilters(select_data.getFilters());
116   - }
117   - break;
118   - case 2:
119   - slider.setTitle(ln["slide3Title_" + this.localization], ln["slide3Subtitle_" + this.localization]);
120   - slider.chevronLeft(true);
121   - slider.chevronRight("invisible");
122   -
123   - this.$.select_visualization.setFields(select_data.getSelectedFields());
124   - this.$.select_visualization.setFilters(select_data.getFilters());
125   - if(this.modify) {
126   - this.$.select_visualization.show();//resize
127   - }
128   - }
129   - },
130   -
131   - _allowSecondStep : function(e){
132   - if(e.detail.url == "") {
133   - slider.chevronRight(false);
134   - select_dataset.$.selected_url.invalid = false;
135   - return;
136   - }
137   -
138   - this.dataUrl = e.detail.url;
139   -
140   - var that = this;
141   -
142   - $.ajax({
143   - url: e.detail.url,
144   - dataType: "json",
145   - success: function(data){
146   -// this.dataUrl = e.detail.url
147   -// this.jsonData = JSON.stringify(data);
148   - slider.chevronRight(true);
149   - select_dataset.$.selected_url.invalid = false;
150   -
151   - that.$.select_data._init();
152   - },
153   - error: function(){
154   -// this.jsonData = undefined;
155   - slider.chevronRight(false);
156   - select_dataset.$.selected_url.invalid = true;
157   -
158   - that.$.select_data._reset();
159   - }
160   - });
161   -
162   - //NOT HERE ma quando VADO al secondo passo e l'url è cambiato
163   -// this.$.select_data._init();
164   - this.$.select_visualization.reset();
165   - },
166   -
167   - _allowThirdStep : function(e){
168   - if(e.detail.fields.length > 0)
169   - slider.chevronRight(true);
170   - else
171   - slider.chevronRight(false);
172   -
173   - //this.$.select_visualization.reset();
174   - }
175   -
176   - });
177   -
178   - </script>
179   -
180   -</dom-module>
181 0 \ No newline at end of file
controllets/data-sevc-controllet/demo-data-sevc-controllet.html 0 → 100644
  1 +<script src="../shared_js/perfect-scrollbar/js/min/perfect-scrollbar.jquery.min.js"></script>
  2 +<link rel="stylesheet" href="../shared_js/perfect-scrollbar/css/perfect-scrollbar.min.css">
  3 +
  4 +<script src="../../locales/controllet_ln.js"></script>
  5 +
  6 +<link rel="import" href="../../bower_components/polymer/polymer.html">
  7 +
  8 +<link rel="import" href="../page-slider-controllet/page-slider-controllet.html">
  9 +
  10 +<link rel="import" href="../select-dataset-controllet/demo-select-dataset-controllet.html">
  11 +<link rel="import" href="../select-data-controllet/select-data-controllet.html" />
  12 +<link rel="import" href="../select-visualization-controllet/select-visualization-controllet.html" />
  13 +
  14 +<dom-module id="demo-data-sevc-controllet">
  15 +
  16 + <template>
  17 +
  18 + <page-slider-controllet id="slider">
  19 +
  20 + <neon-animatable>
  21 +
  22 + <demo-select-dataset-controllet id="select_dataset" datasets={{datasets}} suggested-datasets={{suggestedDatasets}}></demo-select-dataset-controllet>
  23 +
  24 + </neon-animatable>
  25 +
  26 + <neon-animatable>
  27 +
  28 + <select-data-controllet id="select_data"></select-data-controllet>
  29 +
  30 + </neon-animatable>
  31 +
  32 + <neon-animatable>
  33 +
  34 + <select-visualization-controllet id="select_visualization" deep-url={{deepUrl}} datalets-list-url={{dataletsListUrl}}></select-visualization-controllet>
  35 +
  36 + </neon-animatable>
  37 +
  38 + </page-slider-controllet>
  39 +
  40 + </template>
  41 +
  42 + <script>
  43 +
  44 + Polymer({
  45 +
  46 + is : 'demo-data-sevc-controllet',
  47 +
  48 + listeners : {
  49 + 'page-slider-controllet_selected' : '_updateSlider',
  50 + 'select-dataset-controllet_data-url' : '_allowSecondStep',
  51 + 'select-fields-controllet_selected-fields' : '_allowThirdStep',
  52 + 'filters-controllet_filters': '_allowThirdStep',
  53 + 'aggregators-controllet_aggregators': '_allowThirdStep',
  54 + 'data-ready': '_dataReady'
  55 + },
  56 +
  57 + properties : {
  58 +
  59 + datasets : {
  60 + type : Object,
  61 + value : undefined
  62 + },
  63 +
  64 + suggestedDatasets : {
  65 + type : Array,
  66 + value : undefined
  67 + },
  68 +
  69 + deepUrl : {
  70 + type : String,
  71 + value : undefined
  72 + },
  73 +
  74 + dataletsListUrl : {
  75 + type : String ,
  76 + value : undefined
  77 + },
  78 +
  79 + localization : {
  80 + type : String,
  81 + value : "en"
  82 + }
  83 +
  84 + },
  85 +
  86 + ready : function(){
  87 + ln["localization"] = this.localization;
  88 + },
  89 +
  90 + _updateSlider : function(e){
  91 + switch (e.detail.selected) {
  92 + case 0:
  93 + this.$.slider.setTitle(ln["slide1Title_" + this.localization], ln["slide1Subtitle_" + this.localization]);
  94 +
  95 + this.$.slider.chevronLeft("invisible");
  96 + this.$.slider.chevronRight(false);
  97 +
  98 + if(this.$.slider.getPrevSelected() == 1)
  99 + this.$.slider.chevronRight(true);
  100 + break;
  101 + case 1:
  102 + this.$.slider.setTitle(ln["slide2Title_" + this.localization], ln["slide2Subtitle_" + this.localization]);
  103 +
  104 + this.$.slider.chevronLeft(true);
  105 + this.$.slider.chevronRight(false);
  106 +
  107 + if(this.$.slider.getPrevSelected() == 2)
  108 + this.$.slider.chevronRight(true);
  109 + break;
  110 + case 2:
  111 + this.$.slider.setTitle(ln["slide3Title_" + this.localization], ln["slide3Subtitle_" + this.localization]);
  112 +
  113 + this.$.slider.chevronLeft(true);
  114 + this.$.slider.chevronRight("invisible");
  115 + }
  116 + },
  117 +
  118 + _allowSecondStep : function(e){
  119 + this.$.slider.chevronRight(false);
  120 +
  121 + var f = Object.create(providerFactory);
  122 + var provider = f.getProvider(e.detail.url);
  123 + var dataUrl = provider.addLimit(e.detail.url);
  124 +
  125 + this.$.select_data.dataUrl = dataUrl;
  126 + this.$.select_data.init();
  127 + this.$.select_visualization.dataUrl = dataUrl;
  128 + this.$.select_visualization.init();
  129 + },
  130 +
  131 + _dataReady : function(e){
  132 + if(e.detail.ready) {
  133 + this.$.slider.chevronRight(true);
  134 + this.$.select_dataset.$.selected_url.invalid = false;
  135 + }
  136 + else
  137 + this.$.select_dataset.$.selected_url.invalid = true;
  138 +
  139 + this.$.select_dataset.showDatasetInfo();
  140 + },
  141 +
  142 + _allowThirdStep : function(){
  143 + this.$.slider.chevronRight(false);
  144 + var selectedFields = this.$.select_data.getSelectedFields();
  145 + var filters = this.$.select_data.getFilters();
  146 + var aggregators = this.$.select_data.getAggregators();
  147 + var data = this.$.select_data.getData();
  148 + if(selectedFields.length > 0) {
  149 + this.$.select_visualization.init();
  150 + this.$.select_visualization.setSelectedFields(selectedFields);
  151 + this.$.select_visualization.setFilters(filters);
  152 + this.$.select_visualization.setAggregators(aggregators);
  153 + this.$.select_visualization.setData(data);
  154 + this.$.slider.chevronRight(true);
  155 + }
  156 + }
  157 +
  158 + });
  159 +
  160 + </script>
  161 +
  162 +</dom-module>
0 163 \ No newline at end of file
... ...
controllets/data-sevc-controllet/static/css/reset.css deleted
1   -::content html {
2   - color: #000;
3   - background: #FFF;
4   -}
5   -
6   -::content body, div, dl, dt, dd, ul, ol, li, h1, h2, h3,
7   -h4, h5, h6, pre, code, form, fieldset, legend,
8   -input, button, textarea, p, blockquote, th, td {
9   - margin: 0;
10   - padding: 0;
11   -}
12   -
13   -::content table {
14   - border-collapse: collapse;
15   - border-spacing: 0;
16   -}
17   -
18   -::content fieldset, img {
19   - border: 0;
20   -}
21   -
22   -::content address, caption, cite, code, dfn, em, strong,
23   -th, var, optgroup {
24   - font-style: inherit;
25   - font-weight: inherit;
26   -}
27   -
28   -::content del, ins {
29   - text-decoration: none;
30   -}
31   -
32   -::content li {
33   - list-style: none;
34   -}
35   -
36   -::content caption, th {
37   - text-align: left;
38   -}
39   -
40   -::content h1, h2, h3, h4, h5, h6 {
41   - font-size: 100%;
42   - font-weight: normal;
43   -}
44   -
45   -::content q:before, q:after {
46   - content: '';
47   -}
48   -
49   -::content abbr, acronym {
50   - border: 0;
51   - font-variant: normal;
52   -}
53   -
54   -::content sup {
55   - vertical-align: baseline;
56   -}
57   -
58   -::content sub {
59   - vertical-align: baseline;
60   -}
61   -
62   -/*because legend doesn't inherit in IE */
63   -::content legend {
64   - color: #000;
65   -}
66   -
67   -::content input, button, textarea, select, optgroup, option {
68   - font-family: inherit;
69   - font-size: inherit;
70   - font-style: inherit;
71   - font-weight: inherit;
72   -}
73   -
74   -/*@purpose To enable resizing for IE */
75   -/*@branch For IE6-Win, IE7-Win */
76   -::content input, button, textarea, select {
77   - *font-size: 100%;
78   -}
79 0 \ No newline at end of file
controllets/data-sevc-controllet/static/images/UnderConstruction.png deleted

97.5 KB

controllets/data-sevc-controllet/static/images/or.png deleted

733 Bytes

controllets/datalet-selection-controllet/datalet-selection-controllet.html deleted
1   -<link rel="import" href="../../bower_components/polymer/polymer.html" />
2   -
3   -<link rel="import" href="../../bower_components/paper-material/paper-material.html" />
4   -
5   -<link rel="import" href="../../bower_components/paper-dropdown-menu/paper-dropdown-menu.html">
6   -<link rel="import" href="../../bower_components/paper-menu/paper-menu.html">
7   -<link rel="import" href="../../bower_components/paper-item/paper-item.html">
8   -
9   -<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
10   -<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
11   -<link rel="import" href="../../bower_components/iron-icon/iron-icon.html">
12   -
13   -<link rel="import" href="../../bower_components/paper-input/paper-textarea.html">
14   -<link rel="import" href="../../bower_components/paper-input/paper-input.html">
15   -
16   -<link rel="import" href="../../bower_components/paper-button/paper-button.html">
17   -
18   -<link rel="import" href="../../bower_components/paper-dialog/paper-dialog.html">
19   -
20   -<link rel="import" href="../items-vslider-controllet/items-vslider-controllet.html" />
21   -
22   -<script src="../../../DEEPCLIENT/js/deepClient.js"></script>
23   -
24   -<dom-module id="datalet-selection-controllet">
25   -
26   - <template>
27   -
28   - <style is="custom-style">
29   - :host {
30   - --paper-dropdown-menu-icon: {
31   - color: #2196F3;
32   - };
33   - }
34   -
35   - #datalet_selection_container {
36   - display: flex;
37   - font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
38   - font-size: 16px;
39   - margin-top: 8px;
40   - }
41   -
42   - #items_vslider_controllet {
43   - position: relative;
44   - min-width: 172px;
45   - }
46   -
47   - #datalet_selection_inputs {
48   - position: relative;
49   - height: 100vh;
50   - margin-left: 32px;
51   - min-width: 258px;
52   - }
53   -
54   - #datalet_selection_labels {
55   - position: relative;
56   - height: 100vh;
57   - margin-left: 32px;
58   - min-width: 258px;
59   - }
60   -
61   - #datalet_selection_column {
62   - position: relative;
63   - width: 100%;
64   - margin-left: 32px;
65   - }
66   -
67   - #datalet_selection_datalet {
68   - position: relative;
69   - height: 100vh;
70   - width: 100%;
71   - }
72   -
73   - #datalet_selection_datalet_placeholder {
74   - padding: 16px;
75   - }
76   -
77   - .inputs{
78   - position: relative;
79   - }
80   -
81   - .input_header {
82   - height: 32px;
83   - padding-top: 16px;
84   - text-align: center;
85   - font-weight: 700;
86   - background-color: #B6B6B6;
87   - }
88   -
89   - #expert_container {
90   - display: none;
91   - }
92   -
93   - #expert_header {
94   - display: none;
95   -
96   - height: 32px;
97   - padding-top: 16px;
98   - margin-top: 8px;
99   - text-align: center;
100   - font-weight: 700;
101   - color: #00BCD4;
102   - cursor: pointer;
103   - }
104   -
105   - .field_nema {
106   - height: 40px;
107   - padding-top: 8px;
108   -
109   - margin-top: 8px;
110   - padding-left: 16px;
111   - font-weight: 700;
112   - color: #2196F3;
113   - background-color: #E0E0E0;
114   - }
115   -
116   - .info_button {
117   - position: absolute;
118   - top: 18px;
119   - right: 0px;
120   - }
121   -
122   - paper-input {
123   - display: inline-block;
124   - height: 48px;
125   - /*padding: 0px 8px;*/
126   - width: 210px;
127   - padding-left: 8px;
128   - padding-bottom: 8px;
129   - --paper-input-container-focus-color: #2196F3;
130   - }
131   -
132   - paper-input.base_input {
133   - width: 242px;
134   - }
135   -
136   - paper-textarea {
137   - width: 242px;
138   - padding-left: 8px;
139   - padding-bottom: 4px;
140   - --paper-input-container-focus-color: #2196F3;
141   - }
142   -
143   - paper-dropdown-menu {
144   - height: 48px;
145   - width: 210px;;
146   - padding-left: 8px;
147   - padding-bottom: 8px;
148   - --paper-input-container-focus-color: #2196F3;
149   - }
150   -
151   - paper-item.iron-selected {
152   - background-color: #2196F3;
153   - color: #FFFFFF;
154   - }
155   -
156   - paper-icon-button {
157   - color: #2196F3;
158   - --paper-icon-button-ink-color: #2196F3;
159   - margin: 0px;
160   - }
161   -
162   - paper-button {
163   - position: absolute;
164   - bottom: 16px;
165   - right: 11px;
166   -
167   - height: 48px;
168   - width: 172px;
169   - background-color: #00BCD4;
170   - color: white;
171   - font-weight: 700;
172   - padding: 16px;
173   - }
174   -
175   - paper-button:hover {
176   - background-color: #00AABF;
177   -
178   - box-shadow: 0px 8px 12px #888;
179   - -webkit-box-shadow: 0px 8px 12px #888;
180   - -moz-box-shadow: 0px 8px 12px #888;
181   - }
182   -
183   - paper-button[disabled] {
184   - background-color: #B6B6B6;
185   - }
186   -
187   - #dialog_info_input {
188   - border: 2px solid #2196F3;
189   - background-color: #E0E0E0;
190   - min-width: 248px;
191   - }
192   - </style>
193   -
194   - <iron-ajax id="selectedDatalet_request" on-response="_handleSelectedDatalet"></iron-ajax>
195   -
196   - <div id="datalet_selection_container">
197   -
198   - <div id="items_vslider_controllet">
199   - <items-vslider-controllet id="vslider" datalets-list-url={{dataletsListUrl}} preselected-datalet={{preselectedDatalet}}></items-vslider-controllet>
200   - </div>
201   -
202   - <paper-material id="datalet_selection_inputs" elevation="5">
203   - <div class="input_header"><span id="inputs"></span></div>
204   - <template is="dom-repeat" items="{{inputs}}" index-as="ddl_index">
205   - <div class="inputs">
206   - <paper-dropdown-menu id={{ddl_index}} label={{_getLabelName(item.name)}}>
207   - <paper-menu class="dropdown-content">
208   - <template is="dom-repeat" items={{fields}}>
209   - <paper-item id={{index}} on-tap="_addInput">{{_fieldName(item)}}</paper-item>
210   - <!--{{_fieldName(item)}}-->
211   - </template>
212   - </paper-menu>
213   - </paper-dropdown-menu>
214   - <div class="info_button">
215   - <paper-icon-button id={{item.name}} on-click="_showInfo" icon="info-outline" title="{{_getLabelName(item.name)}} info"></paper-icon-button>
216   - </div>
217   - </div>
218   - </template>
219   -
220   - <!-- EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE -->
221   -
222   - <div id="expert_header" on-click="_showExpertMode"><span id="groupBy"></span></div>
223   -
224   - <div id="expert_container">
225   -
226   - <div class="inputs">
227   - <paper-dropdown-menu id="group_by">
228   - <paper-menu class="dropdown-content">
229   - <template is="dom-repeat" items={{fields}}>
230   - <paper-item id={{index}} on-tap="_showGroupedFields">{{_fieldName(item)}}</paper-item>
231   - </template>
232   - </paper-menu>
233   - </paper-dropdown-menu>
234   - <div class="info_button">
235   - <paper-icon-button id="gb" on-click="_addOrder" icon="unfold-more" title=""></paper-icon-button>
236   - </div>
237   - </div>
238   -
239   - <template is="dom-repeat" items="{{groupedFields}}">
240   - <div class="inputs">
241   - <paper-dropdown-menu id="calculate_{{index}}" label="{{_calculateLabel()}}">
242   - <paper-menu class="dropdown-content">
243   - <!--foreach functions-->
244   - <paper-item id="0" on-tap="_addGroupByInput">{{_operationName(0)}} {{_fieldName(item)}}</paper-item>
245   - <paper-item id="1" on-tap="_addGroupByInput">{{_operationName(1)}} {{_fieldName(item)}}</paper-item>
246   - <paper-item id="2" on-tap="_addGroupByInput">{{_operationName(2)}} {{_fieldName(item)}}</paper-item>
247   - <paper-item id="3" on-tap="_addGroupByInput">{{_operationName(3)}} {{_fieldName(item)}}</paper-item>
248   - <paper-item id="4" on-tap="_addGroupByInput">{{_operationName(4)}} {{_fieldName(item)}}</paper-item>
249   - <paper-item id="5" on-tap="_addGroupByInput">{{_operationName(5)}} {{_fieldName(item)}}</paper-item>
250   - <paper-item id="6" on-tap="_addGroupByInput">{{_operationName(6)}} {{_fieldName(item)}}</paper-item>
251   - </paper-menu>
252   - </paper-dropdown-menu>
253   - <div class="info_button">
254   - <paper-icon-button id={{_fieldName(item)}} on-click="_addOrder" icon="unfold-more" title=""></paper-icon-button>
255   - </div>
256   - </div>
257   - </template>
258   -
259   - </div>
260   -
261   - <!-- EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE EXPERT MODE -->
262   -
263   - </paper-material>
264   -
265   - <paper-material id="datalet_selection_labels" elevation="5">
266   - <div class="input_header"><span id="baseInfo"></span></div>
267   -
268   - <div class="inputs">
269   - <paper-input id="base_title" maxlength="32" class="base_input"></paper-input>
270   - </div>
271   -
272   - <div class="inputs">
273   - <paper-textarea id="base_description" maxlength="100" class="base_input"></paper-textarea>
274   - </div>
275   -
276   - <div class="input_header"><span id="layouts"></span></div>
277   -
278   - <template is="dom-repeat" items="{{labels}}" index-as="index">
279   - <div class="inputs">
280   - <paper-input label={{_getLabelName(item.name)}}></paper-input>
281   - <div class="info_button">
282   - <paper-icon-button id={{item.name}} on-click="_showInfo" icon="info-outline" title="{{_getLabelName(item.name)}} info"></paper-icon-button>
283   - </div>
284   - </div>
285   - </template>
286   - </paper-material>
287   -
288   -
289   - <div id="datalet_selection_column">
290   -
291   - <paper-material id="datalet_selection_datalet" elevation="5">
292   - <div class="input_header"><span id="dataletPreview"></span></div>
293   - <div id="datalet_selection_datalet_placeholder"></div>
294   -
295   - </paper-material>
296   -
297   - <paper-button id="add_button" disabled raised on-click="_addDatalet"></paper-button>
298   -
299   - </div>
300   -
301   - <paper-dialog id="dialog_info_input">
302   - <h2 id="dialog_name"></h2>
303   - <p id="dialog_description"></p>
304   - </paper-dialog>
305   -
306   - </div>
307   -
308   - </template>
309   -
310   - <script>
311   -
312   - Polymer({
313   -
314   - is : 'datalet-selection-controllet',
315   -
316   - properties : {
317   -
318   - deepUrl : {
319   - type : String,
320   - value : undefined
321   - },
322   -
323   - dataletsListUrl : {
324   - type : String,
325   - value : undefined
326   - },
327   -
328   - selectedDatalet : {
329   - type : String,
330   - value : undefined
331   - },
332   -
333   - preselectedDatalet : {
334   - type : String,
335   - value : undefined
336   - },
337   -
338   - loadPreview : {
339   - type : Boolean,
340   - value : false
341   - },
342   -
343   - type : {
344   - type : String,
345   - value : undefined
346   - },
347   -
348   - inputs : {
349   - type : Array,
350   - value : []
351   - },
352   -
353   - labels : {
354   - type : Array,
355   - value : []
356   - },
357   -
358   - filters : {
359   - type : Array,
360   - value : []
361   - },
362   -
363   - aggregators : {
364   - type : Array,
365   - value : []
366   - },
367   -
368   - orders : {
369   - type : Array,
370   - value : []
371   - },
372   -
373   - fields : {
374   - type : Array,
375   - value : []
376   - },
377   -
378   - selectedFields : {
379   - type : Array,
380   - value : []
381   - },
382   -
383   - groupedFields : {
384   - type : Array,
385   - value : []
386   - },
387   -
388   - dataletPreset : {
389   - type : Object,
390   - value : []
391   - },
392   -
393   -// selectableFields : {
394   -// type : Array,
395   -// value : []
396   -// },
397   -
398   - dataUrl : {
399   - type : String,
400   - value : undefined
401   - },
402   -
403   - params:{
404   - type: Object,
405   - value: undefined
406   - },
407   -
408   - expert : {
409   - type : Boolean,
410   - value : false
411   - },
412   -
413   - functions : {
414   - type : Array,
415   - value : ["COUNT", "SUM", "MIN", "MAX", "AVG", "FIRST", "LAST"]
416   - },
417   -
418   - modify : {
419   - type : Boolean,
420   - value : false
421   - }
422   -
423   - },
424   -
425   - listeners: {
426   - 'items-vslider-controllet_selected-datalet': '_selectDatalet',
427   -// 'tree-view-controllet_selected-fields': '_updateSelectedFields'
428   - 'change': '_paramsChanged'
429   - },
430   -
431   - _showExpertMode : function() {
432   - if(!this.expert) {
433   - this.$.expert_header.style.color = "#000000";
434   - this.$.expert_header.style.background = "#B6B6B6";
435   - this.$.expert_container.style.display = "block";
436   - }
437   - else {
438   - this.$.expert_header.style.color = "#00BCD4";
439   - this.$.expert_header.style.background = "#FFFFFF";
440   - this.$.expert_container.style.display = "none";
441   - }
442   -
443   - this.expert = !this.expert;
444   - },
445   -
446   - _showGroupedFields : function(e) {
447   - var index = e.target.id;
448   - var temp = [];
449   -
450   -// var isSelected = false;
451   -// for (var i = 0; i < this.selectedFields.length; i++) {
452   -// if (this.selectedFields[i]) {
453   -// if (this.selectedFields[i].indexOf(this.fields[index]) > -1) {
454   -// isSelected = true;
455   -// }
456   -// else {
457   -// temp.push(this.selectedFields[i]);
458   -// }
459   -// }
460   -// }
461   -//
462   -// if (isSelected)
463   -// this.groupedFields = this._copy(temp);
464   -// else
465   -// this.groupedFields =[];
466   -
467   - for (var i = 0; i < this.selectedFields.length; i++) {
468   - if (this.selectedFields[i]) {
469   - if (i != index) {
470   - temp.push(this.selectedFields[i]);
471   - }
472   - }
473   - }
474   -
475   - this.groupedFields = this._copy(temp);
476   -
477   - this.async(function() {
478   - var ddls = document.getElementsByTagName("paper-dropdown-menu");
479   - for (var i = 0; i < ddls.length; i++){
480   - var id = ddls[i].id;
481   - if(id.indexOf("calculate") > -1) {
482   - $(ddls[i]).find("paper-menu")[0].select(-1);
483   - $(ddls[i]).find("paper-menu")[0].select(0);
484   - }
485   - }
486   - }, 0);
487   -
488   - this._addGroupByInput();
489   - },
490   -
491   - ready : function() {
492   - this._resize();
493   - $(this.$.datalet_selection_inputs).perfectScrollbar();
494   - $(this.$.datalet_selection_labels).perfectScrollbar();
495   - $(this.$.datalet_selection_datalet).perfectScrollbar();
496   -
497   - this.params = {'data-url' : this.dataUrl};
498   -
499   - //this.modify = true;//da eliminare in futuro
500   - if(this.preselectedDatalet){
501   - if(this.modify)
502   - this._preselectDatalet();
503   -
504   - this.modify = true;
505   - this.preselectedDatalet = undefined;
506   - }
507   - },
508   -
509   - attached : function() {
510   - this._resize();
511   - var that = this;
512   - window.addEventListener("resize", function() { that._resize(); });
513   -
514   - this._translate();
515   - },
516   -
517   - setFilters : function(filters) {
518   - this.filters = filters;
519   - },
520   -
521   - setFields : function(fields) {
522   - this.fields = fields;
523   - },
524   -
525   - reset : function() {
526   - this.selectedDatalet = undefined;//non va!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
527   - this.preselectedDatalet = undefined;
528   - this.type = undefined;
529   - this.inputs = [];
530   - this.labels = [];
531   - this.$.expert_header.style.display = "none";
532   - this.expert = true;
533   - this._showExpertMode();
534   - this.loadPreview = false;
535   - this.$.datalet_selection_datalet_placeholder.innerHTML = "";
536   - this._resetGroupBy();
537   - },
538   -
539   - _translate : function(){
540   -
541   - this.$.add_button.innerHTML = ln["addDatalet_" + ln["localization"]];
542   - this.$.inputs.innerHTML = ln["inputs_" + ln["localization"]];
543   - this.$.baseInfo.innerHTML = ln["baseInfo_" + ln["localization"]];
544   - this.$.layouts.innerHTML = ln["layouts_" + ln["localization"]];
545   - this.$.dataletPreview.innerHTML = ln["dataletPreview_" + ln["localization"]];
546   -
547   - this.$.base_title.label = ln["title_" + ln["localization"]];
548   - this.$.base_description.label = ln["description_" + ln["localization"]];
549   -
550   - this.$.groupBy.innerHTML = ln["groupBy_" + ln["localization"]];
551   - this.$.group_by.setAttribute("label", ln["groupBy_" + ln["localization"]]);
552   -
553   - if(this.modify)
554   - this.$.add_button.innerHTML = ln["modifyDatalet_" + ln["localization"]];
555   - },
556   -
557   - _selectDatalet : function(e){
558   - this.$.add_button.setAttribute("disabled", "true");
559   -
560   - this.selectedDatalet = e.detail.datalet;
561   -
562   - this.$.datalet_selection_datalet_placeholder.innerHTML = "";
563   -
564   - if(!this.selectedDatalet){
565   - this.type = undefined;
566   - this.inputs = [];
567   - this.labels = [];
568   - this.$.expert_header.style.display = "none";
569   - this.expert = true;
570   - this._showExpertMode();
571   - this.loadPreview = false;
572   - }
573   - else{
574   - this.$.selectedDatalet_request.url = this.deepUrl + e.detail.datalet + "-datalet";
575   - this.$.selectedDatalet_request.generateRequest();
576   - this.$.expert_header.style.display = "block";
577   - }
578   - },
579   -
580   - _preselectDatalet : function() {
581   - this.type = "undefined";
582   - this.$.selectedDatalet_request.url = this.deepUrl + this.preselectedDatalet + "-datalet";
583   - this.$.selectedDatalet_request.generateRequest();
584   -
585   - this.selectedDatalet = this.preselectedDatalet;
586   - this.selectedFields = this._copy(this.fields);
587   -
588   -// this.filters = JSON.parse(this.dataletPreset["filters"]);
589   -// this.aggregators = JSON.parse(this.dataletPreset["aggregators"]);
590   -// this.orders = JSON.parse(this.dataletPreset["orders"]);
591   -
592   - this.async(function() {
593   - this.selectedFields = this._copy(this.fields);
594   -
595   - //set info labels options
596   - var textarea = this.$.datalet_selection_labels.querySelectorAll("paper-textarea");
597   - textarea[0].value = this.dataletPreset["description"];
598   -
599   - var inputs = this.$.datalet_selection_labels.querySelectorAll("paper-input");
600   - inputs[0].value = this.dataletPreset["title"];
601   -
602   - for (var i = 1; i < inputs.length; i++)
603   - inputs[i].value = this.dataletPreset[this.labels[i-1].name];
604   -
605   - //set inputs --> prima apri GB e riempi CALCULATE e poi gli ORDERBY???
606   - var ddls = document.getElementsByTagName("paper-dropdown-menu");
607   - for (var i = 0; i < ddls.length; i++) {
608   - var id = ddls[i].id;
609   - if (!isNaN(id)) {
610   -// id = parseInt(id);
611   - $(ddls[i]).find("paper-menu")[0].select(id);
612   - }
613   - else if (id.indexOf("group_by") > -1) {
614   - ;
615   - }
616   - else if (id.indexOf("calculate") > -1) {
617   - ;
618   - }
619   - }
620   -
621   - this.loadPreview = true;
622   - this._loadDatalet(this.selectedFields);
623   - }, 300);
624   - },
625   -
626   - _handleSelectedDatalet : function(e){
627   -
628   - if(this.type != e.detail.response.type) {
629   -
630   - this.inputs = [];
631   - this.labels = [];
632   -
633   - var inputs = e.detail.response.idm.inputs.input;
634   -
635   - if (inputs.constructor == Object) {//not Array && inputs.input.selection == "*"
636   - var name = inputs.name;
637   - var description = inputs.description;
638   - var selection = inputs.selection;
639   - inputs = [];
640   - for (var i in this.fields)
641   - inputs.push({name: name + " " + i, description: description, selection: selection});
642   - }
643   -
644   - this.async(function(){
645   - this.type = e.detail.response.type;
646   - this.inputs = inputs;
647   - this.labels = e.detail.response.idm.inputs.layouts.input;
648   -
649   - this.selectedFields = new Array(inputs.length);
650   - },0);
651   -
652   - this._resetGroupBy();
653   -
654   - this.loadPreview = false;
655   - }
656   -
657   - else if (this.loadPreview)
658   - this._loadDatalet(this.selectedFields);
659   - },
660   -
661   - _resetGroupBy : function(){
662   - $(this.$.group_by).find("paper-menu")[0].select(-1);
663   - this.groupedFields = [];
664   - this.aggregators = [];
665   - },
666   -
667   - _addGroupByInput : function(){
668   - this.async(function() {//codice reprlicato!
669   - var selectedFields = this.selectedFields;
670   -
671   - var load = true;
672   -
673   - if(this.inputs[0].selection == "*"){
674   - var temp = [];
675   - for (var i = 0; i < selectedFields.length; i++)
676   - if(selectedFields[i])
677   - temp.push(selectedFields[i]);
678   - selectedFields = temp;
679   - }
680   - else {
681   - for (var i = 0; i < selectedFields.length; i++)
682   - if (!selectedFields[i]) {
683   - load = false;
684   - break;
685   - }
686   - }
687   -
688   - if(load){
689   - this.loadPreview = true;
690   - this._loadDatalet(selectedFields);
691   - }
692   - }, 0);
693   - },
694   -
695   - _addOrder : function(e){
696   - var t = e.target;
697   - if(t.tagName.indexOf("IRON-ICON") > -1)
698   - t = $(e.target).parents("paper-icon-button")[0];
699   -
700   - var icon = t.getAttribute("icon");
701   - var name = t.getAttribute("id");
702   -
703   - if(name.indexOf("gb") > -1){
704   - var selectedItem = $(this.$.group_by).find("paper-menu")[0].selectedItem;
705   - if(selectedItem)
706   - name = selectedItem.textContent.trim();
707   -// name = "[" + selectedItem.textContent.trim() + "]";
708   - else
709   - return;
710   - }// else {
711   -// var i = name;
712   -// var ddl = $("#calculate_"+i);
713   -//
714   -// var label = $(ddl).find("paper-menu")[0].selectedItem.textContent.trim();
715   -// var index = label.split(" ", 2).join(" ").length;
716   -// var field = label.substring(index+1, label.length);
717   -// var operation = label.substring(0, label.indexOf(" "));
718   -// name = operation + "([" + field + "])";
719   -// }
720   -
721   - if(icon.indexOf("unfold-more") > -1){
722   - t.setAttribute("icon", "expand-less");
723   - t.setAttribute("title", ln["sortAscending_" + ln["localization"]]);
724   - var orders = this.orders.filter(function (el) { return el.field !== name; });
725   - orders.push({"field": name, "operation": "ASC"});
726   - this.orders = this._copy(orders);
727   - }
728   - else if(icon.indexOf("expand-less") > -1){
729   - t.setAttribute("icon", "expand-more");
730   - t.setAttribute("title", ln["sortDescending_" + ln["localization"]]);
731   - var orders = this.orders.filter(function (el) { return el.field !== name; });
732   - orders.push({"field": name, "operation": "DESC"});
733   - this.orders = this._copy(orders);
734   - }
735   - else if(icon.indexOf("expand-more") > -1){
736   - t.setAttribute("icon", "unfold-more");
737   - t.setAttribute("title", ln["unsort_" + ln["localization"]]);
738   - var orders = this.orders.filter(function (el) { return el.field !== name; });
739   - this.orders = this._copy(orders);
740   - }
741   -
742   - this._addGroupByInput();//no buoono
743   -// if(load){
744   -// this.loadPreview = true;
745   -// this._loadDatalet(selectedFields);
746   -// }
747   - },
748   -
749   - _addInput : function(e){
750   - var selectedFields = this._copy(this.selectedFields);
751   -
752   -// var index = $(e.target).parents("paper-dropdown-menu")[0].id;
753   -// selectedFields[index] = e.target.innerHTML.trim();
754   -
755   - var ddl_index = $(e.target).parents("paper-dropdown-menu")[0].id;
756   - var index = e.target.id;
757   - selectedFields[ddl_index] = this.fields[index];
758   -
759   - this.selectedFields = this._copy(selectedFields);
760   -
761   - var load = true;
762   -
763   - if(this.inputs[0].selection == "*"){
764   - var temp = [];
765   - for (var i = 0; i < selectedFields.length; i++)
766   - if(selectedFields[i])
767   - temp.push(selectedFields[i]);
768   - selectedFields = temp;
769   - }
770   - else {
771   - for (var i = 0; i < selectedFields.length; i++)
772   - if (!selectedFields[i]) {
773   - load = false;
774   - break;
775   - }
776   - }
777   -
778   - this._resetGroupBy();//--> conflitto, in _updateparams valorizza this.aggregators
779   -
780   - if(load){
781   - this.loadPreview = true;
782   - this._loadDatalet(selectedFields);
783   - }
784   - },
785   -
786   - _updateParams : function(){
787   - var textarea = this.$.datalet_selection_labels.querySelectorAll("paper-textarea");
788   - this.params["description"] = textarea[0].value;
789   -
790   - if(!textarea[0].value)
791   - this.params[textarea[0].label] = "";
792   -
793   - var inputs = this.$.datalet_selection_labels.querySelectorAll("paper-input");
794   - this.params["title"] = inputs[0].value;
795   -
796   - for (var i = 1; i < inputs.length; i++)
797   - this.params[this.labels[i-1].name] = inputs[i].value;
798   -
799   - this.aggregators = [];
800   -
801   - var ddls = document.getElementsByTagName("paper-dropdown-menu");
802   - for (var i = 0; i < ddls.length; i++){
803   - var id = ddls[i].id;
804   - if(id.indexOf("group_by") > -1 && $(ddls[i]).find("paper-menu")[0].selectedItem) {
805   - var label = $(ddls[i]).find("paper-menu")[0].selectedItem.textContent.trim();
806   - this.aggregators.push({"field": label, "operation": "GROUP BY"});
807   - }
808   - if(id.indexOf("calculate") > -1) {
809   - var menu = $(ddls[i]).find("paper-menu")[0];
810   - var label = menu.selectedItem.textContent.trim();
811   - var index = menu.selectedItem.id;
812   - var ii = label.split(" ", 2).join(" ").length;
813   - //attenzione BUG --> non funziona se la traduzione non ha solo 1 spazio
814   - var field = label.substring(ii+1, label.length);
815   -// var operation = label.substring(0, label.indexOf(" "));
816   - this.aggregators.push({"field": field, "operation": this.functions[index]});
817   - }
818   - }
819   - },
820   -
821   - _paramsChanged : function(){
822   -
823   - this._updateParams();
824   -
825   - if(this.$.datalet_selection_datalet_placeholder.children[1])
826   - this.$.datalet_selection_datalet_placeholder.children[1].behavior.setParameters(this.params);
827   - },
828   -
829   - _loadDatalet : function(selectedFields){
830   -
831   - this._updateParams();
832   -
833   - this.params["filters"] = JSON.stringify(this.filters);
834   - this.params["aggregators"] = JSON.stringify(this.aggregators);
835   - this.params["orders"] = JSON.stringify(this.orders);
836   -
837   -// this.params["filters"] = '[{"field": "Lat", "operation": ">=", "value": "53.298164"}, {"field": "Lat", "operation": "<", "value": "54"}]';
838   -// this.params["aggregators"] = '[{"field": "Lat", "operation": "GROUP BY"}, {"field": "Lng", "operation": "COUNT"}]';
839   -// this.params["orders"] = '[{"field": "Lat", "operation": "DESC"}, {"field": "Lat", "operation": "ASC"}]';
840   -
841   - //this.params["aggregators"] = '[{"field": "Value", "operation": "GROUP BY"}, {"field": "LOCATION", "operation": "COUNT"}]';
842   - //this.params["orders"] = '[{"field": "Value", "operation": "ASC"}, {"field": "Value", "operation": "ASC"}]';
843   -
844   - var dataletParams ={
845   - component : this.selectedDatalet+"-datalet",
846   - params : this.params,
847   - fields : selectedFields,
848   - placeHolder : this.$.datalet_selection_datalet_placeholder
849   - };
850   -
851   - ComponentService.deep_url = this.deepUrl;
852   - ComponentService.getComponent(dataletParams);
853   -
854   - this.$.add_button.removeAttribute("disabled");
855   - },
856   -
857   - _addDatalet : function(){
858   -
859   - this._updateParams();
860   -
861   - var selectedFields = [];
862   - for (var i = 0; i < this.selectedFields.length; i++)
863   - if(this.selectedFields[i])
864   - selectedFields.push(this.selectedFields[i]);
865   -
866   - var data = {
867   - dataUrl : this.dataUrl,
868   - params : this.params,
869   - fields : selectedFields,
870   - datalet : this.selectedDatalet+"-datalet",
871   -// comment : "",//DEPRECATED!!!
872   - staticData : JSON.stringify(this.$.datalet_selection_datalet_placeholder.children[1].behavior.data)
873   - }
874   -
875   - this.fire('data-sevc-controllet.dataletCreated', {data : data});
876   -
877   - },
878   -
879   - _showInfo : function(e){
880   -// var that = this;
881   - var t = e.target;
882   - if(t.tagName.indexOf("IRON-ICON") != -1)
883   - t = $(e.target).parents("paper-icon-button")[0];
884   -
885   -// var name = t.getAttribute("title").replace(" info", "");
886   - var name = t.getAttribute("id");
887   -
888   - var dataset = $.grep(this.inputs, function(e){ return e.name == name; })[0];
889   - if(!dataset)
890   - dataset = $.grep(this.labels, function(e){ return e.name == name; })[0];
891   -
892   - this.$.dialog_name.innerHTML = this._getLabelName(dataset.name);
893   - this.$.dialog_description.innerHTML = ln[dataset.description + "_" + ln["localization"]];
894   - this.$.dialog_info_input.open();
895   -
896   - var pos = t.getBoundingClientRect();
897   - $("#dialog_info_input").css("top", pos.top - 4);
898   - $("#dialog_info_input").css("left", pos.left - 4);
899   - },
900   -
901   - _fieldName : function(field) {
902   - if(!field)//when?
903   - return "";
904   - return field.substring(field.lastIndexOf(",")+1, field.length);
905   - },
906   -
907   - _copy : function(o) {
908   - var out, v, key;
909   - out = Array.isArray(o) ? new Array(o.length) : {};
910   - for (key in o) {
911   - v = o[key];
912   - out[key] = (typeof v === "object") ? this._copy(v) : v;
913   - }
914   - return out;
915   - },
916   -
917   - _getLabelName: function(key) {
918   - //* exceptions
919   - if(key.indexOf("Cell") > -1) {
920   - return ln["Cell" + "_" +ln["localization"]] + key.slice(-2);
921   - }
922   - if(key.indexOf("Level") > -1) {
923   - return ln["Level" + "_" +ln["localization"]] + key.slice(-2);
924   - }
925   -
926   - return ln[key + "_" +ln["localization"]];
927   - },
928   -
929   - _calculateLabel: function() {
930   - return ln["calculate" + "_" +ln["localization"]];
931   - },
932   -
933   - _operationName: function(index) {
934   - var key = this.functions[index];
935   - return ln[key + "_" +ln["localization"]];
936   - },
937   -
938   - _resize : function(){
939   - var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - 16;
940   - h = h - 64 - 8; //height with page scroller
941   -
942   - $("#items_vslider_container").height(h);//vslider controllet
943   -
944   - $("#datalet_selection_inputs").height(h);
945   - $("#datalet_selection_labels").height(h);
946   - $("#datalet_selection_datalet").height(h);
947   - }
948   -
949   - });
950   -
951   - </script>
952   -
953   -</dom-module>
954 0 \ No newline at end of file
controllets/datalet-selection-controllet/demo/index.html deleted
1   -<html>
2   -
3   -<head>
4   - <script src="../../shared_js/jquery-1.11.2.min.js"></script>
5   -
6   - <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
7   -
8   - <script src="../../shared_js/perfect-scrollbar/js/min/perfect-scrollbar.jquery.min.js"></script>
9   - <link rel="stylesheet" href="../../shared_js/perfect-scrollbar/css/perfect-scrollbar.min.css">
10   -
11   - <script src="../../../locales/controllet_ln.js"></script>
12   - <script>
13   - ln["localization"] = "en";
14   - </script>
15   -
16   - <link rel="import" href="../datalet-selection-controllet.html" />
17   -</head>
18   -
19   -<body>
20   -
21   -<!--<datalet-selection-controllet fields='["result,records,Anno","result,records,Cinesi","result,records,Albanesi","result,records,Rumeni","result,records,Pakistani","result,records,Marocchini","result,records,Altri stranieri" ]' data-url="http://ckan.routetopa.eu/api/action/datastore_search?resource_id=e04338cf-7a92-4221-81c6-fe12f41003d5" deep-url="http://172.16.15.38/DEEalerProvider/DEEP/" datalets-list-url="http://172.16.15.38/DEEalerProvider/DEEP/datalets-list"></datalet-selection-controllet>-->
22   -
23   -<!--<datalet-selection-controllet fields='["records,fields,title", "records,fields,published"]' data-url="https://data.issy.com/api/records/1.0/search?dataset=flux-rss-des-offres-demplois-a-issy-les-moulineaux&sort=published&facet=published&refine.published=2015%2F10" deep-url="http://172.16.15.38/DEEalerProvider/DEEP/" datalets-list-url="http://172.16.15.38/DEEalerProvider/DEEP/datalets-list"></datalet-selection-controllet>-->
24   -<datalet-selection-controllet fields='["records,fields,annee", "records,fields,preteur", "records,fields,capital_restant_du"]' data-url="https://data.issy.com/api/records/1.0/search/?dataset=repartitiondeladetteparpreteursau3112n-feuille1&rows=56&sort=-annee" deep-url="http://172.16.15.38/DEEalerProvider/DEEP/" datalets-list-url="http://172.16.15.38/DEEalerProvider/DEEP/datalets-list"></datalet-selection-controllet>
25   -
26   -</body>
27   -
28   -<!--urls:-->
29   -<!--https://yperdiavgeia.gr/analytics/counts/source:Decision/query:linux/method:count_organization.json-->
30   -<!--http://dati.lazio.it/catalog/api/action/datastore_search?resource_id=114baf3d-6d4f-42ff-b4af-481beef59ae1-->
31   -<!--url: 'http://ckan.routetopa.eu/api/action/datastore_search?resource_id=73e02092-85a1-434e-85fe-0c9a43aa9a52&limit=5',-->
32   -<!--url: 'https://data.issy.com/api/records/1.0/search?dataset=liste-des-restaurants-a-issy-les-moulineaux&sort=type&facet=type&facet=terrasse',-->
33   -<!--url: 'https://data.issy.com/api/records/1.0/search?dataset=flux-rss-des-offres-demplois-a-issy-les-moulineaux&sort=published&facet=published&refine.published=2015',-->
34 0 \ No newline at end of file
controllets/dataset-selection-controllet/dataset-selection-controllet.html deleted
1   -<link rel="import" href="../../bower_components/polymer/polymer.html">
2   -
3   -<link rel="import" href="../../bower_components/paper-tabs/paper-tabs.html">
4   -<link rel="import" href="../../bower_components/paper-tabs/paper-tab.html">
5   -
6   -<link rel="import" href="../../bower_components/neon-animation/neon-animation.html">
7   -<link rel="import" href="../../bower_components/neon-animation/neon-animatable.html">
8   -<link rel="import" href="../../bower_components/neon-animation/neon-animations.html">
9   -
10   -<link rel="import" href="../../bower_components/paper-dropdown-menu/paper-dropdown-menu.html">
11   -<link rel="import" href="../../bower_components/paper-menu/paper-menu.html">
12   -<link rel="import" href="../../bower_components/paper-item/paper-item.html">
13   -
14   -<link rel="import" href="../../bower_components/paper-input/paper-textarea.html">
15   -
16   -<link rel="import" href="../../bower_components/paper-material/paper-material.html" />
17   -
18   -<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
19   -<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
20   -<link rel="import" href="../../bower_components/iron-icon/iron-icon.html">
21   -
22   -<link rel="import" href="../../bower_components/paper-dialog/paper-dialog.html">
23   -
24   -<link rel="import" href="../../datalets/datasetexplorer-datalet/datasetexplorer-datalet.html">
25   -
26   -<link rel="import" href="paper-input-search.html">
27   -
28   -<dom-module id="dataset-selection-controllet">
29   -
30   - <template>
31   -
32   - <style is="custom-style">
33   - :host {
34   - --paper-dropdown-menu-icon: {
35   - color: #2196F3;
36   - };
37   - }
38   -
39   - paper-tabs {
40   - font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
41   - font-size: 16px;
42   - font-weight: bold;
43   - --paper-tabs-selection-bar-color: #2196F3;
44   - }
45   -
46   - paper-tab {
47   - transition: all 1.0s;
48   - }
49   -
50   - paper-tab.iron-selected {
51   - background-color: #B6B6B6;
52   - }
53   -
54   - paper-tab:hover {
55   - color: #2196F3;
56   - }
57   -
58   - paper-tab[disabled] {
59   - color: #B6B6B6;
60   - }
61   -
62   - paper-dropdown-menu {
63   - width: 45%;
64   - margin-bottom: 32px;
65   - --paper-input-container-focus-color: #2196F3;
66   - }
67   -
68   - paper-dropdown-menu paper-item {
69   - white-space: nowrap;
70   - }
71   -
72   - paper-input-search {
73   - width: 45%;
74   - margin-bottom: 32px;
75   - --paper-input-container-focus-color: #2196F3;
76   - }
77   -
78   - paper-input-search paper-item {
79   - white-space: nowrap;
80   - }
81   -
82   - paper-item.iron-selected {
83   - background-color: #2196F3;
84   - color: #FFFFFF;
85   - }
86   -
87   - .ddl_container {
88   - position: relative;
89   - }
90   -
91   - .info_button {
92   - position: absolute;
93   - top: 18px;
94   - left: 45%;
95   - }
96   -
97   - paper-textarea {
98   - width: 90%;
99   - margin-bottom: 32px;
100   - --paper-input-container-focus-color: #2196F3;
101   - }
102   -
103   - paper-icon-button {
104   - color: #2196F3;
105   - --paper-icon-button-ink-color: #2196F3;
106   - }
107   -
108   - paper-icon-button[disabled] {
109   - color: #B6B6B6;
110   - }
111   -
112   - #material_container {
113   - margin-top: 8px;
114   - }
115   -
116   - #div_selection {
117   - padding-left: 10%;
118   - padding-top: 64px;
119   - }
120   -
121   - #dialog_info {
122   - border: 2px solid #2196F3;
123   - background-color: #E0E0E0;
124   - }
125   - </style>
126   -
127   - <paper-material id="material_container" elevation="5">
128   -
129   - <paper-tabs selected="{{selected}}">
130   - <paper-tab noink><span id="listView"></span></paper-tab>
131   - <paper-tab noink><span id="treeMapView"></span></paper-tab>
132   - <!--<paper-tab noink disabled><span data-l10n-id="mostPopular"></span></paper-tab>-->
133   - </paper-tabs>
134   -
135   - <neon-animated-pages selected="{{selected}}" entry-animation="fade-in-animation" exit-animation="fade-out-animation">
136   -
137   - <neon-animatable>
138   -
139   - <div id="div_selection">
140   - <div class="ddl_container">
141   - <paper-input-search id="_datasets" label="Available datasets">
142   - <paper-menu class="dropdown-content">
143   - <template is="dom-repeat" items={{filteredDatasets}} as="dataset">
144   - <paper-item id={{index}} on-tap="_selectDataUrl">{{dataset.name}}</paper-item>
145   - </template>
146   - </paper-menu>
147   - </paper-input-search>
148   -
149   - <div class="info_button">
150   - <paper-icon-button id="info_dataset" disabled on-click="_showInfo" icon="info-outline" title="dataset info"></paper-icon-button>
151   - </div>
152   - </div>
153   -
154   - <template is="dom-if" if={{isSuggested}}>
155   -
156   - <div class="ddl_container">
157   - <paper-dropdown-menu id="s_datasets" label="Suggested datasets">
158   - <paper-menu class="dropdown-content">
159   - <template is="dom-repeat" items={{suggestedDatasets}} as="dataset">
160   - <paper-item id={{index}} on-tap="_selectSuggestedDataUrl">{{dataset.name}}</paper-item>
161   - </template>
162   - </paper-menu>
163   - </paper-dropdown-menu>
164   -
165   - <div class="info_button">
166   - <paper-icon-button id="info_s_dataset" disabled on-click="_showInfo" icon="info-outline" title="dataset info"></paper-icon-button>
167   - </div>
168   - </div>
169   -
170   - </template>
171   -
172   - <paper-textarea id="selected_url" label="Selected url" value={{dataUrl}} error-message={{errorMessage}}></paper-textarea>
173   -
174   - <paper-dialog id="dialog_info">
175   - <h2 id="dialog_name"></h2>
176   - <p id="dialog_description"></p>
177   - </paper-dialog>
178   - </div>
179   -
180   - </neon-animatable>
181   -
182   - <neon-animatable>
183   - <div id="div_datasetexplorer"></div>
184   - </neon-animatable>
185   -
186   - <neon-animatable>
187   - <!--popular-->
188   - </neon-animatable>
189   -
190   - </neon-animated-pages>
191   -
192   - </paper-material>
193   -
194   - </template>
195   -
196   - <script>
197   -
198   - Polymer({
199   -
200   - is : 'dataset-selection-controllet',
201   -
202   - properties : {
203   -
204   - selected : {
205   - type : Number,
206   - value : 0
207   - },
208   -
209   - datasets : {
210   - type : Array,
211   - value : undefined
212   - },
213   -
214   - filteredDatasets : {
215   - type : Array,
216   - value : []
217   - },
218   -
219   - suggestedDatasets : {
220   - type : Array,
221   - value : undefined
222   - },
223   -
224   - isSuggested : {
225   - type : Boolean,
226   - value : false
227   - },
228   -
229   - dataUrl : {
230   - type : String,
231   - value : undefined,
232   - observer : '_fireDataUrl'
233   - },
234   -
235   - errorMessage : {
236   - type : String,
237   - value : "",
238   - }
239   -
240   - },
241   -
242   - listeners: {
243   - 'datasetexplorer-datalet_data-url': '_selectDataUrl_treeMap',
244   - 'paper-input-search_input-value' : '_filterDatasets'
245   - },
246   -
247   - ready : function(){
248   - $(this.$.material_container).perfectScrollbar();
249   - $(this.$.dialog_info).perfectScrollbar();
250   -
251   - this.errorMessage = ln["wrongUrl_" + ln["localization"]];
252   - },
253   -
254   - attached : function(){
255   - this._resize();
256   - var that = this;
257   - window.addEventListener("resize", function() { that._resize(); });
258   -
259   - this.filteredDatasets = this.datasets;
260   -
261   - if(this.suggestedDatasets)
262   - this.isSuggested = true;
263   -
264   - this._loadTreeMap();
265   -
266   - this.async(function(){this._translate();},100);
267   - },
268   -
269   - _translate : function(){
270   - this.$._datasets.setAttribute("label", ln["availableDatasets_" + ln["localization"]]);
271   - this.$.listView.innerHTML = ln["listView_" + ln["localization"]];
272   - this.$.treeMapView.innerHTML = ln["treeMapView_" + ln["localization"]];
273   -
274   - if(this.isSuggested)
275   - this.$$("#s_datasets").setAttribute("label", ln["suggestedDatasets_" + ln["localization"]]);
276   - this.$.selected_url.setAttribute("label", ln["selectedUrl_" + ln["localization"]]);
277   - },
278   -
279   - _filterDatasets : function(e){
280   - var filter = e.detail.inputValue;
281   - var filteredDatasets = [];
282   - for (var i in this.datasets){
283   - if(this.datasets[i].name.toLowerCase().indexOf(filter.toLowerCase()) != -1)
284   - filteredDatasets.push(this.datasets[i]);
285   - }
286   -
287   - this.filteredDatasets = filteredDatasets;
288   - },
289   -
290   - _loadTreeMap : function(){
291   - var h = $("#material_container").height() - 48;
292   - var w = $("#material_container").width();
293   -
294   - this.$.div_datasetexplorer.innerHTML = "<datasetexplorer-datalet data='"+this.data+"' width=\""+w+"\" height=\""+h+"\" data-url=\"/openwall/api/datasetTree\" fields='[\"result,datasets,provider_name\",\"result,datasets,organization_name\",\"result,datasets,package_name\",\"result,datasets,resource_name\",\"result,datasets,url\",\"result,datasets,w\"]'></datasetexplorer-datalet>";
295   - },
296   -
297   - _selectDataUrl_treeMap : function(e) {
298   - $("#_datasets")[0]._setSelectedItem(null);
299   - $("#_datasets")[0].inputValue = "";
300   - $("#info_dataset")[0].setAttribute("disabled", "true");
301   -
302   - if (this.isSuggested) {
303   - $("#s_datasets")[0]._setSelectedItem(null);
304   - $("#s_datasets")[0].contentElement.select(-1);
305   - $("#info_s_dataset")[0].setAttribute("disabled", "true");
306   - }
307   -
308   - this.dataUrl = this._addlimitUrl(e.detail.url);
309   - this.selected=0;
310   - },
311   -
312   - _selectDataUrl : function(e){this._translate();
313   - if (this.isSuggested) {
314   - $("#s_datasets")[0]._setSelectedItem(null);
315   - $("#s_datasets")[0].contentElement.select(-1);
316   - $("#info_s_dataset")[0].setAttribute("disabled", "true");
317   - }
318   -
319   - var dataset = this.filteredDatasets[parseInt(e.target.id)]
320   -
321   - this.dataUrl = this._addlimitUrl(dataset.url);
322   -
323   - if(dataset.description != ""){
324   - $("#info_dataset")[0].removeAttribute("disabled");
325   - this.$.dialog_name.innerHTML = dataset.name;
326   - this.$.dialog_description.innerHTML = dataset.description;
327   - }
328   - else
329   - $("#info_dataset")[0].setAttribute("disabled", "true");
330   - },
331   -
332   - _selectSuggestedDataUrl : function(e){
333   - $("#_datasets")[0]._setSelectedItem(null);
334   - $("#_datasets")[0].inputValue = "";
335   - $("#info_dataset")[0].setAttribute("disabled", "true");
336   -
337   - var dataset = this.suggestedDatasets[parseInt(e.target.id)]
338   -
339   - this.dataUrl = this._addlimitUrl(dataset.url);
340   -
341   - if(dataset.description != ""){
342   - $("#info_s_dataset")[0].removeAttribute("disabled");
343   - this.$.dialog_name.innerHTML = dataset.name;
344   - this.$.dialog_description.innerHTML = dataset.description;
345   - }
346   - else
347   - $("#info_s_dataset")[0].setAttribute("disabled", "true");
348   - },
349   -
350   - _showInfo : function(e){
351   - var t = e.target;
352   - if(t.tagName.indexOf("IRON-ICON") != -1)
353   - t = $(e.target).parents("paper-icon-button")[0];
354   -
355   - this.$.dialog_info.open();
356   -
357   - var pos = t.getBoundingClientRect();
358   - $("#dialog_info").css("top", pos.top - 4);
359   - $("#dialog_info").css("left", pos.left - 4);
360   - },
361   -
362   - _fireDataUrl : function(){
363   - this.fire('dataset-selection-controllet_data-url', {url: this.dataUrl});
364   - },
365   -
366   - _addlimitUrl : function(url){
367   - //CKAN --> action no limit
368   - if((url.indexOf("api/action") > -1) && !(url.indexOf("limit") > -1))
369   - {
370   - url += "&limit=99999";
371   - }
372   - //OpenDataSoft --> action no limit
373   - if((url.indexOf("api/records") > -1) && !(url.indexOf("rows") > -1)){
374   - url += "&rows=10000";
375   - }
376   - return url;
377   - },
378   -
379   - _resize : function(){
380   - var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - 16;
381   - h = h - 64 - 8; //height with page scroller
382   - $("#material_container").height(h);
383   - }
384   -
385   - });
386   -
387   - </script>
388   -
389   -</dom-module>
controllets/dataset-selection-controllet/demo/index.html deleted
1   -<html>
2   -
3   -<head>
4   - <script src="../../shared_js/jquery-1.11.2.min.js"></script>
5   -
6   - <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
7   -
8   - <script src="../../shared_js/perfect-scrollbar/js/min/perfect-scrollbar.jquery.min.js"></script>
9   - <link rel="stylesheet" href="../../shared_js/perfect-scrollbar/css/perfect-scrollbar.min.css">
10   -
11   - <link rel="import" href="../dataset-selection-controllet.html" />
12   -</head>
13   -
14   -<body>
15   -
16   -<dataset-selection-controllet id="ds"></dataset-selection-controllet>
17   -
18   -<script>
19   - var description = "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa "+
20   - " aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa "+
21   - " aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa "+
22   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
23   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
24   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
25   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
26   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
27   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
28   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
29   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
30   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
31   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
32   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
33   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
34   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa"+
35   - "aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa";
36   -
37   - var dataset1 = {description: description, name: "Data", url: "http://ckan.routetopa.eu/api/action/datastore_search?resource_id=c3b52992-ba61-4a73-a637-0f2e1ca26aab"};
38   - var dataset2 = {description: "", name: "Klassen", url: "http://ckan.routetopa.eu/api/action/datastore_search?resource_id=dfd27de5-0790-466c-af59-6a82509e7fbb"};
39   - var dataset3 = {description: "descrizione bellissima purissima levissima sbiricuda antani", name: "Derelict Sites", url: "http://ckan.routetopa.eu/api/action/datastore_search?resource_id=fcbee83e-3d3d-4303-a568-24dd33d02adc"};
40   - var datasets = [dataset1, dataset2, dataset3];
41   - var datasets = [dataset1, dataset2, dataset3, dataset1, dataset2, dataset3, dataset1, dataset2, dataset3, dataset1, dataset2, dataset3, dataset1, dataset2, dataset3];
42   -
43   - var ds = document.getElementById('ds');
44   - ds.setAttribute("datasets", JSON.stringify(datasets));
45   -
46   -</script>
47   -
48   -</body>
49   -
50   -</html>
51 0 \ No newline at end of file
controllets/dataset-selection-controllet/paper-input-search.html deleted
1   -<!--
2   -@license
3   -Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
4   -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5   -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6   -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7   -Code distributed by Google as part of the polymer project is also
8   -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9   --->
10   -
11   -<link rel="import" href="../../bower_components/polymer/polymer.html">
12   -<link rel="import" href="../../bower_components/paper-styles/default-theme.html">
13   -<link rel="import" href="../../bower_components/paper-input/paper-input.html">
14   -<link rel="import" href="../../bower_components/paper-menu-button/paper-menu-button.html">
15   -<link rel="import" href="../../bower_components/paper-ripple/paper-ripple.html">
16   -<link rel="import" href="../../bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html">
17   -<link rel="import" href="../../bower_components/iron-behaviors/iron-control-state.html">
18   -<link rel="import" href="../../bower_components/iron-behaviors/iron-button-state.html">
19   -<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
20   -<link rel="import" href="../../bower_components/iron-icon/iron-icon.html">
21   -<link rel="import" href="../../bower_components/iron-selector/iron-selectable.html">
22   -<link rel="import" href="../../bower_components/iron-form-element-behavior/iron-form-element-behavior.html">
23   -<link rel="import" href="../../bower_components/iron-validatable-behavior/iron-validatable-behavior.html">
24   -
25   -<!--
26   -Material design: [Dropdown menus](https://www.google.com/design/spec/components/buttons.html#buttons-dropdown-buttons)
27   -
28   -`paper-dropdown-menu` is similar to a native browser select element.
29   -`paper-dropdown-menu` works with selectable content. The currently selected
30   -item is displayed in the control. If no item is selected, the `label` is
31   -displayed instead.
32   -
33   -The child element with the class `dropdown-content` will be used as the dropdown
34   -menu. It could be a `paper-menu` or element that triggers `iron-select` when
35   -selecting its children.
36   -
37   -Example:
38   -
39   - <paper-dropdown-menu label="Your favourite pastry">
40   - <paper-menu class="dropdown-content">
41   - <paper-item>Croissant</paper-item>
42   - <paper-item>Donut</paper-item>
43   - <paper-item>Financier</paper-item>
44   - <paper-item>Madeleine</paper-item>
45   - </paper-menu>
46   - </paper-dropdown-menu>
47   -
48   -This example renders a dropdown menu with 4 options.
49   -
50   -Similarly to using `iron-select`, `iron-deselect` events will cause the
51   -current selection of the `paper-dropdown-menu` to be cleared.
52   -
53   -### Styling
54   -
55   -The following custom properties and mixins are also available for styling:
56   -
57   -Custom property | Description | Default
58   -----------------|-------------|----------
59   -`--paper-dropdown-menu` | A mixin that is applied to the element host | `{}`
60   -`--paper-dropdown-menu-disabled` | A mixin that is applied to the element host when disabled | `{}`
61   -`--paper-dropdown-menu-ripple` | A mixin that is applied to the internal ripple | `{}`
62   -`--paper-dropdown-menu-button` | A mixin that is applied to the internal menu button | `{}`
63   -`--paper-dropdown-menu-input` | A mixin that is applied to the internal paper input | `{}`
64   -`--paper-dropdown-menu-icon` | A mixin that is applied to the internal icon | `{}`
65   -
66   -You can also use any of the `paper-input-container` and `paper-menu-button`
67   -style mixins and custom properties to style the internal input and menu button
68   -respectively.
69   -
70   -@group Paper Elements
71   -@element paper-dropdown-menu
72   -@hero hero.svg
73   -@demo demo/index.html
74   --->
75   -
76   -<dom-module id="paper-input-search">
77   - <style>
78   - :host {
79   - display: inline-block;
80   - position: relative;
81   - text-align: left;
82   - cursor: pointer;
83   -
84   - /* NOTE(cdata): Both values are needed, since some phones require the
85   - * value to be `transparent`.
86   - */
87   - -webkit-tap-highlight-color: rgba(0,0,0,0);
88   - -webkit-tap-highlight-color: transparent;
89   -
90   - --paper-input-container-input: {
91   - overflow: hidden;
92   - white-space: nowrap;
93   - text-overflow: ellipsis;
94   - max-width: 100%;
95   - box-sizing: border-box;
96   - /*cursor: pointer;*/
97   - };
98   -
99   - @apply(--paper-dropdown-menu);
100   - }
101   -
102   - :host([disabled]) {
103   - @apply(--paper-dropdown-menu-disabled);
104   - }
105   -
106   - :host([noink]) paper-ripple {
107   - display: none;
108   - }
109   -
110   - :host([no-label-float]) paper-ripple {
111   - top: 8px;
112   - }
113   -
114   - paper-ripple {
115   - top: 12px;
116   - left: 0px;
117   - bottom: 8px;
118   - right: 0px;
119   -
120   - @apply(--paper-dropdown-menu-ripple);
121   - }
122   -
123   - paper-menu-button {
124   - display: block;
125   - padding: 0;
126   - @apply(--paper-dropdown-menu-button);
127   - }
128   -
129   - paper-input {
130   - @apply(--paper-dropdown-menu-input);
131   - }
132   -
133   - iron-icon {
134   - /*color: var(--disabled-text-color);*/
135   - color: #2196F3;
136   -
137   - @apply(--paper-dropdown-menu-icon);
138   - }
139   -
140   - </style>
141   - <template>
142   - <paper-menu-button
143   - id="menuButton"
144   - vertical-align="top"
145   - horizontal-align="left"
146   - vertical-offset="[[_computeMenuVerticalOffset(noLabelFloat)]]"
147   - disabled="[[disabled]]"
148   - no-animations="[[noAnimations]]"
149   - on-iron-select="_onIronSelect"
150   - on-iron-deselect="_onIronDeselect"
151   - opened="{{opened}}">
152   - <div class="dropdown-trigger">
153   - <!--<paper-ripple></paper-ripple>-->
154   - <paper-input
155   - id="inputField"
156   - invalid="[[invalid]]"
157   - value="{{inputValue}}"
158   - placeholder="[[placeholder]]"
159   - always-float-label="[[alwaysFloatLabel]]"
160   - no-label-float="[[noLabelFloat]]"
161   - label="[[label]]">
162   - <iron-icon icon="search" prefix></iron-icon>
163   - <iron-icon icon="arrow-drop-down" suffix></iron-icon>
164   - </paper-input>
165   - </div>
166   - <content id="content" select=".dropdown-content"></content>
167   - </paper-menu-button>
168   - </template>
169   -</dom-module>
170   -<script>
171   - (function() {
172   - 'use strict';
173   -
174   - Polymer({
175   - is: 'paper-input-search',
176   -
177   - /**
178   - * Fired when the dropdown opens.
179   - *
180   - * @event paper-dropdown-open
181   - */
182   -
183   - /**
184   - * Fired when the dropdown closes.
185   - *
186   - * @event paper-dropdown-close
187   - */
188   -
189   - behaviors: [
190   - Polymer.IronControlState,
191   - Polymer.IronButtonState,
192   - Polymer.IronFormElementBehavior,
193   - Polymer.IronValidatableBehavior
194   - ],
195   -
196   - properties: {
197   - /**
198   - * The derived "label" of the currently selected item. This value
199   - * is the `label` property on the selected item if set, or else the
200   - * trimmed text content of the selected item.
201   - */
202   - selectedItemLabel: {
203   - type: String,
204   - notify: true,
205   - readOnly: true
206   - },
207   -
208   - /**
209   - * The last selected item. An item is selected if the dropdown menu has
210   - * a child with class `dropdown-content`, and that child triggers an
211   - * `iron-select` event with the selected `item` in the `detail`.
212   - *
213   - * @type {?Object}
214   - */
215   - selectedItem: {
216   - type: Object,
217   - notify: true,
218   - readOnly: true
219   - },
220   -
221   - /**
222   - * The value for this element that will be used when submitting in
223   - * a form. It is read only, and will always have the same value
224   - * as `selectedItemLabel`.
225   - */
226   - value: {
227   - type: String,
228   - notify: true,
229   - readOnly: true
230   - },
231   -
232   - /**
233   - * The label for the dropdown.
234   - */
235   - label: {
236   - type: String
237   - },
238   -
239   - /**
240   - * The placeholder for the dropdown.
241   - */
242   - placeholder: {
243   - type: String
244   - },
245   -
246   - /**
247   - * True if the dropdown is open. Otherwise, false.
248   - */
249   - opened: {
250   - type: Boolean,
251   - notify: true,
252   - value: false
253   - },
254   -
255   - /**
256   - * Set to true to disable the floating label. Bind this to the
257   - * `<paper-input-container>`'s `noLabelFloat` property.
258   - */
259   - noLabelFloat: {
260   - type: Boolean,
261   - value: false,
262   - reflectToAttribute: true
263   - },
264   -
265   - /**
266   - * Set to true to always float the label. Bind this to the
267   - * `<paper-input-container>`'s `alwaysFloatLabel` property.
268   - */
269   - alwaysFloatLabel: {
270   - type: Boolean,
271   - value: false
272   - },
273   -
274   - /**
275   - * Set to true to disable animations when opening and closing the
276   - * dropdown.
277   - */
278   - noAnimations: {
279   - type: Boolean,
280   - value: false
281   - },
282   -
283   - inputValue: {
284   - type: String,
285   - value: undefined,
286   - observer: '_fireInputValue'
287   - },
288   -
289   - fireInputValue: {
290   - type: Boolean,
291   - value: true,
292   - }
293   - },
294   -
295   - listeners: {
296   - 'tap': '_onTap'
297   - },
298   -
299   - keyBindings: {
300   - 'up down': 'open',
301   - 'esc': 'close'
302   - },
303   -
304   - hostAttributes: {
305   - role: 'group',
306   - 'aria-haspopup': 'true'
307   - },
308   -
309   - observers: [
310   -// '_selectedItemChanged(selectedItem)'
311   - ],
312   -
313   - attached: function() {
314   - // NOTE(cdata): Due to timing, a preselected value in a `IronSelectable`
315   - // child will cause an `iron-select` event to fire while the element is
316   - // still in a `DocumentFragment`. This has the effect of causing
317   - // handlers not to fire. So, we double check this value on attached:
318   - var contentElement = this.contentElement;
319   - if (contentElement && contentElement.selectedItem) {
320   - this._setSelectedItem(contentElement.selectedItem);
321   - }
322   - },
323   -
324   - _fireInputValue: function() {//console.log(this.inputValue);
325   - if(this.fireInputValue) {//change NO DDL
326   - this.fire('paper-input-search_input-value', {inputValue: this.inputValue});
327   - if(this.contentElement.selectedItem){
328   -// this._setSelectedItem(null);
329   - this.contentElement.select(-1);
330   -// console.log("deselected");
331   - }
332   - }
333   -
334   - this.fireInputValue = true;
335   - },
336   -
337   - /**
338   - * The content element that is contained by the dropdown menu, if any.
339   - */
340   - get contentElement() {
341   - return Polymer.dom(this.$.content).getDistributedNodes()[0];
342   - },
343   -
344   - /**
345   - * Show the dropdown content.
346   - */
347   - open: function() {
348   - this.$.menuButton.open();
349   - },
350   -
351   - /**
352   - * Hide the dropdown content.
353   - */
354   - close: function() {
355   - this.$.menuButton.close();
356   - },
357   -
358   - /**
359   - * A handler that is called when `iron-select` is fired.
360   - *
361   - * @param {CustomEvent} event An `iron-select` event.
362   - */
363   - _onIronSelect: function(event) {
364   -// console.log("select");
365   - this.fireInputValue = false;
366   - this._setSelectedItem(event.detail.item);
367   - this.inputValue = event.detail.item.label || event.detail.item.textContent.trim();
368   - },
369   -
370   - /**
371   - * A handler that is called when `iron-deselect` is fired.
372   - *
373   - * @param {CustomEvent} event An `iron-deselect` event.
374   - */
375   - _onIronDeselect: function(event) {
376   -// console.log("deselect");
377   - this.fireInputValue = false;
378   - this._setSelectedItem(null);
379   - },
380   -
381   - /**
382   - * A handler that is called when the dropdown is tapped.
383   - *
384   - * @param {CustomEvent} event A tap event.
385   - */
386   - _onTap: function(event) {
387   - if (Polymer.Gestures.findOriginalTarget(event) === this) {
388   - this.open();
389   - }
390   - this.async(function(){this.$.inputField.$.input.focus();},200);//to improve
391   -// console.log(this.selectedItemLabel);
392   -// console.log(this.value);
393   -// console.log(this.$.inputField.value);
394   -// console.log(this.inputValue);
395   - },
396   -
397   - /**
398   - * Compute the label for the dropdown given a selected item.
399   - *
400   - * @param {Element} selectedItem A selected Element item, with an
401   - * optional `label` property.
402   - */
403   -// _selectedItemChanged: function(selectedItem) {
404   -// var value = '';
405   -// if (!selectedItem) {
406   -// value = '';
407   -// } else {
408   -// value = selectedItem.label || selectedItem.textContent.trim();
409   -// }
410   -//
411   -// this._setValue(value);
412   -// this._setSelectedItemLabel(value);
413   -// this.inputValue = selectedItem.label || selectedItem.textContent.trim();
414   -// },
415   -
416   - /**
417   - * Compute the vertical offset of the menu based on the value of
418   - * `noLabelFloat`.
419   - *
420   - * @param {boolean} noLabelFloat True if the label should not float
421   - * above the input, otherwise false.
422   - */
423   - _computeMenuVerticalOffset: function(noLabelFloat) {
424   - // NOTE(cdata): These numbers are somewhat magical because they are
425   - // derived from the metrics of elements internal to `paper-input`'s
426   - // template. The metrics will change depending on whether or not the
427   - // input has a floating label.
428   -// return noLabelFloat ? -4 : 8;
429   - return noLabelFloat ? 46-4 : 46+8;
430   -// return 64;
431   - },
432   -
433   - /**
434   - * Returns false if the element is required and does not have a selection,
435   - * and true otherwise.
436   - * @return {Boolean} true if `required` is false, or if `required` is true
437   - * and the element has a valid selection.
438   - */
439   - _getValidity: function() {
440   - return this.disabled || !this.required || (this.required && this.value);
441   - }
442   - });
443   - })();
444   -</script>
445 0 \ No newline at end of file
controllets/select-dataset-controllet/demo-select-dataset-controllet.html 0 → 100644
  1 +<link rel="import" href="../../bower_components/polymer/polymer.html">
  2 +
  3 +<link rel="import" href="../../bower_components/paper-material/paper-material.html" />
  4 +<link rel="import" href="../../bower_components/paper-tabs/paper-tabs.html">
  5 +<link rel="import" href="../../bower_components/paper-tabs/paper-tab.html">
  6 +<link rel="import" href="../../bower_components/paper-dropdown-menu/paper-dropdown-menu.html">
  7 +<link rel="import" href="../../bower_components/paper-menu/paper-menu.html">
  8 +<link rel="import" href="../../bower_components/paper-item/paper-item.html">
  9 +<link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">
  10 +<link rel="import" href="../../bower_components/paper-tooltip/paper-tooltip.html">
  11 +
  12 +<link rel="import" href="../datasets-list-controllet/datasets-list-controllet.html">
  13 +
  14 +<dom-module id="demo-select-dataset-controllet">
  15 + <template>
  16 + <style>
  17 +
  18 + #select_dataset_container {
  19 + margin-top: 8px;
  20 + }
  21 +
  22 + #select_dataset_container * {
  23 + font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  24 + font-size: 16px;
  25 + line-height: 24px;
  26 + }
  27 +
  28 + #select_dataset_container #options {
  29 + display: flex;
  30 + flex-direction: row;
  31 +
  32 + height: 48px;
  33 + padding: 0;
  34 + font-weight: 700;
  35 + background: #B6B6B6;
  36 +
  37 + margin-top: 2px;
  38 +
  39 + overflow: hidden;
  40 + }
  41 +
  42 + #select_dataset_container #options_header {
  43 + width: calc(100% - 96px);
  44 + text-align: center;
  45 + padding: 12px 0 12px 48px;
  46 + }
  47 +
  48 + #select_dataset_container .header_block {
  49 + /*width: calc((100% - 48px) / 2);*/
  50 + /*max-width: 400px;*/
  51 + width: calc(50% - 24px);
  52 + padding:0 12px;
  53 +
  54 + line-height: 40px;
  55 +
  56 + display: none;
  57 + }
  58 +
  59 + #select_dataset_container #url {
  60 + padding: 0 12px 12px 12px;
  61 + height: 60px;
  62 +
  63 + border: 2px solid #B6B6B6;
  64 + border-top: 0;
  65 + }
  66 +
  67 + #select_dataset_container #datasets_list_container {
  68 + height: calc(100% - 96px - 2px - 74px);
  69 + width: 100%;
  70 + }
  71 +
  72 + paper-tabs {
  73 + background: #B6B6B6;
  74 + }
  75 +
  76 + paper-tab {
  77 + font-weight: 700;
  78 + border-right: 2px solid #FFFFFF;
  79 + }
  80 +
  81 + paper-tab:nth-last-child(2) {
  82 + border-right: 0;
  83 + }
  84 +
  85 + paper-tab.iron-selected {
  86 + color: #FFFFFF;
  87 + background: #2196F3;;
  88 + }
  89 +
  90 + paper-tab:not(.iron-selected):hover {
  91 + color: #2196F3;
  92 + }
  93 +
  94 + paper-input {
  95 + --paper-input-container-focus-color: #2196F3;
  96 + }
  97 +
  98 + paper-icon-button {
  99 + height: 48px;
  100 + width: 48px;
  101 + padding: 8px;
  102 + }
  103 +
  104 + paper-icon-button[icon="settings"] {
  105 + cursor: pointer;
  106 + color: #00BCD4;
  107 + --paper-icon-button-ink-color: #00BCD4;
  108 +
  109 + background: #E0E0E0;
  110 + float: right;
  111 + position: absolute;
  112 + right: 0;
  113 + }
  114 +
  115 + paper-icon-button[icon="info-outline"] {
  116 + cursor: help;
  117 + }
  118 +
  119 + :host {
  120 + --paper-dropdown-menu-icon: {
  121 + color: #000000;
  122 + };
  123 + --paper-dropdown-menu-ripple: {
  124 + color: #FFFFFF;
  125 + };
  126 + }
  127 +
  128 + paper-dropdown-menu {
  129 + /*width: 200px;*/
  130 + width: 50%;
  131 + --paper-input-container-focus-color: #2196F3;
  132 + }
  133 +
  134 + paper-item {
  135 + min-width: 128px;
  136 + white-space: nowrap;
  137 + }
  138 +
  139 + paper-item.iron-selected {
  140 + background-color: #2196F3;
  141 + color: #FFFFFF;
  142 + }
  143 +
  144 + paper-tooltip {
  145 + min-width: 400px;
  146 + --paper-tooltip-background: black;
  147 + }
  148 +
  149 + #select_dataset_container br {
  150 + display: block;
  151 + margin-top: 8px;
  152 + content: " ";
  153 + }
  154 +
  155 + #select_dataset_container p {
  156 + margin: 0;
  157 + padding: 0;
  158 + }
  159 +
  160 + #select_dataset_container p .option {
  161 + color: #2196F3;;
  162 + font-weight: 700;
  163 + }
  164 +
  165 + #select_dataset_container p .description {
  166 + }
  167 +
  168 + </style>
  169 +
  170 + <paper-material id="select_dataset_container" elevation="5">
  171 + <paper-tabs selected={{tabIndex}} no-bar>
  172 + <paper-tab noink on-tap="">EXAMPLE DATASETS LIST</paper-tab>
  173 + <!--<paper-tab noink on-tap="_setLocalDatasets"><span id="spod_users_datasets"></span></paper-tab>-->
  174 + <!--<paper-tab noink on-tap="_setExtendedDatasets"><span id="extended_datasets"></span></paper-tab>-->
  175 + </paper-tabs>
  176 +
  177 + <div id="options">
  178 +
  179 + <div id="options_header"></div>
  180 +
  181 + <div id="provider_option" class="header_block">
  182 + {{_getLocalization('provider')}}:&nbsp;
  183 + <paper-dropdown-menu id="ddl_provider" label="" no-label-float>
  184 + <paper-menu id="menu_provider" class="dropdown-content">
  185 + <paper-item id="0" on-tap="_setProvidersDatasets"><span id="all"></span></paper-item>
  186 + <template is="dom-repeat" items={{_toArray(providers)}}>
  187 + <paper-item id={{item.value.id}} on-tap="_setProvidersDatasets">{{item.value.title}}</paper-item>
  188 + </template>
  189 + </paper-menu>
  190 + </paper-dropdown-menu>
  191 + <paper-icon-button id="info_provider" icon="info-outline" noink></paper-icon-button>
  192 + <paper-tooltip id="tooltip_provider" for="info_provider" offset="8">
  193 + <p>
  194 + <span class="option">{{_getLocalization('all')}}</span><br>
  195 + <span class="description">{{_getLocalization('allDescription')}}</span><br>
  196 + <span class="option">{{_getLocalization('providerName')}}</span><br>
  197 + <span class="description">{{_getLocalization('providerNameDescription')}}</span><br>
  198 + </p>
  199 + </paper-tooltip>
  200 + </div>
  201 +
  202 + <!--<div id="view_option" class="header_block">-->
  203 + <!--{{_getLocalization('view')}}:&nbsp;-->
  204 + <!--<paper-dropdown-menu id="ddl_view" label="" no-label-float>-->
  205 + <!--<paper-menu id="menu_view" class="dropdown-content">-->
  206 + <!--<paper-item id="0" on-tap=""><span id="list"></span></paper-item>-->
  207 + <!--<paper-item id="1" on-tap="" disabled><span id="tree"></span></paper-item>-->
  208 + <!--</paper-menu>-->
  209 + <!--</paper-dropdown-menu>-->
  210 + <!--<paper-icon-button id="info_view" icon="info-outline" noink></paper-icon-button>-->
  211 + <!--<paper-tooltip id="tooltip_view" for="info_view" offset="8">-->
  212 + <!--<p>-->
  213 + <!--<span class="option">{{_getLocalization('list')}}</span><br>-->
  214 + <!--<span class="description">{{_getLocalization('listDescription')}}</span><br>-->
  215 + <!--<span class="option">{{_getLocalization('tree')}}</span><br>-->
  216 + <!--<span class="description">{{_getLocalization('treeDescription')}}</span><br>-->
  217 + <!--</p>-->
  218 + <!--</paper-tooltip>-->
  219 + <!--</div>-->
  220 +
  221 + <!--<div id="search_option" class="header_block">-->
  222 + <!--{{_getLocalization('search')}}:&nbsp;-->
  223 + <!--<paper-dropdown-menu id="ddl_search" label="" no-label-float>-->
  224 + <!--<paper-menu id="menu_search" class="dropdown-content">-->
  225 + <!--<paper-item><span id="standard"></span></paper-item>-->
  226 + <!--<paper-item disabled><span id="extended"></span></paper-item>-->
  227 + <!--</paper-menu>-->
  228 + <!--</paper-dropdown-menu>-->
  229 + <!--<paper-icon-button id="info_search" icon="info-outline" noink></paper-icon-button>-->
  230 + <!--<paper-tooltip id="tooltip_search" for="info_search" offset="8">-->
  231 + <!--<p>-->
  232 + <!--<span class="option">{{_getLocalization('standard')}}</span><br>-->
  233 + <!--<span class="description">{{_getLocalization('standardDescription')}}</span><br>-->
  234 + <!--<span class="option">{{_getLocalization('extended')}}</span><br>-->
  235 + <!--<span class="description">{{_getLocalization('extendedDescription')}}</span><br>-->
  236 + <!--</p>-->
  237 + <!--</paper-tooltip>-->
  238 + <!--</div>-->
  239 +
  240 + <div id="version_option" class="header_block">
  241 + {{_getLocalization('version')}}:&nbsp;
  242 + <paper-dropdown-menu id="ddl_version" label="" no-label-float>
  243 + <paper-menu id="menu_version" class="dropdown-content">
  244 + <paper-item id="0" on-tap="_showLast"><span id="show_last"></span></paper-item>
  245 + <paper-item id="1" on-tap="_showAll"><span id="show_all"></span></paper-item>
  246 + </paper-menu>
  247 + </paper-dropdown-menu>
  248 + <paper-icon-button id="tooltip_version" icon="info-outline" noink></paper-icon-button>
  249 + <paper-tooltip id="tooltip_version" for="tooltip_version" offset="8">
  250 + <p>
  251 + <span class="option">{{_getLocalization('showLast')}}</span><br>
  252 + <span class="description">{{_getLocalization('showLastDescription')}}</span><br>
  253 + <span class="option">{{_getLocalization('showAll')}}</span><br>
  254 + <span class="description">{{_getLocalization('showAllDescription')}}</span><br>
  255 + </p>
  256 + </paper-tooltip>
  257 + </div>
  258 +
  259 + <!--<paper-icon-button icon="settings" on-click="_optionsMenu"></paper-icon-button>-->
  260 +
  261 + </div>
  262 +
  263 + <div id="datasets_list_container">
  264 + <datasets-list-controllet id="datasets_list"></datasets-list-controllet>
  265 + </div>
  266 +
  267 + <div id="url"><paper-input id="selected_url" label="" value={{dataUrl}} error-message={{errorMessage}}></paper-input></div>
  268 + </paper-material>
  269 +
  270 + </template>
  271 +
  272 + <script>
  273 + HTMLImports.whenReady(function() {
  274 + Polymer({
  275 + is: 'demo-select-dataset-controllet',
  276 +
  277 + properties: {
  278 +
  279 + tabIndex: {
  280 + type: Number,
  281 + value: 0
  282 + },
  283 +
  284 + datasets: {
  285 + type: Object,
  286 + value: undefined
  287 + },
  288 +
  289 + suggestedDatasets : {
  290 + type : Array,
  291 + value : undefined
  292 + },
  293 +
  294 + dataUrl : {
  295 + type : String,
  296 + value : undefined,
  297 + observer : '_fireDataUrl'
  298 + }
  299 +
  300 + },
  301 +
  302 + listeners: {
  303 + 'datasets-list-controllet_dataset' : '_selectDataUrl'
  304 + },
  305 +
  306 + ready : function() {
  307 + this._translate();
  308 +
  309 + $(this.$.list_container).perfectScrollbar();
  310 + $(this.$.info).perfectScrollbar();
  311 +
  312 + this.options = true;
  313 + },
  314 +
  315 + attached : function() {
  316 + this._translate();
  317 +
  318 + this._resize();
  319 + var that = this;
  320 + window.addEventListener("resize", function() { that._resize() });
  321 +
  322 + this.providers = this.datasets["result"]["providers"];
  323 + this.providersDatasets = this.datasets["result"]["datasets"];
  324 +
  325 + if(this.suggestedDatasets)
  326 + this.providersDatasets = this.suggestedDatasets.concat(this.providersDatasets);
  327 +
  328 + $.ajax({
  329 + url: "/cocreation/ajax/get-all-dataset",
  330 + dataType: "json",
  331 + success: function(localDatasets){
  332 + that.localDatasets = localDatasets;
  333 + that.lastLocalDatasets = [];
  334 + var resource_name = "";
  335 + for(var i in localDatasets)
  336 + if(localDatasets[i].resource_name != resource_name) {
  337 + that.lastLocalDatasets.push(localDatasets[i]);
  338 + resource_name = localDatasets[i].resource_name;
  339 + }
  340 + },
  341 + error: function(){
  342 + that.localDatasets = [];
  343 + that.lastLocalDatasets = [];
  344 + }
  345 + });
  346 +
  347 + this._setProvidersDatasets();
  348 + },
  349 +
  350 + showDatasetInfo : function() {
  351 + this.$.datasets_list.showDatasetInfo();
  352 + },
  353 +
  354 + _translate : function(){
  355 + this.$.selected_url.setAttribute("label", ln["selectedUrl_" + ln["localization"]]);
  356 + this.errorMessage = ln["wrongUrl_" + ln["localization"]];
  357 +
  358 +// this.$.providers_datasets.innerHTML = ln["providersDatasets_" + ln["localization"]];
  359 +// this.$.spod_users_datasets.innerHTML = ln["spodUsersDatasets_" + ln["localization"]];
  360 +// this.$.extended_datasets.innerHTML = ln["extendedDatasets_" + ln["localization"]];
  361 +
  362 + this.$.options_header.innerHTML = ln["datasets_" + ln["localization"]];
  363 +
  364 + this.$.all.innerHTML = ln["all_" + ln["localization"]];
  365 +// this.$.list.innerHTML = ln["list_" + ln["localization"]];
  366 +// this.$.tree.innerHTML = ln["tree_" + ln["localization"]];
  367 +// this.$.standard.innerHTML = ln["standard_" + ln["localization"]];
  368 +// this.$.extended.innerHTML = ln["extended_" + ln["localization"]];
  369 + this.$.show_last.innerHTML = ln["showLast_" + ln["localization"]];
  370 + this.$.show_all.innerHTML = ln["showAll_" + ln["localization"]];
  371 +
  372 + this.$.menu_provider.select(0);
  373 +// this.$.menu_view.select(0);
  374 +// this.$.menu_search.select(0);
  375 + this.$.menu_version.select(0);
  376 + },
  377 +
  378 + _setProvidersDatasets : function() {
  379 + this.async(function () {
  380 + var ddl_provider = $(this.$.ddl_provider).find("paper-menu")[0].selectedItem;
  381 + var name = ddl_provider.innerHTML.trim();
  382 + var id = this._getIdByProviderName(name);
  383 + if (id) {
  384 + var providerDatasets = this.providersDatasets.filter(function (el) {
  385 + return el.provider_name == "p:" + id;
  386 + });
  387 + this.$.datasets_list.setDatasets(providerDatasets);
  388 + }
  389 + else
  390 + this.$.datasets_list.setDatasets(this.providersDatasets);
  391 +
  392 + this._showOptions();
  393 + }, 0);
  394 + },
  395 +
  396 + _setLocalDatasets : function() {
  397 + if(this.$.ddl_version.selectedItem.id == 0)
  398 + this._showLast();
  399 + else
  400 + this._showAll();
  401 + this._showOptions();
  402 + },
  403 +
  404 + _setExtendedDatasets : function() {
  405 + this.$.datasets_list.setDatasets([]);//tutto molto bello, clap, clap, clapù
  406 + this._showOptions()
  407 + },
  408 +
  409 + _getIdByProviderName : function(name) {
  410 + for(var id in this.providers) {
  411 + if (this.providers[id].title == name)
  412 + return this.providers[id].id;
  413 + }
  414 + },
  415 +
  416 + _optionsMenu : function() {
  417 + this.options = !this.options;
  418 + this._showOptions();
  419 + },
  420 +
  421 + _showOptions : function() {
  422 + this.async(function () {
  423 + if(!this.options) {
  424 + this.$.options_header.style.display = "block";
  425 + this.$.provider_option.style.display = "none";
  426 +// this.$.view_option.style.display = "none";
  427 +// this.$.search_option.style.display = "none";
  428 + this.$.version_option.style.display = "none";
  429 + }
  430 + else if(this.tabIndex == 0) {
  431 + this.$.options_header.style.display = "none";
  432 + this.$.provider_option.style.display = "block";
  433 +// this.$.view_option.style.display = "block";
  434 +// this.$.search_option.style.display = "block";
  435 + this.$.version_option.style.display = "none";
  436 + }
  437 + else if(this.tabIndex == 1) {
  438 + this.$.options_header.style.display = "none";
  439 + this.$.provider_option.style.display = "none";
  440 +// this.$.view_option.style.display = "none";
  441 +// this.$.search_option.style.display = "none";
  442 + this.$.version_option.style.display = "block";
  443 + }
  444 + else if(this.tabIndex == 2) {
  445 + this.$.options_header.style.display = "block";
  446 + this.$.provider_option.style.display = "none";
  447 +// this.$.view_option.style.display = "none";
  448 +// this.$.search_option.style.display = "none";
  449 + this.$.version_option.style.display = "none";
  450 + }
  451 + }, 0);
  452 + },
  453 +
  454 + _showAll : function() {
  455 + this.$.datasets_list.showVersion(true);
  456 + this.$.datasets_list.setDatasets(this.localDatasets);
  457 + },
  458 +
  459 + _showLast : function() {
  460 + this.$.datasets_list.showVersion(false);
  461 + this.$.datasets_list.setDatasets(this.lastLocalDatasets);
  462 + },
  463 +
  464 + _getLocalization : function(text){
  465 + return ln[text + "_" + ln["localization"]];
  466 + },
  467 +
  468 + _toArray: function(obj) {
  469 + return Object.keys(obj).map(function(key) {
  470 + return {
  471 + name: key,
  472 + value: obj[key]
  473 + };
  474 + });
  475 + },
  476 +
  477 + _selectDataUrl : function(e){
  478 + this.async(function () {
  479 + this.dataUrl = e.detail.dataset.url;
  480 + }, 0);
  481 + },
  482 +
  483 + _fireDataUrl : function(){
  484 + this.fire('select-dataset-controllet_data-url', {url: this.dataUrl});
  485 + },
  486 +
  487 + _resize : function(){
  488 + var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - 16;
  489 + h = h - 64 - 8; //height with page scroller
  490 + $("#select_dataset_container").height(h);
  491 + }
  492 + });
  493 + });
  494 + </script>
  495 +</dom-module>
0 496 \ No newline at end of file
... ...
controllets/select-dataset-controllet/select-dataset-controllet_old.html deleted
1   -<link rel="import" href="../../bower_components/polymer/polymer.html">
2   -
3   -<link rel="import" href="../../bower_components/paper-tabs/paper-tabs.html">
4   -<link rel="import" href="../../bower_components/paper-tabs/paper-tab.html">
5   -
6   -<link rel="import" href="../../bower_components/neon-animation/neon-animation.html">
7   -<link rel="import" href="../../bower_components/neon-animation/neon-animatable.html">
8   -<link rel="import" href="../../bower_components/neon-animation/neon-animations.html">
9   -
10   -<link rel="import" href="../../bower_components/iron-flex-layout/iron-flex-layout.html">
11   -<!--<link rel="import" href="../../bower_components/app-layout/app-toolbar/app-toolbar.html">-->
12   -<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
13   -<link rel="import" href="../../bower_components/paper-styles/color.html">
14   -<link rel="import" href="../../bower_components/paper-styles/typography.html">
15   -<link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">
16   -<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
17   -<link rel="import" href="../../bower_components/iron-image/iron-image.html">
18   -<link rel="import" href="../../bower_components/iron-list/iron-list.html">
19   -
20   -<link rel="import" href="../../bower_components/paper-dropdown-menu/paper-dropdown-menu.html">
21   -<link rel="import" href="../../bower_components/paper-menu/paper-menu.html">
22   -<link rel="import" href="../../bower_components/paper-item/paper-item.html">
23   -
24   -<link rel="import" href="../../bower_components/paper-input/paper-input.html">
25   -
26   -<link rel="import" href="../../bower_components/paper-input/paper-textarea.html">
27   -
28   -<link rel="import" href="../../bower_components/paper-material/paper-material.html" />
29   -
30   -<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
31   -<link rel="import" href="../../bower_components/iron-icons/hardware-icons.html">
32   -<!--<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">-->
33   -
34   -<link rel="import" href="../../bower_components/paper-checkbox/paper-checkbox.html">
35   -
36   -<link rel="import" href="../providers-utility-controllet/providers-utility-controllet.html">
37   -<link rel="import" href="ortelio-controllet.html">
38   -<link rel="import" href="../../datalets/datasetexplorer-datalet/datasetexplorer-datalet.html">
39   -
40   -<dom-module id="select-dataset-controllet">
41   - <template>
42   - <style>
43   - :host {
44   - --paper-dropdown-menu-icon: {
45   - color: #000000;
46   - };
47   - --paper-dropdown-menu-ripple: {
48   - color: #FFFFFF;
49   - };
50   - /*--paper-tab-ink: {*/
51   - /*color: #FFFFFF;*/
52   - /*};*/
53   - }
54   -
55   - iron-list {
56   - --iron-list-items-container: {
57   - margin:16px 16px 8px 16px;
58   - };
59   - }
60   -
61   - paper-textarea {
62   - width: 100%;
63   - --paper-input-container-focus-color: #2196F3;
64   - }
65   -
66   - paper-input {
67   - --paper-input-container-focus-color: #2196F3;
68   - }
69   - paper-dropdown-menu {
70   - width: 100%;
71   - --paper-input-container-focus-color: #2196F3;
72   - }
73   -
74   - paper-item.iron-selected {
75   - background-color: #2196F3;
76   - color: #FFFFFF;
77   - }
78   -
79   - paper-checkbox {
80   - height: 24px;
81   - /*margin-top: 8px*/
82   - --paper-checkbox-checked-color: #2196F3;
83   - --paper-checkbox-checked-ink-color: #FFFFFF;
84   - --paper-checkbox-unchecked-color: #000000;
85   - --paper-checkbox-unchecked-ink-color: #FFFFFF;
86   - --paper-checkbox-label-color: #000000;
87   - }
88   -
89   - paper-icon-button{
90   - height: 48px;
91   - width: 48px;
92   - padding: 0px;
93   - --paper-icon-button-ink-color: #FFFFFF;
94   - }
95   -
96   - paper-icon-button:hover{
97   - color: #2196F3;
98   - }
99   -
100   - paper-icon-button[disabled]{
101   - color: #B6B6B6;
102   - }
103   -
104   - paper-icon-button.clear {
105   - width: 24px;
106   - height: 24px;
107   - padding: 0px 4px;
108   - color: #F44336;
109   - --paper-icon-button-ink-color: #FFFFFF;
110   - }
111   -
112   - paper-tabs {
113   - font-weight: bold;
114   - }
115   -
116   - paper-tab {
117   - transition: all 1.0s;
118   - }
119   -
120   - paper-tab.iron-selected {
121   - background-color: #2196F3;
122   - color: #FFFFFF;
123   - }
124   -
125   - paper-tab:not(.iron-selected):hover {
126   - color: #2196F3;
127   - }
128   -
129   - .item {
130   - /*@apply(--layout-horizontal);*/
131   - display: flex;
132   - padding: 11px;
133   - border: 1px solid #B6B6B6;
134   - border-radius: 4px;
135   - cursor: pointer;
136   - margin-bottom: 8px;
137   - background-color: #E0E0E0;
138   - }
139   -
140   - .item.expanded {
141   - /*border: 2px solid #2196F3;*/
142   - border-color: #2196F3;
143   - }
144   -
145   - .pad {
146   - @apply(--layout-flex);
147   - /*@apply(--layout-vertical);*/
148   - }
149   -
150   - .primary {
151   - font-weight: bold;
152   - }
153   -
154   - .item.expanded .primary {
155   - color: #2196F3;
156   - }
157   -
158   - .longText {
159   - display: none;
160   - }
161   -
162   - .item.expanded .longText {
163   - display: block;
164   - }
165   -
166   - #select_dataset_container {
167   - margin-top: 8px;
168   - }
169   -
170   - #select_dataset_container * {
171   - font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
172   - font-size: 16px;
173   - line-height: 24px;
174   - }
175   -
176   - #select_dataset_container #neon_container {
177   - height: calc(100% - 172px);
178   - width: calc(100% - 8px);
179   - }
180   -
181   - #select_dataset_container #list_info {
182   - display: flex;
183   - height: calc(100% - 48px);
184   - width: calc(100% + 8px);/*bad*/
185   - }
186   -
187   - #select_dataset_container #list_container {
188   - position: relative;
189   - height: 100%;
190   - width: 50%;
191   - border-left: 4px solid #B6B6B6;
192   - }
193   -
194   - #select_dataset_container #info_container {
195   - position: relative;
196   - height: 100%;
197   - width: 50%;
198   - border-right: 4px solid #B6B6B6;
199   - }
200   -
201   - #select_dataset_container #info {
202   - position: relative;
203   - height: calc(100% - 56px);
204   - width: calc(100% - 56px);
205   - padding: 11px;
206   - border: 1px solid #B6B6B6;
207   - border-radius: 4px;
208   - background-color: #E0E0E0;
209   - margin: 16px;
210   - }
211   -
212   - #select_dataset_container #treemap_container {
213   - /*height: calc(100% - 244px);*/
214   - /*width: calc(100% - 8px);*/
215   - height: calc(100% - 48px);
216   - width: 100%;
217   - border: 4px solid #B6B6B6;
218   - border-top: 0px;
219   - border-bottom: 0px;
220   - position: relative;
221   - }
222   -
223   - #select_dataset_container #header {
224   - position: relative;
225   - z-index: 1;
226   - -webkit-box-shadow: 0 30px 24px -12px rgba(0, 0, 0, 0.14), 0 20px 30px -9px rgba(0, 0, 0, 0.12), 0 20px 10px -19px rgba(0, 0, 0, 0.4);
227   - -moz-box-shadow: 0 30px 24px -12px rgba(0, 0, 0, 0.14), 0 20px 30px -9px rgba(0, 0, 0, 0.12), 0 20px 10px -19px rgba(0, 0, 0, 0.4);
228   - box-shadow: 0 30px 24px -12px rgba(0, 0, 0, 0.14), 0 20px 30px -9px rgba(0, 0, 0, 0.12), 0 20px 10px -19px rgba(0, 0, 0, 0.4);
229   -
230   - background-color: #B6B6B6;
231   - display: flex;
232   - padding: 0px 4px;
233   - }
234   -
235   - #select_dataset_container #footer_list {
236   - position: relative;
237   - z-index: 1;
238   - -webkit-box-shadow: 0 -30px 24px -12px rgba(0, 0, 0, 0.14), 0 -20px 30px -9px rgba(0, 0, 0, 0.12), 0 -20px 10px -19px rgba(0, 0, 0, 0.4);
239   - -moz-box-shadow: 0 -30px 24px -12px rgba(0, 0, 0, 0.14), 0 -20px 30px -9px rgba(0, 0, 0, 0.12), 0 -20px 10px -19px rgba(0, 0, 0, 0.4);
240   - box-shadow: 0 -30px 24px -12px rgba(0, 0, 0, 0.14), 0 -20px 30px -9px rgba(0, 0, 0, 0.12), 0 -20px 10px -19px rgba(0, 0, 0, 0.4);
241   - }
242   -
243   - .noshadow {
244   - -webkit-box-shadow: none !important;
245   - -moz-box-shadow: none !important;
246   - box-shadow: none !important;
247   - }
248   -
249   - #select_dataset_container #footer_list,
250   - #select_dataset_container #footer_treemap {
251   - width: 100%;
252   - background-color: #B6B6B6;
253   - display: flex;
254   - padding: 0px 4px;
255   - }
256   -
257   - #select_dataset_container #url {
258   - height: 76px;/*100*/
259   - border: 4px solid #B6B6B6;
260   - border-top: 0px;
261   - padding: 0px 16px;
262   - margin-top: -4px;
263   - }
264   -
265   - #header .header_block {
266   - width: 20%;
267   - height: 40px;
268   - padding: 4px 16px 4px 16px;
269   - }
270   -
271   - /*.header_block:nth-child(2), .header_block:nth-child(3), .header_block:nth-child(3), .header_block:nth-child(4){*/
272   - /*visibility: hidden;*/
273   - /*}*/
274   -
275   - #header .header_block:nth-child(4) {
276   - text-align: center;
277   - }
278   -
279   - .footer_block {
280   - width: calc((100% - 0px) / 3);
281   - height: 24px;
282   - padding: 12px 8px 12px 8px;
283   - text-align: center;
284   - }
285   -
286   - .footer_block:nth-child(2) {
287   - height: 48px;
288   - padding: 0px 8px;
289   - }
290   -
291   - #suggested_div {
292   - visibility: hidden;
293   - }
294   -
295   - /*.info_resource_name {*/
296   - /*color: #2196F3;*/
297   - /*font-weight: bold;*/
298   - /*line-height: 48px;*/
299   - /*}*/
300   -
301   - /*#ortelio {*/
302   - /*/!*height: calc(100% - 172px);*!/*/
303   - /*/!*width: calc(100% - 8px);*!/*/
304   - /*height: 100%;*/
305   - /*width: 100%;*/
306   - /*background-color: red;*/
307   - /*}*/
308   - </style>
309   -
310   - <paper-material id="select_dataset_container" elevation="5">
311   -
312   - <paper-tabs selected="{{selected}}" no-bar>
313   - <paper-tab on-tap="_refreshList" noink><span id="listView"></span></paper-tab>
314   - <paper-tab on-tap="_noShadow" noink><span id="treeMapView"></span></paper-tab>
315   - <paper-tab on-tap="_hideSearch" noink><span id="extendedSearch"></span></paper-tab>
316   - </paper-tabs>
317   -
318   - <div id="header">
319   - <div class="header_block">
320   - <paper-dropdown-menu id="ddl_provider" label="" no-label-float>
321   - <paper-menu class="dropdown-content" selected="0">
322   - <paper-item id="0" on-tap="_filter"></paper-item>
323   - <template is="dom-repeat" items={{_toArray(providers)}} as="provider">
324   - <!--<paper-item id={{provider.value.id}} style$="background: {{_getProviderColor(provider.value.id)}};">{{provider.value.title}}</paper-item>-->
325   - <paper-item id={{provider.value.id}} on-tap="_filter">{{provider.value.title}}</paper-item>
326   - </template>
327   - </paper-menu>
328   - </paper-dropdown-menu>
329   - </div>
330   - <div class="header_block">
331   - </div>
332   - <div class="header_block">
333   - </div>
334   - <div class="header_block">
335   - </div>
336   - <div class="header_block">
337   - <paper-input id="datasets_filter" value={{filter}} no-label-float label="">
338   - <iron-icon class="search" icon="search" prefix></iron-icon>
339   - <paper-icon-button class="clear" suffix on-click="_clearInput" icon="clear" tabindex="0"></paper-icon-button>
340   - </paper-input>
341   - </div>
342   - </div>
343   -
344   - <neon-animated-pages id="neon_container" selected="{{selected}}" entry-animation="fade-in-animation" exit-animation="fade-out-animation">
345   -
346   - <neon-animatable>
347   - <div id="list_info">
348   - <div id="list_container">
349   - <iron-list id="list" items="{{shownDatasets}}" selection-enabled>
350   - <template>
351   - <div>
352   - <div class$="{{getClassForItem(selected)}}" on-tap="_selectDataUrl" style$="background: {{_getColorForItem(item)}};">
353   - <span style="display:none;">{{item.url}}</span>
354   - <div class="pad">
355   - <div class="primary">{{item.resource_name}}</div>
356   - <!--<div class="longText">-->
357   - <!--<template is="dom-repeat" items="{{_stringToArray(item.metas)}}" as="mata">-->
358   - <!--<b>{{mata.name}}:</b>-->
359   - <!--<span inner-h-t-m-l="{{mata.value}}"></span> <br>-->
360   - <!--</template>-->
361   - <!--</div>-->
362   - </div>
363   - <iron-icon icon$="{{_getIconForItem(item)}}" style$="color: {{_getColorForIcon(item)}};"></iron-icon>
364   - </div>
365   - </div>
366   - </template>
367   - </iron-list>
368   - </div>
369   - <div id="info_container">
370   - <div id="info">
371   - </div>
372   - </div>
373   - </div>
374   -
375   - <div id="footer_list">
376   - <div class="footer_block"><span id="showing"></span> {{shownPrev}} <span id="to"></span> {{shownNext}} <span id="of"></span> {{length}} <span id="datasets"></span></div>
377   - <div class="footer_block">
378   - <paper-icon-button id="slider_chevron_left" class="chevron-left" on-click="_onPrevClick" icon="chevron-left"></paper-icon-button>
379   - <paper-icon-button id="slider_chevron_right" class="chevron-right" on-click="_onNextClick" icon="chevron-right"></paper-icon-button>
380   - </div>
381   - <div id="suggested_div" class="footer_block">
382   - <!--<template is="dom-if" if={{suggestedDatasets}}>-->
383   - <paper-checkbox checked on-change="showSuggested"><span id="suggested_datasets"></span></paper-checkbox>
384   - <!--</template>-->
385   - </div>
386   - </div>
387   - </neon-animatable>
388   -
389   - <neon-animatable>
390   - <div id="treemap_container"></div>
391   -
392   - <div id="footer_treemap">
393   - <div class="footer_block"><span id="showing2"></span> {{tLength}} <span id="datasets2"></span></div>
394   - <div class="footer_block"></div>
395   - <div class="footer_block"></div>
396   - </div>
397   - </neon-animatable>
398   -
399   - <neon-animatable>
400   - <!--<div id="ortelio">-->
401   - <ortelio-controllet datasets={{datasets}}></ortelio-controllet>
402   - <!--</div>-->
403   - </neon-animatable>
404   -
405   - </neon-animated-pages>
406   -
407   - <div id="url">
408   - <paper-textarea id="selected_url" label="" value={{dataUrl}} error-message={{errorMessage}}></paper-textarea>
409   - </div>
410   -
411   - </paper-material>
412   -
413   - </template>
414   -
415   - <script>
416   - HTMLImports.whenReady(function() {
417   - Polymer({
418   - is: 'select-dataset-controllet',
419   - properties: {
420   - datasets: {
421   - type: Object,
422   - value: undefined
423   - },
424   - filteredDatasets : {
425   - type : Array,
426   - value : undefined
427   - },
428   - shownDatasets : {
429   - type : Array,
430   - value : undefined
431   - },
432   - suggestedDatasets : {
433   - type : Array,
434   - value : undefined
435   - },
436   -
437   - providers : {
438   - type : Array,
439   - value : undefined
440   - },
441   - dataUrl : {
442   - type : String,
443   - value : undefined,
444   - observer : '_fireDataUrl'
445   - },
446   - filter : {
447   - type : String,
448   - value : "",
449   - observer : '_filter'
450   - },
451   - selected : {
452   - type : Number,
453   - value : 0
454   - },
455   - prev : {type : Number, value : undefined},
456   - next : {type : Number, value : undefined},
457   - shownPrev : {type : Number, value : undefined},
458   - shownNext : {type : Number, value : undefined},
459   - length : {type : Number, value : undefined},
460   - tLength : {type : Number, computed : 'treemapLength(length)'},
461   - step : {type : Number, value : 20},
462   - colors : {
463   - type : Array,
464   - value : ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]
465   - }
466   - },
467   -
468   - listeners: {
469   - 'datasetexplorer-datalet_data-url': '_selectDataUrl_treeMap'
470   - },
471   -
472   - ready : function() {
473   - $(this.$.list_container).perfectScrollbar();
474   - $(this.$.info).perfectScrollbar();
475   -
476   -// this.$.selected_url.invalid = true;
477   - },
478   -
479   - attached: function() {
480   - this._resize();
481   - var that = this;
482   - window.addEventListener("resize", function() { that._resize(); that._loadTreeMap();});
483   -
484   -// this.providers = that.datasets["result"]["providers"];
485   -// this.datasets = that.datasets["result"]["datasets"];
486   -
487   - $.ajax({
488   - url: "/cocreation/ajax/get-all-dataset",
489   - dataType: "json",
490   - success: function(spodDatasets){
491   -
492   - that.providers = $.extend(that.datasets["result"]["providers"], {99: {api_url: "/cocreation/ajax/get-all-dataset", id: "99", image_hash: "SPOD", title: "SPOD"}});
493   - that.datasets = $.merge(spodDatasets, that.datasets["result"]["datasets"]);
494   -
495   - if(that.suggestedDatasets) {
496   - that.tempDatasets = that.datasets;
497   - that.datasets = that.suggestedDatasets.concat(that.datasets);
498   - that.$.suggested_div.style.visibility = "visible";
499   - }
500   -
501   - that.filteredDatasets = that.datasets;
502   -
503   - that.prev = 1;
504   - that.next = that.step;
505   - that.length = that.filteredDatasets.length;
506   -
507   - that.shownPrev = Math.min(that.prev, that.length);
508   - that.shownNext = Math.min(that.next, that.length);
509   - that.shownDatasets = that.filteredDatasets.slice(that.prev-1, that.next);
510   -
511   - that.$.list.scrollTarget = that.ownerDocument.documentElement;
512   -
513   - that._translate();
514   -
515   - that._loadTreeMap();
516   - }
517   - });
518   - },
519   -
520   - _translate : function(){
521   - this.$.listView.innerHTML = ln["listView_" + ln["localization"]];
522   - this.$.treeMapView.innerHTML = ln["treeMapView_" + ln["localization"]];
523   - this.$.extendedSearch.innerHTML = ln["extendedSearch_" + ln["localization"]];
524   -
525   - this.$.ddl_provider.setAttribute("label", ln["provider_" + ln["localization"]]);
526   - this.$.datasets_filter.setAttribute("label", ln["search_" + ln["localization"]]);
527   -
528   - this.$.suggested_datasets.innerHTML = ln["suggestedDatasets_" + ln["localization"]];
529   -
530   - this.$.showing.innerHTML = ln["showing_" + ln["localization"]];
531   - this.$.showing2.innerHTML = ln["showing_" + ln["localization"]];
532   - this.$.to.innerHTML = ln["to_" + ln["localization"]];
533   - this.$.of.innerHTML = ln["of_" + ln["localization"]];
534   - this.$.datasets.innerHTML = ln["datasets_" + ln["localization"]];
535   - this.$.datasets2.innerHTML = ln["datasets_" + ln["localization"]];
536   -
537   - this.$.selected_url.setAttribute("label", ln["selectedUrl_" + ln["localization"]]);
538   - this.errorMessage = ln["wrongUrl_" + ln["localization"]];
539   - },
540   -
541   - showSuggested : function(e) {
542   - if(e.target.checked)
543   - this.datasets = this.suggestedDatasets.concat(this.tempDatasets);
544   - else
545   - this.datasets = this.tempDatasets;
546   - this._filter();
547   - },
548   -
549   - _loadTreeMap : function(){
550   - var h = $("#neon_container").height() - 48;
551   - var w = $("#neon_container").width();
552   -
553   - var data = JSON.stringify({result : {providers: this.providers, datasets: this.filteredDatasets}}).replace(/'/g, "");
554   -
555   - if(this.filteredDatasets.length > 0)
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   - else
558   - this.$.treemap_container.innerHTML = "";
559   - },
560   -
561   - _filter : function() {
562   - if(this.filteredDatasets) {
563   - this.async(function () {
564   - var ddl_provider = $(this.$.ddl_provider).find("paper-menu")[0].selectedItem;
565   - var name = ddl_provider.innerHTML.trim();
566   - var id = this._getIdByProviderName(name);
567   - this.prev = 1;
568   - this.next = this.step;
569   - if (id) {
570   - //filtered by provider name
571   - this.filteredDatasets = this.datasets.filter(function (el) {
572   - return el.provider_name == "p:" + id;
573   - });
574   - }
575   - else {
576   - this.filteredDatasets = this.datasets;
577   - }
578   -
579   - //filtered by filter
580   - var filter = this.filter;
581   - this.filteredDatasets = this.filteredDatasets.filter(function (el) {
582   - return el.resource_name.toLowerCase().indexOf(filter.toLowerCase()) > -1;
583   - });
584   -
585   - this.length = this.filteredDatasets.length;
586   -
587   - this.shownPrev = Math.min(this.prev, this.length);
588   - this.shownNext = Math.min(this.next, this.length);
589   - this.shownDatasets = this.filteredDatasets.slice(this.prev - 1, this.next);
590   -
591   - $("#list_container").animate({scrollTop: 0}, 0);
592   -
593   - this._loadTreeMap();
594   - }, 0);
595   - }
596   - },
597   -
598   - _refreshList : function() {
599   - this.shownDatasets = this.filteredDatasets.slice(this.prev - 1, this.next);
600   -
601   - this.$.header.style.display = "flex";
602   - this.$.header.style.visibility = "visible";
603   -// this.$.url.style.marginTop = "-4px";
604   -
605   - this.$.header.className = this.$.header.className.replace(" noshadow", "");
606   - },
607   -
608   - _noShadow : function() {
609   - this.$.header.style.display = "flex";
610   - this.$.header.style.visibility = "visible";
611   -// this.$.url.style.marginTop = "-4px";
612   -
613   - this.$.header.className += " noshadow";
614   - },
615   -
616   - _hideSearch : function() {
617   -// this.$.header.style.display = "none";
618   - this.$.header.style.visibility = "hidden";
619   -// this.$.url.style.marginTop = "44px";
620   - },
621   -
622   - _clearInput : function() {
623   - this.$.datasets_filter.value = "";
624   - },
625   -
626   - _getIdByProviderName : function(name) {
627   - for(var id in this.providers) {
628   - if (this.providers[id].title == name)
629   - return this.providers[id].id;
630   - }
631   - },
632   -
633   -// iconForItem: function(item) {
634   -// return item ? (item.integer < 50 ? 'star-border' : 'info-outline') : '';
635   -// },
636   -
637   - treemapLength : function(length) {
638   - var ddl_provider = $(this.$.ddl_provider).find("paper-menu")[0].selectedItem;
639   - var name = ddl_provider.innerHTML.trim();
640   - var id = this._getIdByProviderName(name);
641   -
642   - if(this.suggestedDatasets && !id)
643   - return Math.max(length - this.suggestedDatasets.length, 0);
644   - return length;
645   - },
646   -
647   - _getColorForIcon : function(item) {
648   - var ddl_provider = $(this.$.ddl_provider).find("paper-menu")[0].selectedItem;
649   - var name = ddl_provider.innerHTML.trim();
650   - var id = this._getIdByProviderName(name);
651   - if (id) {
652   - return this.colors[0];
653   - }
654   - if(!item.provider_name) {
655   - return "#00BCD4";
656   - }
657   - var id = item.provider_name.substring(2, item.provider_name.length);
658   - var i = this.getProviderById(id) % this.colors.length;
659   - return this.colors[i];
660   - },
661   -
662   - _getColorForItem : function(item) {
663   -// var ddl_provider = $(this.$.ddl_provider).find("paper-menu")[0].selectedItem;
664   -// var name = ddl_provider.innerHTML.trim();
665   -// var id = this._getIdByProviderName(name);
666   -// if (id) {
667   -// return this.colors[0];
668   -// }
669   - if(!item.provider_name) {
670   - return "#FFEB3B";
671   - }
672   -// var id = item.provider_name.substring(2, item.provider_name.length);
673   -// var i = this.getProviderById(id) % this.colors.length;
674   -// return this.colors[i];
675   - },
676   -
677   - _getIconForItem : function(item) {
678   - return item.provider_name ? 'bookmark' : 'star';
679   - },
680   -
681   -// _getProviderColor: function(id) {
682   -// var i = this.getProviderById(id) % this.colors.length;
683   -// return this.colors[i];
684   -// },
685   -
686   - getClassForItem: function(selected) {
687   - return selected ? 'item expanded' : 'item';
688   - },
689   -
690   - getProviderById: function(providerId) {
691   - var i = 0;
692   - for(var id in this.providers){
693   - if(this.providers[id].id == providerId)
694   - return i;
695   - i++;
696   - }
697   - },
698   -
699   - _onPrevClick : function(){
700   - if(this.prev != 1) {
701   - this.prev -= this.step;
702   - this.next -= this.step;
703   -
704   - this.shownPrev = Math.min(this.prev, this.length);
705   - this.shownNext = Math.min(this.next, this.length);
706   - this.shownDatasets = this.filteredDatasets.slice(this.prev - 1, this.next);
707   - }
708   - $("#list_container").animate({ scrollTop: 0}, 0);
709   - },
710   -
711   - _onNextClick : function(){
712   - if(this.next < this.length) {
713   - this.prev += this.step;
714   - this.next += this.step;
715   -
716   - this.shownPrev = Math.min(this.prev, this.length);
717   - this.shownNext = Math.min(this.next, this.length);
718   - this.shownDatasets = this.filteredDatasets.slice(this.prev - 1, this.next);
719   - }
720   - $("#list_container").animate({ scrollTop: 0}, 0);
721   - },
722   -
723   - _stringToArray: function(obj) {
724   - obj = JSON.parse(obj);
725   - return Object.keys(obj).map(function(key) {
726   - return {
727   - name: key,
728   - value: obj[key]
729   - };
730   - });
731   - },
732   -
733   - _toArray: function(obj) {
734   - return Object.keys(obj).map(function(key) {
735   - return {
736   - name: key,
737   - value: obj[key]
738   - };
739   - });
740   - },
741   -
742   - _selectDataUrl : function(){
743   - this.async(function () {
744   - if(this.$.list.selectedItem) {
745   -
746   - var metas = JSON.parse(this.$.list.selectedItem.metas);
747   - var html = "<span style=\"color: #2196F3; font-weight: bold;\">" + this.$.list.selectedItem.resource_name + "</span><br><br>";
748   - /*font-weight: bold;*/
749   - /*line-height: 48px;*/
750   - for(var i in metas)
751   - html += "<b>" + i + ":</b> " + metas[i] + "<br>";
752   - this.$.info.innerHTML = html;
753   -
754   - this.dataUrl = this.$.list.selectedItem.url;
755   -// var url = this.$.list.selectedItem.url;
756   -
757   -// url = utility_getResourceUrl(url);
758   -
759   -// // Check if CKAN
760   -// var strDatasetPos = url.indexOf('/dataset/');
761   -// var strResourcePos = (strDatasetPos >= 0) ? url.indexOf('/resource/') : -1;
762   -// if (strDatasetPos >= 0 && strResourcePos > strDatasetPos) {
763   -// var urlSegment1 = url.substring(0, strDatasetPos);
764   -// var urlResourceEnd = url.indexOf('/', strResourcePos + 10);
765   -// var resourceId = url.substring(strResourcePos + 10, urlResourceEnd);
766   -// url = urlSegment1 + "/api/action/datastore_search?resource_id=" + resourceId;
767   -// }
768   -//
769   -// // Check if OPENDATASOFT
770   -// var strExploreDatasetPos = url.indexOf('/explore/dataset/');
771   -// if (strExploreDatasetPos >= 0) {
772   -// var urlSegment1 = url.substring(0, strExploreDatasetPos);
773   -// var datasetEnd = url.indexOf(strExploreDatasetPos + 17, '/');
774   -// var datasetId = url.substring(strExploreDatasetPos + 17, datasetEnd >= 0 ? datasetEnd : url.length);
775   -// url = urlSegment1 + '/api/records/1.0/search?dataset=' + datasetId;
776   -// }
777   -
778   -// this.dataUrl = this._addlimitUrl(url);
779   -// this.dataUrl = url;
780   - }
781   - else {
782   - this.dataUrl = "";
783   - this.$.info.innerHTML = "";
784   - }
785   - }, 0);
786   - },
787   -
788   - _selectDataUrl_treeMap : function(e) {
789   -// this.dataUrl = this._addlimitUrl(e.detail.url);
790   - this.dataUrl = e.detail.url;
791   - },
792   -
793   - _fireDataUrl : function(){
794   - this.fire('dataset-selection-controllet_data-url', {url: this.dataUrl});
795   - },
796   -
797   -// _addlimitUrl : function(url){
798   -// //CKAN --> action no limit
799   -// if((url.indexOf("api/action") > -1) && !(url.indexOf("limit") > -1))
800   -// {
801   -// url += "&limit=99999";
802   -// }
803   -// //OpenDataSoft --> action no limit
804   -// if((url.indexOf("api/records") > -1) && !(url.indexOf("rows") > -1)){
805   -// url += "&rows=10000";
806   -// }
807   -// return url;
808   -// },
809   -
810   - _resize : function(){
811   - var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - 16;
812   - h = h - 64 - 8; //height with page scroller
813   - $("#select_dataset_container").height(h);
814   - }
815   - });
816   - });
817   - </script>
818   -</dom-module>
819 0 \ No newline at end of file
controllets/select-dataset-controllet/select-dataset-controllet_purelist.html deleted
1   -<link rel="import" href="../../bower_components/polymer/polymer.html">
2   -
3   -<link rel="import" href="../../bower_components/paper-tabs/paper-tabs.html">
4   -<link rel="import" href="../../bower_components/paper-tabs/paper-tab.html">
5   -
6   -<link rel="import" href="../../bower_components/neon-animation/neon-animation.html">
7   -<link rel="import" href="../../bower_components/neon-animation/neon-animatable.html">
8   -<link rel="import" href="../../bower_components/neon-animation/neon-animations.html">
9   -
10   -<link rel="import" href="../../bower_components/iron-flex-layout/iron-flex-layout.html">
11   -<!--<link rel="import" href="../../bower_components/app-layout/app-toolbar/app-toolbar.html">-->
12   -<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
13   -<link rel="import" href="../../bower_components/paper-styles/color.html">
14   -<link rel="import" href="../../bower_components/paper-styles/typography.html">
15   -<link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">
16   -<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
17   -<link rel="import" href="../../bower_components/iron-image/iron-image.html">
18   -<link rel="import" href="../../bower_components/iron-list/iron-list.html">
19   -
20   -<link rel="import" href="../../bower_components/paper-dropdown-menu/paper-dropdown-menu.html">
21   -<link rel="import" href="../../bower_components/paper-menu/paper-menu.html">
22   -<link rel="import" href="../../bower_components/paper-item/paper-item.html">
23   -
24   -<link rel="import" href="../../bower_components/paper-input/paper-input.html">
25   -
26   -<link rel="import" href="../../bower_components/paper-input/paper-textarea.html">
27   -
28   -<link rel="import" href="../../bower_components/paper-material/paper-material.html" />
29   -
30   -<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
31   -<link rel="import" href="../../bower_components/iron-icons/hardware-icons.html">
32   -<!--<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">-->
33   -
34   -<link rel="import" href="../../bower_components/paper-checkbox/paper-checkbox.html">
35   -
36   -<link rel="import" href="../../datalets/datasetexplorer-datalet/datasetexplorer-datalet.html">
37   -
38   -<dom-module id="select-dataset-controllet">
39   - <template>
40   - <style>
41   - :host {
42   - --paper-dropdown-menu-icon: {
43   - color: #000000;
44   - };
45   - --paper-dropdown-menu-ripple: {
46   - color: #FFFFFF;
47   - };
48   - /*--paper-tab-ink: {*/
49   - /*color: #FFFFFF;*/
50   - /*};*/
51   - }
52   -
53   - iron-list {
54   - --iron-list-items-container: {
55   - margin:16px 16px 8px 16px;
56   - };
57   - }
58   -
59   - paper-textarea {
60   - width: 100%;
61   - --paper-input-container-focus-color: #2196F3;
62   - }
63   -
64   - paper-input {
65   - --paper-input-container-focus-color: #2196F3;
66   - }
67   - paper-dropdown-menu {
68   - width: 100%;
69   - --paper-input-container-focus-color: #2196F3;
70   - }
71   -
72   - paper-item.iron-selected {
73   - background-color: #2196F3;
74   - color: #FFFFFF;
75   - }
76   -
77   - paper-checkbox {
78   - height: 24px;
79   - /*margin-top: 8px*/
80   - --paper-checkbox-checked-color: #2196F3;
81   - --paper-checkbox-checked-ink-color: #FFFFFF;
82   - --paper-checkbox-unchecked-color: #000000;
83   - --paper-checkbox-unchecked-ink-color: #FFFFFF;
84   - --paper-checkbox-label-color: #000000;
85   - }
86   -
87   - paper-icon-button{
88   - height: 48px;
89   - width: 48px;
90   - padding: 0px;
91   - --paper-icon-button-ink-color: #FFFFFF;
92   - }
93   -
94   - paper-icon-button:hover{
95   - color: #2196F3;
96   - }
97   -
98   - paper-icon-button[disabled]{
99   - color: #B6B6B6;
100   - }
101   -
102   - paper-icon-button.clear {
103   - width: 24px;
104   - height: 24px;
105   - padding: 0px 4px;
106   - color: #F44336;
107   - --paper-icon-button-ink-color: #FFFFFF;
108   - }
109   -
110   - paper-tabs {
111   - font-weight: bold;
112   - }
113   -
114   - paper-tab {
115   - transition: all 1.0s;
116   - }
117   -
118   - paper-tab.iron-selected {
119   - background-color: #2196F3;
120   - color: #FFFFFF;
121   - }
122   -
123   - paper-tab:not(.iron-selected):hover {
124   - color: #2196F3;
125   - }
126   -
127   - .item {
128   - /*@apply(--layout-horizontal);*/
129   - display: flex;
130   - padding: 11px;
131   - border: 1px solid #B6B6B6;
132   - border-radius: 4px;
133   - cursor: pointer;
134   - margin-bottom: 8px;
135   - background-color: #E0E0E0;
136   - }
137   -
138   - .pad {
139   - @apply(--layout-flex);
140   - /*@apply(--layout-vertical);*/
141   - }
142   -
143   - .primary {
144   - font-weight: bold;
145   - }
146   -
147   - .item.expanded .primary {
148   - color: #2196F3;
149   - }
150   -
151   - .longText {
152   - display: none;
153   - }
154   -
155   - .item.expanded .longText {
156   - display: block;
157   - }
158   -
159   - #select_dataset_container {
160   - margin-top: 8px;
161   - }
162   -
163   - #select_dataset_container * {
164   - font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
165   - font-size: 16px;
166   - line-height: 24px;
167   - }
168   -
169   - #select_dataset_container #neon_container {
170   - height: calc(100% - 172px);
171   - width: calc(100% - 8px);
172   - }
173   -
174   - #select_dataset_container #list_container {
175   - /*height: calc(100% - 244px);*/
176   - /*width: calc(100% - 8px);*/
177   - height: calc(100% - 48px);
178   - width: 100%;
179   - border: 4px solid #B6B6B6;
180   - border-top: 0px;
181   - border-bottom: 0px;
182   - position: relative;
183   - }
184   -
185   - #select_dataset_container #treemap_container {
186   - /*height: calc(100% - 244px);*/
187   - /*width: calc(100% - 8px);*/
188   - height: calc(100% - 48px);
189   - width: 100%;
190   - border: 4px solid #B6B6B6;
191   - border-top: 0px;
192   - border-bottom: 0px;
193   - position: relative;
194   - }
195   -
196   - #select_dataset_container #header {
197   - position: relative;
198   - z-index: 1;
199   - -webkit-box-shadow: 0 30px 24px -12px rgba(0, 0, 0, 0.14), 0 20px 30px -9px rgba(0, 0, 0, 0.12), 0 20px 10px -19px rgba(0, 0, 0, 0.4);
200   - -moz-box-shadow: 0 30px 24px -12px rgba(0, 0, 0, 0.14), 0 20px 30px -9px rgba(0, 0, 0, 0.12), 0 20px 10px -19px rgba(0, 0, 0, 0.4);
201   - box-shadow: 0 30px 24px -12px rgba(0, 0, 0, 0.14), 0 20px 30px -9px rgba(0, 0, 0, 0.12), 0 20px 10px -19px rgba(0, 0, 0, 0.4);
202   -
203   - background-color: #B6B6B6;
204   - display: flex;
205   - padding: 0px 4px;
206   - }
207   -
208   - #select_dataset_container #footer_list {
209   - position: relative;
210   - z-index: 1;
211   - -webkit-box-shadow: 0 -30px 24px -12px rgba(0, 0, 0, 0.14), 0 -20px 30px -9px rgba(0, 0, 0, 0.12), 0 -20px 10px -19px rgba(0, 0, 0, 0.4);
212   - -moz-box-shadow: 0 -30px 24px -12px rgba(0, 0, 0, 0.14), 0 -20px 30px -9px rgba(0, 0, 0, 0.12), 0 -20px 10px -19px rgba(0, 0, 0, 0.4);
213   - box-shadow: 0 -30px 24px -12px rgba(0, 0, 0, 0.14), 0 -20px 30px -9px rgba(0, 0, 0, 0.12), 0 -20px 10px -19px rgba(0, 0, 0, 0.4);
214   - }
215   -
216   - .noshadow {
217   - -webkit-box-shadow: none !important;
218   - -moz-box-shadow: none !important;
219   - box-shadow: none !important;
220   - }
221   -
222   - #select_dataset_container #footer_list,
223   - #select_dataset_container #footer_treemap {
224   - width: 100%;
225   - background-color: #B6B6B6;
226   - display: flex;
227   - padding: 0px 4px;
228   - }
229   -
230   - #select_dataset_container #url {
231   - height: 76px;/*100*/
232   - border: 4px solid #B6B6B6;
233   - border-top: 0px;
234   - padding: 0px 16px;
235   - margin-top: -4px;
236   - }
237   -
238   - #header .header_block {
239   - width: 20%;
240   - height: 40px;
241   - padding: 4px 16px 4px 16px;
242   - }
243   -
244   - /*.header_block:nth-child(2), .header_block:nth-child(3), .header_block:nth-child(3), .header_block:nth-child(4){*/
245   - /*visibility: hidden;*/
246   - /*}*/
247   -
248   - #header .header_block:nth-child(4) {
249   - text-align: center;
250   - }
251   -
252   - .footer_block {
253   - width: calc((100% - 0px) / 3);
254   - height: 24px;
255   - padding: 12px 8px 12px 8px;
256   - text-align: center;
257   - }
258   -
259   - .footer_block:nth-child(2) {
260   - height: 48px;
261   - padding: 0px 8px;
262   - }
263   -
264   - #suggested_div {
265   - visibility: hidden;
266   - }
267   - </style>
268   -
269   - <paper-material id="select_dataset_container" elevation="5">
270   -
271   - <paper-tabs selected="{{selected}}" no-bar>
272   - <paper-tab noink on-tap="_refreshList"><span id="listView"></span></paper-tab>
273   - <!--<paper-tab noink ><span id="listView"></span></paper-tab>-->
274   - <paper-tab on-tap="_noShadow" noink><span id="treeMapView"></span></paper-tab>
275   - </paper-tabs>
276   -
277   - <div id="header">
278   - <div class="header_block">
279   - <paper-dropdown-menu id="ddl_provider" label="" no-label-float>
280   - <paper-menu class="dropdown-content" selected="0">
281   - <paper-item id="0" on-tap="_filter"></paper-item>
282   - <template is="dom-repeat" items={{_toArray(providers)}} as="provider">
283   - <!--<paper-item id={{provider.value.id}} style$="background: {{_getProviderColor(provider.value.id)}};">{{provider.value.title}}</paper-item>-->
284   - <paper-item id={{provider.value.id}} on-tap="_filter">{{provider.value.title}}</paper-item>
285   - </template>
286   - </paper-menu>
287   - </paper-dropdown-menu>
288   - </div>
289   - <div class="header_block">
290   - </div>
291   - <div class="header_block">
292   - </div>
293   - <div class="header_block">
294   - </div>
295   - <div class="header_block">
296   - <paper-input id="datasets_filter" value={{filter}} no-label-float label="">
297   - <iron-icon class="search" icon="search" prefix></iron-icon>
298   - <paper-icon-button class="clear" suffix on-click="_clearInput" icon="clear" tabindex="0"></paper-icon-button>
299   - </paper-input>
300   - </div>
301   - </div>
302   -
303   - <neon-animated-pages id="neon_container" selected="{{selected}}" entry-animation="fade-in-animation" exit-animation="fade-out-animation">
304   -
305   - <neon-animatable>
306   - <div id="list_container">
307   - <iron-list id="list" items="{{shownDatasets}}" selection-enabled><!--multi-selection-->
308   - <template>
309   - <div>
310   - <div class$="{{getClassForItem(selected)}}" on-tap="_selectDataUrl" style$="background: {{_getColorForItem(item)}};">
311   - <!--<div class$="{{getClassForItem(selected)}}" on-tap="_selectDataUrl">-->
312   - <span style="display:none;">{{item.url}}</span>
313   - <div class="pad">
314   - <div class="primary">{{item.resource_name}}</div>
315   - <!--<div class="shortText" style="display:none;">{{item.url}}</div>-->
316   - <div class="longText">
317   - <template is="dom-repeat" items="{{_stringToArray(item.metas)}}" as="mata">
318   - <b>{{mata.name}}:</b>
319   - <span inner-h-t-m-l="{{mata.value}}"></span> <br>
320   - </template>
321   - </div>
322   - </div>
323   - <!--<iron-icon icon$="[[iconForItem(item)]]"></iron-icon>-->
324   - <!--<iron-icon icon="bookmark" style$="color: {{_getColorForItem(item)}};"></iron-icon>-->
325   - <iron-icon icon$="{{_getIconForItem(item)}}" style$="color: {{_getColorForIcon(item)}};"></iron-icon>
326   - </div>
327   - </div>
328   - </template>
329   - </iron-list>
330   - </div>
331   -
332   - <div id="footer_list">
333   - <div class="footer_block"><span id="showing"></span> {{shownPrev}} <span id="to"></span> {{shownNext}} <span id="of"></span> {{length}} <span id="datasets"></span></div>
334   - <div class="footer_block">
335   - <paper-icon-button id="slider_chevron_left" class="chevron-left" on-click="_onPrevClick" icon="chevron-left"></paper-icon-button>
336   - <paper-icon-button id="slider_chevron_right" class="chevron-right" on-click="_onNextClick" icon="chevron-right"></paper-icon-button>
337   - </div>
338   - <div id="suggested_div" class="footer_block">
339   - <!--<template is="dom-if" if={{suggestedDatasets}}>-->
340   - <paper-checkbox checked on-change="showSuggested"><span id="suggested_datasets"></span></paper-checkbox>
341   - <!--</template>-->
342   - </div>
343   - </div>
344   - </neon-animatable>
345   -
346   - <neon-animatable>
347   - <div id="treemap_container"></div>
348   -
349   - <div id="footer_treemap">
350   - <div class="footer_block"><span id="showing2"></span> {{tLength}} <span id="datasets2"></span></div>
351   - <div class="footer_block"></div>
352   - <div class="footer_block"></div>
353   - </div>
354   - </neon-animatable>
355   -
356   - </neon-animated-pages>
357   -
358   - <div id="url">
359   - <paper-textarea id="selected_url" label="" value={{dataUrl}} error-message={{errorMessage}}></paper-textarea>
360   - </div>
361   -
362   - </paper-material>
363   -
364   - </template>
365   -
366   - <script>
367   - HTMLImports.whenReady(function() {
368   - Polymer({
369   - is: 'select-dataset-controllet',
370   - properties: {
371   - datasets: {
372   - type: Object,
373   - value: undefined
374   - },
375   - filteredDatasets : {
376   - type : Array,
377   - value : undefined
378   - },
379   - shownDatasets : {
380   - type : Array,
381   - value : undefined
382   - },
383   - suggestedDatasets : {
384   - type : Array,
385   - value : undefined
386   - },
387   -
388   - providers : {
389   - type : Array,
390   - value : undefined
391   - },
392   - dataUrl : {
393   - type : String,
394   - value : undefined,
395   - observer : '_fireDataUrl'
396   - },
397   - filter : {
398   - type : String,
399   - value : "",
400   - observer : '_filter'
401   - },
402   - selected : {
403   - type : Number,
404   - value : 0
405   - },
406   - prev : {type : Number, value : undefined},
407   - next : {type : Number, value : undefined},
408   - shownPrev : {type : Number, value : undefined},
409   - shownNext : {type : Number, value : undefined},
410   - length : {type : Number, value : undefined},
411   - tLength : {type : Number, computed : 'treemapLength(length)'},
412   - step : {type : Number, value : 20},
413   - colors : {
414   - type : Array,
415   - value : ["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]
416   - }
417   - },
418   -
419   - listeners: {
420   - 'datasetexplorer-datalet_data-url': '_selectDataUrl_treeMap'
421   - },
422   -
423   - ready : function() {
424   - $(this.$.list_container).perfectScrollbar();
425   -
426   -// this.$.selected_url.invalid = true;
427   - },
428   -
429   - attached: function() {
430   - this._resize();
431   - var that = this;
432   - window.addEventListener("resize", function() { that._resize(); that._loadTreeMap();});
433   -
434   - this.providers = this.datasets["result"]["providers"];
435   - this.datasets = this.datasets["result"]["datasets"];
436   -
437   - if(this.suggestedDatasets) {
438   - this.tempDatasets = this.datasets;
439   - this.datasets = this.suggestedDatasets.concat(this.datasets);
440   - this.$.suggested_div.style.visibility = "visible";
441   - }
442   -
443   - this.filteredDatasets = this.datasets;
444   -
445   - this.prev = 1;
446   - this.next = this.step;
447   - this.length = this.filteredDatasets.length;
448   -
449   - this.shownPrev = Math.min(this.prev, this.length);
450   - this.shownNext = Math.min(this.next, this.length);
451   - this.shownDatasets = this.filteredDatasets.slice(this.prev-1, this.next);
452   -
453   - this.$.list.scrollTarget = this.ownerDocument.documentElement;
454   -
455   - this._translate();
456   -
457   - this._loadTreeMap();
458   - },
459   -
460   - _translate : function(){
461   - this.$.listView.innerHTML = ln["listView_" + ln["localization"]];
462   - this.$.treeMapView.innerHTML = ln["treeMapView_" + ln["localization"]];
463   -
464   - this.$.ddl_provider.setAttribute("label", ln["provider_" + ln["localization"]]);
465   - this.$.datasets_filter.setAttribute("label", ln["search_" + ln["localization"]]);
466   -
467   - this.$.suggested_datasets.innerHTML = ln["suggestedDatasets_" + ln["localization"]];
468   -
469   - this.$.showing.innerHTML = ln["showing_" + ln["localization"]];
470   - this.$.showing2.innerHTML = ln["showing_" + ln["localization"]];
471   - this.$.to.innerHTML = ln["to_" + ln["localization"]];
472   - this.$.of.innerHTML = ln["of_" + ln["localization"]];
473   - this.$.datasets.innerHTML = ln["datasets_" + ln["localization"]];
474   - this.$.datasets2.innerHTML = ln["datasets_" + ln["localization"]];
475   -
476   - this.$.selected_url.setAttribute("label", ln["selectedUrl_" + ln["localization"]]);
477   - this.errorMessage = ln["wrongUrl_" + ln["localization"]];
478   - },
479   -
480   - showSuggested : function(e) {
481   - if(e.target.checked)
482   - this.datasets = this.suggestedDatasets.concat(this.tempDatasets);
483   - else
484   - this.datasets = this.tempDatasets;
485   - this._filter();
486   - },
487   -
488   - _loadTreeMap : function(){
489   - var h = $("#neon_container").height() - 48;
490   - var w = $("#neon_container").width();
491   -
492   - var data = JSON.stringify({result : {providers: this.providers, datasets: this.filteredDatasets}}).replace(/'/g, "");
493   -
494   - if(this.filteredDatasets.length > 0)
495   - 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>";
496   - else
497   - this.$.treemap_container.innerHTML = "";
498   - },
499   -
500   - _filter : function() {
501   - if(this.filteredDatasets) {
502   - this.async(function () {
503   - var ddl_provider = $(this.$.ddl_provider).find("paper-menu")[0].selectedItem;
504   - var name = ddl_provider.innerHTML.trim();
505   - var id = this._getIdByProviderName(name);
506   - this.prev = 1;
507   - this.next = this.step;
508   - if (id) {
509   - //filtered by provider name
510   - this.filteredDatasets = this.datasets.filter(function (el) {
511   - return el.provider_name == "p:" + id;
512   - });
513   - }
514   - else {
515   - this.filteredDatasets = this.datasets;
516   - }
517   -
518   - //filtered by filter
519   - var filter = this.filter;
520   - this.filteredDatasets = this.filteredDatasets.filter(function (el) {
521   - return el.resource_name.toLowerCase().indexOf(filter.toLowerCase()) > -1;
522   - });
523   -
524   - this.length = this.filteredDatasets.length;
525   -
526   - this.shownPrev = Math.min(this.prev, this.length);
527   - this.shownNext = Math.min(this.next, this.length);
528   - this.shownDatasets = this.filteredDatasets.slice(this.prev - 1, this.next);
529   -
530   - $("#list_container").animate({scrollTop: 0}, 0);
531   -
532   - this._loadTreeMap();
533   - }, 0);
534   - }
535   - },
536   -
537   - _refreshList : function() {
538   - this.shownDatasets = this.filteredDatasets.slice(this.prev - 1, this.next);
539   - this.$.header.className = this.$.header.className.replace(" noshadow", "");
540   - },
541   -
542   - _noShadow : function() {
543   - console.log(this.$.header);
544   - this.$.header.className += " noshadow";
545   - },
546   -
547   - _clearInput : function() {
548   - this.$.datasets_filter.value = "";
549   - },
550   -
551   - _getIdByProviderName : function(name) {
552   - for(var id in this.providers) {
553   - if (this.providers[id].title == name)
554   - return this.providers[id].id;
555   - }
556   - },
557   -
558   -// iconForItem: function(item) {
559   -// return item ? (item.integer < 50 ? 'star-border' : 'info-outline') : '';
560   -// },
561   -
562   - treemapLength : function(length) {
563   - var ddl_provider = $(this.$.ddl_provider).find("paper-menu")[0].selectedItem;
564   - var name = ddl_provider.innerHTML.trim();
565   - var id = this._getIdByProviderName(name);
566   -
567   - if(this.suggestedDatasets && !id)
568   - return Math.max(length - this.suggestedDatasets.length, 0);
569   - return length;
570   - },
571   -
572   - _getColorForIcon : function(item) {
573   - var ddl_provider = $(this.$.ddl_provider).find("paper-menu")[0].selectedItem;
574   - var name = ddl_provider.innerHTML.trim();
575   - var id = this._getIdByProviderName(name);
576   - if (id) {
577   - return this.colors[0];
578   - }
579   - if(!item.provider_name) {
580   - return "#00BCD4";
581   - }
582   - var id = item.provider_name.substring(2, item.provider_name.length);
583   - var i = this.getProviderById(id) % this.colors.length;
584   - return this.colors[i];
585   - },
586   -
587   - _getColorForItem : function(item) {
588   -// var ddl_provider = $(this.$.ddl_provider).find("paper-menu")[0].selectedItem;
589   -// var name = ddl_provider.innerHTML.trim();
590   -// var id = this._getIdByProviderName(name);
591   -// if (id) {
592   -// return this.colors[0];
593   -// }
594   - if(!item.provider_name) {
595   - return "#FFEB3B";
596   - }
597   -// var id = item.provider_name.substring(2, item.provider_name.length);
598   -// var i = this.getProviderById(id) % this.colors.length;
599   -// return this.colors[i];
600   - },
601   -
602   - _getIconForItem : function(item) {
603   - return item.provider_name ? 'bookmark' : 'star';
604   - },
605   -
606   -// _getProviderColor: function(id) {
607   -// var i = this.getProviderById(id) % this.colors.length;
608   -// return this.colors[i];
609   -// },
610   -
611   - getClassForItem: function(selected) {
612   - return selected ? 'item expanded' : 'item';
613   - },
614   -
615   - getProviderById: function(providerId) {
616   - var i = 0;
617   - for(var id in this.providers){
618   - if(this.providers[id].id == providerId)
619   - return i;
620   - i++;
621   - }
622   - },
623   -
624   - _onPrevClick : function(){
625   - if(this.prev != 1) {
626   - this.prev -= this.step;
627   - this.next -= this.step;
628   -
629   - this.shownPrev = Math.min(this.prev, this.length);
630   - this.shownNext = Math.min(this.next, this.length);
631   - this.shownDatasets = this.filteredDatasets.slice(this.prev - 1, this.next);
632   - }
633   - $("#list_container").animate({ scrollTop: 0}, 0);
634   - },
635   -
636   - _onNextClick : function(){
637   - if(this.next < this.length) {
638   - this.prev += this.step;
639   - this.next += this.step;
640   -
641   - this.shownPrev = Math.min(this.prev, this.length);
642   - this.shownNext = Math.min(this.next, this.length);
643   - this.shownDatasets = this.filteredDatasets.slice(this.prev - 1, this.next);
644   - }
645   - $("#list_container").animate({ scrollTop: 0}, 0);
646   - },
647   -
648   - _stringToArray: function(obj) {
649   - obj = JSON.parse(obj);
650   - return Object.keys(obj).map(function(key) {
651   - return {
652   - name: key,
653   - value: obj[key]
654   - };
655   - });
656   - },
657   -
658   - _toArray: function(obj) {
659   - return Object.keys(obj).map(function(key) {
660   - return {
661   - name: key,
662   - value: obj[key]
663   - };
664   - });
665   - },
666   -
667   - _selectDataUrl : function(){
668   - this.async(function () {
669   - if(this.$.list.selectedItem) {
670   - var url = this.$.list.selectedItem.url;
671   -
672   - // Check if CKAN
673   - var strDatasetPos = url.indexOf('/dataset/');
674   - var strResourcePos = (strDatasetPos >= 0) ? url.indexOf('/resource/') : -1;
675   - if (strDatasetPos >= 0 && strResourcePos > strDatasetPos) {
676   - var urlSegment1 = url.substring(0, strDatasetPos);
677   - var urlResourceEnd = url.indexOf('/', strResourcePos + 10);
678   - var resourceId = url.substring(strResourcePos + 10, urlResourceEnd);
679   - url = urlSegment1 + "/api/action/datastore_search?resource_id=" + resourceId;
680   - }
681   -
682   - // Check if OPENDATASOFT
683   - var strExploreDatasetPos = url.indexOf('/explore/dataset/');
684   - if (strExploreDatasetPos >= 0) {
685   - var urlSegment1 = url.substring(0, strExploreDatasetPos);
686   - var datasetEnd = url.indexOf(strExploreDatasetPos + 17, '/');
687   - var datasetId = url.substring(strExploreDatasetPos + 17, datasetEnd >= 0 ? datasetEnd : url.length);
688   - url = urlSegment1 + '/api/records/1.0/search?dataset=' + datasetId;
689   - }
690   -
691   - this.dataUrl = this._addlimitUrl(url);
692   - }
693   - else {
694   - this.dataUrl = "";
695   - }
696   - }, 0);
697   - },
698   -
699   - _selectDataUrl_treeMap : function(e) {
700   - this.dataUrl = this._addlimitUrl(e.detail.url);
701   - },
702   -
703   - _fireDataUrl : function(){
704   - this.fire('dataset-selection-controllet_data-url', {url: this.dataUrl});
705   - },
706   -
707   - _addlimitUrl : function(url){
708   - //CKAN --> action no limit
709   - if((url.indexOf("api/action") > -1) && !(url.indexOf("limit") > -1))
710   - {
711   - url += "&limit=99999";
712   - }
713   - //OpenDataSoft --> action no limit
714   - if((url.indexOf("api/records") > -1) && !(url.indexOf("rows") > -1)){
715   - url += "&rows=10000";
716   - }
717   - return url;
718   - },
719   -
720   - _resize : function(){
721   - var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0) - 16;
722   - h = h - 64 - 8; //height with page scroller
723   - $("#select_dataset_container").height(h);
724   - }
725   - });
726   - });
727   - </script>
728   -</dom-module>
729 0 \ No newline at end of file
demo.html
... ... @@ -5,21 +5,18 @@
5 5  
6 6 <link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
7 7  
  8 + <script type="text/javascript" src="datalets/shared_js/jquery-1.11.2.min.js"></script>
  9 + <script type="text/javascript" src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
  10 +
8 11 <link rel="import" href="bower_components/iron-component-page/iron-component-page.html">
9   - <link rel="import" href="bower_components/paper-item/paper-item.html">
10   - <link rel="import" href="bower_components/paper-dropdown-menu/paper-dropdown-menu.html">
11 12 <link rel="import" href="bower_components/paper-icon-button/paper-icon-button.html">
12   - <link rel="import" href="bower_components/iron-flex-layout/iron-flex-layout.html">
13 13  
14   - <script type="text/javascript" src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
15   - <script type="text/javascript" src="datalets/shared_js/jquery-1.11.2.min.js"></script>
16 14 <script type="text/javascript" src="docs/js/editarea_0_8_2/edit_area/edit_area_full.js"></script>
17 15  
18   -
19 16 <script type="text/javascript">
20 17 $(document).ready(function () {
21 18 editAreaLoader.init({
22   - id : "sbiricuda", // textarea id
  19 + id : "text_area", // textarea id
23 20 syntax: "html", // syntax to be uses for highgliting
24 21 start_highlight: true, // to display with highlight mode on start-up
25 22 replace_tab_by_spaces: 4,
... ... @@ -51,118 +48,115 @@
51 48  
52 49 var dataletLink = '<link rel="import" href="http://deep.routetopa.eu/deep_1_7/COMPONENTS/datalets/'+e.detail.data.datalet+'/'+e.detail.data.datalet+'.html" /> \n';
53 50  
54   - editAreaLoader.setValue("sbiricuda", dataletImport+dataletLink+dataletHTML);
  51 + editAreaLoader.setValue("text_area", dataletImport+dataletLink+dataletHTML);
55 52 }
56 53  
57 54 </script>
58 55  
59   - <style>
  56 + <style is="custom-style">
  57 +
  58 + #creator_container {
  59 + width: 100%;
  60 + height: 100%;
  61 + }
  62 +
  63 + #creator_container * {
  64 + font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  65 + font-size: 16px;
  66 + line-height: 24px;
  67 + }
  68 +
  69 + #text_container {
  70 + padding: 8px;
  71 + background: #BBDEFB;
  72 +
  73 + margin-top: 8px;
  74 + }
  75 +
  76 + #controllet_iframe {
  77 + height: 100%;
  78 + width: 100%;
  79 + }
  80 +
  81 + #iframe_container {
  82 + border: 2px solid #BBDEFB;
  83 + border-top: 0;
  84 + width: calc(100% - 4px);
  85 + height: 698px;
  86 + }
60 87  
61   - body {
62   - font-family: 'Roboto', sans-serif;
  88 + #toolbar {
  89 + background: #2196F3;
63 90 }
64 91  
65   - #toolbar{
66   - background: #2196F3 ;
  92 + .title {
  93 + font-weight: 700 !important;
67 94 }
68 95  
69 96 #logo{
70   - width: 56px;
71   - height: 56px;
72   - background-image: url("http://spod.routetopa.eu/ow_static/themes/rtpa_matter/images/logo.png");
73   - background-size: auto 41px;
  97 + width: 64px;
  98 + height: 64px;
  99 + background-image: url("http://spod.routetopa.eu/ow_static/themes/spod_theme_matter/images/logo.png");
74 100 background-repeat: no-repeat;
75 101 background-position: center center;
  102 + }
  103 +
  104 + paper-icon-button {
  105 + --paper-icon-button-ink-color: #FFFFFF;
  106 + height: 48px;
  107 + width: 48px;
  108 + padding: 8px;
  109 + }
  110 +
  111 + a {
  112 + color: #FFFFFF;
  113 + text-decoration: none;
  114 + }
  115 + #text_area_container {
  116 + width: 100%;
  117 + height: calc(100vh - 884px);
  118 + min-height: 192px;
76 119  
  120 + margin-top: 8px;
  121 + /*background: red;*/
77 122 }
  123 +
  124 + #text_area {
  125 + width: calc(100% - 18px);
  126 + height: calc(100% - 18px);
  127 + margin: 0;
  128 + padding: 8px;
  129 + }
  130 +
78 131 </style>
79 132  
80 133 </head>
81 134 <body>
82 135  
83   - <paper-toolbar id="toolbar">
84   - <paper-menu-button>
85   - <paper-icon-button icon="menu" class="dropdown-trigger"></paper-icon-button>
86   - <paper-menu class="dropdown-content">
87   - <paper-item><a href="http://routetopa.eu/" target="_blank">ROUTE-TO PA European Project</a></paper-item>
88   - <paper-item><a href="docs/docs.html" target="_blank">DEEP Documentation</a></paper-item>
89   - </paper-menu>
90   - </paper-menu-button>
91   - <span class="title">DatalEts-Ecosystem Provider - Datalet Creator</span>
92   - <a href="http://routetopa.eu/" target="_blank"><paper-icon-button id="logo"></paper-icon-button></a>
93   - </paper-toolbar>
94   -
95   - <div class="">
96   - <p>
  136 + <div id="creator_container">
  137 +
  138 + <paper-toolbar id="toolbar">
  139 + <a href="http://routetopa.eu/" target="_blank"><paper-icon-button id="logo" title="ROUTE-TO PA European Project"></paper-icon-button></a>
  140 + <span class="title">DatalEts-Ecosystem Provider - Datalet Creator</span>
  141 + <a href="docs/docs.html" target="_blank"><paper-icon-button icon="description" title="DEEP Documentation"></paper-icon-button></a>
  142 + <a href="http://routetopa.eu/" target="_blank"><paper-icon-button icon="forward" title="ROUTE-TO PA European Project"></paper-icon-button></a>
  143 + </paper-toolbar>
  144 +
  145 + <div id="text_container">
97 146 Using this page you can create a Datalet, a off-the-shelf, reusable web-component able to load,
98 147 query, filter, and visualise any dataset content (e.g. through HighCharts Javascript library).
99 148 Datalet are reusable since they can be placed in every web page, like institutional web-sites,
100 149 blogs, forums and so on, without any knowledge on how it effectively is implemented.
101   - </p>
102   - </div>
  150 + </div>
103 151  
104   - <iframe style="width:100%; height:62vh" frameborder="0" srcdoc='
105   - <head>
106   - <script type="text/javascript" src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
107   - <script type="text/javascript" src="datalets/shared_js/jquery-1.11.2.min.js"></script>
108   - <link rel="import" href="controllets/data-sevc-controllet/data-sevc-controllet.html" />
109   - <script src="controllets/shared_js/perfect-scrollbar/js/min/perfect-scrollbar.jquery.min.js"></script>
110   - <link rel="stylesheet" href="controllets/shared_js/perfect-scrollbar/css/perfect-scrollbar.min.css">
111   - <script type="text/javascript">
112   - $(document).ready(function () {
113   -
114   - var datasets = [
115   - {decription:"", name:"Italy - Consuntivo entrate 2009", url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=07843fc3-07e1-4c66-9be4-fed43ca4a26f"},
116   - {decription:"", name:"Italy - Consuntivo entrate 2010",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=48a4db73-d3d4-4639-bbc2-9c797d0e6cda"},
117   - {decription:"", name:"Italy - Consuntivo entrate 2011",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=a14cc2fb-0c24-48d7-9370-834045797d89"},
118   - {decription:"", name:"Italy - Consuntivo entrate 2012",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=fb32fcb6-5e44-4e52-b132-01c6540ddbee"},
119   - {decription:"", name:"Italy - Consuntivo entrate 2014",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=0cb600fc-19ad-4aaf-9794-1e6ea851840a"},
120   - {decription:"", name:"Holland - Vestigingen register gemeente Groningen",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=ba554c1f-02a7-4d76-b449-fb9daa1f8bfd"},
121   - {decription:"", name:"Holland - Woonruimte gemeente Groningen",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=af7b3916-4347-469a-8354-3c2d559bd92f"},
122   - {decription:"", name:"Ireland - SDCC Traffic Cameras",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=73e02092-85a1-434e-85fe-0c9a43aa9a52"},
123   - {decription:"", name:"Ireland - Derelict Site Register",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=fcbee83e-3d3d-4303-a568-24dd33d02adc"},
124   - {decription:"", name:"Ireland - Dublin City Council Commencement Notices",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=ee00de68-f2e4-482f-a003-3c0561351075"},
125   - {decription:"", name:"Ireland - Dublin City Council Planning Applications",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=2f4a9d44-b52f-4c8b-a5db-d8f4a676d81e"},
126   - {decription:"", name:"Ireland - Dun Laoghaire-Rathdown County Council Planning Application 2008-2014",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=c479f061-9638-489d-ac55-0c68765548ff"},
127   - {decription:"", name:"Ireland - Fingal Council Planning Applications for last 7 years",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=d29a477a-4734-43ef-8002-048c8640d441"},
128   - {decription:"", name:"Ireland - Planning Register",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=2b23f32d-e27e-4eef-af1e-27e05103df7d"},
129   - {decription:"", name:"Ireland - Fingal Development Plan 2011-2017 Record of Protected Structures",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=5ea813bc-fdf9-4edb-b3b1-0142b593d5c6"},
130   - {decription:"", name:"Bubble example",url:"http://ckan.routetopa.eu/api/action/datastore_search?resource_id=0cb600fc-19ad-4aaf-9794-1e6ea851840a"},
131   - {decription:"", name:"Issy - 3d pie chart", url:"https://data.issy.com/api/records/1.0/search?dataset=flux-rss-des-offres-demplois-a-issy-les-moulineaux&sort=published&facet=published&refine.published=2015%2F10"}
132   - ];
133   -
134   - var dsc = document.getElementById("dsc");
135   - dsc.setAttribute("datasets", JSON.stringify(datasets));
136   -
137   - $("#treeMapView").parent().parent().hide();
138   - window.addEventListener("data-sevc-controllet.dataletCreated", function(e){parent.createHTML(e);});
139   -
140   - /*var h = $("#material_container").height() - 48;
141   - var w = $("#material_container").width();
142   - console.log($("#div_datasetexplorer"));
143   - console.log($("#div_datasetexplorer").html());
144   - $("#div_datasetexplorer").html("CIAO !!");
145   - console.log($("#div_datasetexplorer").html());
146   - $("#div_datasetexplorer").html("<datasetexplorer-datalet width=\""+w+"\" height=\""+h+"\" data-url=\"http://spod.routetopa.eu/openwall/api/datasetTree\" fields=\"[\"result,datasets,provider_name\",\"result,datasets,organization_name\",\"result,datasets,package_name\",\"result,datasets,resource_name\",\"result,datasets,url\",\"result,datasets,w\"]\"></datasetexplorer-datalet>");
147   - console.log($("#div_datasetexplorer").html());*/
148   - });
149   - </script>
150   - </head>
151   - <body>
152   - <data-sevc-controllet localization="en" id="dsc" deep-url="http://deep.routetopa.eu/deep_1_7/DEEP/" datalets-list-url="http://deep.routetopa.eu/deep_1_7/DEEP/datalets-list"></data-sevc-controllet>
153   - </body>
154   - '>
155   - </iframe>
156   -
157   - <div id="code_area">
158   - <textarea id="sbiricuda" style="position:relative;width: 100%;min-height: 15vh;max-height: 15vh;" style="" rows="4" cols="50">
159   -Copy and paste this code to inject the datalet in you page.
160   - </textarea>
161   - </div>
  152 + <div id="iframe_container">
  153 + <iframe id="controllet_iframe" frameborder="0" src="./controllet.html"></iframe>
  154 + </div>
162 155  
163   - <!--<div>
164   - <textarea style="width: 90%; margin-left:10px; height: 110px" id="code-textarea"></textarea>
165   - </div>-->
  156 + <div id="text_area_container">
  157 + <textarea id="text_area">Copy and paste this code to inject the datalet in you page.</textarea>
  158 + </div>
  159 + </div>
166 160  
167 161 </body>
168 162 </html>
169 163 \ No newline at end of file
... ...