Commit 2b65b828b416b8217e934bad85e1c71d28e32b40
1 parent
ca817ac6
base datalet fix
Showing
1 changed file
with
13 additions
and
103 deletions
datalets/base-datalet/base-datalet.html
| @@ -130,20 +130,6 @@ Example : | @@ -130,20 +130,6 @@ Example : | ||
| 130 | BaseDatalet = Polymer({ | 130 | BaseDatalet = Polymer({ |
| 131 | is: 'base-datalet', | 131 | is: 'base-datalet', |
| 132 | 132 | ||
| 133 | - objectDatalet: { | ||
| 134 | - /** | ||
| 135 | - * It contains the json data from async xhr call returned from core-ajax core component | ||
| 136 | - * | ||
| 137 | - * @attribute json_resultDatalet | ||
| 138 | - * @type object | ||
| 139 | - * @default 'null'. | ||
| 140 | - */ | ||
| 141 | - json_resultDatalet: { | ||
| 142 | - type: Object, | ||
| 143 | - value: {} | ||
| 144 | - } | ||
| 145 | - }, | ||
| 146 | - | ||
| 147 | hideFooter: function() { | 133 | hideFooter: function() { |
| 148 | this.$.base_datalet_container.innerHTML = ""; | 134 | this.$.base_datalet_container.innerHTML = ""; |
| 149 | this.$.base_datalet_container.style.border = 0; | 135 | this.$.base_datalet_container.style.border = 0; |
| @@ -167,12 +153,8 @@ Example : | @@ -167,12 +153,8 @@ Example : | ||
| 167 | }, | 153 | }, |
| 168 | 154 | ||
| 169 | ready: function(){ | 155 | ready: function(){ |
| 170 | - | ||
| 171 | if(this.dataUrl != undefined) { | 156 | if(this.dataUrl != undefined) { |
| 172 | 157 | ||
| 173 | - //cKan organized with or not catalog | ||
| 174 | - var queryInitial = this.dataUrl.substring(0, this.dataUrl.indexOf("api")); //SOURCE | ||
| 175 | - | ||
| 176 | var urlSource = this.dataUrl.split("/")[0] + "//" + this.dataUrl.split("/")[2]; | 158 | var urlSource = this.dataUrl.split("/")[0] + "//" + this.dataUrl.split("/")[2]; |
| 177 | this.$.base_datalet_source.innerHTML = urlSource; | 159 | this.$.base_datalet_source.innerHTML = urlSource; |
| 178 | this.$.base_datalet_source.setAttribute("href", urlSource); | 160 | this.$.base_datalet_source.setAttribute("href", urlSource); |
| @@ -181,101 +163,29 @@ Example : | @@ -181,101 +163,29 @@ Example : | ||
| 181 | //OpenDataSoft check | 163 | //OpenDataSoft check |
| 182 | if(this.dataUrl.indexOf("/records/") > -1 ) | 164 | if(this.dataUrl.indexOf("/records/") > -1 ) |
| 183 | { | 165 | { |
| 184 | - //Resourceid of a datalet | ||
| 185 | - var query = this.dataUrl.substring(this.dataUrl.indexOf("?"), this.dataUrl.length); | ||
| 186 | - var params = this.decomponeQueryString(query); | ||
| 187 | - var resultIssyIdDatalet = params["dataset"]; | ||
| 188 | - var resultIssyAPI = "explore/dataset/"; | ||
| 189 | - var urlPageDatasetIssy = queryInitial + resultIssyAPI + resultIssyIdDatalet + "/"; | ||
| 190 | - | ||
| 191 | - this.$.base_datalet_link.setAttribute("href", urlPageDatasetIssy); | 166 | + this.$.base_datalet_link.setAttribute("href", urlSource + "/explore/dataset/" + this.dataUrl.substring(this.dataUrl.indexOf("=")+1,this.dataUrl.indexOf("&"))); |
| 192 | } | 167 | } |
| 193 | - else | 168 | + // CKAN |
| 169 | + else if(this.dataUrl.indexOf("datastore_search?resource_id") > -1 ) | ||
| 194 | { | 170 | { |
| 195 | - //CKAN portal | ||
| 196 | - var urlDatalet; | ||
| 197 | - | ||
| 198 | - var apiIdResource = "resource_show?id="; | ||
| 199 | - | ||
| 200 | - //Resourceid of a datalet | ||
| 201 | - var query = this.dataUrl.substring(this.dataUrl.indexOf("?"), this.dataUrl.length); | ||
| 202 | - var params = this.decomponeQueryString(query); | ||
| 203 | - //CKAN | ||
| 204 | - var resultIdDatalet = params["resource_id"]; | ||
| 205 | - | ||
| 206 | - //cKan organized with or not catalog | ||
| 207 | - var queryFinal = this.dataUrl.substring(this.dataUrl.indexOf("api"), this.dataUrl.indexOf("datastore_search")); | ||
| 208 | - | ||
| 209 | - urlDatalet = queryInitial + queryFinal + apiIdResource + resultIdDatalet; | ||
| 210 | - this.requestDataletData(urlDatalet); | 171 | + var comp = this; |
| 172 | + $.ajax({ | ||
| 173 | + url: this.dataUrl.replace("datastore_search?resource_id", "resource_show?id"), | ||
| 174 | + dataType: "json", | ||
| 175 | + success: function(e){ | ||
| 176 | + comp.$.base_datalet_link.setAttribute("href", urlSource + "/dataset/" + e.result.package_id + "/resource/" + e.result.id); | ||
| 177 | + } | ||
| 178 | + }); | ||
| 211 | } | 179 | } |
| 212 | } | 180 | } |
| 213 | - | ||
| 214 | }, | 181 | }, |
| 182 | + | ||
| 215 | /** | 183 | /** |
| 216 | * Set the domain url to show in the footer | 184 | * Set the domain url to show in the footer |
| 217 | */ | 185 | */ |
| 218 | setDomain: function(url){ | 186 | setDomain: function(url){ |
| 219 | this.$.domain.textContent = url; | 187 | this.$.domain.textContent = url; |
| 220 | }, | 188 | }, |
| 221 | - /** | ||
| 222 | - * Get the (key, value) query string parameters | ||
| 223 | - **/ | ||
| 224 | - decomponeQueryString: function (querystring) { | ||
| 225 | - // remove any preceding url and split | ||
| 226 | - querystring = querystring.substring(querystring.indexOf('?')+1).split('&'); | ||
| 227 | - var params = {}, pair, d = decodeURIComponent; | ||
| 228 | - // march and parse | ||
| 229 | - for (var i = querystring.length - 1; i >= 0; i--) { | ||
| 230 | - pair = querystring[i].split('='); | ||
| 231 | - params[d(pair[0])] = d(pair[1]); | ||
| 232 | - } | ||
| 233 | - return params; | ||
| 234 | - }, | ||
| 235 | - /** | ||
| 236 | - * Make an AJAX call to the dataset URL to retrieve package_id | ||
| 237 | - * | ||
| 238 | - * @method urlDatalet | ||
| 239 | - */ | ||
| 240 | - requestDataletData: function(urlDatalet){ | ||
| 241 | - var comp = this; | ||
| 242 | - $.ajax({ | ||
| 243 | - url: urlDatalet, //url con package | ||
| 244 | - dataType: "json", | ||
| 245 | - success: function(e){ | ||
| 246 | - comp.handleDataletResponse(e); | ||
| 247 | - } | ||
| 248 | - }); | ||
| 249 | - }, | ||
| 250 | - /** | ||
| 251 | - * Called when core-ajax component receive the json data from called url. | ||
| 252 | - * | ||
| 253 | - * @method handleResponse | ||
| 254 | - */ | ||
| 255 | - handleDataletResponse: function(e) { | ||
| 256 | - this.objectDatalet.json_resultDatalet.value = e; | ||
| 257 | - //packageId of a give datalet | ||
| 258 | - packageIdDatalet = this.objectDatalet.json_resultDatalet.value.result.package_id; | ||
| 259 | - resourceId = this.objectDatalet.json_resultDatalet.value.result.id; | ||
| 260 | - | ||
| 261 | - //url complete of download | ||
| 262 | - urlDatasetDownload = this.objectDatalet.json_resultDatalet.value.result.url; | ||
| 263 | - | ||
| 264 | - if(this.dataUrl != undefined){ | ||
| 265 | - //static url | ||
| 266 | - lastStringResourceId = this.dataUrl.split("/")[5]; | ||
| 267 | - resourceId = lastStringResourceId.split('=')[1]; | ||
| 268 | - var urlDatalet = this.dataUrl.split("/")[0]+ "//" + this.dataUrl.split("/")[2] + "/dataset/" + packageIdDatalet +"/resource/" +resourceId; | ||
| 269 | - | ||
| 270 | - urlDatalet = urlDatasetDownload.replace(/\/download\/.*/, ''); | ||
| 271 | - urlSource = this.dataUrl.split("/")[0] + "//" + this.dataUrl.split("/")[2]; | ||
| 272 | - | ||
| 273 | - this.$.base_datalet_link.setAttribute("href", urlDatalet); | ||
| 274 | - } | ||
| 275 | - }, | ||
| 276 | - | ||
| 277 | - | ||
| 278 | - | ||
| 279 | - }); | 189 | + }); |
| 280 | </script> | 190 | </script> |
| 281 | </dom-module> | 191 | </dom-module> |
| 282 | \ No newline at end of file | 192 | \ No newline at end of file |