commit 63443521c807037240109eabdd4fc4a534c14343
parent ad4a00ede4d403c5f002518fa8baca2c8adac6d9
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Wed, 14 Feb 2018 01:04:17 +0300
[tracks] use url redirected from response for track name
Diffstat:
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/src/lib/leaflet.control.track-list/lib/geo_file_formats.js b/src/lib/leaflet.control.track-list/lib/geo_file_formats.js
@@ -788,18 +788,6 @@ function loadFromUrl(url) {
if (geodata.length === 0 || geodata.length > 1 || geodata[0].error !== 'UNSUPPORTED') {
return Promise.resolve(geodata);
}
- // FIXME: check logs for loaded track urls, maybe we should use it only for names
- try {
- url = decodeURIComponent(url);
- } catch (e) {
- }
- var name = url
- .split('#')[0]
- .split('?')[0]
- .replace(/\/*$/, '')
- .split('/')
- .pop();
-
let urlToRequest = simpleTrackFetchOptions;
let parser = simpleTrackParser;
@@ -817,7 +805,21 @@ function loadFromUrl(url) {
const requests = urlToRequest(url);
return Promise.all(requests.map((request) => fetch(request.url, request.options)))
.then(
- (responses) => parser(name, responses),
+ (responses) => {
+ let responseURL = responses[0].responseURL;
+ try {
+ responseURL = decodeURIComponent(responseURL);
+ } catch (e) {
+ }
+
+ let name = responseURL
+ .split('#')[0]
+ .split('?')[0]
+ .replace(/\/*$/, '')
+ .split('/')
+ .pop();
+ return parser(name, responses);
+ },
() => [{name: url, error: 'NETWORK'}]
);
}