commit 7294218b1d61c66cc7d45c57a8e70658c0fcc2c2
parent 4a9d0a3bff0a37a8d53797f9acc1a856bc2be3d1
Author: Sergey Orlov <wladimirych@gmail.com>
Date: Sun, 14 Jun 2020 19:38:03 +0200
tracks: fix point names suggests, related to #217
* account only points in current track, ignore other tracks
* consider numbers longer than 3 digits as not autogenerated
* consider numbers with dots longer than 3 digits as not autogenerated
* if point with name "999" exists, suggest empty name
Diffstat:
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/lib/leaflet.control.track-list/track-list.js b/src/lib/leaflet.control.track-list/track-list.js
@@ -701,10 +701,15 @@ L.Control.TrackList = L.Control.extend({
this.stopPlacingPoint();
},
- getNewPointName: function () {
- const maxNumber = Math.max.apply(Math,
- this._markerLayer.getMarkers().map((marker) => parseInt(marker.label, 10) || 0)) | 0;
- return String(maxNumber + 1).padStart(3, '0');
+ getNewPointName: function(track) {
+ let maxNumber = 0;
+ for (let marker of track.markers) {
+ const label = marker.label;
+ if (label.match(/^\d{3}([^\d.]|$)/u)) {
+ maxNumber = parseInt(label, 10);
+ }
+ }
+ return maxNumber === 999 ? '' : String(maxNumber + 1).padStart(3, '0');
},
createNewPoint: function(e) {
@@ -712,7 +717,7 @@ L.Control.TrackList = L.Control.extend({
return;
}
const parentTrack = this.trackAddingPoint();
- const name = this.getNewPointName();
+ const name = this.getNewPointName(parentTrack);
const newLatLng = e.latlng.wrap();
const marker = this.addPoint(parentTrack, {name: name, lat: newLatLng.lat, lng: newLatLng.lng});
this._markerLayer.addMarker(marker);