commit 2a71f764bb99efbf0ad6eba6115e5b2f5152bfbd
parent 25c9f2f6b265e8811261430e5adda46279368394
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Wed, 8 Nov 2017 00:43:24 +0300
[track list] more verbose logging for corrupted track files
Diffstat:
3 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/src/lib/leaflet.control.track-list/track-list.hash-state.js b/src/lib/leaflet.control.track-list/track-list.hash-state.js
@@ -1,5 +1,6 @@
import L from 'leaflet';
import {parseGeoFile} from './lib/geo_file_formats';
+import logging from 'lib/logging';
L.Control.TrackList.include(L.Mixin.HashState);
L.Control.TrackList.include({
@@ -11,8 +12,9 @@ L.Control.TrackList.include({
unserializeState: function(values) {
if (values && values.length) {
+ logging.captureBreadcrumb({message: 'load track from hashState'});
var geodata = parseGeoFile('', window.location.href);
- const notEmpty = this.addTracksFromGeodataArray(geodata);
+ const notEmpty = this.addTracksFromGeodataArray(geodata, {url: window.location.href});
if (notEmpty) {
this.setExpanded();
}
diff --git a/src/lib/leaflet.control.track-list/track-list.js b/src/lib/leaflet.control.track-list/track-list.js
@@ -209,15 +209,19 @@ L.Control.TrackList = L.Control.extend({
this.readingFiles(true);
readFiles(files).then(function(fileDataArray) {
- var geodataArray = fileDataArray.map(function(fileData) {
- return parseGeoFile(fileData.filename, fileData.data);
- }
- ).reduce(function(prev, next) {
- Array.prototype.push.apply(prev, next);
- return prev;
- }, []
- );
- this.addTracksFromGeodataArray(geodataArray);
+ const geodataArray = [];
+ const debugFileData = [];
+ for (let fileData of fileDataArray) {
+ geodataArray.push(...parseGeoFile(fileData.filename, fileData.data));
+ debugFileData.push({
+ fileName: fileData.filename,
+ size: fileData.data.length,
+ content: fileData.data.length < 50000 ? btoa(fileData.data) : null
+ });
+ }
+
+
+ this.addTracksFromGeodataArray(geodataArray, debugFileData);
}.bind(this)
);
},
@@ -273,7 +277,7 @@ L.Control.TrackList = L.Control.extend({
this.url('');
},
- addTracksFromGeodataArray: function(geodata_array) {
+ addTracksFromGeodataArray: function(geodata_array, debugData) {
let hasData = false;
var messages = [];
if (geodata_array.length === 0) {
@@ -314,7 +318,7 @@ L.Control.TrackList = L.Control.extend({
);
this.readingFiles(false);
if (messages.length) {
- logging.captureMessage('errors in loaded tracks', {extra: {message: messages.join('\n')}});
+ logging.captureMessage('errors in loaded tracks', {extra: {message: messages.join('\n'), debugData}});
notify(messages.join('\n'));
}
return hasData;
diff --git a/src/lib/leaflet.control.track-list/track-list.localstorage.js b/src/lib/leaflet.control.track-list/track-list.localstorage.js
@@ -2,6 +2,7 @@ import './track-list'
import L from 'leaflet';
import {parseGeoFile} from './lib/geo_file_formats';
import safeLocalStorage from 'lib/safe-localstorage';
+import logging from 'lib/logging';
L.Control.TrackList.include({
maxLocalStorageSessions: 5,
@@ -78,8 +79,9 @@ L.Control.TrackList.include({
s = safeLocalStorage.getItem(key);
safeLocalStorage.removeItem(key);
if (s) {
+ logging.captureBreadcrumb({message: 'load track from localStorage'});
geodata = parseGeoFile('', s);
- this.addTracksFromGeodataArray(geodata);
+ this.addTracksFromGeodataArray(geodata, {localStorage: {key, value: s}});
}
}
}