nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

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:
Msrc/lib/leaflet.control.track-list/lib/geo_file_formats.js | 28+++++++++++++++-------------
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'}] ); }